Introduction: PicRobi Wireless Robot Platform
I would like to share my little robot project with you, I hope it could be inspirational for you. So I studied electronics and I always wanted to do something what involves all what I learned and that is how I started making this robot. The basic concept was to build a "Mars exploration rover" like Curiosity.
I really like to work with electronics, software and mechanics and when you put these three things together something pretty amaizing can happen. This is just a prototype for testing some basic functions but it was very inetersting to see some results. Actually he is in little parts now because the microcontroller I have used had too many limitations and I found a way to solve this so he will reborn soon.
Step 1: Main Board
The hart of this robot is a PIC16F887 8bit microcontroller. The secret is not in the hardware, it is in the code. I realized very basic functions with the microcontroller like measuring analog inputs from sensors (light intensity, temperature, infra distance measurement), digital inputs (digital sensors, contacts), digital outputs (switching on/off high current parts like the camera or power LEDs), driving an H-Bridge with two DC motor and provide PWM signal to control motor speed, servo motor control (head, arms). These are very basic functions and they need very little coding using C language.
Step 2: Wireless Connection
The connection is realized with a simple 868MHz FSK transmitter/receiver pair. It uses the serial RS-232 protocol at 9600 baud speed and it is a lot more than enough. From PC side I am sending only the position of the servo motors, DC motor direction and speed variables and what to switch on/off so just a few 8bit long data. In open space I reached 150m distance without any problem. Even the camera was able to transmit clear image and acceptable sound quality.
Step 3: Head, Camera and Lights
The head has 180/180 degrees pan/tilt range. It looks very funny :) It has one power LED on each side which can be turned on/off remotely and they can give enough light to see in a completly dark room. I have not tried but infra LED can be used for stealth mode because human eyes can't but the camera can see infra light.
The camera is a simple wireless security camera which can be connected to any TV. It can transmit medium resolution live picture with sound as well. It is simple, reliable and it can be turned of remotely to save battery time. I connected the live picture to my PC through an USB digitalizer so I could see what the robot is looking at like a webcam. On PC side I could manipulate the incoming picture and do some stuff with it like edge, color or object recognition.
Step 4: Arms
The arms are very simple too. I used small micro servo motors as actuators. They are not very strong but it can lift just enough weight. I used these light but very strong parts from a metal contruction kit. Anybody can buy these separately, they are really good for this. The joints are strong and precise. The next version will be more robust and it will be able to lift bigger things as well. I also used hot glue at some places. It makes a strong connection but I can modify it anytime I want. Always keep it simple!
Step 5: Movement (variants)
It is also made from metal parts. I tried a few variants but there was not so much difference. I made the casters from plastic because I couldn't get them in the right size. The tracks are made of rubber and gives very good grip on any surface. The battery was a little heavy (even the robot was lighter then the battery) but at least I could play with it all day long without a recharge.
Step 6: Body
The body is also made of metal. Unlimited possible variation... Robust and lightweight.
Step 7: PC Software
I wrote a simple garphical user interface (GUI) in C# to control the robot from a PC. I used a gamepad to control the movement and the camera.
C# is very easy to use and write code. There are very good examples on the internet how to do great things with it. Sending/receiving data, calculate/represent measured data, control servo positions, action/reaction based on image manipulation (object or color tracking)...
Step 8: The Future...
When I will have time I will redesign the whole robot using a much more powerful and flexible microcontroller. I have a lot of other and more complex functions in my mind like inverse kinematics, voice control, some autonomity.
So look around and please feel free to ask. There are no secrets in this project just simple functions and simple solutions!