I have a project that requires the remote control of two servos, each located remotely from each other and from a main controller. The main controller will decide the angular displacement of each servo.
I am proposing a wireless/radio configuration for the task. As I have not seen an off the shelf integrated controller/transceiver capable of PWM output, I envisage that at each servo location, I will need to add a microcontroller, transceiver and power supply (see attached mud map). The main controller will determine the position required for each servo and then transmit its information to the relevant servo for it to change position.
I don’t necessarily require an acknowledgment from the servo to say “job done” after each transmit but in case this becomes a requirement, I’m providing for a transceiver at each servo (and not just a receiver).
The microcontroller for each servo then needs only:
the capability to physically mount the transceiver
to be programmed to receive information from the main controller (located no more than 1.2 meters away) and
to output a PWM signal to the servo based on the information it receives wirelessly from the main controller.
The main controller(Arduino Mega 2560) is currently completing this task through a wired (PWM) connection to each servo.
The transceiver at each servo will require its own channel and the transceiver on the main controller will need a capability to select between the two channels before transmitting its information.
The current real estate available for the servo microcontroller and its associated transceiver is about 80mmx30mmx30mm (but it can be enlarged if I can’t make it work with this current restriction). There is plenty of room to mount the transceiver on the main microcontoller
So… having said all this, have I overlooked a simpler means by which to remotely control the two servos. I am happy to take comments/suggestions from anyone who may have completed a similar task.
If my proposal has merit, I would be pleased to receive some recommendations/options regarding a minimum cost hardware configuration of microcontroller and transceiver at each servo location (plus main controller transceiver) to achieved said task.
I think that if you want to keep the costs low, and since the distance is so short, you would be well off using Bluetooth to communicate with your devices. I would continue using your Arduino Mega as the controller. You could also use a Bluno, it has Bluetooth baked right in. Its possible to connect to multiple devices with a single Bluetooth antenna, but it might not be easy. An easy workaround would be to add a second bluetooth antenna. For the receiving microcontrollers, you could keep it simple and use Arduino Blunos again.
If you add bluetooth antennas to your Arduino Mega. Keep in mind that you will need to use logic level controllers to control them.
I hope that helps! let us know how your project works out!
Thanks for the response. You have been very helpful as I had not considered Bluetooth.
If I interpret the information correctly, your suggestion is to control a Bluno M3 hardwired to the Arduino Mega and install a Bluno M3 at each servo location (3 Blunos in total). This may require an additional antenna on the Bluno M3 (the one connected to the Arduino Mega) to give me a separate channel and thereby maintain constant comms to each remote servo location. Have I interpreted your response correctly?
If so, I wonder then, is it possible to couple two HC-05s directly onto the Arduino Mega (no Bluno M3 at the Arduino Mega) and each HC-05 on the Arduino Mega will be on its own serial TX/RX port. Each HC-05 will communicate individually with the Bluno M3s installed at each servo location. Logic Level controllers will be required at the Arduino Mega. This is an alternative to having a third Bluno M3 connected to the Arduino Mega but will require a second HC-05 (assuming I have interpreted your response correctly)
Are there any flaws in this alternate proposal (see attached mud map)?
I suppose I wasn’t very clear in my initial explanation, but yes, this setup would work great. The Arduino Mega has multiple serial channels and can have two Bluetooth antennas attached. You should be able to pair with multiple devices from a single antenna, but that’s outside of my ability so I can’t speak to it.
Excellent feedback and suggestions, thank you Stephen.
I will go with the final plan we have discussed. As a final note, a quick and dirty trawl with my favorite search engine suggests to me that (while not stated explicitly) Bluetooth pairing is “monogamous” and can only have a conversation with one device at a time. Controlling multiple remote Bluetooth devices from a single antenna requires that the master:
connects and does its business with the 1st remote device,
disconnects from the 1st remote device,
establishes a connection to 2nd remote device,
does its business there,
disconnects from the 2nd remote device and then
… and we start again.
The largest concern appears to be the time taken to switch between remote devices which introduces nefarious delays which in turn plays havoc if things need to happen (relatively) quickly.