Society of Robots - Robot Forum

Electronics => Electronics => Topic started by: jonagik on June 13, 2011, 08:13:26 PM

Title: Creating an 2-way radio (ADC & DAC question)
Post by: jonagik on June 13, 2011, 08:13:26 PM
Hi,

I'm looking to do a project which is effectively a 2-way radio (walkie-talkie kinda thing) with a couple of microcontrollers with a radio connection.

My question is are there ADC/DAC modules which turn analogue microphone input into some sort of digital signal and some sort of digital signal into speaker output (3.5mm headphone output or something)? Can anyone recommend any options for this?

Cheers
Title: Re: Creating an 2-way radio (ADC & DAC question)
Post by: Admin on June 14, 2011, 08:10:06 PM
I have a friend who's done this. I sent him an email . . .
Title: Re: Creating an 2-way radio (ADC & DAC question)
Post by: jonagik on June 15, 2011, 04:50:07 AM
Cheers
Title: Re: Creating an 2-way radio (ADC & DAC question)
Post by: magnetron on June 18, 2011, 12:22:31 AM
There is a helpful app-note from Atmel (http://www.atmel.com/dyn/resources/prod_documents/doc1456.pdf) that describes how to handle audio recording and playback with an AVR microcontroller, using the built in ADC for acquisition and PWM for playback. In your case, just imagine a radio link to another AVR in place of the SPI data flash shown in the app-note.

I used this for adding a voice mode to a GPS weather balloon tracking system. This enabled it to read out a radio callsign and GPS coordinates in English, from voice samples stored into the AVRs program memory as 8-bit PCM at a 4kHz sample rate. The sample rate was originally 8kHz, which sounded much clearer, but exceeded the limited program memory of the AVR and had to be reduced. At 4kHz the voice is still intelligible (at least to me), though my friends joke that it sounds like Charlie Brown's teacher.
Title: Re: Creating an 2-way radio (ADC & DAC question)
Post by: Admin on June 18, 2011, 07:04:36 AM
I forgot to mention . . . WebbotLib offers a voice synthesis program using phonemes. It isn't a playback of a recording, but if memory size is an issue this is a good way to go.