Tartalomjegyzék:
- Kellékek
- Lépés: További részletek az alkatrészekről…
- 2. lépés: Az autó áramellátása a fejlesztés során
- 3. lépés: Az autó áramellátása tényleges használat közben
- 4. lépés: Szoftverprogramozás a Gamepad meghajtásához
- 5. lépés: Kamera hozzáadása
- 6. lépés: Arcfelismerés - Határozza meg a pozíciót
- 7. lépés: Arcpozíció - Mozgó robot
Videó: Készítse el saját önvezető autóját - (ez az utasítás folyamatban van): 7 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Helló, Ha megnézi a másik Instructable on Drive Robot Remote USB Gamepad programot, ez a projekt hasonló, de kisebb léptékben. A Youtube-on követheti vagy segítséget vagy inspirációt kaphat a robotika, a saját hangfelismerés vagy az Önvezető autók lejátszási listáiból.
A nagy robottal kezdtem (Wallace 4), de mivel helyi Meetup csoportot alapítottam, szükségem volt valamire kisebb méretben, és a csoportot nagyon érdekelte a számítógépes látás.
Így találkoztam ezzel az Udemy tanfolyammal: Építsd meg saját önvezető autódat, ami adta az ötletet ehhez a projekthez.
Ha érdekli az Udemy tanfolyam, továbbra is ellenőrizheti; időről időre óriási kedvezményre kerül. Megjegyzés: van az 1. és a 2. rész - meg kell vizsgálnia, hogyan lehet a két tanfolyamot csomagként beszerezni (kedvezményes áron).
Ennek az utasításnak a célja kettős. Először is, hogy adjon néhány mutatót és alternatívát a tanfolyam bizonyos részeihez (például az alkatrészekhez és a hardverhez). Másodszor pedig a tanfolyam bővítése.
Az Udemy tanfolyam fő célja:
az, hogy egy kisméretű kerekes robotkocsit képes legyen önállóan vezetni egy kicsinyített kétsávos úton.
Fel kell ismernie a sávcsíkokat, és amikor elérte az út végét.
Meg kell ismernie a stoptáblát (és a stop -ot).
Továbbá egy PIROS és ZÖLD közlekedési jelzőtábla.
Azt is fel kell ismernie és manővereznie kell egy akadályt (másik autó).
Amit ez az Instructable hozzáad a tanfolyamhoz:
Vezesse a kis autót egy távoli USB Gamepad segítségével, nagyjából ugyanúgy, mint ebben a másik Instructable -ben.
Mondjon néhány alternatívát a tanfolyam nyújtotta lehetőségekhez.
Lehet, hogy nem is kell megvennie a tanfolyamot:
Ez az utasítás lehet minden, amire szüksége van az induláshoz.
Kellékek
A legfontosabb (javasolt) részek:
Egy robot alváz
Négy motor
Arduino
Raspberry Pi (3, 3B+, 4)
Kamera (USB webkamera vagy Picamera modul)
Akkumulátor
Be/Ki kapcsolók
jumper vezetékek
stand-off (műanyag és talán fém is)
Kérjük, nézze át a teljes Instructable -t és a videókat is, mielőtt alkatrészeket szeretne vásárolni.
A projekt elvégzése után rájövök, hogy a pontos részek nem annyira kritikusak.
Lépés: További részletek az alkatrészekről…
A kapcsolódó videó részletesen bemutatja az alkatrészeket, és néhány problémát, amelyeket találtam.
- Nézzen körül a különböző alvázak / motorok között
- A motoroknak már forrasztott vezetékekkel kell rendelkezniük
- Érdemes fúrót és fúrókat használni, VAGY több lyukú alvázat
- Ne feledje, hogy a súly kérdés. Mindennek a lehető legkönnyebbnek kell lennie.
- Az L298 H-Bridge motor meghajtója remekül működik. MEGJEGYZÉS: szerezzen be egyet a csavaros sorkapcsokkal (lásd a fotót)
- Valószínűleg műanyagra és fémre is szüksége lesz, az M3 -as méret valószínűleg a legjobb választás.
A műanyag rögzítőelemek alkalmasak a táblák alvázra szerelésére (motorvezérlő, Arduino, Málna, tápegység, be/ki kapcsoló stb.).
A fémállványok jóak az alváz összeszereléséhez (szilárdság), és különösen akkor, amikor fejlesztenek (programozás, tesztelés). A fejlesztés érdekében a fémállványok gólyalábakként szolgálhatnak. Csakúgy, mint ha valódi autón dolgozna, úgy szeretné emelni az autót, hogy a kerekek a levegőben legyenek és szabadon mozoghassanak. Ez nagyon fontos! Hibázni fog, és nem akarja, hogy az autó csak felszálljon és lezuhanjon.
Fúró + fúrószárak
Nagyon szeretném hangsúlyozni a fúró használatát, ha teheti, és a kétoldalas ragasztószalag helyett az eltéréseket. Nagyon valószínű, hogy a projekt során többször eltávolítja és újra elhelyezi a táblákat stb., És a szalag használata nagyon rendetlenné válik.
A fúró használata nagyon megkönnyíti az újrapozícionálást (különösen, ha a ház műanyag), és professzionálisabbnak tűnik.
2. lépés: Az autó áramellátása a fejlesztés során
Véleményem szerint a leggyorsabb és legegyszerűbb módja a projekt elindításának:
- szoftver Arduino vázlatfejlesztéshez csak csatlakoztassa az Arduino -t a számítógéphez USB -n keresztül
- a Raspberry Pi szoftverhez 5 V -os USB -tápellátással kell rendelkeznie, amely legalább 3 Amper tápellátást biztosít. És legyen benne ki/be kapcsoló. Hacsak nincs jó, táplált USB hub csatlakoztatva a számítógéphez, akkor valószínűleg nem tudja közvetlenül a számítógépről táplálni a Raspberry -t.
- Ha készen áll a motorok/kerekek tesztelésére, akkor a legegyszerűbb (lásd a fotót) egy jó tápegység. Ezek azonban nem olcsók.
Ebben a részben azt szeretném mondani, hogy a fejlesztés során nem akarja használni az akkumulátort, mert ez jelentősen lelassítja a fejlődést.
Továbbá, ha valami hasonlót tesz a fenti javaslatokhoz, nem kell (még) aggódnia, hogy pontosan hogyan fogja táplálni az autót. Ezt a döntést késleltetheti a projekt későbbi szakaszában.
3. lépés: Az autó áramellátása tényleges használat közben
Ha úgy dönt, hogy követi a logika logikáját (vagy amit én tettem) az 5 V -os tápellátáshoz, akkor vegye figyelembe, hogy nem minden 5 V -os USB -tápbank alkalmas erre a projektre.
A lényeg itt az, hogy 5 V -ra van szüksége, de legalább 3 A -ra! Gondolj csak bele - olyan Powerbank -t szeretnél, amely (talán) egy laptop számítógépet táplál.
Ha az Egyesült Államokban él, akkor szerintem az egyik legjobb módja ennek a Best Buy -ból való vásárlás. Miért? 14 napos pénzvisszafizetési politikájuk miatt.
Valójában három különböző powerbankot kellett kipróbálnom, mielőtt találtam egyet, ami működni fog. A többi miatt a Raspberry Pi panaszkodik az alulfeszültségre.
A legolcsóbb powerbankkal kezdtem, és csak próbáltam a következő modellt (ez többe került), amíg találtam egyet, ami működött.
Hogyan lehet áram alá helyezni az Arduino -t
Az Udemy tanfolyamon a szerző úgy döntött, hogy az Arduino -t közvetlenül a powerbank -ról táplálja (az általa készített egyedi PCB -n keresztül), és tápcsapokat használt az Arduino GPIO -csatlakozóján.
Én azonban úgy döntöttem, hogy az Arduino -t csak a Raspberry Pi -ről táplálom, USB -kábelen keresztül.
El kell döntenie, melyik a jobb.
A motorok/motorhajtó áramellátása
Az Udemy tanfolyamon a szerző úgy döntött, hogy a motorokat/meghajtókat közvetlenül az 5 V -os tápegységről táplálja. Két szempont van, ha ezt a módszert alkalmazza.
- Amikor a motorok először forogni kezdenek, a legnagyobb áramot veszik fel. Ez a feszültséget 5V alá süllyesztheti (le), és a Málna visszaállhat.
- Ha csak 5 V -ot használ a motorok táplálására, az azt jelenti, hogy nem biztosít annyi energiát, mint amennyit tudna a motoroknak, és az autó lassabban (lassabban) fog mozogni. A motorokat (ezzel a tápegységgel) (lásd a fotót) legalább 9 V -ra teszteltem. 9V -nál jól működnek.
Megfigyelések 9V (vagy több) feszültségről
Ha megnézte az Instructable összes fotóját és videóját, észrevette, hogy összeállítottam egy egyedi NYÁK -t a saját 9 V -os áramforrás létrehozásához. Útközben tanultam néhány dolgot.
Jelenleg több (3) 9V -os elemcellát használok párhuzamosan a motorok táplálására. Mind alkáli, mind NiMH akkumulátorokat használtam.
Tanulási tapasztalat #1: Hosszú ideig (sok óráig) tart a NiMH 9V akkumulátorok megfelelő feltöltése.
Lehetséges megoldás: Fektessen be egy több akkumulátoros NiMH töltőbe. "Okos" töltőnek kell lennie.
Hátránya: nem olcsóak.
Tanulási tapasztalat #2: A 9 V -os akkumulátorok valójában több kis belső cellából állnak. Ha az egyik cella elhal, a teljes akkumulátor haszontalan. NEM volt ilyen problémám, de olvastam róla.
Tanulási tapasztalat #3: Nem minden 9V -os elem azonos feszültségű. Ez fontos. Mert minél nagyobb a feszültség, annál nagyobb sebesség lehetséges. Egyes akkumulátorcellák (és töltők) csak 8,4 V feszültségűek. Egyesek még kevésbé. Némelyik 9,6 V -os.
Tanulási élmény #4: A 9 V -os elemek, különösen a NiMH akkumulátorok, könnyűek. Egy jó dolog. A legtöbbjük azonban csak mA kimeneti áramot biztosít. Ezért párhuzamosan kellett elhelyezni őket. Szinte 2 amper áramerősségre van szüksége, még rövid időre is.
Tanulási tapasztalat #5: Léteznek 9,6 V-os akkumulátorok, például rádióvezérelt autókhoz. Még nem használtam egyet, de úgy gondolom, hogy nagyobb áramot szolgáltatnak, mint a párhuzamos 9 V -os elemek, mint én. Ezenkívül az egységet is töltheti. A csomagok különböző méretűek. És van súlymegfontolás. És akkor a csomagot használja az egész autó, vagy csak a motorok áramellátására? Ha az egész autóra vonatkozik, akkor szüksége lesz egy 5 V-os lépcsős szabályozóra a Raspberry Pi számára.
Az L298 H-Bridge képes arra, hogy 5 V-ot adjon ki erre a célra, de aggódom, hogy mennyi áramot tud termelni a Raspberry Pi számára, és hogy túl nagy terhelést jelent-e az L298 kártyára.
Ha úgy dönt, hogy két külön áramforrást használ, akkor súlyproblémája lehet (túl nehéz).
4. lépés: Szoftverprogramozás a Gamepad meghajtásához
Azt hiszem, ennek a résznek a nagy részét már leírtam a Robot által vezérelt távoli USB Gamepad Instructable programban, ezért ezt itt nem ismétlem meg.
A másik Instructable programozási/szoftver részei csak javaslatok. Azt hiszem, az ember többet tanul a próba és hiba útján.
5. lépés: Kamera hozzáadása
Az Udemy tanfolyamon úgy gondolom, hogy a szerző kerek fa dübeleket és ragasztópisztolyt használ a kamera felemelésére.
A kamerát úgy kell felemelnie, hogy lefelé nézzen a kétsávos útra, így könnyebben felismeri a sávokat.
Ahol az Egyesült Államokban élek, a fa tiplik nagyon olcsók voltak. Megveheti őket a Lowe's -ban vagy a Home Depotban. A kerek tiplik helyett szögletes tipliket választottam.
Úgy döntöttem, hogy szilárdabb alapot készítek a kameratoronyhoz, és eltávolítottam az egész tornyot az autóból, hogy játszhassak és kísérletezhessek, hogy mi a legjobb helyzet az autóban.
Ezenkívül a tornyot azzal a gondolattal készítettem, hogy egy USB webkamerával kezdek, de később áttérhetek a Picamera modul használatára.
Érdemes befektetni egy halszem típusú fényképezőgépbe.
Vettem egy nagyon olcsó forró ragasztópisztolyt, de jobban meg akartam erősíteni a torony alapját, ezért előre fúrtam néhány csavarlyukat, és csavarokat adtam hozzá, hogy mindent jobban összetartsak.
Aztán az alapot az autó alvázára csavartam.
Ha később meg akarom mozgatni a dolgokat, csak lecsavarom az alapot az alvázról, új lyukakat fúrok az alváz új helyére, és visszacsavarozom a tornyot az alvázra.
Átvittem a "kövess" Python és Node.js kódot a nagy robotból (Wallace Robot 4), hogy mindent tesztelhessek. Kérjük, tekintse meg az ebben a részben található fotókat a youtubek listájához, amelyek sokkal részletesebben szolgálnak a "követés" témáról.
Mint már említettem, egyszerűbb volt először csatlakoztatni egy USB webkamerát. Később fel tudom szerelni a Picamera modult.
6. lépés: Arcfelismerés - Határozza meg a pozíciót
Ez a rész nem az Udemy tanfolyam középpontjában áll, de szórakoztató gyakorlat volt.
Ha a weben keresi a "python opencv arcfelismerés" kifejezést, akkor sok jó példát talál erre, és mindegyik nagyjából ugyanazokat a lépéseket követi.
- töltse be a "haar" arcfájlt
- inicializálja a kamerát
- indíts egy ciklust, ahol megragadsz egy keretet
- konvertálja a színes képet szürkeárnyalatosra
- adja meg az opencv -nek, hogy megtalálja az arcát
- indítson el egy belső ciklust (minden talált arc esetén) (esetemben kódot adok hozzá a megszakításhoz, ha több mint 1 arc)
Ebből a célból itt, miután észleltünk egy arcot, ismerjük az arcot körvonalazó képzeletbeli négyzet X, Y, W és H betűit.
Ha azt szeretné, hogy a robot előre vagy hátra mozogjon, akkor csak a W -t kell figyelembe vennie. Ha W túl nagy (túl közel), akkor vegye vissza a robotot. Ha W túl kicsi (túl messze), akkor a robot haladjon előre.
A bal/jobb mozgás egy kicsit bonyolultabb, de nem őrült. Vessen egy pillantást ennek a résznek a képére, amely részletezi a bal és jobb arc helyzetének meghatározását.
JEGYZET:
Ha a webes OpenCV -példák bármelyikét futtatja, akkor mindegyik a tényleges nézetet mutatja, hogy mit lát az opencv, és az arc négyzetben van körvonalazva. Ha megfigyeljük, akkor ez a négyzet nem állandó (állandó), még akkor sem, ha nem mozog.
Ezek a változó értékek azt eredményeznék, hogy a robot folyamatosan mozgásban van, előre vagy hátra, balra vagy jobbra.
Így szükség lesz valamilyen delta -ra mind előre/hátra, mind balra/jobbra.
Vegyük balra jobbra:
Miután kiszámította a bal és a jobb oldalt, akkor kapja meg a különbséget (delta):
delta = hasizom (bal - jobb)
Az abszolútumot kell választanod, mert nem tudod, melyik lesz a nagyobb szám.
Ezután feltételes kódot ad hozzá a mozgatási kísérlethez, ha a delta nagyobb, mint a minimális.
Ugyanezt tenné előre és hátra.
7. lépés: Arcpozíció - Mozgó robot
Ha már tudja, hogy a robotnak balra vagy jobbra, előre vagy hátra kell mozognia, hogyan kell ezt megtenni?
Mivel ez az Instructable egy folyamatban lévő munka, jelenleg csak lemásoltam a kódot a nagy robotomból, hogy ezt a projektet használjam. Kérjük, nézze meg a Robotics lejátszási listámat a youtube -on, ahol mindezt részletezi.
Röviden, a kód rétegekben van.
A Python arcfelismerő szkript http kéréseket küld a Node.js szervernek
A Node.js szerver figyeli az áthelyezési utasítások http -kéréseit, ezeket egyedi soros protokollmá alakítja
Egyedi soros protokoll a Node.js szerver és az Arduino között
Arduino vázlat, amely végrehajtja a robot mozgatására vonatkozó tényleges parancsokat
Az Udemy tanfolyam nem ezt teszi, mint fent. De mivel jó előrehaladást akartam elérni, és a tényleges képfelismerésre akartam koncentrálni, egyelőre újra felhasználtam a korábbi kódomat.
Ajánlott:
Készítse el saját USB ventilátorát - Angol / Francais: 3 lépés
Készítse el saját USB ventilátorát | Magyar / Francais: MAGYAR Ma olyan oldalakon láttam, hogy vásárolhatunk USB -ventilátort. De megmondtam, miért nem készítem el az enyémet? Amire szüksége van: - Ragasztószalag villanyszerelő vagy kacsaszalag - PC -ventilátor - Egy USB -kábel, amely nem szolgálja Önt - Drótvágó - Csavarhúzó - Fűzőkapocs
Készítse el saját talajnedvesség -érzékelőjét az Arduino segítségével !!!: 10 lépés
Készítse el saját talajnedvesség-érzékelőjét az Arduino-val !!!: RÓLA !!! Ebben az oktatható útmutatóban egy FC-28 talajnedvesség-érzékelőt fogunk csatlakoztatni az Arduino-val. Ez az érzékelő méri a talajban lévő víz térfogatát, és a nedvesség szintjét adja meg. Az érzékelő mindkét analóg
Készítse el saját Rock Band Ekit adapterét (régebbi adapter nélkül), pusztítóan!: 10 lépés
Készíts saját Rock Band Ekit adaptert (régebbi adapter nélkül), megsemmisítő! . Köszönet DONINATOR úrnak a Youtube -on, aki készített egy videót, amely részletesen bemutatja hasonló
Készítse el saját fejhallgató -erősítőjét V1: 8 lépés
Készítse el saját fejhallgató -erősítőjét V1: Soha nem gondoltam sokat a fejhallgató -erősítőkre, amíg nem próbáltam ki egyet. Régebben azt hittem, hogy ez egy kis trükk. Miért lenne szüksége külön erősítőre a fejhallgató hangszóróinak meghajtásához? Csak amikor fejhallgató -erősítőt próbálsz ki, rájössz
Arduino parkolási asszisztens - parkolja le autóját a megfelelő helyre minden alkalommal: 5 lépés (képekkel)
Arduino parkolási asszisztens - parkolja le autóját a megfelelő helyre minden alkalommal: Ebben a projektben megmutatom, hogyan építhet saját parkolási asszisztenst egy Arudino segítségével. Ez a parkolási asszisztens méri az autójától való távolságot, és az LCD kijelző leolvasása és egy LED segítségével segít a megfelelő helyen parkolni