Hello I am a high school senior taking a provided Engineering Design and Development class were we work on a year-long project. For my project I am attempting to interface Vex IQ’s Smart Ratio with a gesture controlled armband known as the Myo which can detect specific hand gestures made by the wearer through EMG sensors in the band (found here: https://www.myo.com). My goal is to replace the standard Vex IQ controller with this armband to enable full control of the robot with just the motions of a hand. With this project completed I plan to demonstrate it to younger students (grades 5-8) local schools in the area.
I am still fairly new at programming however and am unsure to what extent the Smart Radio can be manipulated. Currently I am trying to determine the mode of allowing communication between the Myo armband and the Smart radio (such as creating and app for the Myo to control the pre-existing RobotC VEX IQ Dashboard app on iOS to, in turn, control the robot; or to try establishing a direct link from the Myo to the Smart radio.)
Any help or advice with this project would be greatly appreciated!
Sounds like a cool project. You can start with the below thread to just familiarize with BT messaging. First steps might be to go through some middle interface before attempting direct link to smart radio. That might give you better understanding and new ideas.
Actually, for controller-like interface, direct emulation might be the simplest way. The controller is just periodically sending one kind of update, where all the values are encoded in a single binary message. Likely the most straightforward thing a BTLE peripherial could do. So as long as “Myo app” is something running on Myo and able to control its BTLE radio, it should be quite easy on the communication side of things.
I would honestly prefer to establish a direct interface between the Myo and Smart Radio but I keep running into the term “xcode” in the Smart Radio SDK. My partner has a Mac laptop and was able to open up a few of these files, but we don’t quite know where to start, let alone how to modify it. As for indirect communication to the VEX IQ cellphone app might be difficult considering app to app communication is difficult in iOS.
I have looked a little more into Myo and I’m afraid the task is only possible with a bridge device - Myo doesn’t allow “apps” on the device itself. All the Myo apps are applications for devices receiving data from Myo (PC, cell phones). Even Myo’s own demo of controlling Sphero BB-8 is implemented as a bridge - an app running on iPhone talking both to Myo and the Sphero, forwarding the data.
In the Myo forum, someone mentioned writing a completely custom firmware for Myo, but that’s a major undertaking likely with a lot of reverse engineering involved, much harder that writing an iPhone bridge…
(Note that there is no app-to-app communication in the bridge case, you have a single app that just talks to two devices, translating the messages as necessary)