Solo has a great development environment but a lack of I/O. Currently the Accessory port breaks out CAN, Mavlink Serial to Pixhawk, and USB to Sololink(imx6). By using an arduino and firmata can add custom sensors, control servos, blink LEDs, or any other arduino function.
This tutorial will walk you through the steps of using an arduino with Solo to control a servo.
- Solo update 1.2.0 or greater
- Arduino IDE
- Putty or any other SSH Client
Step 1: Upload Firmata Host to Arduino Uno
Open StandardFirmata from the examples tab. Select board and port. Upload!
Note: The breakout board is not sold at this point. Please refer to here
- Connect to your Solo's Wifi network!
SSH into Solo using your OS's SSH client. For Windows we will use Putty.
Make sure you are still connected to Solo's Wifi!
See the photos captions for more details
Run this command in your SSH session:
cd ./PyMata-master/PyMata-master && python setup.py install
This should be your result
While your ssh session is still open run:
cd && python SoloServoSweep.py
from PyMata.pymata import PyMata import time import sys SERVO_MOTOR = 9 # servo attached to this pin END = 170 # Max servo travel # create a PyMata instance board = PyMata("/dev/ttyACM0") # configure pin as servo board.servo_config(SERVO_MOTOR) try: while True: for i in range (0,END): # sweep up board.analog_write(SERVO_MOTOR, i) time.sleep(.015) for i in range (END,0,-1): # sweep down board.analog_write(SERVO_MOTOR, i) time.sleep(.015) except KeyboardInterrupt: board.close() sys.exit()