October 23, 2014 at 1:28 am #731
I would like to build a push-to-talk intercom with 2 audio hacker boards and 2 arduino uno boards. I have a couple of questions. Can the experts on this board help me? Thanks 🙂
Q1. Should I wire 2 arduino boards together through 2 unused digital I/O pins to transmit digital voice signal back and forth?
Q2. How do I let Arduino board #2 know that I push a button on Arduino board #1 (meaning I want to talk), so Arduino board #2 can get ready to receive the digital voice signal and then, either send to DAC and speaker, or save it in board #2’s SRAM memory for playing later.
Any other things I need to know? Sorry I am a newbie here 🙂
Thanks a million! Any help is appreciated.
JohnOctober 23, 2014 at 4:58 pm #2079
To build an intercom, why would you go to all the trouble of digitizing the audio? Why not just use the analog signal? I must be missing something.October 23, 2014 at 7:40 pm #2081
Thank you for your reply. Sorry I didn’t mention I need to add a radio to connect two devices at the end if this direct connection experiment works.. That’s why I need to digitalize the signal. Another reason is I want to save the voice message in the memory of the other audio hacker board.
For instance, people at the other end can choose to listen to the voice when it comes or choose to save it and listen to it later.
Make sense to you?
Back to my questions:
1. How to connect 2 boards? unused digital I/O?
2. How to let the other arduino know someone push the talk button? so it gets ready to record/save or simply play.
Thanks!October 23, 2014 at 11:22 pm #2084
You would need to use serial connection to transmit the data. That won’t work over long distances. Do you want this to work in realtime? There’s no way you will be able to write the audio sample data in realtime. Think about how much data that is. Even at a low sample rate like 16KHz, that’s 16000 integers per second. That’s 256,000 bits per second. How will to do that over a radio? What kind of radio? You can’t even do it over a wire, let alone a radio.
Or do you want to store a sample and then slowly transmit it to the other Arduino over serial?
Detecting a button push would mean writing some special command over serial, or running wires from the receiver arduino to the sender side.October 24, 2014 at 3:45 am #2085
It doesn’t have to be “real time”. Some delay is ok. I like your idea of saving the sample locally and transmit it to the receiver board.
About the bit rate, I watch the video for this project:
It seems 2k sampling rate still sounds ok. And I can also use a low bit, like 8bit. So, 2*1024*8= 16,384 bit per second (Am I right?)
Then, I may use this radio (radio data rate 128 kbps):
Is this do-able? Do I miss anything? Maybe I can transmit it in real time through serial port if the data rate is 16k as calculated above? or even low the resolution to 4 bit and reduce the data rate further.
Thanks a lot for your help.
-johnOctober 24, 2014 at 12:07 pm #2089
I think that transmitting recorded audio could be done if the sample rate is very low, and it cannot be done in while audio sampling is happening, only afterwards. So, NO REALTIME is possible. The microcontroller is simply not that fast! 2KHz will be nearly unintelligible, though. But this is what I would call an advanced Arduino project, not something that a beginner will do. Also, that radio shield WILL NOT work on the same arduino that has an Audio Hacker attached. There are pin conflicts. Generally, you cannot stack shields on the same Arduino and expect them to work. Sorry, but I think you are trying to do far more than a simple Arduino can do.
- You must be logged in to reply to this topic.