Arduino 1 way walkie talkie device - Page 1
Forum section: electronics / beginners

author: dleebell
author_rank: Contributor
timestamp: February 16, 2015, 11:38:32 am
content: HiI've got a new project on the go where I am wanting to create a one way walkie talkie system between two devices with a distance of a minimum of 300 meters (1 device with a microphone the other with a speaker).I am also wanting to include a digital display on the speaker device and a control system on the other microphone device. The control system would be to +1 to the digital numbers each time you press it, and a reset button to go back to 0.I'm just wondering if you could give me some tips on certain components that I will need, and maybe a website that could guide me to build it too and any other tips on how I can go about in making this.I have currently an Arduino Uno that I was hoping to use, but am still a beginner in using it.Many Thanks

author: Richard Crowley
author_rank: Super Contributor
timestamp: February 16, 2015, 11:47:02 am
content: Wired or wireless?What is the range of the numeric display? (how many digits?)

author: dleebell
author_rank: Contributor
timestamp: February 16, 2015, 11:53:35 am
content: Wireless between the two devices.Preferably a range of 300 meters.Two digits.

author: Leuams
author_rank: Contributor
timestamp: February 16, 2015, 12:07:24 pm
content: For wireless communication you could try using two nRF24L01+ moduals. There are a few great libraries that should be able to help you out plus the they are low cost, $7USD on Amazon. I am not sure if it will do voice so you will have to do some research. I would start by searching the arduino playground.

author: dleebell
author_rank: Contributor
timestamp: February 16, 2015, 12:42:33 pm
content: Great yeah I'll look into them. Cheers

author: Richard Crowley
author_rank: Super Contributor
timestamp: February 16, 2015, 04:36:37 pm
content: Virtually all of the more sophisticated RF modules (like the Nordic nRF24L01) are digital. Unless you encode your audio (voice) into a digital data stream, those solutions will only handle your data (digit display) requirement.OTOH, there are modules which are made for "walkie-talkie" use and handle audio directly. And in some cases, data as well, but all of them will handle audio-encoded digital data using one of many typical modulation techniques (DTMF, Bell 103 FSK, ultrasonic, etc.)For example, here are a few available on Tindie:https://www.tindie.com/search/?q=walkie%20talk

author: Richard Crowley
author_rank: Super Contributor
timestamp: February 16, 2015, 04:44:09 pm
content: Remember also that using wireless modes requires compliance with the rules in your country.Since you have not identified your location, we have no idea whether any of our suggestions are legal in your country.(Hint: at least complete your user profile to reveal what country you are in.)

author: dleebell
author_rank: Contributor
timestamp: February 17, 2015, 11:34:08 am
content: Great thanks for the tips.I have asked some other electricians and so far the simplest way for me to make a working prototype is to use an off the shelf walkie talkie, rewire it by adding a 556 oscillator that is then picked up by the other walkie talkie that has the Arduino wired to it.That way each time a certain frequency is received by the Arduino it will decode it as a +1 to the digital display.That's what I understood of it.

author: Richard Crowley
author_rank: Super Contributor
timestamp: February 17, 2015, 01:24:44 pm
content: Quote from: dleebell on February 17, 2015, 11:34:08 amYes, that is a practical solution. Note that if you send only the "increment" message as a tone, you have reduced reliability that the display at the far end will be synchronized. If there is a communication problem, the receiver may miss a tone and not increment the counter. Or if the link gets interrupted, it might possibly be interpreted as TWO increment commands. Of course, whether this is a problem or not depends on what the application is (which we don't know). Also not clear how you could reset/zero the counter/display (or maybe that is not necessary?)

author: dleebell
author_rank: Contributor
timestamp: February 17, 2015, 01:52:43 pm
content: Yes, that is a practical solution. Note that if you send only the "increment" message as a tone, you have reduced reliability that the display at the far end will be synchronized. If there is a communication problem, the receiver may miss a tone and not increment the counter. Or if the link gets interrupted, it might possibly be interpreted as TWO increment commands. Of course, whether this is a problem or not depends on what the application is (which we don't know). I think at this stage I'll use the 556 for first working prototype and if it does seem unreliable I will have to change it. Also not clear how you could reset/zero the counter/display (or maybe that is not necessary?)Surely for the reset can't you send a different frequency in order for the Arduino to acknowledge it as the 'reset' option?Many Thanks

author: retrolefty
author_rank: Super Contributor
timestamp: February 17, 2015, 03:06:48 pm
content: Using DTMF added to the normal walky-talky audio stream is the simplest method in my opinion. I'm sure there is arduino DTMF receiver library code available for the 'speaker' end a single chip DTMF encoder for the 'microphone' end is also a pretty simple sub-project.

author: albert22
author_rank: Regular Contributor
timestamp: February 17, 2015, 04:19:56 pm
content: Quote from: retrolefty on February 17, 2015, 03:06:48 pm+1You can simplify the receiver software by using a DTMF decoder chip.

author: SL4P
author_rank: Super Contributor
timestamp: February 17, 2015, 08:43:03 pm
content: DTMF or tone signalling is heading in the right direction, as long as you don't mind audible tones on the voice channel (like an old taxi radio!).BUT is still an 'open loop' - especially in a wireless architecture where the transmission may be blocked or corrupted.If you can see the remote display, that shouldn't be a problem.Resetting the counter is just another tone.DTMF (dual tone) offers far better 'message' integrity than a 555/FSK style modulation. It minimises most chances for background audio to register as a valid command signal tone.

author: dleebell
author_rank: Contributor
timestamp: February 18, 2015, 04:29:22 pm
content: Thanks for all the tips and advice. The DTMF does sound like the better option but at this stage I only have a 556 to work with so I'm going to carry out a basic prototype with using that first. If it proves to be unreliable I will change to use a DTMF.Many Thanks

author: albert22
author_rank: Regular Contributor
timestamp: February 19, 2015, 04:53:26 am
content: If DTMS is not an option. I guess that your plan is to decode the tone with a software routine at the arduino but no microcontroller at the transmitter.You can make the tone to be unaudible by lowering the frequency. Similar to a technique used in some ham radios for activating repeaters, named CTCCS. The frequency can be as low as 67Hz as long as the radios can transmit and receive such a low frequency.Also several commands as increment, decrement and reset can be generated by pushbuttons that change values of R or C of the 556. The software routine then needs to decode the different frequencies.Some filtering will be required.Instead of software to detect a tone you can use a chip similar to the (ancient) NE567 tone decoder.

author: dleebell
author_rank: Contributor
timestamp: February 19, 2015, 12:48:36 pm
content: So I've attempted to put together this circuit as the first baby step in getting the 556 to work.http://www.circuit-innovations.co.uk/555.html(The 556 circuit at the bottom of the page)I've placed a button leading to the on/off too.Basically just want to work out how to use the 556 before I connect it wirelessly.Thanks

author: SL4P
author_rank: Super Contributor
timestamp: February 19, 2015, 09:41:46 pm
content: Your earlier references to 556 chips - just told us you need an oscillator to generate a tone - to be detected at the the remote 'display' end...The circuit shown generates a continuousseriesof tones - with the frequency defined by the first timer, and the repetition rate by the second. From what you've said previously, you only need a tone (the first part of the circuit) - effectively a 555. The second part of the 556 ids not needed - yet...That tone would be 'gated by your 'increment button' to send a tone when you needed it.Things to keep in mind... multiple bursts of tone ('keybounce' etc) may result in extra count pulses being detected - so you want to catch those in your detector. You could use the second part of the 556 to generate a single tone burst of a fixed length when the button is pressed (a one-shot action) to help with this.This is a great learning project, and has al lthe opportunities and pitfalls to teach yo a lot, but be prepared for some disappointment and Version 2 when you have a better understanding of what you want and how to implement it! Youwillwant a reset and decrement function sooner or later. keep these in mind.

author: dleebell
author_rank: Contributor
timestamp: February 20, 2015, 03:03:19 pm
content: Yeah it was a continuous tone, but with some help we connected the 10 pin to the ground with a resistor and that seemed to reverse circuit so that the tone would only come on when you pressed the button.Yes I could have used a 555 but I thought I might as well wire up the 556 so that its ready to implement the rest button for when I need it.Apparently the 556 has more of a controlled frequency to be picked up by the arduino.Many Thanks for your advice.