I built this as a Secret Santa gift for a comedy website I frequent. It's basically a Big Mouth Billy Bass (BMBB) made to speak a selection of inside jokes. It features a 10 position switch that can select 10 different people (we call them gAberS, or used to anyway. It's a long story.) The display lets you know who is selected. Once a GabbEr is selected, you depress the red play button. Then the fish will speak the inside joke for that gaBBeR.
You can view my victims reaction along with pictures and video on the website here
From the engineering side, the Secret Santa 2009 (SS09) consists of a main or CPU board, a power supply board, a hacked Rio MP3 player, a 4x20 LCD display and an audio amplifier board ripped from an old pair of computer speakers.
MAIN CPU BOARD
The CPU board has a pair of 18F452 PICs. One controls the BMBB and MP3 player. The other is dedicated to the display. Various LEDs and the 10 position switch are connected to both PICs. The fish has three motors to move its head, tail and mouth. I used TIP3055's t0 drive the mouth and tail. I used two relays to move the head due to its large current draw. The stock BMBB used 6vdc to control all three motors. I used 6vdc for the mouth and tail and both 4 and 6vdc for the head. If you apply only 4 volts to it, it will move half way and stop. This allowed me to make the BMBB more animated. This action can be seen in the video.
I used an ADG202, which is just a handful of switches in an IC, to control the MP3 player. More on this under the MP3 player section. I also used an ADG202 to short the motor for the head when power was removed. It's pulled back in place by a spring, and if you don't short the coils, the head slams into the base.
I used capacitors and diodes to shunt any voltages produced from the motor coils. I had to use a toroid for the head motor. It kept locking up until I put the toroid in place. It's on the schematic as a isolation XFMR because I couldn't find a toroid in Eagle.
The schematic is here.
This is the second MP3 player I have hacked. I used the EGG MP3 player for my Secret Santa 2008 last year. This year I used a RIO Fuse MP3 player that I got off craigslist for $8, which sux as far as hacking is concerned.
More pics of the Secret Santa 2008 (SS08) here.
First, the EGG was dream to hack. It has a built in amplifier. Second, it can be powered off 12VDC. Third, hacking the switches is cake. It just puts ground on one side. For the the track advance, you have to put ground through a 100 ohm resistor on the track advance switch.
The only downside is that there is no built in memory. You need an SD card or USB stick. I used a USB stick. There is also no display, so it can be difficult to figure out whats going on.
Pictures of the hacked EGG MP3 player can been in the SS08 link above.
The Rio Fuse has built in memory and a display, so that made hacking it easier. But the switches were difficult to deal with, the pins are so close together. And making the 1.5VDC means extra components. I also had major problems with noise coming from the LM317, more on that later.
The power on switch and volume control just puts 1.5vdc from one side of the switch to the other, so that was easy. For the play, track advance, and stop, it shorted a particular pin to a common pin, which was not ground or Vdd. I determined this with a scope. So I used the ADG202 switch IC to interface the MP3 player with the the PIC. So if I wanted to play an mp3 file, the PIC, through the ADG202, would turn the player on, turn the volume to max, go to the track I want, play the track, delay, stop the track, then turn the mp3 player off.
output_high(PIN_D4); //turn on mp3 player
output_high(PIN_D0); //turn volume to max
output_high(PIN_B3); //position head