Sisukord:
- Tarvikud
- Samm: üksikasjad osade kohta…
- 2. samm: auto toide arendamise ajal
- 3. samm: auto toide tegeliku kasutamise ajal
- Samm 4: Tarkvara programmeerimine mängupuldi juhtimiseks
- Samm: kaamera lisamine
- 6. samm: näotuvastus - positsiooni määramine
- 7. samm: näoasend - liikuv robot
Video: Ehitage oma isejuhtiv auto - (see juhend on töökorras): 7 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Tere, Kui vaatate minu teist Instructable on Drive Robot with Remote USB Gamepad, on see projekt sarnane, kuid väiksemas mahus. Samuti saate YouTube'is jälgida või saada abi või inspiratsiooni robootika, kodus kasvatatud häältuvastuse või isesõitvate autode esitusloenditest.
Alustasin suurest robotist (Wallace 4), kuid kuna lõin kohaliku Meetupi grupi, vajasin midagi väiksemas mahus ja grupp oli väga huvitatud arvutinägemisest.
Nii sattusin ma selle Udemy kursuse juurde: Ehita oma isejuhtiv auto, mis andis mulle idee selle projekti jaoks.
Kui olete huvitatud Udemy kursusest, võite seal uuesti vaadata; see läheb aeg -ajalt suure allahindlusega müüki. Märkus: seal on 1. ja 2. osa - peate uurima, kuidas saada kaks kursust paketina (allahinnatud).
Selle juhendi eesmärk on kahekordne. Esiteks, et anda näpunäiteid ja alternatiive kursuse teatud osadele (näiteks osadele ja riistvarale). Ja teiseks, kursuse laiendamiseks.
Udemy kursuse peamine eesmärk:
on see, et oleks võimalik saada väike ratastega robotauto ise vähendatud kaherealisel teel sõitma.
See peab ära tundma sõiduraja triibud ja kui see on jõudnud tee lõppu.
See peab ära tundma peatumismärgi (ja peatuma).
Samuti PUNANE ja ROHELINE liiklusmärk.
Samuti peab see ära tundma takistuse (teise auto) ja selle ümber manööverdama.
Mida see juhendab kursusele lisab:
Sõitke väikese autoga USB -kaugjuhtimispuldiga, umbes samamoodi nagu selles teises juhendis.
Esitage mõned alternatiivid sellele, mida kursus pakub.
Võimalik, et te ei pea isegi kursust ostma:
See juhend võib olla kõik, mida alustamiseks vaja on.
Tarvikud
Olulised (soovitatud) osad:
Roboti šassii
Neli mootorit
Arduino
Vaarika Pi (3, 3B+, 4)
Kaamera (USB veebikaamera või Picamera moodul)
Aku toide
Sisse/välja lülitid
hüppaja juhtmed
vaheseinad (plastist ja võib-olla ka metallist)
Palun vaadake kogu Instructable ja ka videod enne osade ostmist üle.
Pärast selle projekti tegemist saan aru, et täpsed osad pole nii kriitilised.
Samm: üksikasjad osade kohta…
Seotud video käsitleb osade üksikasju ja mõningaid leitud probleeme.
- Vaadake ringi erinevaid šassiisid / mootoreid
- Mootoritel peaks juba olema juhtmed joodetud
- Võimalik, et teil on puur ja puurid, VÕI rohkem aukudega šassii
- Pidage meeles, et kaal on probleem. Kõik peaks olema võimalikult kerge.
- L298 H-Bridge mootorijuht töötab suurepäraselt. MÄRKUS: hankige üks kruviklemmidega (vt foto)
- Tõenäoliselt soovite nii plast- kui ka metallkatteid, suurus M3 on ilmselt parim valik.
Plastist eraldusjooned on head plaatide šassiile kinnitamiseks (mootorijuht, Arduino, Vaarikas, toiteplaat, sisse/välja lüliti jne).
Metallist takistid sobivad hästi šassii kokkupanekuks (tugevus) ja eriti arendamisel (programmeerimine, testimine). Arendamiseks võivad metallist tugipostid olla vaiad. Nii nagu siis, kui töötaksite tõelise auto kallal, tahaksite autot tõsta nii, et rattad oleksid õhus ja saaksid vabalt liikuda. See on väga oluline! Teete vigu ja te ei soovi, et auto lihtsalt õhku tõuseks ja kokku kukuks.
Puur + puurid
Tahan tõesti rõhutada puuri kasutamist, kui see on võimalik, ja kahepoolse kleeplindi asemel takistuste kasutamist. Tõenäoliselt eemaldate ja paigutate oma plaate jne selle projekti käigus mitu korda ja lindi kasutamine muutub väga räpaseks.
Puuri kasutamine muudab selle ümberpaigutamise väga lihtsaks (eriti kui šassii on plastikust) ja see näeb välja professionaalsem.
2. samm: auto toide arendamise ajal
Minu arvates on kiireim ja lihtsaim viis selle projektiga alustamiseks:
- tarkvara Arduino eskiiside arendamiseks ühendage Arduino lihtsalt arvutiga USB kaudu
- tarkvara Raspberry Pi puhul peaks teil olema 5 V USB toide, mis suudab toita vähemalt 3 amprit. Ja sellel peaks olema sisse/välja lüliti. Kui arvutisse pole ühendatud head, toitega USB -jaoturit, ei saa te tõenäoliselt Vaarikat otse arvutist toita.
- Kui olete valmis mootoreid/rattaid katsetama, on kõige lihtsam (vt foto) hea toiteallikas. Need pole aga odavad.
Selle peatüki mõte on öelda, et te ei soovi arendamise ajal akut kasutada, sest see aeglustab teie edusamme oluliselt.
Samuti, tehes midagi sarnast ülaltoodud soovitustega, ei pea te (veel) muretsema selle pärast, kuidas täpselt autot toidate. Saate selle otsuse edasi lükata projekti hilisemaks ajaks.
3. samm: auto toide tegeliku kasutamise ajal
Kui otsustate järgida kurssi (või seda, mida olen teinud) 5 V toite loogikale, siis pidage meeles, et mitte kõik 5 V USB toitepangad ei sobi selle projekti jaoks.
Põhipunkt on see, et vajate 5 V, kuid vähemalt 3 amprit! Mõelge sellele nii - soovite jõupanka, mis toidab sülearvutit (võib -olla).
Kui elate USA -s, arvan, et üks parimaid viise selleks on osta Best Buy'ist. Miks? Nende 14-päevase raha tagastamise poliitika tõttu tagastamiseks.
Ma pidin tegelikult proovima kolme erinevat jõupanka, enne kui leidsin ühe, mis töötaks. Teised põhjustavad Raspberry Pi kurtmist alapinge üle.
Olin alustanud kõige odavamast jõupangast ja proovisin lihtsalt järgmist mudelit (mis maksis rohkem), kuni leidsin ühe, mis töötas.
Kuidas Arduinot toita
Udemy kursusel valis autor Arduino toite otse powerbankist (tema tehtud kohandatud PCB kaudu) ja kasutas Arduino GPIO -pistiku toitenuppe.
Kuid ma otsustasin Arduino lihtsalt USB -kaabli kaudu otse Raspberry Pi kaudu toita.
Peate otsustama, kumb on parem.
Kuidas toita mootoreid/mootorijuhti
Udemy kursusel valis autor mootorite/draiveri toite otse 5 V toitepangast. Selle lähenemisviisi kasutamisel on kaks kaalutlust.
- Kui mootorid esimest korda pöörlema hakkavad, tõmbavad nad kõige rohkem voolu. See võib (põhjustab) toitepinge langemise (langemise) alla 5 V ja vaarika lähtestamise.
- Mootorite toiteks ainult 5 V kasutamine tähendab, et te ei anna mootoritele nii palju energiat kui võimalik ja auto liigub aeglasemalt (aeglasemalt). Olen katsetanud mootoreid (selle toiteallikaga) (vt foto) vähemalt 9 V pingele. Nad töötavad hästi 9V juures.
Tähelepanekud 9 V (või rohkem) kohta
Kui vaatasite kõiki selle Instructable'i fotosid ja videoid, märkasite, et panin oma 9V toiteallika loomiseks kokku kohandatud trükkplaadi. Ma olen teel õppinud mõnda asja.
Praegu kasutan mootorite toiteks paralleelselt mitut (3) 9V akuelementi. Olen kasutanud nii leelis- kui ka NiMH laetavaid patareisid.
Õppimiskogemus nr 1: NiMH 9V akude nõuetekohane laadimine võtab kaua aega (mitu tundi).
Võimalik lahendus: investeerige mitme aku NiMH laadimisse. See peaks olema "tark" laadija.
Puudused: need ei ole odavad.
Õppimiskogemus nr 2: 9V patareid koosnevad tegelikult mitmest väikesest siseelemendist. Kui üks neist rakkudest sureb, on kogu aku kasutu. Mul pole seda probleemi olnud, aga lugesin sellest.
Õppimiskogemus #3: mitte kõik 9 V patareid ei ole sama pingega. See on oluline. Sest mida kõrgem on pinge, seda suurem on võimalik kiirus. Mõned akuelemendid (ja laadijad) on ainult 8,4 V pingega. Mõni isegi vähem. Mõned on 9,6 V pingega.
Õppimiskogemus nr 4: 9 V akud, eriti NiMH akud, on kerge kaaluga. Hea asi. Kuid enamik neist annab ainult mA väljundvoolu. Sellepärast pidin need paralleelselt asetama. Isegi lühiajaliseks vooluvõimsuseks on vaja peaaegu 2 amprit.
Õppimiskogemus #5: On olemas 9,6 V akusid, mida kasutatakse näiteks raadio teel juhitavate autode jaoks. Ma pole seda veel kasutanud, kuid usun, et need pakuvad rohkem voolu kui paralleelsete 9 V patareide tegemine nagu mina. Lisaks saate laadida üksikut seadet. Pakke on erinevates suurustes. Ja kaaluga arvestatakse. Ja siis, kas kasutate komplekti kogu auto või ainult mootorite toiteks? Kui vajate kogu auto jaoks, siis vajate Raspberry Pi jaoks 5 V astmelist regulaatorit.
L298 H-Bridge suudab küll sel eesmärgil 5 V väljundit toota, kuid ma olen mures selle pärast, kui palju see võib Raspberry Pi jaoks voolu toota ja kas see koormab L298 plaati liiga palju.
Kui otsustate kasutada kahte eraldi toiteallikat, võib teil tekkida kaaluprobleem (liiga raske).
Samm 4: Tarkvara programmeerimine mängupuldi juhtimiseks
Ma arvan, et ma käsitlesin palju sellest jaotisest juba robotipõhise USB -mängupuldi Instructable kaudu, nii et ma ei hakka seda siin kordama.
Selle muu Instructable'i programmeerimis-/tarkvaraosad on vaid soovitused. Ma arvan, et katse-eksituse meetodil õpitakse rohkem.
Samm: kaamera lisamine
Udemy kursusel usun, et autor kasutab kaamera tõstmiseks viisi ümarate puidust tüüblite ja liimipüstoli abil.
Soovite kaamerat tõsta nii, et see vaataks alla kaherealisele teele, nii et see tunneks sõidurajad kergemini ära.
Kui ma elan USA -s, olid puidust tüüblid väga odavad. Saate neid osta kas Lowe's või Home Depot. Valisin ümmarguste tüüblite asemel nelinurksed tüüblid.
Samuti otsustasin teha kaameratorni jaoks tugevama aluse ja tegin kogu torni autost eemaldatavaks, et saaksin ringi mängida ja katsetada, milline on selle jaoks parim asend autos.
Samuti tegin torni mõttega, et alustan USB -veebikaameraga, kuid hiljem võib minna edasi Picamera mooduli kasutamisele.
Võib-olla soovite investeerida kalasilma tüüpi kaamerasse.
Ostsin väga odava kuuma liimipüstoli, kuid tahtsin torni alust paremini tugevdada, nii et puurisin eelnevalt mõned kruviavad ja lisasin kruvid, et kõike paremini kokku hoida.
Seejärel kruvisin aluse auto šassiile.
Kui hiljem tahan asju teisaldada, siis keeran aluse šassiilt lahti, puurin šassii uude asukohta uued augud ja keeran torni uuesti šassiile.
Tõin suurest robotist (Wallace Robot 4) üle "järgida" Pythoni ja Node.js koodi, et kõike testida. Palun vaadake selle jaotise fotodelt nende YouTube'i loendite loendit, mis annavad palju rohkem teavet "follow-me" kohta.
Nagu mainisin, oli lihtsam esmalt USB -veebikaamerat paigaldada. Hiljem saan paigaldada Picamera mooduli.
6. samm: näotuvastus - positsiooni määramine
See osa ei ole Udemy kursuse keskmes, kuid see oli lõbus harjutus.
Kui teete veebis otsingut „python opencv näotuvastus”, leiate selle kohta palju häid näiteid ja kõik järgivad üsna samu samme.
- laadige "haar" näofail
- kaamera initsialiseerida
- alustage silmust, kus haarate raami
- teisendage värviline pilt halliks
- söödake see opencv -le, et see nägu leiaks
- alusta sisemist tsüklit (iga leitud näo puhul) (minu puhul lisan katkestamiseks koodi, kui rohkem kui 1 nägu)
Sel eesmärgil teame siin, kui oleme näo tuvastanud, nägu kujutava kujutise ruudu X, Y, W ja H.
Kui soovite, et robot liiguks edasi või tagasi, peate lihtsalt arvestama W. Kui W on liiga suur (liiga lähedal), laske robotil tagasi liikuda. Kui W on liiga väike (liiga kaugel), laske robotil edasi liikuda.
Vasak/parem liikumine on natuke keerulisem, kuid mitte hull. Vaadake selle jaotise pilti, mis kirjeldab üksikasjalikult, kuidas määrata vasaku ja parema näo asend.
MÄRGE:
Kui kasutate mõnda veebipõhist OpenCV näidet, näitavad need kõik tegelikku vaadet selle kohta, mida opencv "näeb", ja nägu on ruudus. Kui jälgite, ei ole see ruut ühtlane (konstantne), isegi kui te ei liigu.
Need muutuvad väärtused põhjustavad roboti pideva liikumise, edasi või tagasi, vasakule või paremale.
Seega peab teil olema mingisugune delta nii edasi/tagasi kui ka vasakule/paremale.
Võtame vasakule vs paremale:
Kui olete vasakule ja paremale arvutanud, saate vahe (delta):
delta = abs (vasak - parem)
Peate võtma absoluudi, sest te ei tea, milline neist on suurem.
Seejärel lisate liikumiseks ainult tingimusliku koodi, kui delta on suurem kui minimaalne.
Teeksite sama asja edasi -tagasi.
7. samm: näoasend - liikuv robot
Kui teate, et vajate robotit vasakule või paremale, edasi või tagasi liikumiseks, kuidas seda teha?
Kuna see Instructable on pooleli olev töö, kopeerisin ma praegu oma suurelt robotilt selle projekti jaoks kasutatava koodi. Palun vaadake minu robootika esitusloendit YouTube'is, kus see kõik on üksikasjalikult kirjeldatud.
Lühidalt, mul on kood kihiti.
Pythoni näotuvastusskript esitab Node.js serverile http päringuid
Node.js server kuulab http liikumisjuhiste taotlusi, teisendab need kohandatud jadaprotokolliks
Kohandatud jadaprotokoll Node.js serveri ja Arduino vahel
Arduino visand, mis täidab tegelikke käske roboti liigutamiseks
Udemy kursus ei tee seda nagu eespool. Aga kuna ma tahtsin edusamme teha ja keskenduda tegelikule pildituvastusele, kasutasin praegu oma eelmist koodi uuesti.
Soovitan:
Ehitage oma Interneti-juhitav video voogesitusrobot Arduino ja Raspberry Pi abil: 15 sammu (piltidega)
Arduino ja Raspberry Pi abil saate luua oma Interneti-juhitava videovoo robot: olen @RedPhantom (teise nimega LiquidCrystalDisplay / Itay), 14-aastane Iisraeli õpilane, kes õpib Max Sheini kõrgkooli kõrgkoolis. Teen selle projekti kõigile õppimiseks ja jagamiseks! Võimalik, et olete mures
Kujundage ja ehitage oma portatiivne BLUETOOTH -kõlar CUM POWER BANK: 15 sammu (koos piltidega)
Kujundage ja ehitage oma kaasaskantav BLUETOOTH -kõlarite toitepank: Hei kõik, nii et siin on õpetatav inimestele, kes armastavad muusikat ja ootavad oma kaasaskantavate Bluetooth -kõlarite kujundamist ja ehitamist. See on hõlpsasti ehitatav kõlar, mis kõlab hämmastavalt, näeb välja ilus ja piisavalt väike, et
Ehitage oma muutuva labori toiteallikas: 4 sammu (koos piltidega)
Ehitage oma muutuva labori toiteplokk: Selles projektis näitan teile, kuidas ühendasin LTC3780, mis on võimas 130 W astmelise üles-/allapoole muundur, 12 V 5A toiteallikaga, et luua reguleeritav laboripinge toiteallikas (0,8 V-29,4V || 0,3A-6A). Võrreldes on jõudlus üsna hea
Isejuhtiv ja PS2 juhtkangiga juhitav Arduino auto: 6 sammu
Isejuhtiv ja PS2 juhtkangiga juhitav Arduino auto: Tere, minu nimi on Joaquín ja ma olen Arduino harrastaja. Eelmisel aastal sattusin Arduino kinnisideeks ja hakkasin just igasuguseid asju tegema ning see automaatne ja juhtkangiga juhitav auto on üks neist. Kui soovite midagi sarnast teha
TfCD - isejuhtiv leivaplaat: 6 sammu (koos piltidega)
TfCD-isejuhtiv leivaplaat: selles juhendis demonstreerime ühte tehnoloogiat, mida autonoomsetes sõidukites sageli kasutatakse: ultraheli takistuste tuvastamine. Isesõitvate autode puhul kasutatakse seda tehnoloogiat lühikeste vahemaade takistuste tuvastamiseks (< 4 m), f