Example Code for Arduino-Bluetooth Control
Flamewheel Bluetooth Control Program suitable for Romeo BLE Mini MCU.
Hardware Preparation
- Romeo Mini x 1
- Motor x 2
- 4 x AAA Battery Holder x 1
- AAA batteries x 4
- Laser Cut Wood Frame
- Silicone Ring x 1
- Screws
- Small Phillips Screwdriver x 1
Software Preparation
- Arduino IDE 1.0.6 Click to download Arduino IDE
Please note you will need to install Romeo BLE Mini Arduino Library and Goble Arduino Library first.
Because some libraries was updated in new version Arduino IDE , we suggest you using Arduino IDE 1.0.6
Wiring Diagram
- Route wires through assembly as pictured:


- After installing the frame, connect motor and power wires

Other Preparation Work
Refer to the Flame Wheel Vehicle Instruction for frame assembly
Connect a USB cable and upload the code to your Flamewheel using Arduino IDE.
Sample Code
/* -----Flamewheel Bluetooth Control Program
//------2016.6.29 by LL
//------Suitable for Romeo BLE Mini MCU
//https://www.dfrobot.com/index.php?route=product/product&product_id=1367&search=ble+mini&description=true#.V8AR1q11Zfc
*/
#include "GoBLE.h"
#include <Romeo_m.h>
#define LED 13
//GoBLE Goble(Serial);
int joystickX, joystickY;
int buttonState[7];
unsigned int led_count;
void setup() {
Romeo_m.Initialise();
Goble.begin();
pinMode(LED, OUTPUT);
}
void loop() {
if (Goble.available())
{
readGoBle();
motorContrl();
}
delayLedBlink();//delay 10ms and led blink
}
//Read GoBLE values
void readGoBle()
{
// read joystick value when there's valid command from bluetooth
joystickX = Goble.readJoystickX();
joystickY = Goble.readJoystickY();
// read button state when there's valid command from bluetooth
buttonState[SWITCH_UP] = Goble.readSwitchUp();
buttonState[SWITCH_DOWN] = Goble.readSwitchDown();
buttonState[SWITCH_LEFT] = Goble.readSwitchLeft();
buttonState[SWITCH_RIGHT] = Goble.readSwitchRight();
buttonState[SWITCH_SELECT] = Goble.readSwitchSelect();
buttonState[SWITCH_START] = Goble.readSwitchStart();
/*Serial.println("========================");
Serial.print("Joystick Value: ");
Serial.print(joystickX);
Serial.print(" ");
Serial.println(joystickY);
for (int i = 1; i <= 6; i++) {
if (buttonState[i] == PRESSED) {
Serial.print(" ID: ");
Serial.print(i);
Serial.print("\t ");
Serial.println("Pressed!");
}
if (buttonState[i] == RELEASED){
Serial.print("ID: ");
Serial.print(i);
Serial.print("\t ");
Serial.println("Released!");
}
}*/
}
//Move according to GoBLE value
//Joystick left and right to turn bends, left and right buttons to spin on the spot
void motorContrl()
{
if ((buttonState[SWITCH_UP] == PRESSED) || ((joystickX > 128) && (joystickY >= 64) && (joystickY <= 192)))
{
Romeo_m.motorControl(Forward, 200, Forward, 200); //go forward
return;//end function
}
if ((buttonState[SWITCH_DOWN] == PRESSED) || ((joystickX < 128) && (joystickY >= 64) && (joystickY <= 192)))
{
Romeo_m.motorControl(Reverse, 150, Reverse, 150); //go backwards
return;//end function
}
if (buttonState[SWITCH_LEFT] == PRESSED)
{
Romeo_m.motorControl(Reverse, 100, Forward, 100); //turn left
return;//end function
}
if ((joystickY < 128 ) && (joystickX >= 64 ) && ( joystickX <= 192) )
{
Romeo_m.motorControl_M1(Forward, 80); //turn left big bend
Romeo_m.motorControl_M2(Forward, 200);
return;//end function
}
if ( buttonState[SWITCH_RIGHT] == PRESSED)
{
Romeo_m.motorControl(Forward, 100, Reverse, 100); //turn right
return;//end function
}
if ((joystickY > 128) && (joystickX >= 64) && (joystickX <= 192))
{
Romeo_m.motorControl_M2(Forward, 80); //turn right big bend
Romeo_m.motorControl_M1(Forward, 200);
return;//big bend
}
Romeo_m.motorStop();//no stop button is pressed
}
//led blink funtion, each execution delay 10ms. every 100 times level inverted
void delayLedBlink()
{
delay(10);
led_count++;
if (led_count > 100)
{
digitalWrite(LED, !digitalRead(LED));
led_count = 0;
}
}
Result
You will now be in control! The flame wheel robot can move forward, backward, turn left, turn right, and make big bends based on joystick and button inputs from the GoBLE app. The LED on pin 13 blinks every 1000ms (delay 10ms * 100).
Additional Information

1. Scan the QR code or manually download and install GoBLE (currently supported by iOS only)
2. After installing GoBLE, enable Bluetooth on your device and start the GoBLE app
3. Scan for devices by clicking the magnifying glass at the top
4. Select your device

Was this article helpful?
