Obsah:

Zostavte si svoje vlastné auto - (tento pokyn sa pracuje): 7 krokov
Zostavte si svoje vlastné auto - (tento pokyn sa pracuje): 7 krokov

Video: Zostavte si svoje vlastné auto - (tento pokyn sa pracuje): 7 krokov

Video: Zostavte si svoje vlastné auto - (tento pokyn sa pracuje): 7 krokov
Video: Человек-паук Marvel: Майлз Моралес (фильм) 2024, November
Anonim
Image
Image

Ahoj, Ak sa pozriete na môj ďalší Instructable on Drive Robot With Remote USB Gamepad, tento projekt je podobný, ale v menšom meradle. Môžete tiež sledovať alebo získať pomoc alebo inšpiráciu zo zoznamov skladieb Robotics, Home-Grown Voice Recognition alebo Self-Driving Car na Youtube.

Začal som veľkým robotom (Wallace 4), ale keďže som založil miestnu skupinu Meetup, potreboval som niečo v menšom meradle a skupinu veľmi zaujímalo počítačové videnie.

Tak som narazil na tento kurz Udemy: Zostavte si svoje vlastné auto, ktoré mi dalo nápad na tento projekt.

Ak vás kurz Udemy zaujíma, môžete sa tam priebežne kontrolovať; z času na čas sa dostane do predaja za obrovskú zľavu. Poznámka: je tu časť 1 a časť 2 - musíte urobiť niekoľko prieskumov o tom, ako tieto dva kurzy získať ako balíček (zľavnené).

Účel tohto pokynu je dvojitý. Po prvé, poskytnúť určité rady a alternatívy k určitým častiam kurzu (ako sú diely a hardvér). A za druhé, rozšíriť kurz.

Hlavný účel kurzu Udemy:

je mať možnosť dostať malé kolesové robotické auto k samoriadeniu na zmenšenej dvojprúdovej ceste.

Musí rozpoznať pruhy pruhov a keď sa dostane na koniec cesty.

Musí rozpoznať stopku (a zastaviť).

Tiež ČERVENÝ a ZELENÝ dopravný signál.

Musí tiež rozpoznať a manévrovať okolo prekážky (iného auta).

Čo tento návod pridáva ku kurzu:

Jazdite v malom aute so vzdialeným gamepadom USB, podobne ako v tomto inom návode.

Uveďte alternatívy k tomu, čo kurz ponúka.

Kurz si možno ani nebudete musieť kupovať:

Tento návod môže byť všetko, čo potrebujete, aby ste mohli začať.

Zásoby

Základné (odporúčané) časti:

Robotický podvozok

Štyri motory

Arduino

Raspberry Pi (3, 3B+, 4)

Fotoaparát (webová kamera USB alebo modul Picamera)

Napájanie z batérie

Vypínače zapnutia/vypnutia

prepojovacie vodiče

stojky (plastové a možno aj kovové)

Pred nákupom dielov si prečítajte celý návod a tiež videá.

Po dokončení tohto projektu si uvedomujem, že presné časti nie sú také kritické.

Krok 1: Ďalšie podrobnosti o častiach …

Image
Image
Viac podrobností o častiach …
Viac podrobností o častiach …
Viac podrobností o častiach …
Viac podrobností o častiach …

Súvisiace video obsahuje podrobné informácie o častiach a niektorých problémoch, ktoré som zistil.

  • Pozrite sa okolo seba na rôzne podvozky / motory
  • Motory by už mali mať k sebe spájkované drôty
  • Možno budete chcieť vŕtačku a vrtáky, ALEBO podvozok s viacerými otvormi
  • Majte na pamäti, že hmotnosť je problém. Všetko by malo byť čo najľahšie.
  • Ovládač motora L298 H-Bridge funguje skvele. POZNÁMKA: zaobstarajte si jeden so skrutkovými svorkami (pozri fotografiu)
  • Pravdepodobne budete chcieť plastové aj kovové dištančné podložky, veľkosť M3 je pravdepodobne najlepšia voľba.

Plastové podpery sú vhodné na montáž dosiek na šasi (ovládač motora, Arduino, Raspberry, napájacia doska, vypínač/vypínač atď.).

Kovové podpery sú vhodné na montáž podvozku (pevnosť) a tiež obzvlášť vtedy, keď vyvíjate (programovanie, testovanie). Pri vývoji môžu kovové stojky slúžiť ako stĺpiky. Rovnako ako keby ste pracovali na skutočnom aute, chcete zdvihnúť auto tak, aby boli kolesá vo vzduchu a mohli sa voľne pohybovať. Toto je veľmi dôležité! Budete robiť chyby a nechcete, aby auto len vzlietlo a havarovalo.

Vŕtačka + vrtáky

Naozaj chcem zdôrazniť používanie vŕtačky, ak je to možné, a používania medzier namiesto obojstrannej lepiacej pásky. Je veľmi pravdepodobné, že počas tohto projektu niekoľkokrát odstránite a znova umiestnite dosky a podobne a používanie pásky sa stane veľmi neporiadnym.

Vďaka vŕtačke je veľmi ľahké zmeniť polohu (najmä ak je podvozok plastový) a vyzerá to profesionálnejšie.

Krok 2: Napájanie auta počas vývoja

Napájanie auta počas vývoja
Napájanie auta počas vývoja
Napájanie auta počas vývoja
Napájanie auta počas vývoja

Podľa mňa najrýchlejší a najľahší spôsob, ako začať s týmto projektom, je:

  • pre vývoj softvéru Arduino sketch stačí pripojiť Arduino k počítaču cez USB
  • pre softvér Raspberry Pi by ste mali mať 5V USB napájanie, ktoré môže dodávať najmenej 3 ampéry. A mal by mať vypínač. Pokiaľ nemáte k počítaču pripojený dobrý napájaný rozbočovač USB, pravdepodobne nebudete môcť napájať malinu priamo z počítača.
  • Keď ste pripravení otestovať motory/kolesá, najľahšie je (pozri fotografiu) dobré napájanie. Tie však nie sú lacné.

Mojou myšlienkou v tejto časti je povedať, že počas vývoja nechcete používať energiu z batérie, pretože to výrazne spomalí váš postup.

Tiež tým, že urobíte niečo podobné ako vyššie uvedené návrhy, nemusíte si (zatiaľ) robiť starosti s tým, ako presne budete auto poháňať. Toto rozhodnutie môžete v projekte odložiť na neskôr.

Krok 3: Napájanie auta počas skutočného používania

Napájanie auta počas skutočného používania
Napájanie auta počas skutočného používania
Napájanie auta počas skutočného používania
Napájanie auta počas skutočného používania

Ak sa rozhodnete nasledovať kurz (alebo to, čo som urobil) pre 5V napájanie podľa logiky, uvedomte si, že nie všetky 5V USB napájacie zdroje sú pre tento projekt dobré.

Hlavným bodom je, že potrebujete 5 V, ale potrebujete najmenej 3 ampéry! Zamyslite sa nad tým takto - chcete powerbanku, ktorá (možno) bude poháňať prenosný počítač.

Ak žijete v USA, myslím si, že jedným z najlepších spôsobov, ako to urobiť, je nákup prostredníctvom Best Buy. Prečo? Vzhľadom na ich 14-dňovú politiku vrátenia peňazí.

Vlastne som musel vyskúšať tri rôzne powerbanky, než som našiel takú, ktorá bude fungovať. Ostatné spôsobujú, že sa Raspberry Pi sťažuje na podpätie.

Začal som s najlacnejšou powerbankou a stále som skúšal ďalší model (ktorý stál viac), kým som nenašiel ten, ktorý fungoval.

Ako napájať Arduino

V kurze Udemy sa autor rozhodol napájať Arduino priamo z powerbanky (prostredníctvom vlastnej dosky plošných spojov, ktorú vyrobil) a použil napájacie kolíky na GPIO konektore Arduina.

Rozhodol som sa však napájať Arduino priamo z Raspberry Pi prostredníctvom kábla USB.

Budete sa musieť rozhodnúť, čo je lepšie.

Ako napájať motory/ovládač motora

V kurze Udemy sa autor rozhodol napájať motory/ovládač priamo z 5V powerbanky. Pri použití tohto prístupu existujú dve úvahy.

  1. Keď sa motory začnú otáčať, odoberajú najaktuálnejší prúd. To (môže) spôsobiť pokles (pokles) napájacieho napätia pod 5 V a spôsobiť reset Raspberry.
  2. Použitie iba 5 V na napájanie motorov znamená, že motorom neposkytujete toľko energie, koľko by ste mohli a auto sa bude pohybovať pomalšie (pomalšie). Testoval som motory (s tým napájaním) (viď foto) aspoň na 9V. Fungujú dobre na 9V.

Pozorovania okolo 9 V (alebo viac)

Keď ste sa pozreli na všetky fotografie a videá pre tento návod, všimli ste si, že som zostavil vlastnú dosku plošných spojov a vytvoril tak svoj vlastný 9V zdroj energie. Cestou som sa naučil pár vecí.

Práve teraz paralelne používam niekoľko (3) 9V batériových článkov na napájanie motorov. Použil som alkalické aj NiMH nabíjateľné batérie.

Učebné skúsenosti č. 1: Správne nabitie 9V batérií NiMH trvá dlho (mnoho hodín).

Možné riešenie: Investujte do multi-batériovej nabíjačky NiMH. Mala by to byť „inteligentná“nabíjačka.

Nevýhoda: Nie sú lacné.

Učebné skúsenosti č. 2: 9V batérie sú v skutočnosti tvorené niekoľkými malými vnútornými článkami. Ak jeden z týchto článkov zomrie, celá batéria je k ničomu. NEMAL som tento problém, ale čítal som o tom.

Učebné skúsenosti č. 3: Nie všetky 9V batérie majú rovnaké napätie. Tento je dôležitý. Pretože čím vyššie je napätie, tým vyššia je rýchlosť. Niektoré články batérie (a nabíjačky) majú iba 8,4 V. Niektorí ešte menej. Niektoré majú napätie 9,6 V.

Učebné skúsenosti č. 4: 9V batérie, obzvlášť NiMH, sú ľahké. Dobrá vec. Väčšina z nich však poskytuje iba výstupný prúd mA. Preto som ich musel umiestniť paralelne. Potrebujete celkovú súčasnú kapacitu takmer 2 ampéry, a to aj na krátku dobu.

Učebné skúsenosti č. 5: Existujú batérie 9,6 V, ktoré sa používajú na veci, ako sú rádiom riadené autá. Ešte som nepoužil, ale verím, že poskytujú viac prúdu ako paralelné 9V batérie, ako som to robil ja. Jednu jednotku môžete tiež nabíjať. Balenia sa dodávajú v rôznych veľkostiach. A je tu zváženie hmotnosti. A potom použijete batériu na pohon celého auta alebo iba motorov? Pokiaľ pre celé auto, potom budete potrebovať 5V krokový regulátor pre Raspberry Pi.

L298 H-Bridge má na tento účel možnosť výstupu 5 V, ale mám obavy z toho, aký veľký prúd môže produkovať pre Raspberry Pi, a či nebude doska L298 príliš namáhaná.

Ak sa rozhodnete mať dva oddelené zdroje energie, môžete mať problém s hmotnosťou (príliš ťažký).

Krok 4: Softvérové programovanie pre riadenie na gamepade

Myslím, že som veľa z tejto sekcie prebral už v Inštrukcii k ovládaniu pomocou USB ovládača cez diaľkové ovládanie USB, takže to tu nebudem opakovať.

Sekcie programovania/softvéru v tomto inom pokyne sú len návrhmi. Myslím si, že človek sa naučí viac pokusom a omylom.

Krok 5: Pridanie fotoaparátu

Pridanie fotoaparátu
Pridanie fotoaparátu
Pridanie fotoaparátu
Pridanie fotoaparátu
Pridanie fotoaparátu
Pridanie fotoaparátu

V kurze Udemy sa domnievam, že autor používa okrúhle drevené hmoždinky a lepiacu pištoľ na skonštruovanie spôsobu, ako zdvihnúť fotoaparát.

Budete chcieť zdvihnúť kameru tak, aby sa pozerala dole na dvojprúdovú cestu, aby mohla jednoduchšie rozpoznať jazdné pruhy.

Tam, kde žijem v USA, boli drevené hmoždinky veľmi lacné. Môžete si ich kúpiť v Lowe's alebo Home Depot. Vybral som si hranaté hmoždinky namiesto okrúhlych.

Tiež som sa rozhodol vytvoriť robustnejšiu základňu pre kamerovú vežu a celú vežu som odstránil z auta, aby som sa mohol hrať a experimentovať, aká je pre ňu najlepšia poloha v aute.

Vežu som tiež vyrobil s myšlienkou, že začnem webovou kamerou USB, ale neskôr možno prejdem na používanie modulu Picamera.

Možno budete chcieť investovať do fotoaparátu typu rybie oko.

Kúpil som si veľmi lacnú horúcu lepiacu pištoľ, ale chcel som lepšie spevniť základňu veže, a tak som predvŕtal niekoľko otvorov pre skrutky a pridal skrutky, aby všetko lepšie držalo pohromade.

Potom som základňu priskrutkoval k podvozku auta.

Ak neskôr budem chcieť veci premiestniť, jednoducho odskrutkujem základňu zo šasi, vyvŕtam nové otvory v novom umiestnení šasi a zaskrutkujem vežu na podvozok.

Z veľkého robota (Wallace Robot 4) som preniesol kód „nasleduj“Python a Node.js ako spôsob, ako otestovať všetko. Zoznam youtubov, ktoré poskytujú oveľa viac podrobností o „sledovaní“, nájdete na fotografiách v tejto sekcii.

Ako som už spomenul, najskôr bolo jednoduchšie pripojiť webovú kameru USB. Neskôr môžem namontovať modul Picamera.

Krok 6: Rozpoznávanie tváre - určte polohu

Image
Image

Táto časť nie je zameraním kurzu Udemy, ale bolo to zábavné cvičenie.

Ak hľadáte na webe „rozpoznávanie tváre python opencv“, nájdete veľa dobrých príkladov, ako to urobiť, a všetky do značnej miery postupujú podľa rovnakých krokov.

  1. načítajte súbor tváre „haar“
  2. inicializujte fotoaparát
  3. začnite slučku, v ktorej uchopíte rám
  4. previesť farebný obrázok na stupnicu šedej
  5. nasaďte ho na opencv, aby našiel tváre
  6. spustiť vnútornú slučku (pre každú nájdenú tvár) (v mojom prípade pridám kód na prerušenie, ak má viac ako 1 tvár)

Na tento účel tu, akonáhle sme detekovali tvár, poznáme X, Y, W a H imaginárneho štvorca, ktorý obkresľuje tvár.

Ak chcete, aby sa robot pohyboval dopredu alebo dozadu, musíte vziať do úvahy W. Ak je W príliš veľký (príliš blízko), dajte robotovi pohyb späť. Ak je W príliš malý (príliš ďaleko), dajte robotovi pohyb dopredu.

Pohyb vľavo/vpravo je o niečo komplikovanejší, ale nie bláznivý. Pozrite sa na obrázok v tejto časti, ktorý podrobne popisuje, ako určiť ľavú vs pravú polohu tváre.

POZNÁMKA:

Ak spustíte niektorý z webových príkladov OpenCV, všetky zobrazia skutočný pohľad na to, čo opencv „vidí“, pričom tvár je označená štvorcom. Ak budete pozorovať, tento štvorec nie je ustálený (konštantný), aj keď sa nepohybujete.

Tieto meniace sa hodnoty by spôsobili, že robot by bol neustále v pohybe, dopredu alebo dozadu, doľava alebo doprava.

Preto budete musieť mať nejaký druh delty pre dopredu/dozadu a pre ľavú/pravú stranu.

Zoberme si doľava vs. doprava:

Keď ste vypočítali doľava a doprava, získajte rozdiel (delta):

delta = abs (vľavo - vpravo)

Musíte brať absolútne, pretože neviete, ktoré bude väčšie číslo.

Potom pridáte nejaký podmienený kód, aby ste sa pokúsili pohnúť iba vtedy, ak je delta väčšia ako nejaké minimum.

To isté by ste urobili pre dopredu aj dozadu.

Krok 7: Poloha tváre - pohybujúci sa robot

Keď viete, že sa robot potrebuje pohybovať doľava alebo doprava, dopredu alebo dozadu, ako to urobíte?

Keďže tento Instructable je nedokončenou výrobou, v súčasnej dobe som len skopíroval kód z môjho veľkého robota, aby som ho použil pre tento projekt. Pozrite sa na môj zoznam skladieb Robotics na youtube, kde je toto všetko podrobne uvedené.

Stručne povedané, kód mám vo vrstvách.

Skript na rozpoznávanie tváre Python odosiela požiadavky http na server Node.js

Server Node.js počúva požiadavky HTTP na smer pohybu a prevádza ich na vlastný sériový protokol

Vlastný sériový protokol medzi serverom Node.js a Arduino

Skica Arduino, ktorá robí skutočné príkazy na pohyb robota

Kurz Udemy to nerobí ako vyššie. Ale pretože som chcel urobiť dobrý pokrok a zamerať sa na skutočné rozpoznávanie obrázkov, zatiaľ som znova použil svoj predchádzajúci kód.

Odporúča: