Turinys:

„Pasidaryk pats“daugiafunkcinis robotas su „Arduino“: 13 žingsnių (su nuotraukomis)
„Pasidaryk pats“daugiafunkcinis robotas su „Arduino“: 13 žingsnių (su nuotraukomis)

Video: „Pasidaryk pats“daugiafunkcinis robotas su „Arduino“: 13 žingsnių (su nuotraukomis)

Video: „Pasidaryk pats“daugiafunkcinis robotas su „Arduino“: 13 žingsnių (su nuotraukomis)
Video: 14 интересных товаров и гаджетов с Aliexpress, которые вам пригодятся 2024, Lapkritis
Anonim
„Pasidaryk pats“daugiafunkcinis robotas su „Arduino“
„Pasidaryk pats“daugiafunkcinis robotas su „Arduino“
„Pasidaryk pats“daugiafunkcinis robotas su „Arduino“
„Pasidaryk pats“daugiafunkcinis robotas su „Arduino“
„Pasidaryk pats“daugiafunkcinis robotas su „Arduino“
„Pasidaryk pats“daugiafunkcinis robotas su „Arduino“

Šis robotas daugiausia buvo sukurtas suprasti „Arduino“ir sujungti įvairius „Arduino“projektus, kad būtų sukurtas daugiafunkcis „Arduino“robotas. Be to, kas nenori turėti augintinio roboto? Taigi aš pavadinau jį BLUE ROVIER 316. Aš galėjau nusipirkti gražią vikšrinę važiuoklę, tačiau ją padarius nuo pat pradžių jūs išmokote daugiau ir didžiuojatės, kai ją baigsite. Robotas sugeba suprasti balso komandas, atsakyti į paprastus klausimus ir valdyti RC automobilis ir net išvengiant kliūčių judant. Jis daugiausia valdomas naudojant „Android“telefoną, kuris yra prijungtas prie jo per „Bluetooth“. Remiantis „Android“funkcijomis, tokiomis kaip „Google“balso atpažinimas ir pakreipimo jutiklis, jis tikrai gali elgtis kaip mielas, protingas robotas. Į pavadinimą pridėjau BLUE, nes jis daugiausia pagrįstas „Bluetooth“. Tai iš tikrųjų buvo mano pirmasis „Arduino“projektas ir norėjau, kad jis būtų unikalus. Jei jums patinka šis projektas, balsuokite už mane robotikos konkurse!

1 žingsnis: demonstracinis vaizdo įrašas

Image
Image
ROVIER istorija
ROVIER istorija

Roboto demonstraciją galite peržiūrėti šioje svetainėje:

2 žingsnis: „ROVIER“istorija

ROVIER istorija
ROVIER istorija

Galite pereiti prie kito žingsnio, jei nenorite pereiti prie mielos mažos BLUE ROVIER 316 istorijos. Maždaug prieš metus iš tėvo gavau dovanų „Arduino UNO“. Kadangi tai buvo mano pirmasis žingsnis „Arduino“srityje, norėjau sukurti kažką kitokio ir unikalaus iš bendrųjų „Arduino“projektų. Tai turėjo būti mielas ir protingas robotas, galintis suprasti balso komandas ir atlikti daug protingesnių dalykų, tokių kaip nuotolinis valdymas, sekimas linijomis, kliūčių išvengimas ir pan. Klausimas buvo, kaip juos sujungti. Ir naršydamas tinkle tikrai maloniai, padariau išvadą, kad „Bluetooth“būtų pigiausias režimas. Taigi, BLUE ROVIER buvo pradėtas judėti. Tačiau susiklostė situacija, kai turėjau neįtraukti daugelio roboto funkcijų, kurių tikėjausi turėti, daugiausia dėl to, kad „Arduino UNO“atmintyje trūksta (net mažiau skaitmeniniai kaiščiai ant UNO). Nesvarbu, aš tęsiau. Man prireikė tikrai gero laiko sukurti galutinę roboto versiją. Po daugelio bandymų ir nesėkmių pagaliau atsirado BLUE ROVIER. Taigi dabar galime pereiti prie roboto kūrimo.

3 žingsnis: komponentai ir dalys

Komponentai ir dalys
Komponentai ir dalys
Komponentai ir dalys
Komponentai ir dalys
Komponentai ir dalys
Komponentai ir dalys

Jums reikės tik šių komponentų: 1. „Android“sistema 2. „Arduino Uno“3. „wtv020-sd-16p“modulis ir 8 omų garsiakalbis4. 2x L293d variklio valdiklio grandinė 5. 4x bo varikliai ir ratai6. HC SR04 ultragarsinis jutiklis 7. 9g servo8. 8 AA baterijų laikiklis ir baterijos 9. 1gb micro SD kortelė 10. maža važiuoklės jungiklių dėžutė.11. HC 05 „Bluetooth“modulis Žinau, kad tai atrodo brangu! Bet nesijaudinkite, tai kainuos tik apie du ar tris tūkstančius rupijų. Kalbant apie „Android“, tai nebus didelė problema turėti, nes dauguma jų turi tai šiais laikais. Tačiau naujesnės versijos (virš 5.0) gali padidinti našumą. Pabandykite įsigyti variklių, kurių apsisukimų dažnis yra vidutinis (nuo 60 iki 100). Tai padėtų kontroliuoti roboto greitį, nes nėra sumontuota jokia kita greičio valdymo grandinė. Ir 8 aa baterijų pakanka, kad robotas gerai maitintųsi. Atsižvelgiant į „Bluetooth“, „HC 05“tinka robotui, nes jis yra pakankamai pigus ir pasižymi puikiu našumu. 1 GB „micro SD“kortelė reikalinga balso failams, kurie grojami, kai robotui užduodami bet kokie klausimai, saugoti [Išsamiai aptariama vėlesnėje nesuderinamojo dokumento dalyje]. Kiti komponentai išsamiai aptariami atitinkamame jų etape.

Dabar pereikime prie kelių paprastų „teorijų“, naudojamų šiame robote.

4 žingsnis: Valdymo balsu teorija

Valdymo balsu teorija
Valdymo balsu teorija
Valdymo balsu teorija
Valdymo balsu teorija
Valdymo balsu teorija
Valdymo balsu teorija
Valdymo balsu teorija
Valdymo balsu teorija

Robotas gali suprasti balso komandas per „Android“telefoną. Manau, kad visi yra susipažinę su „Google“balso atpažinimu, „Android“funkcija, kai mes sakome žodį ir „Google“ją įveda. Ta pati funkcija čia naudojama balso komandoms atpažinti ir konvertuoti į teksto komandas. Čia esanti programa konvertuoja kalbą į tekstą per „Google“ir siunčia ją robotui per „Bluetooth“. Robotas yra užprogramuotas vykdyti šias komandas, gautas per „Bluetooth“. Jis taip pat gali atsakyti į daugybę klausimų. Jūs netgi galite pridėti daugiau komandų prie kodo, kad robotas atliktų dar daugiau nuostabių dalykų. Štai „Android“programa:

5 žingsnis: gestų valdymo teorija

Gestų valdymo teorija
Gestų valdymo teorija
Gestų valdymo teorija
Gestų valdymo teorija

Gestų valdymo arba judesio valdymo režimas taip pat atliekamas naudojant „Android“. Šiuo režimu robotą galima valdyti kaip RC automobilį, naudojant „Android“kaip vairą. Visuose „Android“įrenginiuose yra jutiklis, vadinamas „akselerometru“, kuris naudojamas šiuo režimu. Šis akselerometras gali nustatyti kampą, kuriuo telefonas tituluojamas, matuojant pagreičio jėgas, veikiančias „Android“. Būtent šis jutiklis verčia „Android“pasukti ekraną, kai pakreipiame telefoną. Programa čia naudoja telefono akselerometrą, kad nustatytų telefono pakreipimo kampą. Tada simbolis (A, B…) siunčiamas robotui per „Bluetooth“. „Arduino“yra užprogramuotas veikti pagal gautus duomenis. Jei telefonas pakreipiamas į priekį, siunčiamas simbolis A ir robotas juda į priekį. Pakreipus atgal, siunčiamas simbolis B ir robotas juda atgal ir taip kairėn ir dešinėn. Padėjus „Android“horizontaliai, siunčiamas simbolis E ir robotas nustoja judėti.

6 žingsnis: „Bluetooth“valdymo teorija

„Bluetooth“valdymo teorija
„Bluetooth“valdymo teorija
„Bluetooth“valdymo teorija
„Bluetooth“valdymo teorija

Šiuo režimu robotas veikia kaip bendras RC automobilis. Šiame režime nieko naujo, tai yra tas pats, kas rinkoje parduodamas bendras nuotoliniu būdu valdomas automobilis, vienintelis skirtumas yra tas, kad robotui valdyti naudojame „Android“programą. Programoje yra skirtingų mygtukų, kurių kiekvienas turi skirtingus simbolius susietas su juo. Palietus bet kurį klavišą, simbolis siunčiamas robotui per „Bluetooth“, kaip ir gestų valdymo režimas. Be to, tie patys simboliai siunčiami palietus atitinkamus klavišus, o robotas seka gaunamus simbolius. Naudojau 360 ir -360 laipsnių mygtukus programoje, kad robotas atrodytų į dešinę ir į kairę. Galite pakeisti kodą, jei norite priversti robotą atlikti kai kuriuos kitus veiksmus.

7 žingsnis: kliūčių vengimo teorija

Kliūčių vengimo teorija
Kliūčių vengimo teorija
Kliūčių vengimo teorija
Kliūčių vengimo teorija

Šiuo režimu robotas veikia kaip kliūčių vengimo robotas, neleidžiantis susidurti su bet kokiu objektu. Tai daroma naudojant HC SR04 jutiklį. Manau, jūs žinote apie SONAR (garso navigaciją ir diapazoną). HC SR04 jutiklis nuolat skleidžia ultragarso garso bangas. Šios bangos atsimuša atsitrenkus į kietą paviršių ir grįžta prie jutiklio. Įrašomas laikas, per kurį bangos grįžta į jutiklį. Kadangi garsas sklinda maždaug 340 m/s greičiu ir žinome, kad SPEED × TIME = DISTANCE, galime nustatyti atstumą į priekį. Pavyzdžiui, jei garsas trunka 2 sekundes Norėdami grįžti, mes galime nustatyti atstumą pagal aukščiau pateiktą formulę, ty 340 × 2 = 680 m. Taip robotas gali išmatuoti atstumą prieš jį per jutiklį. Judėdamas, robotas nuolat matuoja priekyje esantį atstumą per jutiklį. Jei jis jaučia, kad priešais jį yra mažiau nei 30 cm laisvos vietos, jis nustoja judėti. Tada jis atrodo kairėje ir dešinėje ir lygina kiekvienos pusės atstumą. Jei kairioji pusė turi didesnį atstumą, robotas pasuka į kairę. Priešingu atveju, jei dešinė pusė yra didesnė, robotas sukasi į dešinę. Jei abi pusės turi vienodus atstumus, robotas sukasi atgal. Šis paprastas mechanizmas padeda robotui išvengti kliūčių.

8 žingsnis: Važiuoklės surinkimas

Važiuoklės surinkimas
Važiuoklės surinkimas
Važiuoklės surinkimas
Važiuoklės surinkimas
Važiuoklės surinkimas
Važiuoklės surinkimas
Važiuoklės surinkimas
Važiuoklės surinkimas

Gamindami važiuoklę patys, turite būti labai atsargūs atlikdami matavimus ir derinimą. Aš nusprendžiau tai padaryti, nes neradau tinkle, kuris mane tenkintų. Kaip važiuoklė naudojama bendra maitinimo šaltinių jungiklių dėžutė. Manau, jūs galite lengvai jį nusipirkti iš elektros prietaisų parduotuvės. Pirmiausia pritvirtinkite keturis variklius apačioje klijais ar spaustukais, tada pritvirtinkite ratus. Tada jūs turite padaryti roboto galvą (servo ir HC SR04 jutiklį). Galvai nupjaukite nedidelį gabalėlį ir pritvirtinkite prie servo varžtu. Tada pritvirtinkite ultragarso jutiklį prie plokštės su tam tikrais klijais. Dėžutės viršuje išpjaukite nedidelę kvadratinę skylę ir pritvirtinkite servo sistemą. Tada per varžtą pritvirtinkite akumuliatoriaus laikiklį, esantį roboto gale. Įdėkite grandines ir kitus komponentus į dėžę ir jūsų važiuoklė yra paruošta. Nepamirškite prieš garsiakalbį padaryti keletą skylių, kad garsas skleistų ir gautų geresnę kokybę.

9 žingsnis: Balso modulio paruošimas

Balso modulio paruošimas
Balso modulio paruošimas
Balso modulio paruošimas
Balso modulio paruošimas
Balso modulio paruošimas
Balso modulio paruošimas

Roboto kalbėjimo režimą atlieka „WTV 020 SD“modulis. Modulis naudojamas roboto balso byloms paleisti. Kai užduodamas bet koks klausimas, arduino privers modulį paleisti atitinkamą balso failą SD kortelėje. Modulyje yra keturios serijinės duomenų linijos, skirtos bendrauti su arduino, atstatymu, laikrodžiu, duomenimis ir užimtais kaiščiais. Atminkite, kad failų pavadinimai turi būti dešimtainiai (0001, 0002…). Ir kad failai turėtų būti AD4 arba WAV formatu. Be to, modulis veikia tik su 1 GB „micro SD“kortele. Kai kurie moduliai netgi veikia 2 GB kortelėse, o kortelėje gali būti ne daugiau kaip 504 balso failai. Taigi, norėdami paleisti daugybę klausimų, galite įtraukti daugybę balso failų. Jūs netgi galite sukurti savo balso AD4 failus (galite praleisti šią dalį, jei galite koreguoti naudodami balso failus, pateiktus kartu su šiuo nesuderinamu)., turite turėti dvi programas, garso redagavimo programinę įrangą ir programinę įrangą, vadinamą 4D SOMO TOOL, kuri konvertuotų failus į AD4 formatą. Antra, turite paruošti robotų balsus. Galite konvertuoti tekstą į kalbą arba net įrašyti savo balsą ir padaryti roboto balsus. Abu šiuos veiksmus galima atlikti naudojant garso redagavimo programinę įrangą. Bet tikrai, robotai neatrodo gerai, jei kalba žmogaus balsu. Taigi turėtų būti geriau tekstą paversti kalba. Yra įvairių variklių, tokių kaip „Microsoft Anna“ir „Microsoft Sam“jūsų kompiuteris, kurie padėtų tai padaryti. Paruošę balso failus, turite juos išsaugoti 32000 Hz dažniu ir WAV formatu. Taip yra todėl, kad modulis gali atkurti balso failus iki 32000 Hz. Tada naudokite 4D SOMO TOOL, norėdami konvertuoti failus į AD4 formatą. Norėdami tai padaryti, tiesiog atidarykite SOMO TOOL, pasirinkite failus ir spustelėkite AD4 Encode ir jūsų balso failai bus paruošti. Galite peržiūrėti paveikslėlį aukščiau. Jei norite gauti daugiau informacijos apie robotų balsus, galite eiti čia:

[Robotų balsų kūrimas] Čia yra originalūs balso failai ir programinė įranga:

10 veiksmas: užmegzkite ryšius

Ryšių užmezgimas
Ryšių užmezgimas
Ryšių užmezgimas
Ryšių užmezgimas
Ryšių užmezgimas
Ryšių užmezgimas

Sutrumpinkite visus atitinkamų modulių Vcc kaiščius ir prijunkite jį prie 5 V kaiščio ant arduino. Tą patį padarykite su gnd kaiščiais. Čia yra įvairių modulių jungtys. HC 05 modulis: RX kaištis į arduino kasimo kaištį 0. TX kaištis į arduino kasimo kaištį 1. HC SR04 jutiklis: aido kaištis į arduino kasimo kaištį 6. Trigpo kaištis į arduino kasimo kaištį 7WTV020-SD modulis: pin1 (iš naujo nustatyti kaištį) į arduino kasimo kaištį2.pin4 į garsiakalbį +kaištis 5 prie garsiakalbio -pin7 (laikrodis) į arduino dig pin3.pin8 į gnd.pin10 (duomenys) į arduino dig pin4.pin15 (užimtas) į arduino dig pin5.pin16 iki 3.3v Tada prijunkite servo signalo (geltoną) laidą ir kaskite kaištį 12. L293d variklio valdiklis: kaištis A1 prie arduino kasimo kaiščio 8. kontaktas A2 iki arduino kasimo kaištis 9. kaištis B1 prie arduino kasimo kaiščio 10. kaištis B2 į arduino dig pin 11. Prisiminkite, kad šiame robote mes naudojame du L293d modulius. Taip yra todėl, kad vienas modulis gali maitinti iki dviejų variklių. Norėdami valdyti keturis variklius, naudojame dvi variklių tvarkykles. Taigi nepamirškite abiejuose variklio valdiklio moduliuose sujungti du kartus. Pavyzdžiui, prijunkite „Arduino“kaištį prie abiejų tvarkyklės modulių A1 kaiščio. Nepamirškite vieno modulio išvesties prijungti prie dviejų variklių, o kito modulio - prie kitų dviejų variklių. Norėdami sužinoti daugiau, patikrinkite diagramą.

11 veiksmas: „Arduino“kodas

Arduino kodas
Arduino kodas
Arduino kodas
Arduino kodas

Tai buvo įdomus laikas sukurti kodą. Tai nėra sudėtingas kodas, jis tiesiog naudoja kai kurias bibliotekas, kad galėtų bendrauti su „Android“ir garso moduliu. Didžioji darbo dalis atliekama naudojant „Android“, o ne „Arduino“. Kodas pagrįstas „Bluetooth“ryšiu ir gaunamais duomenimis iš „Bluetooth“. Kodas sukurtas taip, kad turime duoti robotui balso komandas, kad jis galėtų vykdyti įvairius režimus, o „Arduino“nuolat tikrina gaunamus „Bluetooth“signalus. Norėdami sustabdyti bet kokį režimą, mes tiesiog turime pasakyti „stop“. Vienintelė kodo problema yra ta, kad turime rankiniu būdu išjungti robotą, kai jis yra kliūčių vengimo režime. Šiuo režimu negalime naudoti komandos „stop“. Taip yra todėl, kad šios funkcijos įjungimas turi įtakos objektų atstumo nuskaitymo greičiui. „Arduino“vienu metu turės nuskaityti tiek objekto atstumą, tiek gaunamus „Bluetooth“signalus. Tai trukdo režimui ir robotas nesugeba visiškai apsisaugoti nuo kliūčių. Robotas gali nesustoti akimirksniu, net jei atstumas į priekį yra mažesnis nei 30 cm. Taigi būtų gerai neįtraukti šios funkcijos į šį režimą. Tiesiog atsisiųskite bibliotekas ir kodą ir įkelkite jį į „Arduino“. Tačiau prieš įkeldami nepamirškite išimti „TX“ir „RX“(0, 1) kaiščių iš „Arduino“. Šie kaiščiai naudojami nuosekliam ryšiui ir naudojami įkeliant kodą. Šiame robote šie kaiščiai naudojami „Bluetooth“moduliui prijungti. Taigi nepamirškite jų nuimti, kitaip tai gali trukdyti „Bluetooth“moduliui. Čia yra kodas ir bibliotekos:

12 žingsnis: problemų rūšiavimas ir patobulinimai

Problemų rūšiavimas ir patobulinimai
Problemų rūšiavimas ir patobulinimai

Galite praleisti šį veiksmą, nes jis susijęs tik su roboto patobulinimais. Daug problemų kyla dėl modulio WTV-020-SD-16p, susijusios su atminties kortelės talpa. Taip yra todėl, kad kai kurie moduliai veikia su 2 GB kortelėmis, o kai kurie - ne. Taigi geriau naudoti 1 GB „micro SD“kortelę. Naudojant skirtingas komponentų versijas nebūtų daug problemų. Galima paminėti įvairias „wtv 020 sd“modulio versijas. Taip yra todėl, kad tarp modulių yra tik pakuotės skirtumas, o dauguma kitų vidinių dalykų išlieka tie patys. Kitas svarbus dalykas, naudojant PCB robotui, labai sumažins dabartinį vartojimą. Jei jungiate skirtingus komponentus kaip ir aš, tai jums kainuos šiek tiek srovės, nes nemaža dalis jų bus prarasta laiduose ir turės didelį atsparumą. Taip yra todėl, kad grandinė yra pakankamai didelė. Šis nesugadinamas neapima PCB projektavimo (nes aš jo nepadariau), tačiau tai gali padidinti roboto energijos vartojimo efektyvumą. Tačiau BLUE ROVIER 316 dar nepadaryta! Sugalvojau įtraukti dar keletą funkcijų, tokių kaip sekti eilutes, spręsti labirintus ir daugelį kitų dalykų. Tačiau tai liko svajonė, nes trūksta kaiščių „Arduino UNO“(„BLUE ROVIER“tikrai suvalgo daug „Arduino“smeigtukų). Taigi aš galvoju patobulinti visas šio roboto funkcijas ir jas sujungti, kad būtų sukurtas įmantresnis ir naudingesnis „Arduino“robotas. Taigi būkite pasiruošę pamatyti modifikuotą ROVIER vaizdą po kelių mėnesių !!! Aš net noriu pamatyti kitų modifikuotų roboto versijų, kuriuos sukūrė kiti žmonės, turintys daugiau kūrybiškumo nei mano !!!!

13 žingsnis: Žaiskite su robotu

Žaidimas su robotu
Žaidimas su robotu

Įjunk robotą ir pažiūrėk, kaip jis tave pasitinka, žaidžia su tavimi. Užduokite bet kokį klausimą (ne kvailą!) Ir stebėkite jo atsakymą. Galite liepti sekti eilutes arba eiti pirmyn. Tiesiog pasakykite „stop“, kai norite sustabdyti robotą.

Robotikos konkursas 2017 m
Robotikos konkursas 2017 m
Robotikos konkursas 2017 m
Robotikos konkursas 2017 m

Antroji vieta robotikos konkurse 2017 m

Rekomenduojamas: