Introduction: DIY Mod an Omnibot 80's Robot With Voice, Camera, Servos, Bluetooth
So, have you heard of the Omnibot? Well! Any kid from the 80's will remember how amazing this robot was. For you young kids, this robot was released in the early 80's by Tomy. The robot was "programmable", in the sense that the actions were recorded to a casette tape. As you operated the robot over its remote control, the casette would record tones for each action. When the tape was played back, the tones would control the robot.
It also had a microphone and speaker in the remote and robot, so you could spy on your family. Man, I really wanted one as a kid! But now that I have made this robot even better, anyone would want one :)
So, I found this fully operational Omnibot on Ebay for $105 USD. Came with the tray and remote too! And, you know me! I couldn't wait to hack into this toy and make it come alive! The shell of this toy made an awesome home for my servos and the robot controller.
So here is what I did, and you can too. Hopefully this instructable will give you the ideas and confidence to begin hacking your own robots. If not, check out my other instructables and you'll certainly get an overdose of robot hacking!
The robot is currently using EZ-Builder and the EZ-SDK (available at http://www.ez-robot.com ). I have added voice recognition, camera recognition and autonomous exploring to the robot. The camera recognition detects faces, skin tone, motion and objects by color. The voice recognition allows remote control commands to be verbally spoken.
To make a robot pet! So currently I have this robot cruising around my house in autonomous mode. The personality I wrote for it does a bunch of different things, randomly. The robot will follow colors, follow motion, sit there and look around, bleep and make interesting noises, wander around on its own, or listen to voice commands. He never gets stuck with the new autonomous code and HC-SR04 Ultrasonic sensor.
What I Used:
- •1 x EZ-B Robot Controller http://www.ez-robot.com
- 1 x Servo for head http://www.hvwtech.com/products_view.asp?ProductID=878
- 2 x Servos for arms http://www.hvwtech.com/products_view.asp?ProductID=878
- 1 x Omnibot shell
- 1 x Wireless Camera http://www.ebay.com
- 1 x EZ-Builder Software http://www.ez-robot.com/EZ-Builder/
- 2 x Bright Blue LEDs
- 2 x QR111D Edge Detectors
- 1 x micro servo for Ping Sensor
- 1 x HC-SR04 Ultrasonic Ping Sensor
- 1 x x Sparkfun TB6612FNG HBridge Motor Controller
There are two ways to control your robot. If you use the EZ-Builder, then you will not need to write any code because it is a graphical interface for controlling the components. If you use the EZ-SDK, then you can customize every action in your .Net application. I released both projects for you to use :)
- EZ-Builder Project: http://www.ez-robot.com/Projects/Files/108/omnibot.ezb
- C# Source Code: http://www.ez-robot.com/Projects/Files/108/robot%20-%20omnibot%20src.zip
- Hot Glue Gun
- Soldering Iron
Video #5 demonstrates his observing ability by tracking motion, colors and shape edges. His AI observes and really gives the impression that he is enjoying the road trip... We drove 2 hours north to visit a friend, and he really enjoyed himself. Can you tell? :)
Video #4 demonstrates the enhanced motion tracking algorythm I just finished. In this video he is watching TV. There are some colors and shapes that he learns to like and will take snapshots of them. After a day of autonomous living, my drive is full of some funny photos!!
Video #3 demonstrates the autonomous mode and how he navigates without getting stuck. This is one of the modes he can randomly choose. While in this mode, he also may follow colors (red green or blue)
In video #2, I disect the head and demonstrate the motion and color tracking.
This is video #1 where you may watch the assembly and modifications necessary to get Omnibot up and running :)
Step 1: Take Apart the Shell
Yes, sorry. You will need to take this cute little guy apart. And you'll also need to throw out a few things, like his brain!! EAK!
Step 2: Wash the Parts
The robot is old, and therefore dirty. He'll have dirt in places that you won't get to with a cloth.
So throw him in the dishwasher! AKA the robot spa, as I call it...
When he returns from the Robot Spa, use a wet rag to wipe off any dirt that was not removed by the dishwasher. The dirt will be very loose and easy to remove after the dishwasher.
Step 3: Modify the Arms to Move
So your robot is back from the spa and feeling great. Now is the perfect time to begin operating!
The Omnibot doesn't have motorized arms. That can be fixed with a little dremel action. Follow the pictures to view how the servo was installed. You will need some pretty powerful servos for the arms. Make sure you lubricate the joints with a little grease.
The servos I used for the arms are Eagle high torque servos. They can be a little expensive, but very strong.
Watch the Video #1 to see how the arms were modified and assembled. It was actually quite easy :D
Step 4: Add a Camera to the Head
I found a great affordable wireless webcam on ebay for $30. I bought a few of them since they will come in handy for future robots!
The best place to put the camera is right between the eyes. Oh look, a nose! :)
Step 5: LED Eye Lights
The standard lights in Omnibot are red led's. That's cool, if it was 1982!!! Today we use clear bright leds! I chose blue because his body will be painted white, soon.
Step 6: Make the Head Spin
The Omnibot does not have a moving head. So that's your next job. Trim down the pastic and attach a servo. Oh, now he can look around. What a classy dude.
You will need to be a little creative if you decide to perform this step. I wanted my omnibot to have a head that could watch things, so it was a bit of a challenge. In the second video of this project you can see a better view of the mechanism I used to modify the head.
The head "floats" on a servo wheel by two peices of plastic that I had glued to it. I then used tiny screws to secure the peices of plastic to each other. The head can be removed because it is pressure fit. Obvoiusly a bit delicate, but after all it is a robot :D
Step 7: Motor Controller
The standard gearbox and motorset of the Omnibot is great. No need to modify it. However, there is a need to control it!
So I chose the Sparkfun Motor Driver: http://www.hvwtech.com/products_view.asp?ProductID=1266
You can also use the Pololu Motor Controller, but it is expensive: http://www.hvwtech.com/products_view.asp?ProductID=915
Wiring the Motor Controller is quite simple. The instructions included with the controller you choose will have labels for each motor's + and -, as well as the 2 channels from the microcontroller. Motor Controllers are called HBridges, and buying assembled ones will save you a huge hastle in making your own.
You may do a google search on HBridge to read more about them. Simply put, they are a collection of transistors that allow you to control the direction of a motor via logic lines.
Also, if you are using the OmniBot .Net source code, you wlil notice there is an ADC Port for monitoring the motors. The motor controller I chose does not have a Voltage Load pin, but you can get around that. When the motors are under a lot of strain and load, a tiny bit of positive current wll be detected on the GND feeding the motor controller. You will want to monitor the GND with an ADC connection directly at the motor controller to be accurate.
When the monitoring software notices a teeny tiny bit of positive voltage (caused by a short) on the GND at the motor controller, the routine stops the robot, backs up, looks Left and Right, turns in the direction of freedom.
Step 8: Paint Paint and Paint
The yellowed plastic of the 1980's isn't very appealing. I purchased Khyron Plastic Paint in White. It doesn't require a primer. And since he already visited the spa (aka dishwasher), he's already clean for painting.
Make sure you wipe or blow off any dust particles from all of the dremeling you have been doing :)
With anything you paint, the proper disclaimer and warnings are the same. Paint in an open vented area, preferrably outside. Also many light coats is the best! I have always had patience issues, so it has taken yeras for my painting skills to get where they are now. I would always paint thick coats and end up with runs and orange peal.
I masked the original stickers with masking tape. I'm now considering on taking the stickers off and replacing them with something new. I'm not sure yet :)
Step 9: Put Him Together
Let's assemble our omnibot now. Put him all back together :)
As you can see for the front plate in this shot, I used two peices of styrene to fill the gap now that the tape recorder was removed.
In the latest version of this robot, I had attached a HC-SR04 ultrasonic distance sensor to the chest peice with a micro servo. This allows the servo to SWEEP the distance sensor so he may avoid objects in autonomous mode. The video #3 demonstrates the distance sensor and how it was attached.
Step 10: Programming
Depending on what kind of microcontroller you used, you will need to write code!
Since I used the EZ-B, I chose to use the EZ-Builder software: http://www.ez-robot.com/EZ-Builder
I will be adding some more custom code in the near future, so I will also be using the EZ-SDK: http://www.ez-robot.com/SDK
I added voice recognition and camera color/object recognition very easily! It connects over the bluetooth to your computer and voila...
The goal of this robot project is to have a robot pet that drives around my house, watches, takes pictures, beeps, and generally acts like a pet. The EZ-SDK project (below) is the advanced version of his personality. He also takes pictures of colors and motion to save to your hard drive for viewing later. I leave my robot running all and he acts like a security robot too. When he detects motion, he takes pictures. Plus, he is always driving around the house and monitoring things. Pretty cool hey? :D
You can get the EZ-Builder project here: http://www.ez-robot.com/Projects/Files/108/omnibot.ezb
You can get the C# source code here: http://www.ez-robot.com/Projects/Files/108/robot%20-%20omnibot%20src.zip