Some new stuff
  1. Arduino Park Control
  2. Arduino USB2serial programming the bare bone
  3. Arduino Projects Videos added
  4. Arduino Xbee projects
  5. Arduino dB Meter 
  6. Trying to get the IOIO going. 
  7. IOIO is going....bluetooth
  8. Attiny 2313 bluetooth bee RC car
  9. Compass and temperature added
  10. AVR programmer
  11. USB2Serial and Ethernet POE
  12. Arduino LPG Sensor
  13. Program the Arduino Mini 05
  14. Lipo Rider Pro in action
  15. EZ Robot Builder kit arrived 10 Nov 2012
  16. Arduino VA Meter!
  17. 05 Nov 2012 Project Sentry Gun.
  18. Attiny85 PIR Sensor 10 Dec 2012 
  19. 0-30VDC3A and 2-28VDC10A bench PSU's
  20. 19 Dec 2012 Arduino Voltmeter LCD
  21. 29 Dec 2012 Arduino Tachometer&Speedometer LCD
  22. 03 Jan 2013 Arduino AC Phase Control. 
  23. 18 Jan 2013 Arduino Distance Meter
  24. 22 Jan 2013 Arduino Digital Clock and Date
  25. 31 Jan 2013 Arduino Digital Clock and Date 8x2 LCD
  26. Feb 2013 LCD and Backpack
  27. Feb 2013 7 Segment Serial Clock Sparkfun. Distance Sensor with "newping" library
  28. Feb 2013 Lelo Remote
  29. 01/03/2013 Arduino Adafruit 7 Seg Digital Clock with RTC and backpack 
  30. Arduino Frequency Meter 26/03/2013
  31. Another RC  Car controlled by Arduino 06/04/2013
  32. My quadcopter project update 25 April 2013
  33. My Aqua Quad Copter Flying 26 April 2013enlightened
  34. Another monster RC truck;strong one! 11July2013cool
  35. X-Frame Quad Copter 31 July 2013cool
  36. Arduino GSM Sheild added.28/8/2013
  37. 1.8inch TFT screen 13/09/2013cool
  38. 04/11/2014 added PID Soldering Iron Control
  39. Added bluetooth servo control 04/11/2014
  40. ESP8266 first try.16/03/2015
  41. Arduino Uno Quadcopter 19 May 2015
  42. IOT WemosD1 Amp Meter

 

 




DFRobot Tank Rover Bluetooth.docx

DF Robot rover with bluetooth connection.Android application to control. 

DF Tank Rover Robot kit from DF.

Making use of Arduino, easyVR speech recognition sheild and DF i/o expansion sheild. 

This project is in its beginning phases. I need to study the voice recognition sheild module from VR.

The tank chasis /body is assembled already.

As a matter of fact I got the rover to work with commands from the keybord.

The next step will be speech recognition. In the mean time I am playing with the Xbee in other projects to get use to the Xbees which are also utilized in this tank project regarding speech recognition.

07 Sept 2012 and I am still not ready with voice recognition.

But in the meantime see the rover with arduino and bluetooth control with the aid of a android application from the market. It is called "Bluecontrol"

Video HERE

I recently (22/02/2013) bought an android application called Andruino and this application enables you with voice recognition in a fine manner.

This is a screenshot from the application:

I can even control my Rover with SMS and preset received text.

I took the sample code from the author translated it to English and changed the code to control the DF Rover:

Video HERE

int E1 = 6; //M1 Speed Control
int E2 = 5; //M2 Speed Control
int M1 = 8; //M1 Direction Control
int M2 = 7; //M2 Direction Control
const char CONFIRM = 59;//Constant character (59 = ';') indicating that the command should be executed
const int LED = 13; 
String data = "";// Variable of type String (text) responsible for receiving commands sent by the application Andruino

void setup()
{
  Serial.begin(9600);
  Serial.flush();//Waiting to transmit data output of the serial communication is completed
  pinMode(LED, OUTPUT);
}
void loop()
{
  int leftspeed = 255; //255 is maximum speed
  int rightspeed = 255;
  receivedData();//Call function 'receivedData ()' responsible for reading data on Serial Communication
}
// Function responsible  for moving forward
void forward()
{
  analogWrite(E1,255);
  digitalWrite(M1,LOW);
  analogWrite(E2,255);
  digitalWrite(M2,LOW);
}

// Function responsible  for moving right
void right()
{
  analogWrite(E1,255);
  digitalWrite(M1,LOW);
  analogWrite(E2,255);
  digitalWrite(M2,HIGH);
}
// Function responsible  for reverse
void reverse()
{
  analogWrite(E1,255);
  digitalWrite(M1,HIGH);
  analogWrite(E2,255);
  digitalWrite(M2,HIGH);
}
// Function responsible  for moving left
void left()
{
  analogWrite(E1,255);
  digitalWrite(M1,HIGH);
  analogWrite(E2,255);
  digitalWrite(M2,LOW);

// Function responsible  for stop
void stop()
{
  digitalWrite(E1,LOW);
  digitalWrite(E2,LOW);
}  

// Function responsible for lighting the LED (13)
void igniteLED()
{
  digitalWrite(LED, HIGH);
}
//Function responsible for clearing the LED (13)
void clearLED()
{
  digitalWrite(LED, LOW);
}
// Function responsible for turn on and off the LED (13) three times at intervals of 500 milliseconds (0.5 second)
void blinkLED()
{
  for (int i=0; i<3; i++) {
    igniteLED();
    delay(500);
    clearLED();
    delay(500);
}
}

// Function responsible for receiving data through Serial communication and concatenate them (adding them) in the variable 'data'
// When the character received is equal to the constant CONFIRM (';'), the 'receivedData ()' will be called
// When the function 'processingData ()' has been executed, the 'clear ()' will be called
void receivedData()
{
  if (Serial.available() > 0)
{
  char receivedByte = Serial.read();
  Serial.flush();
  if (receivedByte == CONFIRM)
{
  processingData();
  clean();
 } else
{
   data += receivedByte;
}}}
//Function responsible for identifying and draw (s) function (s) corresponding (s) from the value received by the Serial Communication (stored in the variable 'data')
//For example: If the contents of the variable 'data' is equal to "IGNITE", function 'igniteLED ()' will be called.
void processingData()
{
  Serial.println(data);
  Serial.flush();
  if(data.equalsIgnoreCase("forward"))
{
    forward();
} else if(data.equalsIgnoreCase("reverse"))
{
    reverse();
} else if(data.equalsIgnoreCase("left"))
{
  left();
} else if(data.equalsIgnoreCase("stop"))
{
   stop();
} else if(data.equalsIgnoreCase("right"))
{
   right();   
}  else if (data.equalsIgnoreCase("IGNITE")) {
    igniteLED();
  } else if (data.equalsIgnoreCase("CLEAR")) {
    clearLED();
  } else if (data.equalsIgnoreCase("BLINK")) {
    blinkLED();
 }
}

// Function responsible for clearing the contents of the variable 'data', preparing it for a new reading by Serial Communication
void clean() {
  data = "";
}

 

Back Back to top