Let's Make Robots!

Cyduino (Arduino based Cybot)

Navigate around via ultrasound, Follow light, Avoid light, Line follow, IR controlled, Dance

I recently recieved lots of Cybot parts from my friend who collected the parts of eBay, no longer wanting them he kindly gave them to me, my plan was to convert it to an Arduino based robot.

If you are not aware what a Cybot looks like here is a picture I took before the dismantling process:

The Cybot had some good features; line following, IR remote control, speech recognition and even the ability to find its IR ball and shoot goals into an IR goal.

The Cybot was not the only robot in the box, it also came with Cybots companion, Tom:

Toms constuction was more difficult to pull apart as there is no real differentiation between seperate parts, they all link in together, meaning there are no real big parts.

The box also came with two IR remote controls which I will definetly be using in future robot projects, mainly due to their awesome look:

After I rumaged through everything, determining what things where, I began the dismantling process. As the robots were built as part of a weekly magazine any big chips were split into smaller chips connected by header pins, this made it easier to determine what chips did what and also made the dismantling process much easier. Here is a nice pic of the mess I made:

In the background you can see the electric screwdriver my Dad received for Christmas, I borrow it reguraly :)

I pulled it all apart because I wanted to understand exactly how all of the bits and pieces worked together, I recognized most components but some were very strange and required a google search.

My plan was to first understand how the motor driver worked so that I could connect it straight up to the digital pins on the Arduino. Luckily there are one or two sites left with documentation on the parts of the Cybot. To emulate the Arduino signals to the motor driver board I got a 4.8V battery pack and would place the leads into the driver board testing to see what happened, doing this found what pins made the motors spin in what direction. I decided that I didn't like having the castor wheel at the front of the robot so I reversed its direction and wired it to the Arduino accordingly, however the castor wheel doesn't work very well.

After I wrote some test code I tested the motor driver board and was amazed that it worked. The thing I especially like about the motor driver board is that is transistor based, making it very easy to integrate with the Arduino. There is a battery pack at the back of the robot with 12V of power supplied from AA batteries, 6V goes to the motor driver board and the transistors allow the connection to be made, very cool. One thing that was mentioned was that if both the forward and backward motor driver pins were high at the same time it would fry the board, so I took extra care to ensure that this wouldn't happen by always calling digitalWrite(LOW) for all the pins before I would use them again.

The first thing I wanted to add back the the Cybot was the gift of sight, in this case, ultrasonic eyes in the from of HC-SR04's. I used these instead of the ones that came with the bot because I have heaps of them now and I know how to use them, with some futher investigation I might use the ones that came with the kit.

My original plan was the mount the acrylic to the base of the robot and bend the acylic to form a square mount. I started mounting the acrylic to the base but wasn't fond of the bending idea:

 

While the robot was like this I mounted an US sensor and programmed an edge avoider bot, Ill put a vid up later of it. Here you can also the the acrylic mount I made to attach the Arduino to the base, those I love those spacers.

After scrapping that idea I decided to attach them another way. Talking with my Dad he suggested using a square bracket and mounting the acylic to that and then to the base, I liked this idea and began to take measurements. After making some plans I cut, drilled and mounted the acrylic to some aluminium square brackets:

All that was left to do was to drill the holes for the eyes to fit through and wire up the US sensors up to the Arduino. The Arduino is powered from a seperate battery pack I double sided taped to the base of the bot, using breadboard jumper wires and the VIN pin on the Arduino, the Arduino is powered from 6V.

The programming revolves around boolean statements. Each sensor has a boolean statement for whether something is to close, if something is closer than a set amount the variable is true, else false. The robot will move depending on the mix of boolean values. If front close == false && right close == false && left close == true, turn slightly to the right. It takes a bit to program all possible combinations but it gives a very nice movement. If there is something in front of the bot but not on the sides it will just turn right, this was done just to make it easier.

So here is the bot so far:

 

UPDATE 12/01/13

I fiddled around with some IR, photoresistors, line following and have redone the obstacle avoidance code.

There are now two photoresistors on either side of the bot mounted via hotglue to the left and right acryic panels. These are used to accomplish both light seeking/avoiding behaviour.

An IR reciever has been mounted on the breadboard. The Arduino now listens for IR commands and depending on the number pressed the mode will change, six modes in total.

The Ultrasonic obstacle avoidance has been completely reprogrammed, still using boolen functions but much better motor movement.

The line follower has been wired up to accomplish, well atleast try to, follow a line.

I have also tried to make it dance but that needs a lot more work.

If you would like a more indepth description of what I have done please watch the supplied video, as I am much better at talking than typing, I think its attention deficiency or something.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

your robot is realy great i am trying to build a robot as well and i am trying to make two ultrasonic sensors together can you help me how did you make your ultrosonic sensors work together

 

That second link is marvelous! Thanks bas :)

I noticed in the video when you mentioned the line follower parts and then looked at your board saying you had only 2 pins left at the moment...  I saw several analog pins available there. You can hook up digital lines to analog inputs, but not the other way around. Analog inputs will see a whole range from zero to plus five volts. Digital data will swing from zero to plus 5v. (Ok, not exactly, but close enough...) skipping the analog values in between. Use the analog inputs and in the program use If the value is above a certain level or below a certain level then do such and such...

On another subject, Looking at the bot above with the yellow and black acrylic pieces, they looked like they needed something across the top, which can attach to the acrylic. That would give it a better look and hide the wires. Just a thought.

 

I must admit Dan, I completely forgot about using the analog inputs. Ive now used all digital pins and have used two analog pins for the photoresistors, only four left :) should be enough.

I like the idea of putting something on top, Ill have to think what, I have a rough idea of how to attach something. Any suggestions?

I cannot really give a suggestion as to what, since I do not know what you have on hand. I would just say to use whatever you happen to have laying about. —whether flat or curved, would be up to you.

 

Hey Chicken Parmi.  I have a Cybot too, though I haven't done anything with it yet.  Look forward to seeing how this goes.  You should definately bring him into Hackerspace sometime.  As you can see we have one tonight.  :)

http://hackerspace-adelaide.org.au/

Oh, and if you need to cut out acrylic / mdf / plywood etc for any of your robot frames you should check out the Fab Lab.  They have a laser cutter freely available to the public.  Yes, free.  You just have to pay cost for materials.

Thankyou very much for the invite, I cant tonight but I will keep an eye on when its open and let you know when Im coming in, Ill definitely bring it in. The Cybot is a really good base to work with, lots of nice little features. And I will definitely be using that laser cutter! :) 

NIce build so far, shows a lot of promise!  If I could make one suggestion, if you move the SR04s down, they will be more likely to catch low lying objects, like books rather than running into them

Well the plan is to make bump switches that curve around the front on lever arms, that hopefully will be able to avoid the problem you are speaking of. Thanks.