Wireless Robot V2 (Support WiFi & Bluetooth)




Posted in TechnologyMicrocontrollers

Introduction: Wireless Robot V2 (Support WiFi & Bluetooth)

About: Electrical Engineer

Step 1: Car Structure

I get The motors ,gear box and tires from two broken car kids toys from Scrap market nearby , they cost me about 10$ and I connect them using din rail and plastic as shown in the pictures.

Step 2: Connection Digram

Using the Serial pins of ATMEGA16 MCU is The Concept of this circuit and it consist from :

1- H-Bridge Motor driver using two L298.
2- Atmega16 MCU.
3- LEDs Driver using ULN2003.
4- Serial Bluetooth Module.
5- Serial-To-Ethernet converter.
6- WiFi Wireless access point.
7- Easy N surveillance IP cam.
8- 12 Volt battery with 7809 & 7805 voltage regulator  for router and IP cam .
9- 6 Volt Battery for motors. 

Step 3: H-Bridge Circuits

two L298 dual H-bridge driver connected as shown in the pictures .
the motors working on 6 volt with 2.4 Amp. maximum current for each.
L298 Data sheet attached.

Step 4: LED Driver

ULN2003 Darlington transistor arrays is a fast solution  and provide 7 output.
The circuit shown in attached picture.
Datasheet attached.

Step 5: Controller Circuit

The source code debugged by ATMEL AVR studio 4 with AVR MKII ISP .
The Scenario of the code depending on:
1-Enabling the RX/TX of ATMEGA16 MCU.
2-Sending the ASCII code from  the PC or Tablet .
3-Translate the ASCII code by the MCU  to a specific output in port A and port C.

The fuse bit  for 16 Mhz external frequency resonator  should be set to :High: 0xC9 , Low: 0xFF as shown in the attached picture. 


ATmega16  16MHz external frequency resonator
Baud Rate 9600 No Parity,1 Stop Bit,Flow Control:None

#include <avr/io.h>
#include <inttypes.h>
#include <util/delay.h>

void USARTInit(uint16_t ubrr_value)

   //Set Baud rate
   UBRRL = ubrr_value;     
   UBRRH = (ubrr_value>>8);

   UCSRC=(1<<URSEL)|(3<<UCSZ0);   // Set Asynchronous mode,No Parity ,1 StopBit 
   UCSRB=(1<<RXEN)|(1<<TXEN);     //Enable The receiver and transmitter


char USARTReadChar()
while(!(UCSRA & (1<<RXC)))
   // do nothing
return UDR;

void USARTWriteChar(char data)
while(!(UCSRA & (1<<UDRE)))
  //do nothing

void main()
char data;
USARTInit(103);  //for 16Mhz and baud 9600 UBRR = 103 and for  baud 19200 UBRR = 51 

if (data==0x71){PORTC=0b10000000;USARTWriteChar('Q');} //q in ascii
if (data==0x77){PORTC=0b00001001;USARTWriteChar('w');} //w in ascii Forward
if (data==0x65){PORTC=0b01000000;USARTWriteChar('e');} //e in ascii
if (data==0x61){PORTC=0b00000011;USARTWriteChar('A');} //a in ascii Left
if (data==0x73){PORTC=0b00000000;USARTWriteChar('s');} //s in ascii Stop
if (data==0x64){PORTC=0b00001100;USARTWriteChar('d');} //d in ascii Right
if (data==0x7A){PORTC=0b00100000;USARTWriteChar('z');} //z in ascii
if (data==0x78){PORTC=0b10000110;USARTWriteChar('x');} //x in ascii Backward
if (data==0x99){PORTC=0b11110000;USARTWriteChar('c');} //c in ascii

if (data==0x69){PORTC=0b00001001;_delay_ms(200);PORTC=0b00000000;} //i in ascii Forward
if (data==0x6A){PORTC=0b00000011;_delay_ms(200);PORTC=0b00000000;} //j in ascii Left
if (data==0x6C){PORTC=0b00001100;_delay_ms(200);PORTC=0b00000000;} //l in ascii Right
if (data==0x6B){PORTC=0b00000110;_delay_ms(200);PORTC=0b00000000;} //k in ascii Back

if (data==0x31){PORTA=0b00000001;USARTWriteChar('1');} //1 in ascii //2 LED On
if (data==0x32){PORTA=0b00000010;USARTWriteChar('2');} //2 in ascii //4 LED on
if (data==0x33){PORTA=0b00000111;USARTWriteChar('3');} //3 in ascii //6 LED on
if (data==0x34){PORTA=0b00001000;USARTWriteChar('4');} //4 in ascii //Red LED on
if (data==0x35){PORTA=0b00010000;USARTWriteChar('5');} //5 in ascii
if (data==0x36){PORTA=0b00100000;USARTWriteChar('6');} //6 in ascii
if (data==0x37){PORTA=0b01000000;USARTWriteChar('7');} //7 in ascii
if (data==0x38){PORTA=0b10000000;USARTWriteChar('8');} //8 in ascii
if (data==0x39){PORTA=0b00000000;USARTWriteChar('9');} //9 in ascii //All Off 
   else {}

Step 6: Serial to Ethernet Converter

I get the module from below website :

VDD to 5 Volt.
GND to negative.
RX to TX of ATmega16.
TX to RX of Atmega16.
CFG :Normal Mode when connected to positive , Configuration mode when connected to negative.

Also RS232 to TTL module required  to configure this module .

You can download all the documents from the mentioned website.

For this Project I configure the setting for the converter  as below:
Work Mode   : TCP/IP clinet.
Module IP     : 
Subnet Mask:
Default gateway :  (Access point IP).
Parity/data/stop  :None /8/1
Destination IP    :  (Laptop IP).
Destination Port: 8234.
Baud Rate    : 9600

Step 7: Com-Redirector Software

Com-Redirector software used to create Virtual com in the Laptop because there is no direct physical connection to the laptop ,you can also use virtual serial ports emulator software from http://www.eterlogic.com/Downloads.html

Putty or hyper terminal software can be used to send information through this virtual serial port.
please watch the video for more information .

Step 8: Serial Bluetooth Module

I get the Slave Mode Serial Bluetooth module from below web site(all document included):
Pass Key:1234


About the software you can download android Bluetooth Controller  software from android market ,its amazing software and easy to use.

Step 9: Switch Selector

in the end I connect a selector switch  to select the wireless  mode (WiFi or Bluetooth).  



    • Pocket-Sized Contest

      Pocket-Sized Contest
    • Spotless Contest

      Spotless Contest
    • Trash to Treasure

      Trash to Treasure

    We have a be nice policy.
    Please be positive and constructive.




    sir can you please say me how to draw the data flow diagram for this robot??

    Hey, Sorry to ask but please.. can you mention the links of these items which are sold on online international shopping websites.. the links you mentioned is not delivered in my country(India)...for ex. Amazon, Flipkart, Snapdeal, Ebay.

    Hi Husham Samir, you're project wonderful(Wireless Robot V2), i want to create it, can i have pdf and program this project. please send article to my email:mohsennoruzi@gmail.com. thankyou

    dear sir
    nice and great work. i like to test this project, can i get PDF file of this full project?
    please can you send it to my email. my Email is Indrajith105@gmail.com. thank you,

    best regards

    instead of using serial to ethernet converter, i'm using serial to usb and usb to ethernet combo. But i still don't know how to send control values from putty to the microcontroller for the controlling part. Can you help me plz?

    1 reply

    okay explain more how did you connect these two things together and how you connected to MCU.
    for putty and how to send Information ,I previously told you to read the below tutorial from extreme electronic , every things mentioned there .

    How to send control the rover by putty? what values do i have to input in putty to move the rover? i saw your video but couldn't understand it. Help please!

    CD included with the converter

    well I get it free when I bought the converter.

    I'm sorry to bother you, but can u please send me the com redirector software as a zip file to my mail id.I will be highly grateful to you if you did.

    Step 6: Serial to Ethernet Converter

    I bought a TP-LINK wireless N ADSL2+ modem router for the wi-fi access point. I just want to know how to give a portable power supply for the router that will be placed on the rover.

    3 replies

    First of all check the DC voltage needed in your wireless TP link.
    in my case TP link took 9 volt 1 Amp so I use L7809CT voltage regulator TO-3 type

    read the quick manual for this router
    set the wireless as access point (AP) and put an SSID name for it.

    I am stuck with pairing of Bluetooth module and mobile android app.
    It is asking pass key again and again

    1 reply

    Hi if you are using the same bluetooth module ,the pass key is 1234
    if it didn't work check the web site belong for this bluetooth module.