EMOTSIOONILINE TAKISTUS ROBOTI VÄLTIMISEL: 11 sammu
EMOTSIOONILINE TAKISTUS ROBOTI VÄLTIMISEL: 11 sammu

Video: EMOTSIOONILINE TAKISTUS ROBOTI VÄLTIMISEL: 11 sammu

Video: EMOTSIOONILINE TAKISTUS ROBOTI VÄLTIMISEL: 11 sammu
Video: 名鉄を1日で全線走破できるのか!?実際に乗車して検証してきた!!【総移動時間19時間の過酷旅】2021年9月25日 2025, Jaanuar
Anonim
EMOTSIOONILINE TAKISTUS ROBOTI VÄLTIMISEL
EMOTSIOONILINE TAKISTUS ROBOTI VÄLTIMISEL

Emotsionaalne robot. See robot kuvab emotsioone koos neopikslitega (RGB LED -id), nagu kurbus, õnn, vihane ja hirmunud, samuti suudab ta oma emotsiooni ajal takistusi vältida ja teatud liigutusi teha. Selle roboti aju on Arduino mega. pidage meeles, et see on minu esimene programmeeritud robot, mille olin kunagi ehitanud, ja see pani mind programmeerimisse armuma, kood ise on väga algaja ja suure tõenäosusega võiks seda lihtsustada.

1. samm: OSAD

OSAD
OSAD

-3,2 jalga neopikseliriba

-HC-SR04 ultraheliandur (või mõni muu ultraheliandur)

-kallutuslüliti

-3 3,7v liitiumioonaku (18650)

-võimendusmuundur (selgitatud võimsusastmes)

-fototakisti (mis tahes väärtus)

-analoog heliandur

-2 dc mootorid 6v

-l293d (mootorijuht)

-plastist leht

-papp

-ratas

2. samm: Neopikslid

Neopikslid
Neopikslid
Neopikslid
Neopikslid

Kuna mul oli kitsas eelarve, oli kõige lihtsam ja odavam viis oma robotite emotsioonide ellu äratamiseks neopikslid, neil on ainult 3 sisendit ja väljundit. sisendil olevad kolm tihvti on märgistatud 5v, DIN (andmed sisse) ja GND (maa); väljund on märgistatud samaga kui sisend, kuid andmete asemel on selle DO -s (andmed väljas). Nende LED -de ühendamise viis on ühendada need üksteisega paralleelselt, nii et 5v ühendub teise LED -i 5v -ga ja GND on ühendatud teise LED -ga, esimese LED -i DO on ühendatud teise LED -i DIN -iga ja seejärel see protsess jätkub seni, kuni jõuate soovitud LED -riba pikkusele. Terve neopikseliriba vajab sisendist ainult ühte digitaalset väljundnõela, seda seetõttu, et DO ja DIN on ühendatud pika ahelaga, nii et nad kõik jagavad üksteisega andmeid. See on vajalik, kuna peame konkreetsed LED -id teatud aegadel sisse ja välja lülitama. Kasulik juhend selles küsimuses on NEOPIXEL HELP

Samm: skeem

Skeem
Skeem

Vooluahel on väga lihtne, kuna suurem osa robotist on lihtsalt programmeeritud, mootorid töötavad 7V lähedal koos l293d mootorijuhiga, et juhtida mootoreid tagurpidi liikumiseks. Teised ühendused on Arduino andurid. Ja see ongi kõik!

4. samm: kood

Esimese asjana laadisin alla vajalikud raamatukogud, et kodeerimist veidi lihtsustada, minu kasutatavad teegid on "FastLED.h" ja "NewPing.h". Kiire LED -lamp on mõeldud LED -ide jaoks ja uus ping -seade on mõeldud ultrahelianduritele. Järgmisena tegin kõik kasutatavate tihvtide määratlused, pärast seda oli tühine seadistamine siin seadistanud tihvtide režiimid ja neostripi "FastLED.addLeds (leds, NUM_LEDS);" määratlesin NUM_LEDS -i väärtuseks 56, kuna kasutasin 56 LED -i, selgitatakse LED -ide konfiguratsioone näoetapis. Seejärel lõin oma robotile hulga funktsioone edasi -tagasi liikumiseks ja ka teatud emotsioonide saavutamiseks, pärast seda jõuan tühjusahelasse, siin kutsun kõiki oma funktsioone teatud järjestuses, mida ma tahan, näiteks kui ma tahaksin, et mu robot naerataks, paneksin ma naeratuse ();. Kui ma sooviksin, et teatud LED lülituks sisse, paneksin ma, ledid [45] = CRGB:: Green;, see muudab led 45 roheliseks. Kui panen värvi mustaks, tähendab see lihtsalt välja lülitamist. Pidage nüüd meeles, et see on üks minu esimesi programme, nii et see pole ilmselgelt täiuslik, kuid see töötas siiski.

KOOD

Samm: nägu

Nägu
Nägu

Näo jaoks kasutasin 56 LED -i, mis on peaaegu 3,2 -jalane neopikseliriba. Lõikasin riba 7 ribaks 8 ledist, esimesed 3 riba kasutasin silmade jaoks ja 4 viimast suu jaoks. Ühendasin ribad ussi kujul, saate diagrammist loodetavasti paremini aru. Kui näo lõpetasin, panin seejärel õhukese plastlehe (umbes 2 mm paksune) LED -ribade kohale.

6. samm: õnnelik funktsioon

Õnnelik funktsioon
Õnnelik funktsioon

See funktsioon on neist kõige lihtsam, kuna see ei kasuta andureid, vaid kohe, kui bot sisse lülitate, naeratab see teile kohe. Kuid see ei naera ainult; kui see naeratab, on see ka takistuste vältimise režiimis. Takistuste vältimise režiim on minu koodis kujutatud funktsioonina rändlus. Takistuste vältimise režiim või rändlus töötab kahe ultraheli anduri abil robotite poolel, kui andur jõuab 30 cm kaugusele kõigest, mida see varundaks, ja kas sõltuvalt objektist lähimast andurist kas paremale või vasakule.

7. samm: kurb funktsioon

Kurb funktsioon
Kurb funktsioon
Kurb funktsioon
Kurb funktsioon

Selleks, et robot kurvaks muutuks, pidin mõtlema selle roboti isiksuseomadusele, nii et otsustasin teda pimedas keskkonnas kurvastada. Selleks kasutasin valguse tajumiseks fototakistit. Mida tumedam on keskkond, seda suurem on takistus ja heledam keskkond, seda väiksem on takistus. Vooluahel töötab pingejagurina, mis on vooluahel kahe takistiga, mis on järjestikku ühendatud +5v ja GND, takistiühenduse keskpunktis asub pinge, mida saab määrata selle võrrandi abil: sisendpinge*(R2/R1 +R2). kui Arduino analoogpinge seda väärtust loeb, muundab see pinge vahemikku 0 kuni 1023.

8. samm: vihane funktsioon

Vihane funktsioon
Vihane funktsioon
Vihane funktsioon
Vihane funktsioon

Roboti vihastamiseks otsustasin selle ümber pöörata/ümber lükata. See toimib kallutuslüliti abil ja kallutuslüliti on põhimõtteliselt tavaline lüliti, kuid nupu või klahvi asemel on teil elavhõbedapall, mis teatud nurga all kallutades ühendab kaks kontakti ja lülitub sisse; seega on selle väärtus kas 0 või 1, 0 väljas ja 1 sisse lülitatud. Kui robot on vihane, eirab ta ka takistuste vältimise režiimi ja rammib oma viha tõttu kõik ettepoole nähtava.

9. samm: hirmunud funktsioon

Hirmunud funktsioon
Hirmunud funktsioon
Hirmunud funktsioon
Hirmunud funktsioon

Roboti viimane funktsioon on hirmutatud funktsioon, mis kasutab heliandurit, mis asetatakse otse roboti peale. Kui robot kuuleb koormusmüra, hakkab ta tagurpidi liikudes kartma ja värisema. Heliandur töötab kondensaatorimikrofoni abil, mis on mikrofon; kui ta tunneb helisid või vibratsiooni, tekitab see väikese pinge, tavaliselt umbes 100 mv, seda pinget võimendatakse ja loetakse läbi Arduino analoogpistiku, seda suurem on pinge või mida tugevam on heli, seda suurem on analoogväärtus ja vastupidi.

10. samm: toide

Võimsus
Võimsus
Võimsus
Võimsus

Nüüd, kui ehitasite kõik, mida selle toiteks vajate, proovisin algselt seda 8 AA patareiga toita, kuid see oli lihtsalt liiga mahukas ja ebapraktiline. Seejärel kasutasin 3 liitiumioonakut, millest igaüks mahutab umbes 3,5 V, ühendasin ühe aku võimendusmuunduriga, mis on pingevõimendi, see suurendas mu 3,5v kuni 5v, et toita Arduino, seejärel kasutasin kahte akut ja ühendasin otse see mootoritele ja LED -idele pole see nii hea mõte, kuna pinget ei reguleeritud, kuid mul polnud pingeregulaatorit, kui proovite seda ehitada, soovitan kasutada pingeregulaatorit, kui seda saab teha 5v umbes 2-3 amprit, selle näiteks on LM78S05. Või võite kasutada Arduino toiteks seadet LM7805 ja hankida selle asemel pinge alandamiseks ning LED -ide ja mootorite toiteks alandusmuunduri või buck -muunduri.

Samm: nautige !

Loodan, et ehitate selle roboti ja veedate lõbusalt aega, samuti loodan, et panete sellele robotile oma spinni ja loote oma emotsioonid, et see oleks ELUS !!!