I chose to examine the Move and Crawl Ball, which has 7 buttons (each with its own mini circuit board) and one 3-position switch. It also had many LEDs, a battery pack, a speaker, a motor... a lot of parts! Check out the following Picasa album for a breakdown of the different components, and let me know if you have any questions!
[Additional Note: I just discovered--after going to all the trouble of downloading Picasa and writing all my captions in it, uploading the photos and videos, writing my post and embedding the album--that the videos only play if you view the album on the Picasa site. They do not play in the version embedded on the blog. So..... I will appreciate it if you view the album on the Picasa site for this post, and in the future, I promise that I will embed videos separately, via Vimeo! Thanks!]
If you aren't familiar with Picasa, please note that the captions can be hiddent by clicking on the little text bubble in the lower left-hand corner of the album. Also I was limited in caption length in Picasa, and had a stupid amount to say for video on slide #21. The full caption is:
I used the ends of two screwdriver bits to directly make the connection on the '3' button. When the button is depressed, it connects the black conductive strips on the side to complete the circuit. Interestingly, only one side needs to be depressed to make the connection, and the ball alternates between saying 'Three bees" and Triangle" regardless of which is pressed. I assume that because they placed an LED in the middle, the makers wanted potential connection points on opposite sides of the button in case someone doesn't press it squarely in the middle. There are 4 wires going to this button, which makes me think that there are two separate sensor circuits that can be closed, and that the coding structure appears to be something along the lines of: if (sensorA || sensorB && Nothing-else-is-playing) { if(speechboolean) {say 'triangle'; speechboolean != speechboolean;} delay(however-many-seconds-it-takes-to-say-triangle-and-play-some-music);} else{say 'three bees'; speechboolean!=speechboolean; delay(however-long-it-takes-to-say-three-bees);} Essentially, it's triggering an event each time either connection is made, and has an imbedded if statment to alternate phrases using a boolean that gets flipped each time, and it is using a delay to prevent the stutter effect that can occur if someone were to hit the button over and over. (We've all heard it in toys--something to the effect of 'tri-tri-tri-tri-triangle!') I put the 'Nothing-else-is-playing part in because the actual code structure is more complicated - this 'if' structure is probably imbedded within a set of if statements, since these same buttons produce different responses if depressed while music is already playing.
Comments