Intel Arduino 101 based tank with BLE and Blynk!
This project uses the Intel Arduino 101 board that has built-in IMU and Bluetooth Low Energy (BLE). For the remote control, I used the free Blynk app which is available for Android and iPhone; it allows you to rapidly drag and drop some buttons to create a user interface. The chassis is a Dagu DG012 from Sparkfun.
I tried to power the whole rig from the 5 AA battery pack that came with the chassis but the Arduino kept resetting on low voltage. Ideally, I would use a nice LiPo battery pack, but to keep things simple and not expect beginners to learn about the care and feeding of LiPos and purchase a charger, I chose to power the motors separately from the Arduino using a USB Battery pack. Be sure to remove the optional battery jumper on the Adafruit motor shield, or else you can fry some things; the power sources need to be separated.
Video TutorialsThe video tutorial is broken into two videos: first is for hardware, mounting, and powering the electronics.
The second video covers creating the phone app and Arduino code.
Rover variantHere are the quick start instructions:
PartsTank Chassis or whatever platform you like.Polarized battery connector JST (Pictured I made one with header pins)4 jumper wiresArduino 101 boardMotor driver board (Adafruit Motor/Stepper Shield V2)4 M2.5 nylon standoffs with nuts and screws5 AA Batteries (For motors)USB Battery pack (For Arduino)Short USB A to USB B cable1” heat shrinkA few male and female header pins 0.1Two Zip ties
Hardware
Assemble the tank chassis, the instruction picture included is adequate, leave the top plate off of the chassis.Mount the Arduino to the top plate using standoffs. I prefer M2.5 nylon standoffs.WiringUse jumper wires to connect the motors to M1 and M2 headers on the Arduino Motor Shield.Install the polarized connector between the motor shield and the 5 AA battery pack. Leave the motor shield jumper removed to isolate motor power from Arduino power.Remove the top plate and insert some zipties to hold the USB battery connector.Blynk App
Download the Blynk App for Android or iPhone and create a new app.Drag four buttons, a slider, and the BLE widget to your new app.Edit the slider, it needs to write 0-255 to V0.The buttons are configured as momentary push buttons, they send a one while pressed and a 0 when released: Left Forward = V1, Right Forward = V2, Left Backward = V3 Right Backward = V4.From the Blynk app configuration click the button to email the authentication token to yourself, we will use this in the Arduino App.Arduino SoftwareDownload the Arduino sketch from Github
Open the sketch using the Arduino IDE. As of writing this post your IDE version should be somewhere between 1.6.7 and 1.6.13, older versions might not support Currie boards and 1.8.0 might not compile the code (experienced by several people at our last workshop) Open Tools –> Board –> Board Manager and search for “Arduino 101”, and make sure the board is installed, you can also upgrade to the latest version.Open Sketch –> Include Library –> Manage Libraries and search for “Adafruit Motor”, install the Adafruit Motor Shield V2 Library.Also search for and install the Blynk Library.Replace the auth[]
token with the one you emailed to yourself from the Blynk app created above.
If you have multiple Arduino 101 boards rename the blePeripheral.setLocalName
and blePeripheral.setDeviceName
variables so the names will be unique.
Update the Arduino 101 board firmware by changing your arduino programmer to "Arduino/Genuino 101 Firware Updater", and then selecting "Burn Bootloader"Be sure to switch the the Arduino Programmer back to "ArduinoISP"Download the sketch to your board, press the "Master Reset" button on the arduino, then dowload again for good measure.IT’S GO TIMEFrom the Blynk app click on the BLE widget, connect to your Arduino 101.Put the Blynk App in run mode.If you'r arduino 101 BLE service doesn't show up press the master reset button on the arduino.Play!Here are a couple other Arduino 101 chassis projects that I gained some inspiration from.
Arduino 101 BLE Rover
BLE Bot 9000
Comments