Агуулгын хүснэгт:

Arduino - Servo ба MPU6050 Gyro ашиглан GoPro -д зориулсан Roll and Pitch Axis Gimbal: 4 алхам
Arduino - Servo ба MPU6050 Gyro ашиглан GoPro -д зориулсан Roll and Pitch Axis Gimbal: 4 алхам

Видео: Arduino - Servo ба MPU6050 Gyro ашиглан GoPro -д зориулсан Roll and Pitch Axis Gimbal: 4 алхам

Видео: Arduino - Servo ба MPU6050 Gyro ашиглан GoPro -д зориулсан Roll and Pitch Axis Gimbal: 4 алхам
Видео: Measure Tilt Angle using SCA60C angle sensor - Robojax 2024, Арваннэгдүгээр
Anonim
GoPro -ийн Arduino - Servo ба MPU6050 Gyro ашиглан Roll and Pitch Axis Gimbal
GoPro -ийн Arduino - Servo ба MPU6050 Gyro ашиглан Roll and Pitch Axis Gimbal

Энэхүү зааварчилгааг Өмнөд Флоридагийн Их Сургуулийн Makecourse төслийн шаардлагыг биелүүлэх зорилгоор бүтээсэн болно (www.makecourse.com)

Энэхүү төслийн зорилго нь Arduino нано + 3 servo мотор + MPU6050 гиро/акселерометр ашиглан GoPro-д зориулсан 3 тэнхлэгтэй Gimbal бүтээх явдал байв. Энэ төсөлд би MPU6050 гиро/акселерометр ашиглан 2 тэнхлэг (өнхрөх ба эвхэх) -ийг хянаж, гурав дахь тэнхлэгийг (yaw) алсын зайнаас болон гараар хянадаг..

Энэ ажилд Gimbal -ийн механик бүрэлдэхүүн хэсгүүдийн бүх 3D дизайны файлууд багтсан болно. Би.stl файлуудыг хялбархан 3D хэвлэх, 3D дизайны файлуудыг доод хэсэгт хуваалцсан.

Төслийнхөө эхэнд миний төлөвлөгөө бол 3 тэнхлэгтэй гимбалыг 3 сойзгүй мотороор бүтээх байсан, учир нь сойзгүй мотор нь servo мотортой харьцуулахад гөлгөр бөгөөд илүү мэдрэмжтэй байдаг. Сойзгүй моторыг өндөр хурдны хэрэглээнд ашигладаг тул бид ESC (хянагч) мотор худалдаж авах хурдыг тохируулах боломжтой. Гэхдээ Gimbal төсөлд сойзгүй мотор ашиглахын тулд би сойзгүй моторыг servo шиг жолоодох ёстойгоо ойлгосон. Серво хөдөлгүүрт хөдөлгүүрийн байрлалыг мэддэг. Гэхдээ сойзгүй моторын хувьд бид хөдөлгүүрийн байрлалыг мэддэггүй, тиймээс энэ нь сойзгүй моторын сул тал бөгөөд үүнийг хэрхэн жолоодохыг би олж чадаагүй юм. Эцэст нь би Gimbal төсөлд шаардагдах өндөр эргэлтэнд зориулж 3 MG995 servo мотор ашиглахаар шийдсэн. Би MPU6050 gyro ашиглан өнхрөх ба давирхай тэнхлэгт зориулагдсан 2 servo моторыг хянаж, HC-05 bluetooth болон Android програмыг ашиглан yaw тэнхлэгийн servo моторыг хянадаг.

Алхам 1: бүрэлдэхүүн хэсгүүд

Бүрэлдэхүүн хэсгүүд
Бүрэлдэхүүн хэсгүүд
Бүрэлдэхүүн хэсгүүд
Бүрэлдэхүүн хэсгүүд
Бүрэлдэхүүн хэсгүүд
Бүрэлдэхүүн хэсгүүд
Бүрэлдэхүүн хэсгүүд
Бүрэлдэхүүн хэсгүүд

Энэ төсөлд миний ашиглаж байсан бүрэлдэхүүн хэсгүүд;

1- Arduino Nano (1 нэгж) (микро USB)

2- MG995 Servo мотор (3 нэгж)

3- GY-521 MPU6050 3 тэнхлэгт акселерометр/гироскоп (1 нэгж)

4- HC-05 Bluetooth модуль (Yaw (Servo3) тэнхлэгийг алсаас удирдах)

4- 5V бичил USB зөөврийн цэнэглэгч

Алхам 2: 3 Servo Motors + MPU6050 Gyro + HC-05-ийг хэрэгжүүлэх

3 Servo Motors + MPU6050 Gyro + HC-05-ийг хэрэгжүүлж байна
3 Servo Motors + MPU6050 Gyro + HC-05-ийг хэрэгжүүлж байна
3 Servo Motors + MPU6050 Gyro + HC-05-ийг хэрэгжүүлж байна
3 Servo Motors + MPU6050 Gyro + HC-05-ийг хэрэгжүүлж байна

Servo утас

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

Servo мотор нь 3 утастай: VCC (улаан), GND (хүрэн эсвэл хар), ХОУХ (шар).

D3 => Servo1 PWM (шар утас)

D4 => Servo2 PWM (шар утас)

D5 => Servo3 PWM (шар утас)

Arduino -ийн 5V ПИН => 3 servo моторын VCC (улаан).

Arduino -ийн GND PIN => 3 servo моторын GND (хүрэн эсвэл хар)

MPU6050 гиро утас

A4 => SDA

A5 => SCL

3.3 Arduino -ийн V PIN => MPU6050 -ийн VCC

Arduino -ийн GND PIN => MPU6050 -ийн GND

HC-05 Bluetooth утас

D9 => TX

D10 => RX

3.3 Arduino-ийн V PIN => HC-05 Bluetooth-ийн VCC

Arduino-ийн GND PIN => HC-05 Bluetooth-ийн GND

Алхам 3: 3D дизайн ба функциональ байдал

3D дизайн ба функциональ байдал
3D дизайн ба функциональ байдал
3D дизайн ба функциональ байдал
3D дизайн ба функциональ байдал
3D дизайн ба функциональ байдал
3D дизайн ба функциональ байдал
3D дизайн ба функциональ байдал
3D дизайн ба функциональ байдал

Би Gimbal -ийн 3D дизайныг зах зээл дээр зарагдаж буй бусад Gimbals -ийн жишээг ашиглан хийж дуусгасан. Серво хөдөлгүүрээр эргэлддэг гурван үндсэн бүрэлдэхүүн хэсэг байдаг. Би GoPro бэхэлгээг өөрийн хэмжээтэй нийцүүлэн зохион бүтээсэн.

Бүх 3D дизайны.step файлыг доод хэсэгт хуваалцаж, засварлахад хялбар болгоно.

Алхам 4: Хяналтын механизм

Image
Image

Миний Гимбал төслийн гол алгоритм нь Эйлерийн өнцгөөс өөр Quaternion эргэлтийг ашигладаг. Би helper_3dmath.h номын санг Quaternion алгоритмыг ашиглан жигд хөдөлгөөнийг идэвхжүүлэх лавлагаа болгон ашигласан. Хэдийгээр давирхай тэнхлэгийн хариу үйлдэл жигд боловч өнхрөх тэнхлэг нь саваа хөдөлгөөнд хариу өгөхгүй хоцордог. Quaternion алгоритмыг ашигласнаар Roll болон Pitch серво моторуудыг удирдах боломжтой болсон. Хэрэв та хазайлтын тэнхлэгийг ашиглахыг хүсч байвал хазайлтын тэнхлэгийг хянахын тулд хоёр дахь MPU6050 -ийг ашиглах шаардлагатай болно. Өөр нэг шийдэл болгон би HC-05-ийг тохируулж, товчлуур ашиглан андройд аппликейшн ашиглан алсын зайнаас удирддаг. Товчлуурыг дарах бүрт эргүүлэх тэнхлэгийн servo 10 градус эргэдэг.

Энэ төсөлд миний гаднаас импортлох ёстой байсан номын сангууд дараах байдалтай байна.

1- I2Cdev.h // MPU6050-тай холбоо тогтоохын тулд утастай.h хамт ашигладаг

2- "MPU6050_6Axis_MotionApps20.h" // Гироскопын номын сан

3- // Энэ нь дижитал тээглүүрийг RX ба TX зүү болгон хөрвүүлэх боломжийг олгодог (HC-05 bluetooth модуль хэрэгтэй)

4-

5- // Энэ нь хоёр өгөгдлийн зүү (SDA ба SCL) ашигладаг I2C төхөөрөмжтэй харилцах боломжийг олгодог => MPU6050

Үндсэн кодыг Жефф Роугберг бүтээсэн бөгөөд би үүнийг өөрийн төслийн онцлогт тохируулан өөрчилж, ino файл дахь бүх функцийг тайлбарласан болно.

Зөвлөмж болгож буй: