Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
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.