Well, 4dsystems has done it again. another great product. talking about the nice and compact SOMO module. this little module is very simple to interface. 1 clock, 1 data, 3.3v, and ground and you got a killer sound effects module.
I just happened to have some busted headphones and ripped out one of the speakers. since all the parts i use is surface mount i had to get a breadboard adapter for my small components. The link above has all the information you need to wire up your somo module and recommend you follow the datasheets guidelines.
On my setup i had to created an adapter board which includes 3.3v regulator, 450 ohm resistors for clock, data, and busy signals interfacing with a 5v systems (very important). and also has a busy signal LED which indicates when the somo is playing a file.
in the project shown in the video below is one of my favorite people. if you dont know first person shooter games his name is FPS Doug. i chose this small clip so you can see the versatility of video and audio combined. however the longer the movie clip the more out of sync the audio will be so i kept this clip short.
Below is the code to run audio files from the somo if you would like detailed information about displaying video check out my article HERE.
Note: that through trial and error only the file address is needed, if you send the command to play after you send the address your file will stop as play and stop share same command. Enjoy ! Boom Headshot !
- Gary D.
Code:define OSC 20 MSB con $8000 '***************************** RF COMMUNICATION ******************** ADCON1=7 CMCON=7 TRISA.0 = 1 ' These lines of code setup my RF Button Link TRISA.1 = 1 TRISA.2 = 1 TRISA.3 = 1 TRISA.4 = 1 Symbol Center = PORTA.0 symbol UP = PORTA.1 symbol Right = PORTA.2 Symbol Down = PORTA.3 symbol Left = PORTA.4 '**************************************************************** pause 1000 serout2 PORTC.0,84,[$55] ' uOLED Initialize '**************************************************************** symbol PinClk = portc.4 Symbol PinData = portc.5 SYMBOL Pwrled = PORTB.2 TheFile var word x var byte '**************************************************************** high pwrled Pause 2000 Main: if center = 1 then play_headshot goto main play_Headshot: if center = 1 then play_Headshot pause 10 thefile = 0000 gosub SendData pause 2000 goto main SendData: high pinclk pause 300 low pinclk pause 2 for x = 0 to 15 low pinclk if (thefile & MSB) then high pindata else low pindata endif thefile = thefile << 1 pauseus 200 high pinclk pauseus 200 next x low pindata high pinclk return
Bookmarks