This robot records the movements of the arm and then plays them back. Turn out the lights and the attached colour sensor makes patterns with light as can be seen with the letters on the main picture. The robot combines ideas from previous robots Light Writ3r and Scrib3. The configuration was suggested by TMG for Scrib3 but the looseness in the joints makes it unsuitable as a fine input device. The program borrows from the Mecannoid line of robots where you program motion by physically moving the motors rather than specifying the rotations. The positions are recorded to arrays and then using some maths played back as motor motion commands. It could easily be adapted to move a pen up and down rather than move the shutter over the colour sensor (to write characters). The images were captured using a Canon IXUS 220 running CHDK with an exposure time of 5 seconds. Video, program and building instructions provided.
The Program The first step is to capture the motor positions and if the touch sensor is pressed and write the results to an array. Then the positions have to be converted back into motor movements.
The first step is to zero all the values including the motor positions. Then loop every 0.5 seconds recording the motor positions and if the touch sensor is pressed and write the results to an array. Based on the use choice set the colour sensor LED to blue, red or white. Then the positions have to be converted back into motor movements by comparing the current motor position with the previous target, calculate the difference and then step the motor over 6 equal steps. Running the motors without braking gives a wild, fluid, impressionistic play back.
It would be easy to add a loop so that the play back of motion could be repeated rather than exiting the program. Additionally using the colour sensor during capture you could alter the colour of the LED mid playback. Replacing the colour sensor with a pen holder that can be raised and lowered would allow doodle to be drawn instead. Programming the motors using code could result in some pretty funky patterns. The program would work in other robots allowing a series of simple actions to be programmed into the robot without having to write extra code. Simple record and playback (with rules which trigger certain actions like the shutter).