A summer of Robot building at the library
With the school summer holidays on the horizon, the idea of a robot building workshop was pitched to Kirklees Libraries who showed interest. A few potential ideas/designs were discussed and the one that seemed to fit all the correct holes was the PounderBot.
The Pounderbot was a design created by a chap that you may (or may not) be aware of called @biglesp.
He set himself, as part of his Friday Fun sessions, a challenge of building a simple robot vehicle for under £10 pounds.
His design priced at £9.88 was under his £10 goal and produced a simple, easy to build robot.
Now with a design, and more importantly a shopping lists of parts, planning could begin for the sessions.
Building a test rig
At this point a few substitutions were made to the original parts list and the parts ordered.
These changes were the use of a pre-cut chassis kit and the motor/wheels changed from the micro-gear type motors to the big chunky yellow motors with big yellow wheels. The parts arrived in due course and a test build commenced.
Power it up for the first time
Once built the power switch was turned on and.....nothing happened. Power was turned back of and on again with almost the same result but for about 5 seconds the right wheel would spin of it's own accord.
The other wheel would then spin after a few seconds with the robot sometimes following it's test program or appearing to reset and start spinning its single wheel again.
This was a bit concerning as the robot would get very dizzy if all it could do was spin in a circle.
Les had already identified this issue and, with the help of Gareth from 4tronix, had diagnosed and fixed it by adding resistors between the motor controller and motors to reduce the current being used by the motors. This prevented stress on the current supply from the batteries which would cause the digispark attiny85 to reset making the individual motor spin which would cause the current to drop causing the attiny85 to reset....
Checking the robot I realised that I'd forgotten these resistors during the parts order and, as usually is the case, I had none in my component box.
Finding the fix
Probing around I noticed Pin 3 was high on boot even though the code had set it to low. This was causing the motor to spin with the resulting issues.
Digging further online I discovered the attiny85 has a five second delay when powered on to check if anything is trying to re-flashing the board. As Pin 3 doubles as one of the USB pins this appeared to be cause of the motor issue.
Looking at the Pounderbot design I wondered what would happen if I swapped the IR sensor input on Pin 4 to use Pin 3, then placing the evicted motor controller wire from Pin 3 to Pin 4 and updating the code to make sure the right signals made it to the right pins.
On power up, nothing appeared to happening for the first five seconds but then the robot happily trundled off under it's own steam. The robot was recaptured and the power recycled with the same result.
It appears that swapping the wires not only removed the requirement for the resistors but also prevented the wheel spinning...no more dizzy robots.
The Workshops
Now that the robot appeared to be working as intended a simple worksheet was created to allow a step by step build.
Each workshop catered for ten participants at various libraries in Kirklees. Due to some crossed wires we had some participants as young as eight attend.
During each session each participant got to experience soldering, with many enjoying being trusted with a soldering iron, under supervision and using the various handtools. Everyone left with the same amount of body parts as they came in with...probably due to the safety talk at the beginning being at a level children could understand.
As expected, some robots failed to work properly at the beginning but were quickly fixed. This was down to simple things as wires being placed in the wrong place or screws not tightened fully.
Hopefully these workshops have inspired future robot engineers :)
Further info
The files used for these workshops can be found here: Library Robot