Sisällysluettelo:

Rakenna oma itse ajava auto - (tämä ohje on työn alla): 7 vaihetta
Rakenna oma itse ajava auto - (tämä ohje on työn alla): 7 vaihetta

Video: Rakenna oma itse ajava auto - (tämä ohje on työn alla): 7 vaihetta

Video: Rakenna oma itse ajava auto - (tämä ohje on työn alla): 7 vaihetta
Video: Seksityöntekijä Isa ei häpeä työtään – Perjantai-dokkari 2024, Heinäkuu
Anonim
Image
Image

Hei, Jos katsot toista Instructable on Drive Robot With Remote USB Gamepadia, tämä projekti on samanlainen, mutta pienemmässä mittakaavassa. Voit myös seurata tai saada apua tai inspiraatiota Youtuben robotiikasta, kotitekoisesta puheentunnistuksesta tai itseohjautuvista autoista.

Aloitin suurella robotilla (Wallace 4), mutta koska aloitin paikallisen Meetup -ryhmän, tarvitsin jotain pienemmässä mittakaavassa ja ryhmä oli erittäin kiinnostunut tietokonenäöstä.

Joten törmäsin tähän Udemy-kurssiin: Rakenna oma itse ajava auto, joka antoi minulle idean tähän projektiin.

Jos olet kiinnostunut Udemy -kurssista, voit jatkaa tarkistamista siellä; se tulee ajoittain myyntiin suurella alennuksella. Huomaa: on osa 1 ja osa 2 - sinun on tutkittava, miten saat kaksi kurssia pakettina (alennettu).

Tämän ohjeen tarkoitus on kaksiosainen. Ensinnäkin antaa joitakin viitteitä ja vaihtoehtoja tietyille kurssin osille (kuten osille ja laitteistoille). Ja toiseksi, laajentaa kurssia.

Udemy -kurssin päätarkoitus:

on saada pieni pyörillä toimiva robottiauto ajamaan itse pienennetyllä kaksikaistaisella tiellä.

Sen on tunnistettava kaistaraidat ja kun se on saavuttanut tien lopun.

Sen on tunnistettava stop -merkki (ja stop).

Lisäksi PUNAINEN ja VIHREÄ liikennevalo.

Sen on myös tunnistettava este ja liikuttava sen ympäri (toinen auto).

Mitä tämä Instructable lisää kurssille:

Aja pienellä autolla kauko -ohjattavalla USB -peliohjaimella, aivan samalla tavalla kuin tässä muussa Instructable -ohjelmassa.

Kerro kurssin tarjoamista vaihtoehdoista.

Sinun ei ehkä tarvitse edes ostaa kurssia:

Tämä opetusohjelma voi olla kaikki mitä tarvitset alkuun pääsemiseksi.

Tarvikkeet

Olennaiset (ehdotetut) osat:

Robottialusta

Neljä moottoria

Arduino

Vadelma Pi (3, 3B+, 4)

Kamera (USB -verkkokamera tai Picamera -moduuli)

Akun teho

Virtakytkimet

hyppyjohtimet

erot (muovi ja ehkä myös metalli)

Tarkista koko Instructable ja myös videot ennen osien ostamista.

Tämän projektin jälkeen ymmärrän, että tarkat osat eivät ole niin kriittisiä.

Vaihe 1: Lisätietoja osista…

Image
Image
Lisätietoja osista…
Lisätietoja osista…
Lisätietoja osista…
Lisätietoja osista…

Liittyvä video kertoo yksityiskohdista osista ja joistakin löytämistäni ongelmista.

  • Katso ympärillesi erilaisia alustoja / moottoreita
  • Moottorissa pitäisi jo olla johdot
  • Voit halutessasi hankkia poran ja poranterät TAI alustan, jossa on enemmän reikiä
  • Muista, että paino on ongelma. Kaiken pitäisi olla mahdollisimman kevyttä.
  • L298 H-Bridge -moottorin ohjain toimii erinomaisesti. HUOMAUTUS: hanki yksi ruuviliittimillä (katso kuva)
  • Haluat luultavasti sekä muovisia että metallisia vastakappaleita, koko M3 on luultavasti paras valinta.

Muoviset suojat ovat hyviä levyjen asentamiseen runkoon (moottorinohjain, Arduino, Vadelma, virtapiiri, virtakytkin jne.).

Metalliset vasteet ovat hyviä alustan kokoamiseen (lujuus) ja erityisesti kehitystyössä (ohjelmointi, testaus). Kehityksen kannalta metalliset seisokit voivat toimia pylväinä. Aivan kuten jos työskentelisit oikean auton parissa, haluat nostaa auton niin, että pyörät ovat ilmassa ja voivat liikkua vapaasti. Tämä on hyvin tärkeää! Teet virheitä etkä halua, että auto vain nousee ja kaatuu.

Pora + poranterät

Haluan todella korostaa poran käyttöä, jos pystyt, ja pysäytysten käyttöä kaksipuolisen teipin sijaan. Olet todennäköisesti päätymässä poistamaan ja asettamaan levyt jne. Useita kertoja tämän projektin aikana, ja nauhan käyttö muuttuu erittäin sotkuiseksi.

Poran käyttäminen tekee asennon muuttamisesta erittäin helppoa (varsinkin jos runko on muovia) ja se näyttää ammattimaisemmalta.

Vaihe 2: Käynnistä auto kehityksen aikana

Auton käynnistäminen kehityksen aikana
Auton käynnistäminen kehityksen aikana
Auton käynnistäminen kehityksen aikana
Auton käynnistäminen kehityksen aikana

Mielestäni nopein ja helpoin tapa aloittaa tämä projekti on:

  • ohjelmistojen Arduino -luonnosten kehittämiseksi liitä Arduino tietokoneeseen USB -liitännän kautta
  • Raspberry Pi -ohjelmistoa varten sinulla on oltava 5 V: n USB -virtalähde, joka voi syöttää vähintään 3 ampeeria. Ja siinä pitäisi olla virtakytkin. Ellei tietokoneeseen ole kytketty hyvä, virtalähteenä toimiva USB -keskitin, et todennäköisesti voi käyttää Raspberrya suoraan tietokoneesta.
  • Kun olet valmis testaamaan moottorit/pyörät, helpoin on (katso kuva) hyvä virtalähde. Nämä eivät kuitenkaan ole halpoja.

Tässä osiossa tarkoitan, että et halua käyttää akkuvirtaa kehityksen aikana, koska se hidastaa suuresti edistymistäsi.

Lisäksi tekemällä jotain edellä mainittujen ehdotusten kaltaista sinun ei tarvitse huolehtia (vielä) siitä, kuinka käytät autoa. Voit lykätä päätöstä projektin myöhemmäksi.

Vaihe 3: Käynnistä auto todellisessa käytössä

Auton käynnistäminen todellisessa käytössä
Auton käynnistäminen todellisessa käytössä
Auton käynnistäminen todellisessa käytössä
Auton käynnistäminen todellisessa käytössä

Jos päätät seurata kurssia (tai mitä olen tehnyt) 5 V: n virran mukaan logiikkaan, muista, että kaikki 5 V: n USB -virtapankit eivät ole hyviä tähän projektiin.

Tärkeintä tässä on, että tarvitset 5 V, mutta tarvitset vähintään 3 ampeeria! Ajattele sitä tällä tavalla - haluat varavirtalähteen, joka saa virtaa kannettavalle tietokoneelle (ehkä).

Jos asut Yhdysvalloissa, mielestäni yksi parhaista tavoista tehdä tämä on ostaa Best Buyista. Miksi? Heidän 14 päivän rahat takaisin -käytännön vuoksi.

Minun piti itse asiassa kokeilla kolmea eri pankkia, ennen kuin löysin yhden, joka toimisi. Muut aiheuttavat Raspberry Pi: n valituksen alijännitteestä.

Olin aloittanut halvimmasta powerbankista ja yritin vain kokeilla seuraavaa mallia (joka maksoi enemmän), kunnes löysin yhden, joka toimi.

Kuinka virtaa Arduinolle

Udemy -kurssilla kirjailija valitsi virran Arduinolle suoraan tehopankista (tekemänsä mukautetun piirilevyn kautta) ja käytti virtanappeja Arduinon GPIO -liittimessä.

Valitsin kuitenkin vain virran Arduinolle suoraan Raspberry Pi -laitteesta USB -kaapelin kautta.

Sinun on päätettävä, mikä on parempi.

Kuinka saada virtaa moottoreille/moottorin ohjaimelle

Udemy -kurssilla kirjoittaja päätti käyttää moottoreita/ohjainta suoraan 5 V: n tehopankista. Jos käytät tätä lähestymistapaa, on kaksi näkökohtaa.

  1. Kun moottorit alkavat pyöriä, ne ottavat suurimman virran. Tämä voi (aiheuttaa) jännitteen laskun (pudotuksen) alle 5 V: n ja aiheuttaa vadelman nollautumisen.
  2. Vain 5 V: n käyttö moottorien virransyöttöön tarkoittaa, ettet tarjoa niin paljon tehoa kuin voisit moottoreille ja auto liikkuu hitaammin (hitaammin). Olen testannut moottorit (tällä virtalähteellä) (katso kuva) vähintään 9 V: n jännitteeseen. Ne toimivat hyvin 9V jännitteellä.

Havaintoja 9 V: sta (tai enemmän)

Jos katsoit kaikkia tämän Instructable -ohjelman valokuvia ja videoita, huomasit, että olen koonnut mukautetun piirilevyn luodakseni oman 9 V: n virtalähteen. Olen oppinut muutamia asioita matkan varrella.

Tällä hetkellä käytän useita (3) 9 V paristokennoja rinnakkain moottorien virransyöttöön. Olen käyttänyt sekä alkaliparistoja että ladattavia NiMH -akkuja.

Oppimiskokemus #1: NiMH 9V -akkujen lataaminen kestää kauan (monta tuntia).

Mahdollinen ratkaisu: Sijoita moniakkuiseen NiMH-laturiin. Sen pitäisi olla "älykäs" laturi.

Haitta: Ne eivät ole halpoja.

Oppimiskokemus #2: 9V paristot koostuvat useista pienistä sisäkennoista. Jos yksi näistä kennoista kuolee, koko akku on hyödytön. Minulla EI ole ollut tätä ongelmaa, mutta olen lukenut siitä.

Oppimiskokemus #3: Kaikki 9 V: n paristot eivät ole samaa jännitettä. Tämä on tärkeä. Koska mitä korkeampi jännite, sitä suurempi nopeus on mahdollista. Jotkut akkukennot (ja laturit) ovat vain 8.4V. Jotkut jopa vähemmän. Jotkut ovat 9.6V.

Oppimiskokemus #4: 9 V: n paristot, erityisesti NiMH -akut, ovat kevyitä. Hyvä asia. Useimmat niistä tarjoavat kuitenkin vain mA -lähtövirtaa. Siksi minun oli asetettava ne rinnakkain. Tarvitset lähes 2 ampeerin kokonaisvirtakapasiteetin jopa lyhyeksi ajaksi.

Oppimiskokemus #5: On olemassa 9,6 V: n akkuja, joita käytetään esimerkiksi radio-ohjattaviin autoihin. En ole vielä käyttänyt yhtä, mutta uskon, että ne tuottavat enemmän virtaa kuin yhdensuuntaiset 9 V -paristot kuten minä. Voit myös ladata yhden laitteen. Paketteja on erikokoisia. Ja painon huomioon ottaminen. Ja sitten, käytätkö pakettia koko auton tai vain moottoreiden virransyöttöön? Jos koko autolle tarvitset Raspberry Pi: n 5 V: n alennussäätimen.

L298 H-Bridge pystyy tuottamaan 5 V tätä tarkoitusta varten, mutta olen huolissani siitä, kuinka paljon virtaa se voi tuottaa Raspberry Pi: lle, ja onko se liikaa rasitusta L298-levylle.

Jos päätät käyttää kahta erillistä virtalähdettä, sinulla voi olla painoongelma (liian raskas).

Vaihe 4: Ohjelmointi peliohjaimen ajoa varten

Luulen, että käsitin suuren osan tästä osasta jo robottikäyttöisellä USB -etäohjaimella Instructable, joten en toista sitä täällä.

Muiden Instructable -ohjelmointi-/ohjelmisto -osiot ovat vain ehdotuksia. Luulen, että kokeilemalla ja oppimalla oppii enemmän.

Vaihe 5: Kameran lisääminen

Kameran lisääminen
Kameran lisääminen
Kameran lisääminen
Kameran lisääminen
Kameran lisääminen
Kameran lisääminen

Udemy -kurssilla uskon, että kirjoittaja käyttää pyöreitä puisia tappeja ja liimapistoolia rakentaakseen keinon nostaa kameraa.

Haluat nostaa kameran niin, että se näyttää alaspäin kaksikaistaiselle tielle, jotta se tunnistaa kaistat helpommin.

Missä asun Yhdysvalloissa, puiset tapit olivat erittäin halpoja. Voit ostaa niitä joko Lowe'sista tai Home Depotista. Valitsin pyöreiden vaarnojen sijaan neliömäiset tapit.

Päätin myös tehdä tukevamman pohjan kameratornille ja tein koko tornin irrotettavaksi autosta, jotta voin leikkiä ja kokeilla, mikä on paras paikka sille autossa.

Lisäksi tein tornin ajatuksella, että aloitan USB -verkkokameralla, mutta mahdollisesti myöhemmin siirryn käyttämään Picamera -moduulia.

Haluat ehkä sijoittaa kalansilmäiseen kameraan.

Ostin erittäin edullisen kuumaliimapistoolin, mutta halusin vahvistaa tornin pohjaa paremmin, joten porasin etukäteen ruuvinreikiä ja lisäsin ruuveja pitämään kaikki paremmin yhdessä.

Sitten kiinnitin jalustan auton runkoon.

Jos myöhemmin haluan siirtää asioita ympäri, irrotan rungon rungosta, poran uudet reiät alustan uuteen paikkaan ja kiinnitän tornin uudelleen runkoon.

Toin "seuraa minua" Python- ja Node.js-koodin isosta robotista (Wallace Robot 4) tapaksi testata kaikkea. Katso tämän osion valokuvista luettelo youtubeista, jotka antavat paljon enemmän tietoa "seuraa minua" -kohdasta.

Kuten mainitsin, USB -verkkokameran asentaminen oli helpompaa. Myöhemmin voin asentaa Picamera -moduulin.

Vaihe 6: Kasvontunnistus - Määritä sijainti

Image
Image

Tämä osa ei ole Udemy -kurssin painopiste, mutta se oli hauska harjoitus.

Jos etsit verkosta hakua "python opencv kasvojentunnistus", löydät monia hyviä esimerkkejä siitä, miten se tehdään, ja ne kaikki noudattavat melko samoja vaiheita.

  1. lataa "haar" kasvotiedosto
  2. alustaa kameran
  3. aloita silmukka, josta tartut kehykseen
  4. muuntaa värikuvan harmaasävyiseksi
  5. syötä se opencv: lle, jotta se löytää kasvot
  6. aloita sisäinen silmukka (jokaiselle löydetylle kasvolle) (minun tapauksessani lisään koodin keskeyttääkseni, jos enemmän kuin yksi kasvot)

Tätä varten täällä, kun olemme havainneet kasvot, tiedämme kasvojen ääriviivojen kuvitteellisen neliön X, Y, W ja H.

Jos haluat robotin siirtyvän eteenpäin tai taaksepäin, sinun on vain otettava huomioon W. Jos W on liian suuri (liian lähellä), anna robotin siirtyä taaksepäin. Jos W on liian pieni (liian kaukana), anna robotin siirtyä eteenpäin.

Vasen/oikea liike on hieman monimutkaisempi, mutta ei hullu. Katso tämän osion kuvaa, jossa kerrotaan tarkemmin vasemman ja oikean kasvojen asennon määrittämisestä.

HUOMAUTUS:

Jos käytät jotakin Web OpenCV -esimerkkiä, ne kaikki näyttävät todellisen kuvan siitä, mitä opencv "näkee", ja kasvot on rajattu neliöön. Jos havaitset, tämä neliö ei ole tasainen (vakio), vaikka et liikukaan.

Nämä muuttuvat arvot saisivat robotin olemaan jatkuvasti liikkeessä eteen- tai taaksepäin, vasemmalle tai oikealle.

Siksi sinulla on oltava jonkinlainen delta sekä eteen/taakse että vasemmalle/oikealle.

Mennään vasemmalle vs oikealle:

Kun olet laskenut vasemmalle ja oikealle, ota ero (delta):

delta = abs (vasen - oikea)

Sinun on otettava absoluuttinen, koska et tiedä, kumpi on suurempi luku.

Sitten lisäät ehdollisen koodin vain yrittääksesi liikkua, jos delta on suurempi kuin vähimmäismäärä.

Tekisit saman asian eteen- ja taaksepäin.

Vaihe 7: Kasvojen asento - Liikkuva robotti

Kun tiedät, että tarvitset robotin liikkua vasemmalle tai oikealle, eteen- tai taaksepäin, miten teet sen?

Koska tämä Instructable on työn alla, kopioin juuri koodin suurelta robotiltani käytettäväksi tässä projektissa. Katso Robotics -soittolistani youtubesta, jossa se kertoo kaiken tämän.

Lyhyesti sanottuna minulla on koodi kerroksittain.

Python-kasvojentunnistusskripti tekee http-pyyntöjä Node.js-palvelimelle

Node.js -palvelin kuuntelee siirto -ohjeiden http -pyyntöjä, muuntaa ne mukautetuksi sarjaprotokollaksi

Mukautettu sarjaprotokolla Node.js -palvelimen ja Arduinon välillä

Arduino -luonnos, joka suorittaa todelliset komennot robotin siirtämiseksi

Udemy -kurssi ei tee sitä kuten yllä. Mutta koska halusin edistyä hyvin ja keskittyä varsinaiseen kuvan tunnistamiseen, käytin toista kertaa edellistä koodiani.

Suositeltava: