The purpose of this application is to demonstrate and implement various gesture controls. We have created a robot using an Arduino and controlled it using a Myo armband. We have also developed an android app that allows a user to control the movement of the robot via Bluetooth with the help of buttons presented in an app. The app also integrates the a speech recognition feature, which means, you could directly talk to your app and robot will react appropriately to your voice commands.
- This project uses an Arduino Uno R3 as the main controller board. All other devices will interface with this board through the input / output pins to the 'ATmega328P' microcontroller.
- A Myo armband will communicate over Bluetooth to the host PC through to the Arduino over a USB cable.
- The motors are driven by a dedicated 'LM298N' driver board. The pins 5, 6, 9 and 10 will be connected from the Arduino to this motor driver.
- There is also ultrasonic sensor, to be specific the 'HC-SR04' ultrasonic module. The sensor uses pin 3 and 4 on the Arduino to send and receive ultrasonic pulses that will detect any objects in front of the device.
Wave in (turn left)
Wave out (turn right)
Fist (forward)
Finger spread (back)
The process of building the chassis was quite simple. A couple of nuts & bolts attached the motors & controller board. The motor driver board was mounted on the underside of the chassis. Wiring was tricky, cable management was nightmare but in the end we think it came together fairly well.
The robot car can also be controlled by speech. A mobile app has been developed on the Android platform, link to the repository is here.. The user can speak directly to the mobile app with the phrases "Forward", "Back", "Left", "Right" and "Stop". The app will translate the speech to text and send the translated bytes to the Bluetooth chip. The Bluetooth chip will then communicate back to the Arduino to call the correct functions to control the motor driver which in turn will direct the dc motors.
The chassis is based on 3mm thick sheet of plastic, all mounting holes were pre-drilled. There was just about enough space to mount a 3s LiPo battery, breadboard, motors + gearboxes, motor driver and microcontroller.
The underside of the chassis holds the breadboard into place along with most of the wiring & jumper cables. The motor driver is also visible.
Up close shot of the wiring on the breadboard
The Bluetooth chip has been added to extend the functionality of the car. All details about the Bluetooth module can be found here..
First you need to upload the sketch to your Arduino board. Then run the application in the bin directory called 'MyoDuino.exe' to bind your Myo armband to your running Arduino. When you run the executable you should see a window pop asking which COM port your Arduino device is using to communicate with your PC. Un-tick the checkbox also to stop the Myo armband from locking. You should see the different poses appearing in the terminal window. Also make sure your Myo armband is up to temperature before attempting to control the robot, as Myo only registers poses correctly when the armband is up to body temperature.