Obsah:
- Krok 1: Součásti
- Krok 2: Implementace 3 servomotorů + MPU6050 Gyro + HC-05
- Krok 3: 3D design a funkčnost
- Krok 4: Mechanismus ovládání
Video: Roll and Pitch Axis Gimbal for GoPro using Arduino - Servo and MPU6050 Gyro: 4 Steps
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Tento instruktáž byl vytvořen při splnění požadavku projektu Makecourse na University of South Florida (www.makecourse.com)
Cílem tohoto projektu bylo postavit 3osý kardan pro GoPro pomocí Arduino nano + 3 servomotory + gyroskop/akcelerometr MPU6050. V tomto projektu jsem ovládal 2osé (Roll and Yaw) pomocí gyroskopu/akcelerometru MPU6050, třetí osa (yaw) se ovládá dálkově a ručně pomocí aplikace HC-05 a Arduino BlueControl, která je v Android App Store.
Tato práce také zahrnuje všechny 3D návrhové soubory mechanických součástí Gimbalu. Ve spodní části jsem sdílel soubory.stl pro snadný 3D tisk a soubory 3D designu.
Na začátku mého projektu bylo mým plánem vybudovat 3osý kardan se 3 bezkartáčovými motory, protože bezkartáčové motory jsou ve srovnání se servomotory hladké a citlivější. Střídavé motory se používají ve vysokorychlostních aplikacích, takže můžeme upravit rychlost nákupu motoru ESC (regulátor). Ale abych mohl v projektu Gimbal používat bezkartáčový motor, uvědomil jsem si, že musím řídit střídavý motor jako servo. U servomotorů je poloha motoru známá. Ale v bezkartáčovém motoru neznáme polohu motoru, takže je to nevýhoda bezkartáčového motoru, u kterého jsem nemohl přijít na to, jak ho řídit. Nakonec jsem se rozhodl použít 3 servomotory MG995 pro projekt Gimbal vyžadující vysoký točivý moment. Ovládal jsem 2 servomotory pro osu naklápění a stoupání pomocí gyroskopu MPU6050 a servomotor osy stáčení jsem ovládal pomocí bluetooth a Android aplikace HC-05.
Krok 1: Součásti
Komponenty, které jsem použil v tomto projektu;
1- Arduino Nano (1 jednotka) (Micro USB)
2- servomotory MG995 (3 jednotky)
3-osý akcelerometr/gyroskop GY-521 MPU6050 (1 jednotka)
4- Modul Bluetooth HC-05 (pro dálkové ovládání osy zatáčení (Servo3))
4- 5V přenosná micro USB nabíječka
Krok 2: Implementace 3 servomotorů + MPU6050 Gyro + HC-05
Servo zapojení
Servo1 (Roll), Servo2 (Pitch), Servo3 (Yaw)
Servomotory mají 3 vodiče: VCC (červený), GND (hnědý nebo černý), PWM (žlutý).
D3 => Servo1 PWM (žlutý vodič)
D4 => Servo2 PWM (žlutý vodič)
D5 => Servo3 PWM (žlutý vodič)
5V PIN Arduina => VCC (červený) ze 3 servomotorů.
GND PIN Arduina => GND (hnědý nebo černý) 3 servomotorů
MPU6050 gyroskopické zapojení
A4 => SDA
A5 => SCL
PIN 3,3 V Arduina => VCC MPU6050
GND PIN Arduina => GND MPU6050
Zapojení Bluetooth HC-05
D9 => TX
D10 => RX
PIN 3,3 V Arduina => VCC Bluetooth HC-05
GND PIN Arduina => GND Bluetooth HC-05
Krok 3: 3D design a funkčnost
Dokončil jsem 3D návrh Gimbalu odkazem na jiné Gimbals, které se prodávají na trhu. Existují tři hlavní součásti, které se otáčejí se servomotory. Navrhl jsem držák GoPro, který odpovídá jeho velikosti.
Soubor.step všech 3D návrhů je sdílen ve spodní části, což usnadňuje úpravy.
Krok 4: Mechanismus ovládání
Hlavní algoritmus mého projektu Gimbal používá rotaci Quaternion, která je alternativou k Eulerovým úhlům. Jako referenci jsem použil knihovnu helper_3dmath.h, která umožnila plynulý pohyb pomocí algoritmu Quaternion. Přestože je odezva osy Pitch hladká, osa roll zpomaluje, aby reagovala na pohyb páčky. Pomocí algoritmu Quaternion jsem dokázal ovládat servomotory Roll a Pitch. Pokud chcete použít osu zatáčení, možná budete muset použít druhou MPU6050 pouze k ovládání osy zatáčení. Jako alternativní řešení jsem nakonfiguroval HC-05 a dálkově ovládal osu zatáčení pomocí aplikace pro Android pomocí tlačítek. Při každém stisknutí tlačítka se servo osy vytočení otočí o 10 stupňů.
V tomto projektu jsou knihovny, které jsem musel externě importovat, následující:
1- I2Cdev.h // Používá se s wire.h k povolení komunikace s MPU6050
2- "MPU6050_6Axis_MotionApps20.h" // knihovna gyroskopu
3- // Umožňuje převádět digitální piny na piny RX a TX (Je potřeba pro bluetooth modul HC-05)
4-
5- // Umožňuje komunikaci se zařízeními I2C, které používají dva datové piny (SDA a SCL) => MPU6050
Hlavní kód je vytvořen Jeffem Rowbergem a já jsem jej upravil podle funkcionality svého projektu a všechny funkce okomentoval v souboru ino.
Doporučuje:
Motion Control With Raspberry Pi and LIS3DHTR, 3-Axis Accelerometer, Using Python: 6 Steps
Řízení pohybu S Raspberry Pi a LIS3DHTR, 3osým akcelerometrem, pomocí Pythonu: Krása nás obklopuje, ale obvykle musíme chodit po zahradě, abychom to poznali. - Rumi Jako vzdělaná skupina, kterou se zdáme být, investujeme drtivou většinu své energie do práce před našimi počítači a mobilními telefony. Proto často necháváme naši pohodu
Tutorial: How to Make a Simple Temperature Sensor by using DS18B20 and Arduino UNO: 3 Steps
Tutorial: How to Make a Simple Temperature Sensor by using DS18B20 and Arduino UNO: Description: This tutorial will show you a few simple steps how how to make temperature sensor automated. Trvá jen několik minut, než se váš projekt stane skutečností. Hodně štěstí ! Digitální teploměr DS18B20 poskytuje 9bitovou až 12bitovou teplotu Celsia
Augmented Reality (AR) for Dragonboard410c or Dragonboard820c using OpenCV and Python 3.5: 4 Steps
Augmented Reality (AR) for Dragonboard410c or Dragonboard820c using OpenCV and Python 3.5: This instructables describes how to install OpenCV, Python 3.5, and dependencies for Python 3.5 to run the augmented reality application
IOT Base Computing using Nodemcu and Micropython: 11 Steps
IOT Base Computing pomocí Nodemcu a Micropython: V tomto tutoriálu použiji k připojení serveru připojení NodeMcu, micropython a Mqtt. Tento tutoriál používá připojení mqtt založené na https pro připojení z Nodemcu na server Adafruit.io. V tomto projektu jsem pomocí programovacího jazyka mikropythonu
DIY Wave Tank/flume using Arduino and V-slot: 11 Steps (with Pictures)
DIY Wave Tank/flume pomocí Arduina a V-slotu: Wave tank je laboratorní zařízení pro pozorování chování povrchových vln. Typickou vlnovou nádrží je krabice naplněná kapalinou, obvykle vodou, přičemž nahoře zůstává otevřený nebo vzduchem naplněný prostor. Na jednom konci nádrže generuje pohon vlny; druhý e