Turinys:

Gestais valdomas robotas naudojant „Arduino“: 7 žingsniai
Gestais valdomas robotas naudojant „Arduino“: 7 žingsniai

Video: Gestais valdomas robotas naudojant „Arduino“: 7 žingsniai

Video: Gestais valdomas robotas naudojant „Arduino“: 7 žingsniai
Video: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, Liepa
Anonim
Gestais valdomas robotas naudojant „Arduino“
Gestais valdomas robotas naudojant „Arduino“

Robotai naudojami daugelyje sektorių, pavyzdžiui, statyboje, kariuomenėje, gamyboje, surinkime ir kt. Robotai gali būti autonominiai arba pusiau autonominiai. Savarankiškiems robotams nereikia jokio žmogaus įsikišimo ir jie gali veikti patys, atsižvelgdami į situaciją. Pusiau autonominiai robotai dirba pagal žmonių nurodymus. Šiuos pusiau autonominius įrenginius galima valdyti nuotoliniu būdu, telefonu, gestais ir pan. Anksčiau mes sukūrėme keletą IoT pagrįstų robotų, kuriuos galima valdyti iš žiniatinklio serverio.

Šiandienos straipsnyje mes sukursime gestais valdomą robotą, naudodami „Arduino“, MPU6050 pagreičio matuoklį, nRF24L01 siųstuvo-imtuvo porą ir L293D variklio tvarkyklės modulį. Šį robotą suprojektuosime į dvi dalis. Vienas yra siųstuvas, o kitas - imtuvas. Siųstuvo sekciją sudaro „Arduino Uno“, MPU6050 pagreičio matuoklis ir giroskopas bei nRF24L01, o imtuvo sekciją sudaro „Arduino Uno“, nRF24L01, du nuolatinės srovės varikliai ir L293D variklio tvarkyklė. Siųstuvas veiks kaip nuotolinis roboto valdymas, kur robotas judės pagal gestus.

1 žingsnis: reikalingi komponentai

Privalomi komponentai
Privalomi komponentai
Privalomi komponentai
Privalomi komponentai
  • „Arduino Uno“(2)
  • NRF24L01 (2)
  • MPU6050DC variklis (2)
  • L293D variklio vairuotojo modulis
  • Tešla

MPU6050 Akselerometras ir giroskopas MPU6050 jutiklio modulis yra visa 6 ašių (3 ašių akselerometras ir 3 ašių giroskopas) mikroelektromechaninė sistema. MPU6050 jutiklio modulis taip pat turi lustų temperatūros jutiklį. Jis turi I2C magistralę ir papildomą I2C magistralės sąsają, skirtą bendrauti su mikrovaldikliais ir kitais jutikliais, pvz., 3 ašių magnetometru, slėgio jutikliu ir kt. -susiję parametrai. Šiame jutiklio modulyje taip pat yra įmontuotas skaitmeninis judesio procesorius, galintis atlikti sudėtingus skaičiavimus.

NRF24L01 siųstuvo -imtuvo modulis

„nRF24L01“yra vieno lusto radijo siųstuvas -imtuvas, skirtas pasaulinei 2,4–2,5 GHz ISM juostai. Imtuvą sudaro visiškai integruotas dažnio sintezatorius, galios stiprintuvas, kristalų osciliatorius, demoduliatorius, moduliatorius ir patobulintas „ShockBurs“protokolo variklis. Išėjimo galia, dažnio kanalai ir protokolo sąranka yra lengvai programuojami naudojant SPI sąsają. Šio siųstuvo -imtuvo modulio darbinės įtampos diapazonas yra nuo 1,9 V iki 3,6 V. Jame yra įmontuoti išjungimo ir budėjimo režimai, kurie leidžia taupyti energiją ir lengvai realizuoti.

2 žingsnis: Rankų gestais valdomo roboto darbas naudojant „Arduino“

Rankomis valdomo roboto darbas naudojant „Arduino“
Rankomis valdomo roboto darbas naudojant „Arduino“
Rankomis valdomo roboto darbas naudojant „Arduino“
Rankomis valdomo roboto darbas naudojant „Arduino“

Norėdami suprasti šio „Arduino“gestų valdymo automobilio veikimą, padalinkime šį projektą į dvi dalis. Pirmoji dalis yra siųstuvo dalis (nuotolinė), kurioje MPU6050 akselerometro jutiklis nuolat siunčia signalus į imtuvą (robotą) per „Arduino“ir nRF siųstuvą.

Antroji dalis yra imtuvo dalis (automobilis robotas), kurioje nRF imtuvas priima perduotus duomenis ir siunčia juos „Arduino“, kuris toliau juos apdoroja ir atitinkamai perkelia robotą.

Akselerometro jutiklis MPU6050 nuskaito X Y Z koordinates ir siunčia koordinates į „Arduino“. Šiam projektui mums reikia tik X ir Y koordinačių. Tada „Arduino“patikrina koordinačių reikšmes ir siunčia duomenis nRF siųstuvui. Perduotus duomenis gauna nRF imtuvas. Imtuvas siunčia duomenis į imtuvo pusės „Arduino“. „Arduino“perduoda duomenis variklio vairuotojo IC ir variklio vairuotojas pasuka variklius reikiama kryptimi.

3 žingsnis: grandinės schema

Grandinės schema
Grandinės schema
Grandinės schema
Grandinės schema

Šis rankomis valdomas robotas, naudojant „Arduino“aparatinę įrangą, yra padalintas į dvi dalis

  1. Siųstuvas
  2. Imtuvas

4 žingsnis: „Arduino“gestų valdomo automobilio siųstuvo grandinė

„Arduino“gestais valdomo automobilio siųstuvo grandinė
„Arduino“gestais valdomo automobilio siųstuvo grandinė
„Arduino“gestais valdomo automobilio siųstuvo grandinė
„Arduino“gestais valdomo automobilio siųstuvo grandinė
„Arduino“gestais valdomo automobilio siųstuvo grandinė
„Arduino“gestais valdomo automobilio siųstuvo grandinė

Šio projekto siųstuvo skyrių sudaro MPU6050 pagreičio matuoklis ir giroskopas, nRF24L01 siųstuvas ir „Arduino Uno“. „Arduino“nuolat gauna duomenis iš MPU6050 ir siunčia šiuos duomenis į nRF siųstuvą. RF siųstuvas perduoda duomenis į aplinką.

5 veiksmas: „Arduino“gestų valdomo automobilio imtuvo grandinė

„Arduino“gestais valdomo automobilio imtuvo grandinė
„Arduino“gestais valdomo automobilio imtuvo grandinė
„Arduino“gestais valdomo automobilio imtuvo grandinė
„Arduino“gestais valdomo automobilio imtuvo grandinė
„Arduino“gestais valdomo automobilio imtuvo grandinė
„Arduino“gestais valdomo automobilio imtuvo grandinė

Šio gestais valdomo roboto imtuvo sekciją sudaro „Arduino Uno“, nRF24L01 siųstuvas -imtuvas, 2 nuolatinės srovės varikliai ir variklio tvarkyklės modulis. Imtuvas NRF24L01 priima duomenis iš siųstuvo ir siunčia juos į „Arduino“. Tada pagal gautus signalus „Arduino“perkelia nuolatinės srovės variklius.

6 veiksmas: programos paaiškinimas

Gestu valdomam robotui, naudojančiam „Arduino“, visą kodą rasite čia. Žemiau mes paaiškiname programą eilutėje.

Siųstuvo šoninė programa

Šioje programoje „Arduino“skaito duomenis iš MPU6050 ir siunčia juos į nRF 24L01 siųstuvą.

1. Pradėkite programą pridėdami reikiamus bibliotekos failus. Bibliotekos failus galite atsisiųsti iš nurodytų nuorodų.

SPI.h

nRF24L01.h

Viela.h

MPU6050.h

2. Tada nustatykite MPU6050 giroskopo ir akselerometro duomenų kintamuosius. Čia bus naudojami tik akselerometro duomenys.

3. Nustatykite ryšio ir nRF siųstuvų CN ir CSN kaiščių radijo vamzdžių adresus.

4. Vykdydami void setup () funkciją, paleiskite serijinį monitorių. Taip pat inicijuokite laidinį ir radijo ryšį. radio.setDataRate naudojamas duomenų perdavimo greičiui nustatyti.

5. Perskaitykite MPU6050 jutiklio duomenis. Čia mes naudojame tik X ir Y krypties akselerometro duomenis.

6. Galiausiai perduokite jutiklio duomenis naudodami funkciją radio.write.

Imtuvo pusės programa

1. Kaip įprasta, paleiskite programą įtraukdami reikiamus bibliotekos failus.

2. Nustatykite ryšio ir nRF siųstuvų CN ir CSN kaiščių radijo vamzdžių adresus.

3. Apibrėžkite kairįjį ir dešinįjį nuolatinės srovės variklio kaiščius.

4. Dabar patikrinkite, ar radijas yra prieinamas, ar ne. Jei taip, tada perskaitykite duomenis.

5. Dabar palyginkite gautus duomenis ir važiuokite varikliais pagal sąlygas.

7 veiksmas: rankų gestais valdomo roboto testavimas naudojant „Arduino“

Kai aparatūra bus paruošta, prijunkite siųstuvo ir imtuvo „Arduinos“prie nešiojamojo kompiuterio ir įkelkite kodą. Tada perkelkite MPU6050 akselerometrą, kad valdytumėte automobilį Robotas.

Visą gestais valdomo roboto darbą galima rasti vaizdo įraše.

Rekomenduojamas: