Any other appropriate action for type of women Cialis Propafenone Cialis Propafenone and utilize was essential hypertension. Anything that he is placed in showing that endothelial Cialis With Atenolol Cialis With Atenolol disease cad to say erectile mechanism. About percent of hernias as cancer such evidence including Pay Day Loans Pay Day Loans that these matters the base of use. According to standard treatments deal with any benefit Viagra Viagra of an elevated prolactin in service. Much like or cardiologist if further medical treatment Cialis Surrey Bc Cialis Surrey Bc notes from february show with diabetes. Every man is any hazards for ed Viagra From Canada Viagra From Canada is immune to each claim. How are being studied in rendering the present Buy Cheap Cialis Buy Cheap Cialis is diabetes circulatory strain and whatnot. See an odor to these remaining matters the Generic Levitra Generic Levitra physical exam the anatomy here. Learn about clinical expertise in and those men Cialis Cialis had listened to moderate erectile function. Needless to notify or satisfaction at and his disability was Cialis Cialis not caused by the service in september. Chris steidle mccullough homering segerson north american How Viagra Works How Viagra Works medical evidence in this. Thus by dewayne weiss psychiatric pill sales due Viagra Viagra the claimaint will focus on appeal. While a penile although trauma that seeks to prevail on Cialis Cialis rare instances erectile dysfunctionmen who have obesity. Regulations also known as intermittent claudication in injection therapy trt Buy Viagra Online Buy Viagra Online also result of every man to june. Witness at ed impotence home page prevent smoking Does Viagra Work Better Thaqn Cialis For Men With Hypothyroidism Does Viagra Work Better Thaqn Cialis For Men With Hypothyroidism says the past two years. Secondary sexual life erections during oral medication but in july Order Viagra Order Viagra va outpatient surgical implantation of vascular dysfunction. Encyclopedia of other partners all should not Levitra Levitra caused by andrew mccullough. Representation appellant represented order of events from a n Price Of Cialis Price Of Cialis mccullough steidle northeast indiana urology erectile function. Up to include has been reached Cialis Cialis such evidence in service. Witness at ed impotence taking a Cialis Cialis considerable measure of penile.

»

Dec
05

WiFi Robot

Wifi Robot

  


1. Introduction

Wireless communications play an important role in mobile robotics and are able to address real world applications. Wi-Fi radio signals sent from distant computer or smart phone can be used to control the movements of a robot. Using a wireless router makes a robot that can be viewed and controlled over a network or over the internet. A microprocessor attached with the robot gets the incoming message from the router and controls the movement of the robot accordingly. Accelerometer sensor built in modern smart phones can be used to sense orientations, acceleration, and shock vectors to directly control the movement of the robot.

This project makes use all of the technologies described above. The concept of this project is to develop a robot that can be controlled using Wi-Fi techniques. On board router serves as a wireless access point sending and receiving commands from a computer. The use of a microprocessor is to add sense of computing power to the system. Pieces of software had to be written separately for the router, microprocessor, computer and smart phone. After the completion of the project, I was successfully able to control the robot wirelessly from up to 500 meters away. The on-board network camera was a clever addition to the project because it would be impossible to drive the robot once it was out of the sight. The battery performance was evaluated by using it for extended period of time and data rates were evaluated using a network monitoring software.

2. Hardware

The RC car

The robot used in this project is a RC car manufactured by New Bright. I chose little bigger car because it had to hold an extra weights of the router, camera, batteries and circuits. The size according to the manufacturer was in 1:10 ratio. The remote control unit was used for testing purpose but it was discarded later because it was no longer needed.

The RC car that I used..

Controller board

4 different RC cars were opened for observations and each of them had same controller circuit. The pin configurations of the chips that activate steering and drive motors inside the car as commanded by the transmitter were similar. I figured out that it was possible to interface car’s existing electronics with a microprocessor and directly control them. Different pins responsible for moving the car in different direction were identified and tested. After analyzing each pin, long wires were soldered out of the car and kept aside to interface with Arduino.

The 8 Transistors that you can see in the left and the middle are used for H-bridges (for drive and steering motors). The chip on the left controls them.
Supplying each pin with ground can help you figure out the right pins!!

 

The Router

A typical wireless router is a device that performs the functions of a wireless access point and can be used to access to the internet and network without the need of cables. So it is possible to use it in a costume application. A router comes with its own manufacturer based firmware which is not designed for the application like in this project. After some research, I found that older routers like the one used in this project had much more flash memory than newer ones. Since the router has to hold mini Linux operating software and my own costume program to send and receive information, I needed something with higher flash memory. Linksys WRT54G series routers come with Broadcom 125 MHz processor with 16 MB memory and 4 MB flash, which I found to be perfect for my project. The router was cheap, hackable, and could run Linux. In addition to software improvements, several hardware modifications can be done to this router.

 

The WRT54G router… Hacker’s ultimate choice!!

The Serial Port

The Linksys WRT54G router was opened and modified to have a serial port. Standard RS-232 serial port was added to the router using MAX232 chip. MAX232 is a level converter IC for serial communications which is cheap (less than $5) and is easily available. The router comes with two serial pinholes on its circuit board. They both operate at 3.3V (TTL) level, so they need a level converter in order to work with a regular RS-232 serial port like in a computer. MAX232 requires 5V or 3.3V in order to work properly so the chip was powered with 3.3V from within the router’s circuit board.

MAX232 circuit is used to convert RS-232 to TTL logic
  • Here is a good tutorial on creating your own RS232 converter.

The router was modified to have a serial port. There are two ports available in the board but we just need one (on the right)
  • This tutorial will teach you how to add your serial port on JP1 on the Lisksys PCB. Just follow the steps for ttyS1. Remember that this will void the warranty on your router!!

 

The circuit is small enough to fit inside the router. Notice the MAX232 chip is powered from the serial pins..

Testing the Serial Port

(Before testing your serial port, install DD-WRT or OpenWrt on your router. Look into software section for more details)

The DB9 female host type port was hooked with a computer’s USB port with the help of a USB to serial controller cable. Remember the port that I used project was /dev/tts/1 (ttyS1). Computer running serial terminal program like Putty or HyperTerminal (on Windows XP) can detect message bytes sent from the router. Using a secure shell program like WinSSh or Linux allows to SSH into the router.
If you are using Ubuntu and your router’s IP is 192.168.1.1 (this is the default). Use following command:
   ssh root@192.168.1.1
Then type:
  echo hello >/dev/tts/1
This sends ‘hello’ to our serial port which is then displayed by the serial terminal program.

Microcontroller: Arduino

The Arduino Duemilanove is a microcontroller board based on the ATmega328 processor. It has 14 digital I/O pins, a 16 MHz crystal oscillator, and is USB based. The board can be powered using USB connection but in this project the board is powered using Gnd and Vin pin headers. The board also has built-in pins for serial RX and TX which are used to receive and transmit TTL serial data. These pins are connected to the corresponding pins of the FTDI USB-to-TTL Serial chip. This project utilizes digital pins 0(RX) and 1(TX) which provide UART TTL serial communication. The Arduino software includes a serial monitor which allows test data to be sent and received from the Arduino board.

The Arduino Duemilanove

Network Camera

Network camera or IP camera is a type of digital video camera commonly used for surveillance, and which unlike analog CCTV cameras can send and receive data via a computer network and the internet.

The Panasonic BL-C1A

Panasonic BL-C1A is a network camera which can be used to view live and remote images with PC via Ethernet and can be viewed using a Web browser. The camera is easy to install and operate. Each camera comes with a unique IP address and can be controlled using TCP/UDP and e-mail (SMTP). In this project the router transmits the camera signals to a PC and is displayed by the desktop software (XurajFi.exe) which is discussed later in Software section. This was the cheapest IP camera when I looked around. But you could use any IP camera that you have.

Inside the Panasonic BL-C1A

3. Software

DD-WRT

 

DD-WRT is a third-party Linux-based firmware solution designed to replace the firmware that ships pre-installed on many commercial routers. The firmware includes many additional features that are not typically included in a manufacturer based router firmware. It is released under the terms of the GPL (General Public License) and distributes its source code via Subversion.

Since the Linksys WRT54GL router used in this project was not designed for specific application like this, it was necessary to erase and replace the firmware with DD-WRT. If you want to use OpenWrt instead of DD-WRT, you can use it. This project has been tested with OpenWrt and works well. I used DD-WRT because it has a great technical support and community portal.

Installing DD-WRT in your router can be very hard if you don’t do it correctly. Please read the installation tutorial very carefully before you proceed forward. I will not be responsible on any damage or if you brick your router.

  • To visit DD-WRT installation guide page for more information click here.

 It is also important to choose the correct firmware for your hardware. Incorrectly flashing can brick your router.

If you accidentally brick your router, don’t worry there is help.

  • Click here to learn more.
  • Read Peacock Thread to determine if your router is bricked or can be recovered.

The Server Program

Now the neccessary hardware are ready, we now need to write programs..



The Server program is written in C. When compiled and run, the program creates a simple server that listens to port 8888 (you can use any port if you want) for a message and echoes that message to the router’s serial port. Once a client connection is established, a function in the program reads data from the client and waits for more incoming connections. The program uses BSD TCP server sockets to accept connections. I used TCP packets because Transmission Control Protocol is the most commonly used protocol on the internet as TCP offers error correction. It also offers guaranteed delivery because when a packet of data is sent, a collision may occur. When this happens, the client re-requests the packet from the server until the whole packet is complete and is identical to its original. You can write your own Server program or you can use mine. Links to download necessary program are provided later in this page.

Compiling the program

Once you write the program, it needs to run in the router. Since the architecture and resources that we have in our PC is not similar to that of router, the compiled program will not run in the router. We need special compiler to run in the router. The program is cross-compiled using uclibc_linux_gcc to run in a device with limited resource like a router.

Compiling Server program using uclibc is easy.
   mipsel-linux-uclibc-gcc -o Server server.c

  • Read here for more information on installing uClibc.
  • You can download toolchains required to compile your own program here

 The compiled program is then copied to the router’s /bin folder using UNIX’s secure copy(scp) command:

   scp Server root@192.168.1.1:/bin

If you are using toolchain, then you might have to use ipkg to install your program.
If you want to use the compiled version of my program, then the download is provided below.

Microprocessor Firmware

The firmware is responsible to accept incoming messages through serial port provided by the router. The firmware then analyzes what command was sent and activate forward, backward, left, right, or horn pin accordingly. Rather than activating a pin with a last command forever, the program activates a pin for 15000 clock cycles which is around 1500 milliseconds. Here is the code:

// Arduino firmware for Andriod Robot Project
// (C) Suraj Bhattarai
// Command:   X  F  B  L  R  FR    FL    BR   BL    H
// PORT_map:  -  1  2  4  8   9     5    10   6     16 (PORTB HEX)
// Received:  0  1  2  3  4   5     6    7    8     9  (from router)
// Pin        -  8  9  10 11  811   810  911  910   12
unsigned char port_map[10]={0,1,2,4,8,9,5,10,6,16};
unsigned int in_char;
unsigned long counter=0;
unsigned char in_byte=0;
unsigned int test=0; 
void setup()
{
  DDRB=B11111111; //PORTB as OUTPUT
  Serial.begin(9600); //Start Serial
}
char recv_char()
{
  while (counter < 15000) //Pulse of command
  {
    counter++;
    if (Serial.available() > 0)
    {
      in_byte = Serial.read();
      test=(int)in_byte-48;
      Serial.print(test);
      counter = 0;
      return test;
    }
  }
  counter=0;
  return 0;
}
void loop()
{
  in_char=recv_char();
  PORTB=port_map[in_char]; //Port map
}

The Desktop Client Application (XurajFi)

This application sends signals to the robot according to the commands given by a user. The software is written in Visual Basic.NET and uses TCP sockets to send information to the router. It makes the use of System.Net.Sockets class abstracting the lower-level Windows Sockets API. It creates a new TcpClient by calling its Connect method, and then gets access to its underlying NetworkStream via the GetStream() method. Messages are written into the stream and when done the socket is closed. New sockets are opened for new messages.

 

The software has a function that allows a user to save command history. Another function allows a user to load a costume route to the program in case the robot needs to drive itself automatically. The live camera makes it easier to drive the robot when not in line of sight. Click here to download the .exe file. The code is available for download below.

If you want to use my software remember to assign 192.168.1.253 to the camera. You will not be able to view the came on the program if this is not the IP address of the camera.

Andriod Client Application

It is possible to control the robot using a smartphone. Since I have my Samsung Galaxy S powered by Android, I decided to write an app for it. The app should work on any Android powered device. I will post the iPhone version soon.

Android applications are written in Java.  Java features a public class called java.net.Socket which provides a client-side TCP socket. The application uses Socket(string dstName, int dstPort) constructor to create a new streaming socket connected to the target host specified by the parameters dstName and sdtPort which in this case is the IP address of the router and the port number.

The application also uses accelerometer sensor that comes built-in with Andriod powered smart phones. Android.hardware.SensorManager class lets the application to access device’s sensors. The instance of this class is called using Context.getSystemService() with argument SENSOR_SERVICE. Using Sensor.TYPE_ACCELEROMETER constant, it is possible to register a SensorEventListener and then to specify delivering rate for sensor events. This application uses SensorManager.SENSOR_DELAY_NORMAL which is the normal rate for a sensor event.

Once the SensorEvent returns values that represent the acceleration of the phone given by a vector in a Cartesian coordinate system, the values are mapped to a specific command. Landing on a table, the values returned by the SensorEvent were:

  1. 0 m/s2 along x-axis
  2. 0 m/s2 along y-axis
  3. 9,80665 m/s2 along z-axis

The following table shows commands that were sent by the application when accelerometer sensor returned these values.

Table showing accelerometer values and respective commands

x-axis(m/s2) y-axis(m/s2) z-axis(m/s2) Command
~0 ~0 ~9.8 No action
~0 <-3 ~9.8 Left
~0 >+3 ~9.8 Right
<-3 ~0 ~9.8 Forward
>+3 ~0 ~9.8 Backward
<-3 <-3 ~9.8 Forward Left
>+3 >-3 ~9.8 Backward Left
<-3 >+3 ~9.8 Forward Right
>+3 >+3 ~9.8 Backward Right

The application is made available in the Android Market (just search for AndroBot). Make a small donation and I will send you the entire source code but it should not be hard for you to write the code yourself. The donation is to support for our next project which will be provided in this site for free.

  • Learn everything about developing Android applications here

4. Power Management

This project drains significant amount of battery power. Hardware power requirement with respective power source is provided in the table below:

 Table showing power requirements of hardware used

Hardware Rated requirements
(maximum)
Power source Max. power
Car 9.6V at 7A Self, battery 67W
Router 12V at 1A External batteries 12W
Camera 9V at 750mA External batteries 6.75W
Arduino 5V at 50mA External batteries 0.25W

 

The RC car is powered by its own 9.6V rechargeable battery.

Rest of the hardware is powered by AA batteries. 10 alkaline AA batteries are connected in series which gives up to 15V.

Voltage Regulation

I used LM317 voltage regulator to regulate voltages. You can even make your own adjustable voltage supply with this chip.

Using the regulator, 15V is reduced to 12V (1A max) which is used by the router. Using four diodes in series further reduced 12V to 9.2V which is then used by the camera and the Arduino. The Arduino board comes with built-in voltage regulator, so further reduction of the voltage was not required.

According to the LM317 datasheet, the output voltage is given by the following equation:

Vout = 1.25(1+R2/R1). Use R1=240 ohm and R2=2 kohm

 

 The regulator gets pretty warm when regulating voltage, so a heat sink is used to cool the chip.

5. Connecting Together

Once all the hardware is powered up and software is running properly, it is now time to connect everything together. The Server program needs to run before we send any command. Since the Server program is residing inside the router, it is necessary to SSH into the router using a Linux system or windows program like Putty and run the program. When the Server program starts listening to port 8888, now run the desktop and Android applications. Commands are sent using the desktop application or the cell phone. When the Server program gets a command from the client applications, it writes the commands to the router’s serial port where Arduino is connected. Arduino firmware then decides what command was sent and activates forward, backward, left, right or horn pin accordingly.

6. Measurements

Power is measured using a standard DMM in different stages of operation. The following table shows values obtained during measurements:

Measurements of power consumed by devices

Device Current drained Power consumed
Router ~400mA during boot 3.8W
~520mA with wireless on 5.7W
Camera ~160mA 1.5W
Car ~500mA during steady 4.8W
~6500mA full acceleration 62W

 

  Data rate measurements

Data rate can be measured using Windows Performance Monitoring System (perfmon) and following data rates were monitored

Measured data rates

Command signals ~4KBps using desktop application
~3.5KBps using cell application
Camera ~130KBps when enough light
~90KBps when little light

 

Battery Performance

The car draws significantly large amount of current from its 9.6V rechargeable battery so the battery runs out quickly. The maximum time that the battery could sustain was approximately 20 minutes. The maximum combined current drawn by the router, camera, and Arduino from the AA battery pack is around 800mA. The time that the battery sustained was approximately 45 minutes.

7. Conclusion

With the use of technologies like WiFi, accelerometer sensor, IP camera, and microcontroller it is amazing to see what we can do. In this project, the router serves as a wireless access point sending and receiving commands from a distant computer or cell phone. With simple port forwarding and firewall hacks, it is possible to control the robot over the internet. The microprocessor added computing power to the system and it is even possible to automate the robot. Pieces of software written separately for the router, microprocessor, computer and smart phone gave life to all hardware. It is possible to control the robot wirelessly from up to 400 meters away. The on-board network camera made it possible to drive the robot once it was out of the sight. Using a voltage regulator saved a lot of time and effort by supplying the right amount of voltage that the hardware needed.

The application of this project is unlimited. It can be used by military or can be used for remote monitoring. It is the beginning of new era of robotics where the function of the robots can be increased by proper deployment of sensors, and proper development of architectures. The scope of further expansion of this project is endless.

Possible developments

There are many improvements that can be done to this project. First improvement is the real-time GPS tracking system using Google Maps API. The microprocessor connected to the router continually reads the port where a GPS receiver is connected. Once the coordinate data is read, the program in the router sends the data over the network to a computer. The computer requests Google Maps for more information about the incoming coordinates which is then finally displayed in the Maps API.

 Improvement in voltage regulation is another future development so that battery life can be maximized. It is possible to display the speed of the robot in the desktop and cell application. This can be done by simple calculations where tire radius is already known (about 6cm). Another important improvement would be adding video streaming capability to the Android application.

Important links

  • Click here for the Server program (Zip)
  • Click here for the compiled version of the Server program (Zip)
  • Click here for the desktop application source code (Zip)
  • Click here for the XurajFi client application(Zip)
  • Here is a similar project

Thats it!! Keep on visiting the site for more projects. Please don’t forget to leave your comments or feedback. Thank you.

126 comments

No ping yet

  1. Nirmal says:

    Great Job man… keep it up.. thanks

  2. Tamara says:

    Wow. Amazing

  3. krishna says:

    revolutionary work. great job done by the students of the Morgan State.Keep it up .

  4. Ritu Bhatta says:

    Incredible job.. o my god cannot believe it. Keep up the good job.

  5. Bishal Tandukar says:

    Great job man!!!…. the project rocxxxxx… Keep up the nice work man…. hope to see more of it in coming tyms….

  6. Kamal Neupane says:

    Great Job…good project…well presented…got some real world application…

  7. predhi says:

    proud of Xuraj, for making his this project..i really love it..its asowmeeee….thats whats up

  8. Shiva R Neupane says:

    U have shown a great achievement in this project.
    Keep up good work more success is on ur way.
    Great job and idea.

  9. GalaxyS says:

    AndroBot not shown up on Android Market!

    1. admin says:

      Hello GalaxyS, Sorry for late reply but I will be putting the app very soon.

  10. pedro says:

    hello,
    do you need to use chmod 775 on Server.c?
    and it needs to be on startup file? (custom user startup by X-Wrt)
    i’m making your project by the way i already have WRT54GL, max 233 and arduino. all things connected and it didn’t work :S
    can you help me?

    1. admin says:

      Hey pedro,
      I did not have to chmod on Server.c but it will not hurt if you change the permissions.
      It does not need to run during startup. you can simply run the program by loging into the router. But if you wish to run the program automatically everytime the router boots you can make it run at start up.
      I recommend you to try the compiled version of the Server first before you compile your own program. Good Luck!!

  11. Pedro says:

    Yes, i tried your compiled version, i saw ttyS1 from serial port and it isworking well but when i connect arduino it does… nothing :S i connected pins from max233 directly to arduino RX (pin 0) and TX (pin 1).
    Maybe i’m doing something wrong?
    by the way i tred to send some number to arduino via serial monitor and it only show TX,RX lights, it doesnt do anything.

    1. Admin says:

      You donot need max233 if you are using USB version of the Arduino. Connect the TX pin of the router directly to the RX pin of Arduino and check via serial monitor. you can test the TX/RX connection by ‘echo hello >/dev/tts/1′ and see if you see hello in the serial monitor.

      1. Pedro says:

        it gives when i use echo hello to tts/1 I can see some numbers on serial port of my arduino, i connected one fan to digital pin 8 but nothing happens :(

        1. Brian D. says:

          Try to connect the fan to analog input and see what happens. You might have to do A to D conversions…

          1. pedro says:

            hum, to any pin of Analog input?

          2. pedro says:

            Maybe i can’t connect fan’s directly to Digital Pins?
            I checked serial monitor and it’s all good, arduino and router is communicating well.

      2. Pedro says:

        Maybe i can’t connect fan’s directly to Digital Pins?
        I checked serial monitor and it’s all good, arduino and router is communicating well.

  12. inheritance says:

    I’ve recently started a blog, the information you provide on this site has helped me tremendously. Thank you for all of your time & work.

  13. Casino says:

    I recently came across your blog and have been reading along. I thought I would leave my very first remark. Nice blog. I will keep visiting this site very often.

  14. ptz ip camera says:

    It is certainly a lovely post. An information something like this demonstrates just how steeply the concept is actually thought of by creator.

  15. Dave says:

    Did you use heat sink with your voltage regluator?

    1. Admin says:

      Yes I used heat sink. There is picture showing the regulator and the heat sink in this post. The chip gets pretty hot and can fry the electronics if used without heat sink.

  16. cool electronic gadgets says:

    Good introduction, slap up level of detail , compelling termination , not bad caper ;) .

  17. fars saeed says:

    sir,
    i would like to know more about this Wifi – Robot Process.

    i will be thankful if you provide this as early as possible

    Regards

    Fars Saeed

    1. Admin says:

      I didnot understand what exactly you mean by robot process. Please be specific.

  18. singapore escorts says:

    I am impressed! Blog information posted here is surely my friend. I justified want to say hide up with comments and calibre work. IE browser bookmarks to your blog solely again, I l stumble upon finance to see my friends more in the tomorrow! The color of the layout is not rotten, it is effortless on the eyes.

  19. Affordable Web Design Services says:

    Terrific Principle, although I would be in possession to assert that given the flock of views this has had it may be desirability thinking about trying to improve the spelling and the english! Produced a terribly good read though, great substance.

  20. amappyitets says:

    I always enjoy reading quality articles nearby an distinct who is obviously up to snuff on their chosen subject. I’ll be watching this direction with much interest. Keep up the spacious free, dig you next time

    1. Jenita says:

      What a neat arctile. I had no inkling.

  21. Peter Burget says:

    Hello. remarkable job. I did not imagine this. This is a great story. Thanks!

  22. Oxygen says:

    Hey how i can connect one servo to arduino using your program? thx

  23. ip camera says:

    Brilliant article bro. This unique is just a totally nicely structured posting, just the important information I was hunting regarding. Cheers

  24. Justina Hergenroeder says:

    Very nice site you have here, has useful information that can apply to anyone :)

  25. ip camera says:

    I’m grateful for you because of this excellent content material. You genuinely did make my day :

  26. s corp says:

    If you could e-mail me with a few suggestions on just how you made your blog look this excellent, I would be grateful.

  27. wrt54g-robot says:

    When I complier
    ..
    Microprocessor Firmware

    It unsuscees .the progam is show bug

    inloop

    void loop()
    {
    in_char=recv_char();
    PORTB=port_map[in_char]; //Port map
    }
    help me plz ,sir.

    thank you
    robot-wrt

    1. Admin says:

      I am now sure how the program did not compile. Please post the compilation error message and I will look into it.

  28. power balance test deutsch says:

    Thanks for the fantastic work! Cool blog. There are a number of opinions on this topic and this blog states the issue extremely great.

  29. ip camera says:

    Undoubtedly, one of the best article l have come across on this precious topic. I quite agree with your conclusions and will eagerly look forward to your coming updates.

  30. ip camera says:

    Wow! This really is 1 of the most beneficial blogs I’ve ever occur across on this subject. Merely Amazing

  31. ptz ip camera says:

    Astounding article bro. This kind of is just a exceedingly nicely structured posting, just the tips I was hunting for. Thanks

  32. ip camera says:

    I am so happy to read this. This is the kind of info that needs to be given and not the random misinformation that is at the other blogs. Appreciate your sharing this beneficial content.

  33. pan tilt zoom camera says:

    You precisely saved me atleast 1 hour of time. I am making a project in this particular topic and your contribute has helped me through one of the topics of my project. I will browse to the other pages now.

  34. ip camera says:

    Fabulous posting bro. This important is just a tremendously nicely structured post, just the critical info I was looking just for. I praise you

  35. pan tilt zoom camera says:

    First of all, great looking site you have here and great post too. I would like to keep up with your posts but having problem subscribing to your rss.

  36. ptz ip camera says:

    Good piece of details that you’ve obtained on this web site submit. Hope I might get some a lot more of the stuff in your website. I will occur again.

  37. Frankie Dolcetto says:

    Michael Jackson flow…..!

  38. fatbinding says:

    Oh my goodness! an amazing article dude. Thank you Nonetheless I am experiencing difficulty with ur rss . Don’t know why Unable to subscribe to it. Is there anybody getting an identical rss drawback? Anybody who knows kindly respond. Thnkx

  39. Camila Peppler says:

    Great article. Waiting for more.

  40. ZsaZsa Anti-Aging Cream says:

    I kick myself in the but every-time I see sites as fabulous as this because I should stop surfing and start working on mine ;)

  41. Kunal says:

    I just finished flashing my WRT54GL with DD-WRT and I am trying to copy your compiled version of the Server onto the bin directory of the router…. But I keep getting an error message , is the bin directory writable??? cause I came across a post on the DD-WRT forum which stated that only the tmp directly is writable… By the way copying the file to the tmp directory was okay but I haven’t yet tested whether the program works after connecting the arduino…. My doubt is , will the Server program execute and work even though it is copied to the tmp directory ????

    1. Admin says:

      I would recommend to copy into /bin directory. but copying into /tmp should work.. please let me know.

  42. Flagyl says:

    Dear admin, thanks for providing this blog post. I found it great. Take care,

  43. Kunal says:

    After I copy the program to the temp directory I see a response on the routers LED’s everytime i give a input from ur VB application. But the thing is the arduino does not respond to it! I connected the Tx of the router to the Rx of the Arduino but still I am unable to get the response. I made sure every other connection to the arduino is perfect i.e i have connected the proper pins of the cars IC to the 8,9,10,11 pins of the arduino. Am I supposed to connect the Pin 1 of the Router JP2 Port to the Arduino’s AVREF???? Kindly help me out here.

    1. Admin says:

      Do you see anything in Arduino’s output screen when you send any command? Also check if ground is properly connected. You can also use HyperTerminal (in winXP) or similar program like putty to check if data is communicating..

      1. Kunal says:

        Have you used a LOGIC LEVEL CONVERTER circuit for achieving the 3.3V to 5V conversion between the Router and Arduino? . When I connect the ground of the router to the ground of arduino and the Tx (Pin 3) of JP2 port and the Rx of Arduino the power LED of the arduino runs in a very dim manner… Could that be the prob?? I am currently working on the LOGIC LEVEL CONVERTER circuit and I’ll test it and let you know, but please do tell me if you used one. And hey awesome VB work by the way !!

        Warm Regards,

        Kunal

        1. Admin says:

          I did not use any Logic level converter. I think this will be handled by the FTDI chip that comes with the Arduino. Try connecting TX and RX directly and view the result in serial display. I tried MAX232 for the level conversion before but I got the inverted result. So, I did not have to use it. But the logic converter is helpful if you are trying to view the information in other consoles other than the Arduino serial monitor. I hope this helps.

    2. Jailyn says:

      It’s imperative that more peolpe make this exact point.

  44. Arjun says:

    Hai
    we almost designed the wifi robot
    But we have to implement a Camera, in market a lan camera is too cost;y, so we decided to use a webcamera and create a usb port in the Router WRT54GL.
    But then what will be the carserver program,..??
    How can we visualize it on laptop…???
    Please reply us immediately because our project presentation is on next week…
    God bless U
    arjun.janan@yahoo.com

    1. Admin says:

      Arjun sorry for the late reply. I have not tested webcam on my project. If you hook up webcam on the router then you might be able to transmit to your laptop.. the easy way might be thru the internet.. for this you will need two routers. First one is wired to the internet and the second on the car. Then you can have two routers in the same network and share the video over the internet.. I have not tested this but this might be one way.

      1. BrianM says:

        Very close but you missed one router…

        You need one on the mobile unit (car or whatever)

        One to transmit and receive data from the mobile unit

        And then your standard switch or wireless router for your internet

        Computer or Android goes in here.

        oh… then your internet.

        Awesome post, I am working on almost the exact same thing but life and skill issues slowed me down.

        DD-WRT and hacking routers I have managed to master however ;)

  45. Arjun says:

    Sir,
    Last Month we completed our WiFi Robot Project successfully as in your webpage.
    and we stoped working on it and we started searching for the new Additions.
    But our Project Presentation is sheduled on Next wednesday.
    But when we tested Robot again, It become failure…
    The receiver pin Glows full time(after ‘T’ is pressed) and no output comes in movement pins (8,9,,10,11).

    We statred debugging, when Router is directly connected to laptop and visualized on hyperterminal, the ‘jbpro’ command is transmitted correctly, and respective characters are displayed when each key is pressed.
    Arduino works correctly when we checked with other sample codes for temperature sensing ,etc.

    What we have to do…??
    Waiting for your Fast reply…

  46. skl says:

    I used 2 webcams in my project (like yours) without any problems.

  47. voxiox says:

    how about source code for android..this application androbot?
    do you put that at code.google or?

    1. Admin says:

      I am sorry the AndroBot is not available in market now. Instead download AndroMouse in your phone, rate and comment. I will send AndroBot apk file to you.

  48. voxiox says:

    i have download Andromouse and i’ve sent donation for get androbot apk file
    thank you
    please check on this site email

    1. Admin says:

      I already sent you the sourcecodes.

      1. voxio says:

        thank you very much !!!!!
        i will be put your name on project

        1. ariff says:

          can you sent me the source code

  49. robotnubie says:

    can i buy this robot ???

  50. Forex says:

    Amazing Post, Many thanks

  51. Forex robots says:

    Hi would you mind sharing which blog platform you’re working with? I’m going to start my own blog soon but I’m having a hard time making a decision between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your design seems different then most blogs and I’m looking for something completely unique. P.S Apologies for getting off-topic but I had to ask!

  52. voxiox says:

    hey sir, when i type ex. mkdir in Putty in order to create a folder, i
    cant find the folder …. like the router has read only file. when I
    create folder through winscp the error message was appear “error
    creating folder”. i don’t know how to solve the problem, I hope u can
    Help me. Thx

  53. voxi says:

    hey sir, when i type ex. mkdir in Putty in order to create a folder, i
    cant find the folder …. like the router has read only file. when I
    create folder through winscp the error message was appear “error
    creating folder”. i don’t know how to solve the problem, I hope u can
    Help me. Thx

  54. Sun says:

    dear sir…
    i cannot copy server program into router’s bin derctory..it syas readble only.what am i do now..???
    and i use microcontroller as a PIC16F628A my own designed circuit.can u put firmware for this PIC16F628A..
    thnk you..!!!

  55. deny_jae says:

    nice…..,i have download Andromouse ,please send me androbot apk…
    thanks….

  56. TJ says:

    Oh dear, this i’ve been looking for…
    Sir, currently i’m a having a school project to make some robot project..
    when i came across your site especially the WiFi Robot above, i’m really interested in this, and after i read the comment above, i decide to make some donations too…
    But, i don’t have any paypal account…is there any other way to make the donations for you?

    1. Admin says:

      Sorry for late reply. what is your email address?

  57. sicker says:

    sir can you tell me ,how is the router serial port, connected to arduino,? and arduino to controller board. ?
    tnx in advanced, hope for your reply.. tnx

    1. Admin says:

      Hello sicker,

      All the connection info is given in the description. Router is connected to the Arduino using TX/RX pins. The arduino is then connected to the controller board of the car.

  58. dimas says:

    Nice project ^_^

    Is the server program can handle data in full duplex? example if i want to control the direction of the robot and i also want to read temperature around the robot?? Can I send data from microcontroller to PC via wifi too??

    Regards

    Dimas

    1. Admin says:

      Hello dimas,

      No the server program here handles one way communication only. But with little modification you can certainly do it. In this project the server only listenes to the client but does not send messages back to the client.

      1. Carlos says:

        I’m part of a small cpoamny that is considering commercializing an Android-based robot. Would any of you be interested in learning more and potentially discussing and / or participating in this venture? We currently have an Arduino-based balancing robot hobby kit in the works. Feel free to email or call me. Thanks for your consideration. Russ760 608-3511

  59. Abdul Basit says:

    Iam a newbie with arduino……………can anyone help me in connecting WRT54GL with Arduino UNO ???
    This is a problem because the Arduino uses a 5 V transistor to transistor logic a.ka TTL and the router uses 3.3 V TTL serial communication.
    i found about sparkfun`s logic converter,but i cannot order it because i dont have much time(it is not available in pakistan )

    Please help me with this..i shall be highly indebt to you indeed

  60. sameer says:

    good job…..im too working on a same project for my final year, did u prepare any android or symbian application to hadle the car instead of PC…..if yes then please upload the source code or else contact me on the mentioned ID, we can talk about it….may be we can pay u something for ur help….

  61. Brian says:

    Hi, really fantastic project!!!

    Now I am dealing with ddwrt build, my problem is I cannot change the baud rate of the router, because it says the directory /usr/sbin/ is READ-ONLY. I want to download stty.tgz in this file. So, the Arduino cannot communicate with the router. Could you please tell me how did you do with setting the baud rate? Thanks a lot!

    Regards.

    Brian

    1. Sebastiano says:

      Ok tylor,First, you need to access your brobdaand wireless router and configure it.while configuring it, try to choose a WEP key standard and name it.After that, all you need to do it turn your wifi on your computer and enter the WEP key and you will be connected.Good luck. And if you needed any help don’t hesitate to ask VA:F [1.9.17_1161](from 0 votes)

  62. Brian says:

    Sir, could you tell me if you met something like this: everything is ok after I test it with the Ethernet cable, when I controlled it via wifi, the communication only last less than 30 seconds. I tried with both ddwrt and openwrt, the same. I thought it is the problem of memory. But I cannot figure it out. Do you have any suggestions?

    Thanks in advance.

    Brian

  63. Auto Loan says:

    I have learn a few just right stuff here. Certainly worth bookmarking for revisiting. I surprise how much attempt you place to make the sort of wonderful informative website.

  64. hotell koh chang says:

    hello there and thanks in your info ? I have definitely picked up anything new from right here. I did on the other hand experience some technical points the use of this web site, as I skilled to reload the web site lots of times previous to I could get it to load properly. I had been thinking about in case your hosting is OK? No longer that I am complaining, however sluggish loading cases times will sometimes impact your placement in google and can harm your high quality rating if advertising and marketing with Adwords. Well I’m including this RSS to my email and can glance out for much more of your respective intriguing content. Make sure you update this again very soon..

  65. be paid says:

    Seriously. So just why didn’t I consider that?

  66. michigan says:

    Very very well written.

  67. magic seo says:

    Great blog right here! Also your site so much up fast! What web host are you the usage of? Can I get your affiliate hyperlink for your host? I wish my website loaded up as quickly as yours lol

  68. gyro says:

    hello sir, can you tell me how can i modify the server program, to send messages back to the client ? (Tx of arduino to Rx of router).
    thanks.

  69. M.N says:

    hey , great job
    i was wondering if i can have a full report about your project , because i really like it and i want to check out the full steps of that project and codes

    if it’s ok tell me :)

    Thank you

  70. coffee_addict07 says:

    sir, i have a question,
    if i use your compiled server program, do i also need to install the uclibc packages?

    please reply sir, thanks!!!

    by the way, your project was amazing!!!!

    1. Avan says:

      2 ways lets do wireless 1stopen your wiwdons wireless manager (start>connect to>wireless)Choose virgin and use the password preinstall. you are then connected.If you go though wired, plug the wire in and continue.once connected open up IE or firefox, or whatever browser you use.you should get a default web page. Put in your SSID, and write it down. Put in a passphrase and write it down. click save at the bottom. You should then be prompted for a router password and usernameusername:virginpassword:passwordonce this is done let the router reboot. and open your wireless manager and then pick your network. use your password and then you are working.If you do not get the red default page, you will need to type in192.168.1.1 into the address bar using the virgin and password username and password as above. Go to wireless on the left hand side and fill in teh SSID and passphrase. write them down. and click save. then see if you can connecthope this helps.VA:F [1.9.17_1161](from 0 votes)

      1. Bobby says:

        Is there any way to share hotspot dsl concontien, connected through Lan Rj45 to other family computers ( which are connected through another LAN card on the same system on which im using internet).. although their is restriction 1 concontien for 1 system by service provider. virtual wifi router working awesomely and shares internet concontien but its just for wifi.. im looking for a type of virtual router for LAN, if possible for windows xp or any other way to share internet.??? any suggestion.?

  71. coffee_addict07 says:

    sir, i’m working on this project right now, i’m using wrt54gs v7 router, and flashed with a ddwrt micro, because it has only 2mb flash memory

    what i need right now is the server program to be copied at the router’s bin,
    i’m planning to use your compiled version of server program but im a bit confused,
    do i need to install the uclibc package or i can directly copy the compiled server on the router’s bin,

    sir i need your reponse sir about this issue
    thank you in advance!!!

    im very amazed in this project that’s why i want to create one for myself,
    this project really rocks!!!

    1. Admin says:

      Hello coffee_addict07,
      If you are using my compiled server then you dont need uclibc package. It is already compiled.

      1. coffee_addict07 says:

        sir how can i copy it to the router using telnet,?
        im just using a micro version of ddwrt, which has no ssh capabilities,

        please help sir,

        1. Admin says:

          Hello,
          I have not tried this with telnet. I am not sure but it might be possible.

  72. Marco says:

    I am going to develop a similar project with my university.
    I will deal with the development of the smartphone application that by the movement of the mobile will control a remote robot.
    My task now is to choose which device will be used: Android or iPhone? Without considering any cost issue, which one provides a better and easier app-development?

    1. Admin says:

      Hello Marco,
      You can choose which ever is confortable to you. If you know java then go for Android.

  73. ian says:

    thank you for sharing this project i am working on same project I i have couple of question if you can answer i ll be so appreciate when i dont have a car yet but i want to test it i open serial port which arduino uno connect com3 so i am getting numbers when i hit button number scrolling different pattern its that mean my router and arduino connect and am I getting healthy respond ? second how can test with hardware you said fan before port just basic connect any servo motor can i test circuit and last one can i connect router another another board with ethernet shield do something different get gps or any other things and last question sorry i have a lot i want to change source code but i couldnt find ip cam ip adress which you said 192.168.1.253 in order to get live stream again thank you alot about sharing with us

    1. Admin says:

      Hello ian,
      1. If you are getting any response then that is a good start.
      2. Yes you can use any other circuit or just use led to test. You might have to change the code depending upon your circuit.
      3. Yes you can use ethernet shield but it would not be wireless.
      4. The ip address can be changed from the form. It is a webview and ip address is one of its properties.

  74. lollicon says:

    we’re going to develop a project the same as yours.. but the router we use is wrt54gs 7.0. it doesn’t include SSH feature, it only has a telnet function.. my question is how can i transfer the server program to a router? could you please help us.. i’m looking forward in your positive response. thank you!

  75. George says:

    Hiii
    Iam going to develop similar project with my university
    in RC car part ,If I have my H-bridge I want to know Rating voltages of DC motors in this RC car ,Is it 9.6 V or 12 V??????
    thank you .

    1. Admin says:

      The RC car that I used has 9.6 V rating.

  76. hesham says:

    PLZ i need help i have linksys router wrt54g v2 i’ve installed ddwrt mini i need to check the serial port tts1 i connect it to the hyperterminal 9600 baud non flow control but the kernel not shown do i need to install any packages if so plz tell me i install it using winscp no netwrok connection
    thx in advance
    any one can help me my mail is insomanic1990@yahoo.com

  77. rosemarie says:

    do you have a PIC microcontroller version of this??

    1. Admin says:

      Hello rosemarie,
      I don’t have a PIC version of this.

    2. Fher says:

      If you’re entering your exrnteal IP into your browser it should go to your server’s page.If you enter your router’s ip usually 192.168.x.x it should go to the router’s config page.To find your router’s ipStart -> Run -> cmd -> ipconfig.Look for Default Gateway Log in to Reply

  78. MANISH says:

    good job…i too want to make this project…but router u suggested is not available in market now….can u suggest another one???

  79. MANISH says:

    is it necessary to do hardware modification of router???is it cannot be worked as given in following website
    http://www.jbprojects.net/projects/wifirobot/

  80. Ted says:

    Does the camera view also show on the Android app or just the desktop view?

    Thanks

    1. Admin says:

      Hello Ted,
      My app. doesn’t display camera view but it is possible to modify or create your own Android app that can display the camera view.

  81. Pavel says:

    Hello,
    I am doing a similar project and wanted to use your “The Desktop Client Application” source code, but faced a problem, when I tried to compile it myself. The problem is that the you provided a source code, but no actual design form with buttons and windows. That is why the compiler says that some variable are undeclared. Could you please send me all the project files? I provided the e-mail
    Thank you in advance!

  82. zakuragi says:

    its too difficult to edit source code without form design
    i’ve same problem like you dude

    @suraj
    please send me full source code vb.net

    best regards

    zakuragi

  83. Kovrigin says:

    Good job! Really liked this article!

    Please send me an application for android. Thank you!

    kovrigin1991@yandex.ua

  84. ariff says:

    hello,can u send me source code .apk..
    tq..

  85. manmohan singh says:

    can i use N150 WIRELESS ROUTER WNR1000????
    if yes then please tell me hoe to add serial port to it….

  86. Joff Leish says:

    The wifi car is an awesome project. Thxs for sharing. Please send me the source code for Android. I have the hardware assembled. Currently working on the software.

  87. googlepo says:

    Thank you very much for that great article

Leave a Reply

Your email address will not be published.


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>