Sadržaj:
- Pribor
- Korak 1: Više pojedinosti o dijelovima…
- Korak 2: Napajanje automobila tijekom razvoja
- Korak 3: Napajanje automobila tijekom stvarne uporabe
- Korak 4: Programiranje softvera za upravljanje gamepadom
- Korak 5: Dodavanje kamere
- Korak 6: Prepoznavanje lica - Odredite položaj
- Korak 7: Položaj lica - Robot u pokretu
Video: Napravite vlastiti automobil koji se samostalno vozi - (ovo uputstvo radi): 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Zdravo, Ako pogledate moj drugi Robot s instrukcijama na disku s udaljenim USB gamepadom, ovaj je projekt sličan, ali u manjem opsegu. Također možete pratiti ili dobiti pomoć ili inspiraciju iz popisa za reprodukciju Robotics, Home-Grown-Recognition ili Self-Driving Car playists na Youtubeu.
Počeo sam s velikim robotom (Wallace 4), ali budući da sam osnovao lokalnu Meetup grupu, trebalo mi je nešto manjeg obima, a grupa je bila jako zainteresirana za računalni vid.
Tako sam naišao na ovaj tečaj Udemy: Izgradite vlastiti automobil sa samoupravljanjem koji mi je dao ideju za ovaj projekt.
Ako ste zainteresirani za tečaj Udemy, tamo možete stalno provjeravati; s vremena na vrijeme ide u prodaju uz ogroman popust. Napomena: postoje 1. i 2. dio - morate istražiti kako nabaviti dva tečaja kao paket (s popustom).
Svrha ovog uputstva je dvostruka. Prvo, dati neke smjernice i alternative za određene dijelove tečaja (poput dijelova i hardvera). I drugo, proširiti tečaj.
Glavna svrha tečaja Udemy:
je omogućiti malim robotskim kotačima za samostalnu vožnju na umanjenoj cesti s dvije trake.
Mora prepoznati pruge i kad dođe do kraja ceste.
Mora prepoznati znak stop (i stop).
Također, CRVENI i ZELENI prometni signal.
Također mora prepoznati i manevrirati oko prepreke (drugi automobil).
Što ovaj Instructable dodaje tečaju:
Vozite mali automobil udaljenim USB gamepadom, na isti način kao u ovom drugom Instructable.
Dajte neke alternative onome što tečaj nudi.
Možda nećete morati ni kupiti tečaj:
Ovaj Instructable može biti sve što vam je potrebno za početak.
Pribor
Bitni (predloženi) dijelovi:
Robotsko podvozje
Četiri motora
Arduino
Malina Pi (3, 3B+, 4)
Kamera (USB web kamera ili Picamera modul)
Napajanje baterije
Prekidači za uključivanje/isključivanje
kratkospojne žice
zastoji (plastični, a možda i metalni)
Prije nego što pokušate kupiti dijelove, pregledajte cijeli Instructable i videozapise.
Nakon što sam napravio ovaj projekt, shvaćam da točni dijelovi nisu toliko kritični.
Korak 1: Više pojedinosti o dijelovima…
Povezani video prikazuje neke detalje o dijelovima i neke probleme koje sam pronašao.
- Potražite različite šasije / motore
- Motori bi već trebali imati zalemljene žice
- Možda biste htjeli imati bušilicu i svrdla, ILI šasiju s više rupa
- Imajte na umu da je težina problem. Sve bi trebalo biti što svjetlije.
- Vozač motora L298 H-Bridge odlično radi. NAPOMENA: nabavite jedan s vijčanim priključnim blokovima (pogledajte fotografiju)
- Vjerojatno ćete htjeti i plastične i metalne zastoje, veličina M3 je vjerojatno najbolji izbor.
Plastični nosači dobri su za ugradnju ploča na šasiju (upravljački program motora, Arduino, Raspberry, napajanje, sklopka za uključivanje/isključivanje itd.).
Metalni zastoji su dobri za sastavljanje šasije (čvrstoća), a posebno kada se razvijate (programiranje, testiranje). Za razvoj, metalni nosači mogu poslužiti kao stupovi. Baš kao da radite na pravom automobilu, želite podići automobil tako da kotači budu u zraku i da se slobodno kreću. Ovo je veoma važno! Pogriješit ćete i ne želite da auto samo uzleti i sudari se.
Bušilica + svrdla
Stvarno želim naglasiti uporabu bušilice, ako ste u mogućnosti, i korištenje stajališta umjesto dvostrane ljepljive trake. Vrlo vjerojatno ćete tijekom ovog projekta nekoliko puta ukloniti i ponovno postaviti ploče, itd., A upotreba trake postaje vrlo neuredna.
Korištenje bušilice olakšava ponovno postavljanje (osobito ako je kućište plastično) i izgleda profesionalnije.
Korak 2: Napajanje automobila tijekom razvoja
Po mom mišljenju, najbrži i najlakši način za početak ovog projekta je:
- za razvoj Arduino skice softvera, samo povežite Arduino s računalom putem USB -a
- za softver Raspberry Pi trebali biste imati 5V USB napajanje koje može opskrbiti najmanje 3 ampera. I trebao bi imati prekidač za uključivanje/isključivanje. Osim ako na računalo imate dobro USB napajanje s napajanjem, vjerojatno nećete moći napajati Raspberry izravno s računala.
- Jer kad ste spremni za testiranje motora/kotača, najjednostavnije je (vidi fotografiju) dobro napajanje. Međutim, oni nisu jeftini.
S ovim odjeljkom želim reći da ne želite koristiti bateriju tijekom razvoja, jer će to uvelike usporiti vaš napredak.
Također, radeći nešto slično gornjim prijedlozima, ne morate se (još) brinuti o tome kako ćete točno napajati automobil. Tu odluku možete odgoditi za kasnije u projektu.
Korak 3: Napajanje automobila tijekom stvarne uporabe
Ako odlučite slijediti tečaj (ili ono što sam učinio) za 5V napajanje prema logici, imajte na umu da nisu sve 5V USB powerbanke dobre za ovaj projekt.
Glavna stvar ovdje je da vam treba 5V, ali trebate barem 3 ampera! Zamislite to ovako - želite powerbank koji će napajati prijenosno računalo (možda).
Ako živite u SAD -u, mislim da je jedan od najboljih načina za to kupovina od Best Buy -a. Zašto? Zbog njihove 14-dnevne politike povrata novca.
Zapravo sam morao isprobati tri različite powerbanke prije nego što sam pronašao onu koja bi radila. Drugi uzrokuju da se Raspberry Pi žali na podnapon.
Počeo sam s najjeftinijom powerbank i samo sam isprobavao sljedeći model (koji je koštao više), sve dok nisam našao jedan koji radi.
Kako napajati Arduino
Na tečaju Udemy, autor je odlučio napajati Arduino izravno iz powerbank -a (putem prilagođenog PCB -a koji je napravio) te je upotrijebio pinove za napajanje na GPIO konektoru Arduina.
Ja sam, međutim, odlučio samo napajati Arduino izravno s Raspberry Pi, putem USB kabela.
Morat ćete odlučiti što je bolje.
Kako napajati motore/upravljački program motora
Na tečaju Udemy autor je odlučio napajati motore/upravljačke programe izravno iz 5V powerbank. Ako koristite ovaj pristup, postoje dva razloga.
- Kada se motori počnu okretati, oni crpe najveću struju. To može (hoće) uzrokovati da napon napajanja padne (padne) ispod 5V i uzrokuje resetiranje maline.
- Korištenje samo 5 V za napajanje motora znači da motorima ne dajete onoliko snage koliko biste mogli, a automobil će se kretati sporije (tromije). Testirao sam motore (s tim napajanjem) (vidi fotografiju) na najmanje 9V. Rade dobro na 9V.
Promatranja o 9V (ili više)
Ako ste pogledali sve fotografije i video zapise za ovaj Instructable, primijetili ste da sam sastavio prilagođenu PCB za stvaranje vlastitog izvora napajanja od 9V. Usput sam naučio nekoliko stvari.
Trenutno koristim nekoliko (3) 9V baterijskih ćelija paralelno, za napajanje motora. Koristio sam i alkalne i NiMH punjive baterije.
Iskustvo učenja #1: Potrebno je puno vremena (mnogo sati) za pravilno punjenje NiMH 9V baterija.
Moguće rješenje: Uložite u NiMH punjač s više baterija. To bi trebao biti "pametan" punjač.
Nedostatak: Nisu jeftini.
Iskustvo učenja #2: 9V baterije zapravo se sastoje od nekoliko malih unutarnjih ćelija. Ako jedna od tih ćelija umre, cijela baterija je beskorisna. Nisam imao ovaj problem, ali sam čitao o njemu.
Iskustvo učenja #3: Nemaju sve 9V baterije isti napon. Ovaj je važan. Budući da je veći napon, veća je moguća brzina. Neke baterije (i punjači) imaju samo 8,4V. Neki čak i manje. Neki su 9,6V.
Iskustvo učenja #4: 9V baterije, posebno NiMH, male su težine. Dobra stvar. Međutim, većina njih daje samo mA izlazne struje. Zato sam ih morao postaviti paralelno. Potreban vam je ukupni trenutni kapacitet od gotovo 2 ampera, čak i za kratke vremenske periode.
Iskustvo učenja #5: Postoje baterije od 9,6 V, koje se koriste za stvari poput automobila s radijskim upravljanjem. Nisam ih još koristio, ali vjerujem da pružaju više struje nego paralelne 9V baterije kao ja. Također, možete napuniti jednu jedinicu. Paketi dolaze u različitim veličinama. I tu treba uzeti u obzir težinu. I onda, koristite li pakiranje za pogon cijelog automobila ili samo motora? Ako za cijeli automobil, tada će vam za Raspberry Pi biti potreban 5-stepeni regulator za smanjenje snage.
L298 H-Bridge ima mogućnost odašiljanja 5V u tu svrhu, ali zabrinut sam koliko struje može proizvesti za Raspberry Pi i hoće li biti previše opterećen na ploči L298.
Odlučite li se za dva odvojena izvora napajanja, možda imate problem s težinom (pretežak).
Korak 4: Programiranje softvera za upravljanje gamepadom
Mislim da sam dosta ovog odjeljka pokrio već u uputstvu Robot Driven Via Remote USB Gamepad Instructable, pa to neću ovdje ponavljati.
Odjeljci programiranja/softvera u tom drugom Instructableu samo su prijedlozi. Mislim da se pokušavanjem i pogreškom nauči više.
Korak 5: Dodavanje kamere
Vjerujem da autor na tečaju Udemy koristi okrugle drvene tiple i pištolj za ljepilo kako bi konstruirao način za podizanje kamere.
Morat ćete podignuti kameru tako da gleda prema dolje na cestu s dvije trake kako bi lakše prepoznala trake.
Tamo gdje živim u SAD -u, drveni klinovi bili su vrlo jeftini. Možete ih kupiti u Lowe's ili Home Depot. Umjesto okruglih, odabrao sam četvrtaste tiplice.
Također sam odlučio napraviti čvršću podlogu za toranj kamere, a cijeli toranj sam uklonio s auta, tako da se mogu poigrati i eksperimentirati na tome koji je najbolji položaj za njega na automobilu.
Također, napravio sam toranj imajući na umu ideju da ću početi s USB web kamerom, ali eventualno kasnije prijeći na korištenje modula Picamera.
Možda biste htjeli uložiti u kameru tipa riblje oko.
Kupio sam vrlo jeftin pištolj za vruće ljepilo, ali sam htio bolje ojačati podnožje tornja, pa sam prethodno izbušio neke rupe za vijke i dodao vijke da bolje sve drže zajedno.
Zatim sam pričvrstio bazu na šasiju automobila.
Ako kasnije želim pomaknuti stvari, jednostavno odvrnem podlogu od šasije, izbušim nove rupe na novom mjestu šasije i ponovno pričvrstim toranj na šasiju.
Donio sam "follow-me" Python i Node.js kod iz velikog robota (Wallace Robot 4) kao način da se sve testira. Molimo pogledajte fotografije u ovom odjeljku za popis youtuba koje daju mnogo više detalja o "follow-me".
Kao što sam spomenuo, bilo je lakše prvo postaviti USB web kameru. Kasnije mogu montirati modul Picamera.
Korak 6: Prepoznavanje lica - Odredite položaj
Ovaj dio nije fokus tečaja Udemy, ali to je bila zabavna vježba.
Ako na webu pretražujete "python opencv prepoznavanje lica", pronaći ćete mnogo dobrih primjera kako to učiniti, a svi slijede iste korake.
- učitati datoteku lica "haar"
- inicijalizirati kameru
- pokrenite petlju gdje hvatate okvir
- pretvoriti sliku u boji u sivu ljestvicu
- pošaljite ga na opencv kako bi pronašao lica
- pokretanje unutarnje petlje (za svako pronađeno lice) (u mom slučaju dodajem kôd za prekid ako ima više od 1 lica)
U tu svrhu ovdje, nakon što detektiramo lice, znamo X, Y, W i H zamišljenog kvadrata koji ocrtava lice.
Ako želite da se robot pomiče naprijed ili natrag, samo morate uzeti u obzir W. Ako je W prevelik (preblizu), neka se robot pomakne unatrag. Ako je W premalen (predaleko), neka robot krene naprijed.
Kretanje ulijevo/udesno samo je malo složenije, ali nije ludo. Pogledajte sliku za ovaj odjeljak koja detaljno opisuje kako odrediti položaj lica lijevo na desno.
BILJEŠKA:
Ako pokrenete neki od web -primjera OpenCV -a, svi oni pokazuju stvarni prikaz onoga što opencv "vidi", s licem ocrtanim u kvadrat. Ako promatrate, taj kvadrat nije stabilan (konstantan), čak i ako se ne krećete.
Te bi promijenjene vrijednosti uzrokovale da robot bude stalno u pokretu, naprijed ili natrag, lijevo ili desno.
Dakle, morat ćete imati neku vrstu delte i za naprijed/natrag i za lijevo/desno.
Uzmimo lijevo vs desno:
Nakon što izračunate lijevo i desno, tada dobijete razliku (delta):
delta = abs (lijevo - desno)
Morate uzeti apsolutni jer ne znate koji će biti veći broj.
Zatim dodate neki uvjetni kôd za pokušaj pomicanja samo ako je delta veća od nekog minimuma.
Učinili biste istu stvar za naprijed protiv.
Korak 7: Položaj lica - Robot u pokretu
Kada to učinite kad znate da vam je robot potreban za kretanje lijevo ili desno, naprijed ili natrag?
Budući da je ovaj Instructable u tijeku, trenutno sam samo kopirao kôd sa svog velikog robota za korištenje u ovom projektu. Molimo vas da pogledate moju listu za reprodukciju Robotics na youtube -u na kojoj je detaljno opisano sve ovo.
Ukratko, imam kod u slojevima.
Python skripta za prepoznavanje lica šalje http zahtjeve poslužitelju Node.js
Node.js poslužitelj sluša http zahtjeve za upute za premještanje, pretvara ih u prilagođeni serijski protokol
Prilagođeni serijski protokol između Node.js poslužitelja i Arduina
Arduino skica koja izvršava stvarne naredbe za pomicanje robota
Tečaj Udemy ne radi kao gore. No, budući da sam želio dobro napredovati i usredotočiti se na prepoznavanje slike, za sada sam ponovno upotrijebio svoj prethodni kôd.
Preporučeni:
Kid's Quad hakiranje u vozilo koje se samostalno vozi, prati liniju i otkriva prepreke: 4 koraka
Kid's Quad hakiranje u vozilo koje se samostalno vozi, prati liniju i otkriva prepreke. U današnjem Instructableu pretvorit ćemo električni dječji quad od 1000 W (da, znam da je puno!) U vozilo koje se samostalno vozi, prati liniju i izbjegava prepreke! Demo video: https: //youtu.be/bVIsolkEP1kZa ovaj projekt trebat će nam sljedeći materijali
Automatski model željezničkog rasporeda koji vozi s dva vlaka (V2.0) - Na temelju Arduina: 15 koraka (sa slikama)
Automatski model željezničkog rasporeda koji vozi s dva vlaka (V2.0) | Na temelju Arduina: Automatiziranje rasporeda željezničkih modela pomoću Arduino mikrokontrolera izvrstan je način spajanja mikrokontrolera, programiranja i željezničkog modela u jedan hobi. Dostupno je nekoliko projekata o autonomnom voženju vlaka na modelu railroa
Napravite vlastiti sirovi akumulatorski zavarivač s akumulatorom za automobil!: 5 koraka
Napravite vlastiti sirovi baterijski zavarivač s akumulatorom za automobil!: U ovom projektu pokazat ću vam kako stvoriti sirovi, ali funkcionalni akumulatorski zavarivač. Glavni izvor napajanja je automobilska baterija, a sve njegove komponente zajedno koštaju oko 90 € što ovu postavku čini prilično niskom cijenom. Zato sjednite i učite
Arduino stroj koji daje zadatke (poznat i kao: Napravite vlastiti Bop-it!): 5 koraka
Arduino stroj koji daje zadatke (poznat i kao: Izrada vlastitog Bop-it-a!): Za studij koji trenutno pratim dobio sam zadatak napraviti nešto s Arduinom. Nabavio sam si standardnu zbirku materijala iz škole i smislio nešto što bi im pomoglo, uz minimalnu vanjsku prostirku
Kako napraviti vlastiti USB auto punjač za bilo koji IPod ili druge uređaje koji se pune putem USB -a: 10 koraka (sa slikama)
Kako napraviti vlastiti USB auto punjač za bilo koji IPod ili druge uređaje koji se pune putem USB -a: Izradite USB auto punjač za bilo koji iPod ili drugi uređaj koji se puni putem USB -a spajanjem automobilskog adaptera koji izlazi 5v i USB ženski utikač. Najvažniji dio ovog projekta je provjeriti je li izlaz vašeg odabranog adaptera za automobil oklada