Router Controlled Mobile Robot
My robot is based on (quite out-of-date) Tamyia RC car in 1:10 scale. All electronics is placed inside plastic box ont the top of the car. The brain is made of Edimax BR-6104KP router, which has got two USB ports, two UARTs, some GPIOs (under desoldered LEDS - it can be used for I2C, tact-switches, buzzer and so) and some LAN ports, of course. The box is transparent, which is good for 16x2 character LCD mounted under the cover. LCD is connected to router's UART and is used for simple menu (program select, sensor test, shutdown system :-), ...)
Sunspot's page really helped me with the router hacking. Thanks to Linux running on the router I write some programs in C (sensors & actutators handling through the I2C made from desoldered LEDs) and glue them with Perl - lightweight interpreted language, so the algorithms can be easily and quickly modified and loaded to FTP. Linux distribution and all programs and files are stored on small USB flash stick.
Now it is only able to run some easy algorithms (stupid avoiding obstacles with ultrasonic sonar and infrared ranger), but it should be able to go thgough defined track (thanks to odometry and digital compass), I am now playing with remote control and trying to draw tracks - for example, this was circle:
Remote control application is written in Delphi and communicates wireless because of WiFi AP mounted on robot's back. I have made also control through web interface (there's a webserver running on the hacked router), but response time was too long - about nearly a second per command. Good for home automation, not for robot controlling :-)
Using I2C as main robot's bus wasn't good idea. I have servo control board (ATmega8 - it handles incremental wheel encoder as well), analog sensor board (ATmega8, IT handles IR rangefinder mounted on a 2ervo), ultrasonic rangefinder (SRF02) and a digital compass connected to I2C on quite long cables and the communication sometimes fails. It can be big problem, because I don't want to destroy my robot by colision with a car or wall, so in my next project I will use another bus (CAN maybe).
Robot has got it's own page at knowhow.adamh.cz/robot2, but it is written in Czech (as well as the picture above) - here you can find it translated by Google translate. Maybe I'll write about my next projects in English next time :-)
- Actuators / output devices: Servos, 1:10 Tamyia gear
- Control method: WiFi
- CPU: atMega8, ADM5120P
- Operating system: Linux
- Power source: RC car battery pack
- Programming language: C, Perl, C for AVR
- Sensors / input devices: Sharp IR, srf02 ultrasonic, odometry, CMPS03 digital compass
- Target environment: outdoor