Saturday, June 14, 2008

Crabbot


Crabbot

Crabbot is based on the same design as Rodbot. He was made for my six year old nephew who thought that robots were the coolest thing around and wanted one himself. So I wanted to make a simple and robust robot for him that could survive being handled by someone of that age. This meant no exposed componets and a solid body to survive a six year old grabbing it in a fit of exitement.

The LM386 chip was glued onto the body and a power switch was added to the front. All the wiring was kept as tight and clean as possible and I used heat shrink wrap to avoid any chance of little fingers touching bare wires. Finally I used a lid from a small gift box as the shell (hence the name Crabbot) to protect everything and to give my nephew something to grab hold of.


Crabbot exposed

The herbie design was great as the light tracking is simple and can be made more fun for a six year old by giving them a torch to "lead" the robot. I decided not to do the reverse sensor as the bump switch had a fair chance of being damaged.

The body used is a kit I purchased some time previously for use with Squareabout. However the interference from the engines to the rest of the circuit was so great I didn't use it. There are two 4.5V motors that drive three wheels each. The kit also came with legs that could be used instead of the wheels. I went with the wheels as they would work better on carpet.


Crabbot belly

Thursday, June 5, 2008

Trackbot part 5


Trailer for Trackbot

Once I had finished Trackbot I decided it would be good to have something to carry loads for Trackbot. Thus the Trackbot trailer was made.

The body was a body from a seven stacker CDROM drive. After a bit of trimming I had a nice flat tray to work with. The axle supports were plastic clips from some Cisco switch packing material. They looked like they could be useful and after a year of sitting on the shelf there were. The wheels/axle are Tamiya Truck tyres. I glued the axle supports to the body. I drilled a hole for the trailer to connect to Trackbot.

On Trackbot I made a trailer hookup from two automotive crimp connectors. In all the whole setup worked rather well. Only issues was in a sustained full reverse the trailer would jack knife, but that was expected.

Tuesday, June 3, 2008

Trackbot part 4


Side shot of Trackbot

With everything together the first test drive took place. As with Squarebot much time was spent on getting the emitter circuit at 38kz (one day I'll buy a multimeter that does decent frequency measurement). However I was finding exactly the same issues as I did with Squarebot. Low range on the emitters and lots of noise, false detects everytime the motors changed direction, etc. Going back to the breadboard of the design I moved around some of the filtering capacitors on the power supply. Totally different (better) behaviour. Based on this I added a nice big 470uF capacitor to the main board on the power input plug from the power board. Totally got rid of all the electrical noise from the emitter circuit. So even short cables like those on Trackbot still result in large amounts of EMF. I really need to learn how to make my own printed boards.

Once the new filtering capacitor was in Trackbot worked beautifully. He avoided things, the bump switch worked fine and he could climb over anything. I did a bit more work on the programming to add the functionality that if both detectors detected something then that should be considered the same as if the bump switch triggered. Ie full reverse then turn to get out of trouble. With this simple response Trackbot has rarely gotten stuck on anything.

A few times I have mentioned size/weight issues of Trackbot and my attempts to reduce them. In the end Trackbot came in at 430gm. Most of that is engines and batteries. Rechargeable batteries I found weigh two to three times more than standard batteries too.

So what lessons did I learn from this design? That cables are bad and just add issues into a design is one. I am really impressed with the Tamiya education range. Precision plastic components all designed to fit together. Perfect for building bots out of and quite cheap too. Something else I learnt was that rechargeable batteries don't hold their charge over time. I few times I have given Trackbot a run after a month or so only to find the rechargeable batteries are dead but the standard 9V battery is fine. For the next design I need to consider moving to a more modern battery technology which is lighter. Also I should have put the bump switch on an interrupt pin of the microcontroller so that I could have seperate behaviours for the bump switch and when both detectors detected an object.

What do I want to do after Trackbot? Make a mini-sumobot. I have purchased some engines from Solarbotics and am current in deep thought mode of a design. What is taking up a fair bit of my time is how to design/make a chassis for such a small bot. A 10cm square isn't much room to get two engines and wheels into. Originally I considered using a small box and wedging everything into it. I had machined in the engines so that was looking good. However I found that getting the rest of the bot into a fixed container (PC boards, batteries) just wasn't going to work. No room to work with and a real pain to get at components (like batteries). So my thoughts now are to use multiple boards and stack them. Easy to design each board (one for motors, one for battery, etc) and they just screw together. All of this is on a bit of the back burner now since Sonja has arrived. But it's nice to have dreams.

Monday, June 2, 2008

Trackbot part 3


Trackbot top shot showing main board

For the main board I used the same IR emitter/detector circuit used for Squarebot. I also added a PIC microcontroller to be the brains as I wanted a bit more that just avoidance in the design. All my original design work was done on a breadboard that stayed setup until the design was finished. I find this makes if very easy to go back and test things (like the flyback diodes described later) and when wiring up the boards it helps also. Also to push myself a little I used a PC board a third the size
of the board used for Squarebot. It was tight but worth the effort. The output from the detector circut went to the microcontroller. I also had a bump switch on the front of Trackbot as an input. The bump switch was mounted quite low in case an object was missed by the detectors and run into. The outputs from the microcontroller couldn't directly power the relays. Instead they switched a transistor which turned on the relays. I had also missed putting in a flyback diode over the relay contacts. As a result everytime the relays turned off a huge spike went through the circuit causing the IR detectors to "flutter" and false detect. Some small signal diodes fixed that, plus they fitted in the rather tight board as I hadn't originally allowed space for them.

The reason I choose a PIC microcontroller was primarily based on the programmer board I could buy. The board I purchased (details) was only $50 AUS and included a $9 microcontroller. There were few other cheap programmer boards available and not know how much I would be using it I didn't want to spend $300+ on a professional programmer to only use it once. For this project the PIC16F84 was more than adequate for what I wanted. Plenty of memory space and IO pins for my simple design. I had done some assember programming at Uni but I found an excellent PIC16F84 tutorial which meant I could get the most out of the chip with the least trial and error. The only other doco I used was the datasheet from Motorolla. The actual program will be in a later post. I did consider a DIY progarmmer board but didn't want the frustration of getting it working as most of the designs were very specific to certain computer hardware setups.

I found out a few things with the programmer/design. The first was that the watchdog reset was enabled by default. The result was the program was reset every few milliseconds. Strangely it wasn't till I was testing the bump switch that I noticed. The bump switch would send both motors into reverse for a short time then turn (ie one motor reverse). This was to get Trackbot out of the situation of hitting something full on and avoiding the "both detectors sense something, full reverse, nothing detected, full forward, repeat" situation. With the watchdog reset occuring this wasn't happening. The other thing that took some tinkering was the time delays on turning on the relays to control the turning of Trackbot. Since there is always a delay when a motor changes direction I needed to wait long enough for the motor have time to reverse and long enough for some actual "turning" to take place. This took a bit of trial and error as expected.

Next time the first test run...