Kazalo:
Video: EMOCIONALNA ovira, ki se izogiba robotu: 11 korakov
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Čustveni robot. Ta robot prikazuje čustva z neopiksli (RGB LED -ji), kot so žalost, sreča, jeza in strah, prav tako se lahko izogne oviram in med določenimi čustvi naredi določena gibanja. Možgani tega robota so mega Arduino. ne pozabite, da je to moj prvi programiran robot, ki sem ga kdaj izdelal, zaradi česar sem se zaljubil v programiranje, sama koda je zelo začetna in bi jo najverjetneje lahko poenostavili.
1. korak: DELI
-3,2ft neopixel traku
-HC-SR04 ultrazvočni senzor (ali kateri koli drug ultrazvočni senzor)
-stikalo za nagib
-3 3,7 V litij -ionska baterija (18650)
-napetostni pretvornik (razloženo v koraku napajanja)
-foto upor (poljubna vrednost)
-analogni zvočni senzor
-2 dc motorja 6v
-l293d (gonilnik motorja)
-plastična pločevina
-karton
-kolesce
2. korak: Neopiksli
Ker sem imel omejen proračun, so najpreprostejši in najcenejši način, da oživim čustva robotov, neopiksli, vse, kar imajo, so 3 vhodi in izhodi. tri zatiči na vhodu so označeni z 5v, DIN (podatki v) in GND (ozemljitev); izhod je označen enako kot vhod, vendar namesto podatkov v svojem DO (podatki ven). Način povezovanja teh vodnikov je, da jih povežete vzporedno med seboj, tako da se 5v priključi na 5v na drugem vodniku, GND pa na drugi vodnik GND, DO prvega vodila je priključen na DIN drugega vodila, nato pa ta postopek se nadaljuje, dokler ne dosežete želene dolžine LED traku. Celoten trak neopikslov od vhoda potrebuje le en digitalni izhodni pin, to je zato, ker sta DO in DIN povezana v dolgi verigi, zato si vsi izmenjujejo podatke. To je potrebno, ker moramo ob določenem času vklopiti in izklopiti posebne LED diode. V pomoč pri tem je NEOPIXEL HELP
3. korak: Shema
Vezje je zelo preprosto, saj je večina robota pravkar programirana, motorji delujejo na blizu 7v z gonilnikom motorja l293d, da nadzorujejo motorje naprej in nazaj. Drugi priključki so senzorji za Arduino. In to je to!
4. korak: Koda
Prva stvar, ki sem jo naredil, je bila, da prenesem potrebne knjižnice za lažje kodiranje, knjižnici, ki sem jo uporabil, sta "FastLED.h" in "NewPing.h". Hitri LED je namenjen LED diodam, novi ping pa ultrazvočnim senzorjem. Naslednja stvar, ki sem jo naredil, je bila, da naredim vse definicije zatičev, ki sem jih uporabil, potem ko je bila nastavitev nična, sem tukaj nastavil načine zatičev in neostrip "FastLED.addLeds (LED, NUM_LEDS);" Določil sem NUM_LEDS kot 56, ker sem uporabil 56 LED, bodo konfiguracije LED osvetljene v koraku z obrazom. Nato sem ustvaril kup funkcij, s katerimi se je moj robot premikal naprej in nazaj ter imel tudi določena čustva, potem pa pridem v zanko praznine, tu pokličem vse svoje funkcije v določenem zaporedju, ki ga želim, na primer, če bi hotel, da se moj robot nasmehne, bi napisal nasmeh ();. Če bi želel vklopiti določen LED, bi dal, LED [45] = CRGB:: Zelena;, s tem bo LED 45 zelen. Ko barvo nastavim na črno, to pomeni le izključeno. Ne pozabite, da je to eden mojih prvih programov, zato očitno ni popoln, a je vseeno deloval.
KODA
5. korak: Obraz
Za obraz sem uporabil 56 LED diod, kar je skoraj polni trak neopixel 3,2ft. Trak sem razrezala na 7 trakov po 8 LED, prve 3 trakove sem uporabila za oči in zadnje 4 za usta. Trakove sem povezal v obliki kače, upajmo, da boste bolje razumeli diagram. Ko sem dokončal obraz, sem na vodilne trakove položil tanko plastično folijo (debeline približno 2 mm).
6. korak: vesela funkcija
Ta funkcija je najlažja od vseh, saj ne uporablja nobenih senzorjev. Namesto tega, ko bot vklopite, se vam takoj nasmehne. Ne sme pa se samo nasmejati; ko je nasmejan, je tudi v načinu izogibanja oviram. Način izogibanja oviram je v moji kodi predstavljen kot funkcija roam. Način izogibanja oviram ali gostovanje deluje z uporabo dveh ultrazvočnih senzorjev na strani robotov, ko senzor pride 30 cm do vsega, kar bi varnostno kopiral, ali pa gre desno ali levo, odvisno od senzorja, ki je najbližje predmetu.
7. korak: Žalostna funkcija
Da bi robot postal žalosten, sem si moral omisliti osebnostno lastnost tega robota, zato sem se odločil, da ga bom razžalostil, ko bo v temnem okolju. Za to sem uporabil foto upor za zaznavanje svetlobe. Temnejše kot je okolje, večji je odpor in svetlejše okolje, manjši je upor. Vezje deluje kot delilnik napetosti, ki je vezje z dvema uporoma, ki sta zaporedno povezana na +5v in GND, na sredini priključka upora je napetost, ki jo je mogoče določiti s to enačbo: vhodna napetost*(R2/R1 +R2). Ko analogni pin Arduino odčita to vrednost, napetost pretvori v območje od 0 do 1023.
8. korak: Jezna funkcija
Da bi razjezil robota, sem se odločil, da ga obrnem/prevrnem. To deluje tako, da uporabite stikalo za nagib, stikalo za nagib pa je v bistvu običajno stikalo, namesto da bi imeli gumb ali rocker, imate živosrebrno kroglo, ki bo, če bo nagnjena pod določenim kotom, povezala oba kontakta in se vklopila; zato je vrednost od tega 0 ali 1, 0 za izklop in 1 za vklop. Ko je robot jezen, prav tako zaradi jeze ne upošteva načina izogibanja oviram in zabija vse, kar je vidno v smeri naprej.
9. korak: Prestrašena funkcija
Končna funkcija robota je prestrašena funkcija, ki uporablja zvočni senzor, ki je nameščen na vrhu robota. Vsakič, ko robot sliši hrup obremenitve, se bo prestrašil in drhtel, medtem ko se bo vrnil nazaj. Zvočni senzor deluje z uporabo kondenzatorskega mikrofona, ki je mikrofon, ko zazna zvoke ali tresljaje, bo ustvaril majhno napetost, običajno približno 100 mv, potem se ta napetost ojača in odčita skozi analogni zatič Arduina, višja je napetost ali glasnejši zvok, višja kot je analogna vrednost, in obratno.
10. korak: Napajanje
Zdaj, ko ste zgradili vse, kar potrebujete za napajanje, sem to sprva poskušal napajati z 8 baterijami AA, vendar je bilo preveč zajetno in nepraktično. Nato sem uporabil 3 litij -ionske baterije, od katerih vsaka drži približno 3,5 V, eno baterijo sem priključil na ojačevalni pretvornik, ki je ojačevalnik napetosti, to je povečalo mojo 3,5 V na 5 V za napajanje Arduina, nato sem uporabil dve bateriji in neposredno priključil na motorje in LED -je, to ni tako dobra ideja, ker napetost ni bila regulirana, vendar nisem imel regulatorja napetosti, če poskusite to zgraditi, priporočam uporabo regulatorja napetosti, kot lahko naredi 5V pri približno 2-3 amperih je primer tega LM78S05. Lahko pa uporabite LM7805 za napajanje Arduina in namesto tega dobite pretvornik ali pretvornik za znižanje napetosti in napajanje LED in motorjev.
11. korak: Zabavajte se !!
Upam, da boste izdelali tega robota in se zabavali, prav tako pa upam, da boste tega robota sami zavrteli in ustvarili svoja čustva, da bo postal ŽIV !!!