The tools we have
Debugging with an Oscilloscope
Finding time values for the PPM signal
What is the project?
We used a Myo armband to control the throttle, pitch, and roll of a very small quad-copter. It takes in data from the Myo about arm position and gestures , using PyoConnect to get the data into Python. It then sends that data to a radio transceiver, which tells the quad-copter what to do.
Why did we make it?
We thought it would look really, really cool.
Did we achieve our goal
Yes. It looked even cooler than we expected.
How did we do it?
So, as it happens, PyoConnect is has some great tools in the form of very useful callback functions, where we could put code to adjust the controls to our quadcopter. Once we found the right version, we created a program that would constantly send a signal to our transceiver and update the signal on arm movement.
Going from the radio to the quadcopter was very easy - it is what it's meant for.
The last piece was the fun part. There is no communication protocol set up to go from laptops to the average transceiver used for controlling drones. However, most transceivers have a port for receiving PPM (pulse position modulation), to allow for master/slave controllers. By outputting PPM from our audio jacks - yes, you did read that right, we had to output our instructions through the audio jack - we could have the computer act as the slave controller, sending instructions through the real transceiver to the drone. This completed our Myo - computer - transceiver - quadcopter chain or hardware hacks.
Accomplishments that we're proud of
We developed a module in Python that could be imported to any program, that would allow a computer to act like a radio for anyone with an aux cable and an existing transceiver.
What we learned
Audio is difficult to work with in Python - and, you can debug code with an oscilloscope.
What's next for Pyo Drone?
We are considering making our PPM code open source, as well as putting it on the python package index.