Kazalo:

Rolo in nagib osi za GoPro z uporabo Arduina - servo in žiroskop MPU6050: 4 koraki
Rolo in nagib osi za GoPro z uporabo Arduina - servo in žiroskop MPU6050: 4 koraki

Video: Rolo in nagib osi za GoPro z uporabo Arduina - servo in žiroskop MPU6050: 4 koraki

Video: Rolo in nagib osi za GoPro z uporabo Arduina - servo in žiroskop MPU6050: 4 koraki
Video: More than Coffee: Golang. Почему Java разработчики учат GO как второй язык. 2024, November
Anonim
Rolo in nagib osi za GoPro z uporabo Arduina - servo in žiroskop MPU6050
Rolo in nagib osi za GoPro z uporabo Arduina - servo in žiroskop MPU6050

Ta pouk je bil ustvarjen v skladu z zahtevami projekta Makecourse na Univerzi v Južni Floridi (www.makecourse.com)

Cilj tega projekta je bil z uporabo Arduino nano + 3 servo motorjev + žiroskop/merilnik pospeška MPU6050 zgraditi 3-osni Gimbal za GoPro. V tem projektu sem z žiroskopom/merilnikom pospeška MPU6050 nadzoroval dvoosno (vrtenje in zavijanje), tretjo os (nihanje) pa daljinsko in ročno upravljam s pomočjo HC-05 in aplikacije Arduino BlueControl, ki je v trgovini Android App Store.

To delo vključuje tudi vse datoteke 3D oblikovanja mehanskih komponent Gimbala. Spodaj sem dal datoteke.stl za enostavno 3D -tiskanje in datoteke 3D -oblikovanja.

Na začetku mojega projekta je bil moj načrt zgraditi 3-osni kardan s 3 brezkrtačnimi motorji, ker so brezkrtačni motorji gladki in bolj odzivni v primerjavi s servo motorji. Brezkrtačni motorji se uporabljajo v aplikacijah za visoke hitrosti, zato lahko prilagodimo hitrost nakupa motorja ESC (krmilnik). Da pa sem lahko v projektu Gimbal uporabljal motor brez krtač, sem spoznal, da moram motor brez krtač voziti kot servo. Pri servo motorjih je položaj motorja znan. Toda pri brezkrtačnem motorju ne poznamo položaja motorja, zato je to pomanjkljivost brezkrtačnega motorja, za katero nisem mogel ugotoviti, kako ga poganjati. Na koncu sem se odločil uporabiti 3 servo motorje MG995 za projekt Gimbal z visokim navorom. Z žiroskopom MPU6050 sem krmilil 2 servo motorja za rotacijsko in nagibno os, s pomočjo bluetooth-a HC-05 in aplikacije za Android pa sem krmilil servo motor z osjo nihanja.

1. korak: Komponente

Sestavni deli
Sestavni deli
Sestavni deli
Sestavni deli
Sestavni deli
Sestavni deli
Sestavni deli
Sestavni deli

Komponente, ki sem jih uporabil pri tem projektu;

1- Arduino Nano (1 enota) (mikro usb)

2- Servo motorji MG995 (3 enote)

3- GY-521 MPU6050 3-osni merilnik pospeška/žiroskop (1 enota)

4- Modul Bluetooth HC-05 (Za daljinsko upravljanje osi (Servo3) osi)

Prenosni polnilnik 4- 5V micro usb

2. korak: Izvedba 3 servo motorjev + žiroskop MPU6050 + HC-05

Izvajanje 3 servo motorjev + žiroskop MPU6050 + HC-05
Izvajanje 3 servo motorjev + žiroskop MPU6050 + HC-05
Izvajanje 3 servo motorjev + žiroskop MPU6050 + HC-05
Izvajanje 3 servo motorjev + žiroskop MPU6050 + HC-05

Servo ožičenje

Servo1 (Roll), Servo2 (Pitch), Servo3 (Yaw)

Servo motorji imajo 3 žice: VCC (rdeča), GND (rjava ali črna), PWM (rumena).

D3 => Servo1 PWM (rumena žica)

D4 => Servo2 PWM (rumena žica)

D5 => Servo3 PWM (rumena žica)

5V PIN za Arduino => VCC (rdeč) treh servo motorjev.

GND PIN Arduino => GND (rjava ali črna) treh servo motorjev

Giro ožičenje MPU6050

A4 => SDA

A5 => SCL

3,3 V PIN za Arduino => VCC za MPU6050

GND PIN za Arduino => GND za MPU6050

Ožičenje Bluetooth HC-05

D9 => TX

D10 => RX

3,3 V PIN za Arduino => VCC za HC-05 Bluetooth

GND PIN za Arduino => GND za HC-05 Bluetooth

3. korak: 3D oblikovanje in funkcionalnost

3D oblikovanje in funkcionalnost
3D oblikovanje in funkcionalnost
3D oblikovanje in funkcionalnost
3D oblikovanje in funkcionalnost
3D oblikovanje in funkcionalnost
3D oblikovanje in funkcionalnost
3D oblikovanje in funkcionalnost
3D oblikovanje in funkcionalnost

Dokončal sem 3D oblikovanje Gimbala, pri čemer sem upošteval druge Gimbale, ki se prodajajo na trgu. S servo motorji se vrtijo tri glavne komponente. Oblikoval sem GoPro nosilec, ki ustreza njegovi velikosti.

Datoteka.step celotnega 3D oblikovanja se deli na dnu, kar olajša urejanje.

4. korak: Nadzorni mehanizem

Image
Image

Glavni algoritem mojega projekta Gimbal uporablja kvaternionsko rotacijo, ki je alternativa Eulerjevim kotom. Knjižnico helper_3dmath.h sem uporabil kot referenco za nemoteno gibanje z uporabo algoritma Quaternion. Čeprav je odziv osi nagiba nemoten, os valjanja zaostaja, da se odzove na premik palice. Z uporabo algoritma Quaternion sem lahko nadzoroval servo motorje Roll in Pitch. Če želite uporabiti os nihanja, boste morda morali uporabiti drugo MPU6050 samo za nadzor osi nihanja. Kot alternativno rešitev sem nastavil HC-05 in na daljavo z aplikacijo za Android z gumbi upravljal os ogibanja. Pri vsakem pritisku na gumb se servo servo zavrtite za 10 stopinj.

V tem projektu so knjižnice, ki sem jih moral uvoziti zunaj, naslednje;

1- I2Cdev.h // Uporablja se z wire.h za omogočanje komunikacije z MPU6050

2- "MPU6050_6Axis_MotionApps20.h" // Knjižnica žiroskopa

3- // Omogoča pretvorbo digitalnih zatičev v zatiče RX in TX (potrebno je za modul bluetooth HC-05)

4-

5- // Omogoča komunikacijo z napravami I2C, ki uporabljajo dva podatkovna zatiča (SDA in SCL) => MPU6050

Glavno kodo je ustvaril Jeff Rowberg, jaz pa sem jo spremenil glede na funkcionalnost projekta in komentiral vse funkcije v datoteki ino.

Priporočena: