Ingo Lohs
Published © LGPL

Easy Robot Controlled by Your Smartphone via Bluetooth

Cheap and easy to make.

BeginnerFull instructions provided1 hour1,418

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
DFRobot - #DRI0001 - Motor Shield
You can buy this item on ebay: https://www.ebay.de/itm/123867901311
×1
9V battery (generic)
9V battery (generic)
a magnet hold the battery for easy changing
×1
Bluetooth HM-10
the HM-10 works with iPhone
×1
Jumper wires (generic)
Jumper wires (generic)
×1
DC motor (generic)
2 pieces
×1
acrylic board or a wooden board
×1
wheels
2 pieces
×1
9V Battery Clip
9V Battery Clip
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Code

Motor Shield - Example Code

C/C++
//This motor shield use Pin 6,5,7,4 to control the motor
// Simply connect your motors to M1+,M1-,M2+,M2-
// Upload the code to Arduino/Roboduino
// Through serial monitor, type 'a','s', 'w','d','x' to control the motor
// www.dfrobot.com
// Last modified on 24/12/2009

int EN1 = 6;
int EN2 = 5;  //Roboduino Motor shield uses Pin 9
int IN1 = 7;
int IN2 = 4; //Latest version use pin 4 instead of pin 8

void Motor1(int pwm, boolean reverse) {
  analogWrite(EN1, pwm); //set pwm control, 0 for stop, and 255 for maximum speed
  if (reverse)  {
    digitalWrite(IN1, HIGH);
  }
  else  {
    digitalWrite(IN1, LOW);
  }
}

void Motor2(int pwm, boolean reverse) {
  analogWrite(EN2, pwm);
  if (reverse)  {
    digitalWrite(IN2, HIGH);
  }
  else  {
    digitalWrite(IN2, LOW);
  }
}

void setup() {
  int i;
  // for(i=6;i<=9;i++) //For Roboduino Motor Shield
  // pinMode(i, OUTPUT);  //set pin 6,7,8,9 to output mode

  for (i = 4; i <= 7; i++) //For Arduino Motor Shield
    pinMode(i, OUTPUT);  //set pin 4,5,6,7 to output mode
  Serial.begin(9600);
}

void loop() {
  int x, delay_en;
  char val;
  while (1)  {
    val = Serial.read();
    if (val != -1)    {
      switch (val)      {
        case 'w'://Move ahead
          Motor1(200, true); //You can change the speed, such as Motor(50,true)
          Motor2(200, true);
          break;
        case 'x'://move back
          Motor1(200, false);
          Motor2(200, false);
          break;
        case 'a'://turn left
          Motor1(150, false);
          Motor2(150, true);
          break;
        case 'd'://turn right
          Motor1(150, true);
          Motor2(150, false);
          break;
        case 's'://stop
          Motor1(0, false);
          Motor2(0, false);
          break;
      }
    }
  }
}

Credits

Ingo Lohs
182 projects • 198 followers
I am well over 50 years and come from the middle of Germany.
Contact

Comments

Please log in or sign up to comment.