Solo-drone servo-besturing met Arduino: Eenvoudige setup & sweep-tutorial
Onderdelen en benodigdheden
| Arduino UNO | 1 |
| 3DR Solo drone | 1 |
| Servo (Tower Pro MG996R) | 1 |
| Solo Breakout Board | 1 |
Over dit project
Introductie
De 3DR Solo heeft een geweldige ontwikkelomgeving, maar gebrek aan I/O. De accessoire-poort biedt CAN, Mavlink-seriële verbinding naar Pixhawk, en USB naar Sololink (i.MX6). Door een Arduino met Firmata toe te voegen, kun je aangepaste sensoren, servo's, LED's of andere Arduino-functies besturen.
Deze tutorial laat zien hoe je een servo kunt besturen met de Solo via een Arduino.
Software vereisten:
- Solo firmware 1.2.0 of hoger
- Arduino IDE
- FileZilla (voor bestandsoverdracht)
- PuTTY of andere SSH-client
Stap 1: Firmata Host naar Arduino Uno uploaden
Open in Arduino IDE: Bestanden → Voorbeelden → Firmata → StandardFirmata. Selecteer board en poort. Upload!
Stap 2: Hardware-opstelling
Onderdelen: Arduino Uno, Solo Breakout Board, servo, draden.
Let op: De breakout board is op dit moment niet commercieel verkrijgbaar. Zie GitHub voor ontwerpbestanden.
Montage
Stroom aan
Stap 3: pyMata en code downloaden
Download pyMata en het voorbeeldscript SoloServoSweep.py.
Stap 4: Bestanden naar Solo overbrengen
- Verbind met het WiFi-netwerk van de Solo.
- Gebruik FileZilla (SFTP, host: 10.1.1.1, gebruiker: root, wachtwoord: root) om bestanden naar
/home/root/te kopiëren.
Stap 5: SSH naar Solo
Gebruik PuTTY (host: 10.1.1.1, poort 22, gebruiker: root, wachtwoord: root). Zorg dat je nog steeds verbonden bent met Solo's WiFi.
Stap 6: pyMata installeren
Voer in SSH-sessie uit:
pip install pymata
Stap 7: Voorbeeld uitvoeren
Terwijl SSH-sessie open is, voer uit:
python SoloServoSweep.py
Python-code (SoloServoSweep.py)
from PyMata.pymata import PyMata
import time
import sys
SERVO_MOTOR = 9 # servo aangesloten op deze pin
END = 170 # Max servo bereik
board = PyMata("/dev/ttyACM0")
board.servo_config(SERVO_MOTOR)
try:
while True:
for i in range(0, END):
board.analog_write(SERVO_MOTOR, i)
time.sleep(.015)
for i in range(END, 0, -1):
board.analog_write(SERVO_MOTOR, i)
time.sleep(.015)
except KeyboardInterrupt:
board.close()
sys.exit()
Aangepaste onderdelen
Solo Breakout Board: Breakout board voor 3DR Solo accessoire-poort. Ontwerpbestanden: GitHub.
Schema
Productieproces
- Bluetooth-gecontroleerde Arduino Spybot bouwen
- FlickMote: Gebarengecontroleerde IR-afstandsbediening voor Slimme Huizen
- DIY Arduino TV-B-Gone: Universele TV-uit-schakelaar
- Bouw een Aangepaste LED Hoofdklok met Alarm – Zichtbaar vanaf 12 Meter
- Servo-gestuurde obstakelvermijdende robot: Bouw met Arduino & HC-SR04
- Find Me: Slimme Item Locator met Arduino en Bluetooth
- Geoptimaliseerde Voedingsoplossingen voor Arduino Projecten
- Arduino Boter-Kaas-Eieren met MAX7219 LED Matrix en Kartonnen Behuizing
- Bouw een Slimme Arduino Vierpotige Robot: Stap-voor-Stap Handleiding
- Arduino & MPU6050: Precieze Servomotor Besturing met SG90 & MG996R
- Bouw een Aangepaste Arduino Joystick Stuurwiel voor Gaming