Cuprins:
Video: OBSTACUL EMOȚIONAL CARE EVITĂ ROBOTUL: 11 pași
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Robotul emoțional. Acest robot afișează emoții cu neopixeli (LED-uri RGB), cum ar fi tristețe, fericire, supărat și speriat, poate evita, de asemenea, obstacole și poate face anumite mișcări în timpul anumitor emoții. Creierul acestui robot este un mega Arduino. rețineți că acesta este primul meu robot programat pe care l-am construit vreodată și m-a făcut să mă îndrăgostesc de programare, codul în sine este foarte începător și cel mai probabil ar putea fi simplificat.
Pasul 1: PĂRȚI
-3,2ft dintr-o bandă de neopixel
-HC-SR04 Senzor cu ultrasunete (sau orice alt senzor cu ultrasunete)
-până la comutare
-3 baterie litiu-ion 3.7v (18650)
-convertor de impuls (explicat în etapa de alimentare)
-resistor foto (orice valoare)
-senzor analogic de sunet
-2 motoare de curent continuu 6v
-l293d (șofer de motor)
-foaie de plastic
-carton
-rota rotor
Pasul 2: Neopixeli
Datorită modului în care aveam un buget restrâns, cel mai simplu și mai ieftin mod de a face emoțiile roboților mei să prindă viață sunt neopixeli, tot ce au este de 3 intrări și ieșiri. cei trei pini de pe intrare sunt etichetați 5v, DIN (date în) și GND (masă); ieșirea este etichetată la fel ca intrare, dar în locul datelor din DO (date out). Modul în care conectați aceste leduri este de a le conecta în paralel, astfel încât 5v se conectează la 5v pe celălalt led și GND este conectat la celălalt led GND, DO al primului led este conectat la DIN al celui de-al doilea led și apoi acest proces continuă până când atingeți lungimea dorită a benzii led. O întreagă bandă de neopixeli necesită doar un pin digital de ieșire de la intrare, acest lucru se datorează faptului că DO și DIN sunt conectate într-un lanț lung, astfel încât toate partajează date între ele. Acest lucru este necesar, deoarece trebuie să pornim și să oprim leduri specifice la anumite ore. Un ajutor util în acest sens este NEOPIXEL HELP
Pasul 3: Schema
Circuitul este foarte simplu deoarece majoritatea robotului este doar programat, motoarele funcționează aproape de 7v cu un driver de motor l293d pentru a controla motoarele pentru a merge înainte sau înapoi. Celelalte conexiuni sunt senzorii către Arduino. Si asta e!
Pasul 4: Codul
Primul lucru pe care l-am făcut a fost să descarc bibliotecile necesare pentru a ușura codarea, bibliotecile pe care le-am folosit sunt „FastLED.h” și „NewPing.h”. Cel cu led rapid este pentru leduri, iar cel nou ping este pentru senzorii cu ultrasunete. Următorul lucru pe care l-am făcut a fost să fac toate definițiile pentru pinii pe care i-am folosit, după ce a fost anulată configurarea, aici am configurat modurile pin și neostrip "FastLED.addLeds (led-uri, NUM_LEDS);" Am definit NUM_LEDS ca 56, deoarece am folosit 56 de leduri, configurațiile led-urilor vor fi explicate în pasul feței. Apoi am creat o grămadă de funcții pentru ca robotul meu să se miște înainte și înapoi și, de asemenea, să aibă o anumită emoție, după care am ajuns la bucla de gol, aici îmi sun toate funcțiile într-o anumită secvență pe care o doresc, de exemplu, dacă aș vrea să zâmbească robotul meu, aș pune smile ();. Dacă aș vrea să se aprindă un anumit led, aș pune, leds [45] = CRGB:: Green;, acest lucru va seta ledul 45 să fie verde. Când am pus culoarea la negru, înseamnă doar. Acum rețineți că acesta este unul dintre primele mele programe, deci, evident, nu este perfect, dar a funcționat în continuare.
CODUL
Pasul 5: Fața
Pentru față am folosit 56 de leduri, care este aproape o bandă completă de neopixel de 3,2 ft. Am tăiat banda în 7 benzi de 8 leduri, am folosit primele 3 benzi pentru ochi și ultimele 4 pentru gură. Am conectat benzile într-un fel de șarpe sub formă de conexiune, veți înțelege mai bine cu diagrama, sperăm. Când am terminat fața, am pus o foaie subțire de plastic (aproximativ 2 mm grosime) peste benzile led.
Pasul 6: Funcție fericită
Această funcție este cea mai ușoară dintre toate, deoarece nu folosește senzori, în schimb, imediat ce porniți robotul, vă zâmbește instantaneu. Dar nu doar zâmbește; când zâmbește, se află și în modul de evitare a obstacolelor. Modul de evitare a obstacolelor este reprezentat în codul meu ca funcție roaming. Modul de evitare a obstacolelor sau roamingul funcționează prin utilizarea a doi senzori cu ultrasunete pe partea roboților, atunci când senzorul ajunge la 30 cm la orice ar face backup și fie merge la dreapta, fie la stânga, în funcție de senzorul cel mai apropiat de obiect.
Pasul 7: Funcție tristă
Pentru ca robotul să devină trist, a trebuit să mă gândesc la o trăsătură de personalitate pentru acest robot, așa că am decis să-l întristez când este într-un mediu întunecat. Pentru a face acest lucru, am folosit un rezistor foto pentru a simți lumina. Cu cât mediul este mai întunecat, cu atât rezistența este mai mare și mediul este mai deschis, cu atât rezistența este mai mică. Circuitul funcționează ca un divizor de tensiune, care este un circuit cu două rezistențe conectate în serie la + 5v și GND, la punctul mediu al conexiunii rezistorului se află o tensiune care poate fi determinată de această ecuație: tensiunea de intrare * (R2 / R1 + R2). când Pinul analogic Arduino citește această valoare, convertește tensiunea într-un interval de la 0 la 1023.
Pasul 8: Funcția Angry
Pentru a înfuria robotul, m-am hotărât să-l întoarc / să-l răsturn. Acest lucru funcționează folosind un comutator de înclinare, iar un comutator de înclinare este în esență un comutator normal, dar în loc să aveți un buton sau un basculant, aveți o bilă de mercur care, dacă este înclinată la un anumit unghi, va conecta cele două contacte și se va activa; deci valoarea din acesta este fie 0, fie 1, 0 pentru oprit și 1 pentru activat. Când robotul este supărat, acesta ignoră, de asemenea, modul de evitare a obstacolelor și trage orice în vedere în direcția înainte, datorită furiei sale.
Pasul 9: Funcția speriată
Pentru funcția finală a robotului este funcția speriată, care folosește un senzor de sunet care este plasat chiar deasupra robotului. Ori de câte ori robotul aude un zgomot de încărcare, acesta se va speria și va tremura în timp ce va merge înapoi. Senzorul de sunet funcționează utilizând un microfon cu condensator care este un microfon, atunci când simte sunete sau vibrații va crea o tensiune mică, de obicei aproximativ 100mv, această tensiune este apoi amplificată și citită prin pinul analogic al Arduino, cu atât este mai mare tensiunea sau sunetul mai puternic, cu atât este mai mare valoarea analogică și invers.
Pasul 10: Putere
Acum, că ați construit tot ce aveți nevoie pentru a-l alimenta, am încercat inițial să alimentez acest lucru cu 8 baterii AA, dar a fost prea voluminos și impracticabil. Apoi am folosit 3 baterii litiu-ion care fiecare conțin aproximativ 3,5v, am conectat o baterie la un convertor de boost, care este un amplificator de tensiune, acest lucru mi-a sporit 3,5v la 5v pentru a alimenta Arduino, apoi am folosit două dintre baterii și am conectat direct la motoare și LED-uri, aceasta nu este o idee atât de bună, deoarece tensiunea nu a fost reglementată, dar nu am avut un regulator de tensiune, dacă încercați să construiți acest lucru, vă recomand să utilizați un regulator de tensiune decât poate face 5v la aproximativ 2-3 amperi, un exemplu în acest sens este LM78S05. Sau puteți utiliza LM7805 pentru a alimenta Arduino și, în schimb, să obțineți un convertor step down sau un convertor buck pentru a reduce tensiunea și alimenta LED-urile și motoarele.
Pasul 11: Distrează-te !
Sper să construiești acest robot și să te distrezi, sper, de asemenea, că vei pune propria ta rotire pe acest robot și îți vei crea propriile emoții pentru a-l face VIE !!!