Saturday, January 10, 2009

nudgebot part 2


Nudgebot engines and main board

Now with a reliable base it was time to start on the main base board. The first part to be done was mounting the 3V battery pack (2xAA batteries). This was mounted in the centre of the board. This was to keep the majority of the weight on the centre axis to imporve rotation of the bot. Once that was done I put in the two relays which will be used as the motor controllers. This was the same as trackbot. This setup has the advantage as it allows me to use 3 volt motors without needing to do dual power lines off one battery. Instead I have a regulated 5 volt line for all the circuit and plain "raw" 3 volts for the motors. This does mean I have two power supplies (9V and 3V). I used molex connectors for the engines as I knew I would be doing a lot of rework on the chassis so easy removal was a must.

Next was the 9V battery connector and the 5 volt power regulator. I used a 78L05 with various filtering capacitors. Rather than a power switch I used a two pin jumper as a switch. I also did the same for the 3V battery supply. This was to reduce not only space but also weight. Utility is much lower but I'm not seeing this bot being used every day.

With the 5V power supply available I setup the five second delay part of the circuit. This was formed from a resistor-capacitor circuit that was tuned to activate a relay and keep it powered for 5 seconds. This relay would be used to cut power to the rest of the circuit. Rather than have the circuit cut power to the logic chips (ie the 555 timer and sensor ciruits) instead I used the relay to cut power to the 3V power line. This was because the motor setup the motors are always on, either running in forward or reverse. These is no idle. So I needed to kill the motor power obviously. Also I setup the relay so that the NC would result in the circuit being connected. This way power drain is minimised. Some setups I have seen have the relay needing to be active (ie the NO pin completes the circuit) to complete the rest of the circuit. This always struck me as odd as it just drains the battery. Finally a small push button switch was added at the back of nudbebot to activate the time delay circuit. A quick test and everything worked fine. Hit the button and the motors cut out for approx 5.5 seconds.



Main board with the 5 second delay circuit on the right and the 5V power supply next to the 3v battery pack

I also did some push tests. The high torque gearing worked well with nudgebot being able to push 500gm without any issue. The only problem I can see is the wheels. They have a tread on them. Normally this is fine but in a pushing setup tread just means you don't have the maximum amount of wheel on the ground. Perhaps some sticky rubber bands will be added later.

Friday, January 9, 2009

was dumbbot, now nudgebot


Nudgebot engine base

After some push test with dumbbot I found a few issues. First was some 'crabbing' by dumbbot. This was where the chassis would go sideways rather than straight ahead. This was due to the pulleys being pulled back at different angles. That was countered slightly but it was always going to be an issue as the axle mounts are quite loose.

I also found the power transfer from the motors wasn't great. There was a degree of belt slippage, but that was expected. However on the higher end of the push tests (ie .5kg dumbbot pushing .5kg opponent) there was very little pushing going on and a lot of belt slipping. I added some heat shink wrap on the engine shafts to try and reduce this but it was still an issue.

All these things together made me think that although the pulley drive system was cool it wasn't the best design. A sumobot that went sideways instead of straight that could barely push the 500gm weight wasn't good enough. Even those dumbbot was going to be an opponent I still wanted it to be up to standard. Thus a redesign was considered.

I needed a drive system that was solid and had the torque needed. The gearhead motors available to me were too long to sit side by side so I would have to have the axles at a 90 degree angle to the engine shafts. Annoying and hard to engineer properly. So I went back to my good friends at Tamiya and decided to use the dual gear motor set that I used for Trackbot. It fits well on the base plate obviously and was under 10cm wide. I used the lowest gearing ratio that gave 2276gf/cm and only did 38rpm. With two motors I should be able to push anything.

I used the same wheels but I sanded down the wheel hubs to reduce their width. I also cut the axles from approx 5cm to 4.7cm. Again this was to reduce the width so the engines plus wheels were under 10cm. With this extra work they were. A lot of grinding, cutting and fiddling around but the end result was a much better engine base. No point having a working circuit which is going to be let down in the pushing department.

Monday, December 1, 2008

Dumbbot pt1


Dumbbot showing off it's motors

Dumbbot was designed to be my first Sumobot. Originally I had intended to construct a much more complex bot by decided that a simpler bot would be better as a first time sumobot. The project used various circuit "bits" that I had either used before or had seen.

Chassis

Not knowing how I was going to do the body construction I decided to make the base chassis the universal plate set from Tamiya. This plate is plastic, 6x?? cm and has been predrilled with 3mm holes. Being plastic it was easy to cut down to size (the magic Dremmel).

For wheels I chose the Tamiya tractor tires. Again being from the same range everything fits together. The 3mm hex axle was used. I did cut down the molding on the tire so it would sit closer to the body. This meant the width of the robot was now just under 10cm.

One of the hardest parts about a sumobot is meeting the restrictions on the size of the body (10x10cm - 500gm). To get two motors into a 10x10cm area is all but impossible with standard gearhead motors. The gearhead motors I used on Squarebot are 7cm long. So normally you need to be using motors with their drive shaft at 90 degrees to the motor body or some special gearhead motors where the gears are laid out to minimise the space used (like the Solarbotics motors).

I make a habit of pulling apart old cdrom drives for motors and gears. Luckily I had pulled apart two of the same model which meant I now had two motors of the same spec. These were approx 5cm long and rated to 9V. They weren't gearhead motors however. I needed a way to gear down the motors and connect them to the 3mm hex axles used to attach the wheels. Luckily Tamiya had something to help. They sell pulley set range consisting of various pulleys, gear wheels, etc. I used the 38mm pulley wheel on the tire axle and drove the other end of the system directly off the small (2mm) shaft of the motor. First I did some test to see if a pulley system would actually carry 500gm and also push 500gm. A few tins of mushrooms and tuna later and to my amazement the pulley system worked well pushing the 500gm tin with little issue. The only issue was the pulleys were too large for the axle and the base plate was in the way. So some more Dremmel work and I cut out some channels under the pulleys so they would run clear. I ran the motors at 3V as that produced a speed that seemed about right. The 3V power line came from 2 x AA batteries.

To attach the motors to the base plate I used some small scrap pieces of metal. I made a template of where the mounting holes were on the motor and used this to drill out the metal as required. One was good, the other needed a bit of filing to fit. Doing it again I would spend more time making the template. A bit of sheet metal work and I had custom engine mounts for my recycled motors.

On the opposite end of the chassis I had room for the 9V battery mount. This way the majority of the weight was as low as possible.

I intended to mount the circuit board above the engines and pulleys. So I used some 3mm screws and spacers to gain the height needed to mount the board.

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...