Satura rādītājs:

Žestu kontrolēts robots, izmantojot Arduino: 7 soļi
Žestu kontrolēts robots, izmantojot Arduino: 7 soļi

Video: Žestu kontrolēts robots, izmantojot Arduino: 7 soļi

Video: Žestu kontrolēts robots, izmantojot Arduino: 7 soļi
Video: Управление 32 сервомоторами с помощью PCA9685 и Arduino: V3 2024, Novembris
Anonim
Žestu kontrolēts robots, izmantojot Arduino
Žestu kontrolēts robots, izmantojot Arduino

Roboti tiek izmantoti daudzās nozarēs, piemēram, celtniecībā, militārajā jomā, ražošanā, montāžā utt. Roboti var būt autonomi vai daļēji autonomi. Autonomajiem robotiem nav nepieciešama cilvēka iejaukšanās, un tie var rīkoties paši atbilstoši situācijai. Pusautomātiskie roboti darbojas saskaņā ar cilvēku norādījumiem. Šos pusautomātiskos var vadīt ar tālvadības pulti, tālruni, žestiem utt. Mēs iepriekš izveidojām dažus uz IoT balstītus robotus, kurus var vadīt no tīmekļa servera.

Šodienas rakstā mēs izveidosim ar žestiem kontrolētu robotu, izmantojot Arduino, MPU6050 akselerometru, nRF24L01 uztvērēja pāri un L293D motora draivera moduli. Mēs izstrādāsim šo robotu divās daļās. Viens ir raidītājs, bet otrs - uztvērējs. Raidītāja sekcija sastāv no Arduino Uno, MPU6050 akselerometra un žiroskopa un nRF24L01, savukārt uztvērēja sekcija sastāv no Arduino Uno, nRF24L01, diviem līdzstrāvas motoriem un L293D motora draivera. Raidītājs darbosies kā tālvadības pults, lai vadītu robotu, kur robots pārvietojas atbilstoši žestiem.

1. darbība. Nepieciešamās sastāvdaļas

Nepieciešamas sastāvdaļas
Nepieciešamas sastāvdaļas
Nepieciešamas sastāvdaļas
Nepieciešamas sastāvdaļas
  • Arduino Uno (2)
  • NRF24L01 (2)
  • MPU6050DC motors (2)
  • L293D motora vadītāja modulis
  • Mīkla

MPU6050 akselerometrs un žiroskops MPU6050 sensora modulis ir pilnīga 6 asu (3 asu akselerometrs un 3 asu žiroskops) mikroelektromehāniskā sistēma. MPU6050 sensora modulim ir arī mikroshēmas temperatūras sensors. Tam ir I2C kopne un papildu I2C kopnes saskarne, lai sazinātos ar mikrokontrolleriem un citām sensoru ierīcēm, piemēram, 3 asu magnetometru, spiediena sensoru utt. -saistītie parametri. Šim sensora modulim ir arī iebūvēts digitālais kustības procesors, kas var veikt sarežģītus aprēķinus.

NRF24L01 uztvērēja modulis

nRF24L01 ir vienas mikroshēmas radio uztvērējs, kas paredzēts 2,4–2,5 GHz ISM joslai visā pasaulē. Raiduztvērējs sastāv no pilnībā integrēta frekvences sintezatora, jaudas pastiprinātāja, kristāla oscilatora, demodulatora, modulatora un uzlabota ShockBurs protokola dzinēja. Izejas jauda, frekvenču kanāli un protokola iestatīšana ir viegli programmējama, izmantojot SPI saskarni. Šī uztvērēja moduļa darba sprieguma diapazons ir no 1,9 V līdz 3,6 V. Tam ir iebūvēti izslēgšanas un gaidstāves režīmi, kas padara to taupīgu un viegli realizējamu.

2. darbība. Ar roku žestu kontrolēta robota darbība, izmantojot Arduino

Ar roku žestu vadīta robota darbība, izmantojot Arduino
Ar roku žestu vadīta robota darbība, izmantojot Arduino
Ar roku žestu vadīta robota darbība, izmantojot Arduino
Ar roku žestu vadīta robota darbība, izmantojot Arduino

Lai saprastu šīs Arduino žestu vadības automašīnas darbību, sadalīsim šo projektu divās daļās. Pirmā daļa ir raidītāja daļa (tālvadības pults), kurā MPU6050 akselerometra sensors nepārtraukti sūta signālus uztvērējam (robotam), izmantojot Arduino un nRF raidītāju.

Otrā daļa ir uztvērēja daļa (robotu automašīna), kurā nRF uztvērējs saņem pārraidītos datus un nosūta tos Arduino, kas tos tālāk apstrādā un attiecīgi pārvieto robotu.

Akselerometra sensors MPU6050 nolasa X Y Z koordinātas un nosūta koordinātas Arduino. Šim projektam mums ir vajadzīgas tikai X un Y koordinātas. Pēc tam Arduino pārbauda koordinātu vērtības un nosūta datus nRF raidītājam. Pārraidītos datus saņem nRF uztvērējs. Uztvērējs nosūta datus uztvērēja puses Arduino. Arduino nodod datus motora vadītāja IC, un motora vadītājs pagriež motorus vajadzīgajā virzienā.

3. darbība: shēmas shēma

Ķēdes diagramma
Ķēdes diagramma
Ķēdes diagramma
Ķēdes diagramma

Šis ar žestiem kontrolētais robots, izmantojot Arduino aparatūru, ir sadalīts divās sadaļās

  1. Raidītājs
  2. Uztvērējs

4. solis: raidītāja ķēde Arduino žestu kontrolētai automašīnai

Raidītāja ķēde Arduino žestu kontrolētai automašīnai
Raidītāja ķēde Arduino žestu kontrolētai automašīnai
Raidītāja ķēde Arduino žestu kontrolētai automašīnai
Raidītāja ķēde Arduino žestu kontrolētai automašīnai
Raidītāja ķēde Arduino žestu kontrolētai automašīnai
Raidītāja ķēde Arduino žestu kontrolētai automašīnai

Šī projekta raidītāju sadaļa sastāv no akselerometra un žiroskopa MPU6050, uztvērēja nRF24L01 un Arduino Uno. Arduino nepārtraukti iegūst datus no MPU6050 un nosūta šos datus uz nRF raidītāju. RF raidītājs pārraida datus vidē.

5. darbība. Arduino žestu kontrolētās automašīnas uztvērēja ķēde

Uztvērēja shēma Arduino žestu kontrolētai automašīnai
Uztvērēja shēma Arduino žestu kontrolētai automašīnai
Uztvērēja shēma Arduino žestu kontrolētai automašīnai
Uztvērēja shēma Arduino žestu kontrolētai automašīnai
Uztvērēja ķēde Arduino žestu kontrolētai automašīnai
Uztvērēja ķēde Arduino žestu kontrolētai automašīnai

Šī žestu vadāmā robota uztvērēja sadaļa sastāv no Arduino Uno, nRF24L01 uztvērēja, 2 līdzstrāvas motoriem un motora draivera moduļa. Uztvērējs NRF24L01 saņem datus no raidītāja un nosūta to Arduino. Pēc tam saskaņā ar saņemtajiem signāliem Arduino pārvieto līdzstrāvas motorus.

6. darbība: programmas skaidrojums

Žestu kontrolētam robotam, kas izmanto Arduino, pilns kods ir pieejams šeit. Zemāk mēs izskaidrojam programmu pa rindām.

Raidītāja sānu programma

Šajā programmā Arduino nolasa datus no MPU6050 un nosūta tos uz nRF 24L01 raidītāju.

1. Sāciet programmu, pievienojot nepieciešamos bibliotēkas failus. Bibliotēkas failus var lejupielādēt no norādītajām saitēm.

SPI.h

nRF24L01.h

Vads.h

MPU6050.h

2. Pēc tam definējiet MPU6050 žiroskopa un akselerometra datu mainīgos. Šeit tiks izmantoti tikai akselerometra dati.

3. Definējiet radio cauruļu adreses sakaru un nRF raidītāju CN un CSN tapām.

4. Funkcijas void setup () ietvaros sāciet sērijas monitoru. Un arī inicializējiet vadu un radio sakarus. radio.setDataRate tiek izmantots, lai iestatītu datu pārraides ātrumu.

5. Izlasiet MPU6050 sensora datus. Šeit mēs izmantojam tikai X un Y virziena akselerometra datus.

6. Visbeidzot, pārsūtiet sensora datus, izmantojot radio.write funkciju.

Uztvērēja sānu programma

1. Kā parasti, palaidiet programmu, iekļaujot nepieciešamos bibliotēkas failus.

2. Definējiet radio cauruļu adreses sakaru un nRF raidītāju CN un CSN tapām.

3. Definējiet kreisās un labās līdzstrāvas motora tapas.

4. Tagad pārbaudiet, vai radio ir pieejams vai nav. Ja tā ir, tad izlasiet datus.

5. Tagad salīdziniet saņemtos datus un darbiniet motorus atbilstoši apstākļiem.

7. darbība. Ar roku žestu kontrolētā robota pārbaude, izmantojot Arduino

Kad aparatūra ir gatava, pievienojiet klēpjdatoram gan raidītāja, gan uztvērēja pusi Arduinos un augšupielādējiet kodu. Pēc tam pārvietojiet MPU6050 akselerometru, lai vadītu automašīnu robotu.

Pilns žestu vadāmā robota darbs ir atrodams videoklipā.

Ieteicams: