Sisukord:

Ehitage oma isejuhtiv auto - (see juhend on töökorras): 7 sammu
Ehitage oma isejuhtiv auto - (see juhend on töökorras): 7 sammu

Video: Ehitage oma isejuhtiv auto - (see juhend on töökorras): 7 sammu

Video: Ehitage oma isejuhtiv auto - (see juhend on töökorras): 7 sammu
Video: I Built My DREAM Porsche 911 Turbo! 2024, Detsember
Anonim
Image
Image

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…

Image
Image
Üksikasjad osade kohta…
Üksikasjad osade kohta…
Üksikasjad osade kohta…
Ü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

Auto toide arendamise ajal
Auto toide arendamise ajal
Auto toide arendamise ajal
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

Auto toide tegeliku kasutamise ajal
Auto toide tegeliku kasutamise ajal
Auto toide tegeliku kasutamise ajal
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.

  1. 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.
  2. 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

Kaamera lisamine
Kaamera lisamine
Kaamera lisamine
Kaamera lisamine
Kaamera lisamine
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

Image
Image

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.

  1. laadige "haar" näofail
  2. kaamera initsialiseerida
  3. alustage silmust, kus haarate raami
  4. teisendage värviline pilt halliks
  5. söödake see opencv -le, et see nägu leiaks
  6. 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: