An Arduino-Based RC Transmitter Built to Control Robots
Aecert Robotics needed a way to pilot his DIY hexapod robot, so he built this Arduino-based RC transmitter-style controller.
We all run into a similar problem when building robots: we spend dozens or hundreds of hours excitedly designing and fabricating the robot itself, then reach a point where it becomes obvious that the robot won’t work without some way to control it. The result is often a controller that feels like a tacked-on afterthought. The solution is a versatile controller that can work with a variety of robots. Aecert Robotics needed a better way to control his hexapod robot, so he built this Arduino-based RC transmitter that works with that and can be reconfigured to work with future robots.
This project has been in the works for more than a year, with several different iterations showing up on the Aecert Robotics YouTube channel over the months. 11 months ago, Aecert Robotics uploaded a video covering the creation of the device’s custom PCB. In his most recent video, he completed the project with a nice 3D-printed enclosure and a polished user interface that was tailored to the hexapod’s motion and functions.
The entire RC transmitter is built around an Arduino Mega 2560 Pro development board. That isn’t an official Arduino design, but one sold by several third parties. It is basically an Arduino Mega 2560 in a smaller form factor.
That monitors input, updates the display, and communicates with the robot. Unlike a traditional RC transmitter, that communication goes both ways—the controller can send commands to the robot and receive data back from the robot. That is handy, because it enables feedback. The robot can, for example, send information about the battery status to the controller, which can then display that on the controller’s screen. The hexapod robot also contains an Arduino, so it can send any variable.
The controller’s Arduino and the robot’s Arduino communicate via Nordic Semiconductor nRF24L01+ radio transceivers. The “+” in that model number is important, because it indicates that the modules can handle the aforementioned bidirectional communication.
The screen on the controller is a large monochrome OLED. In addition, the controller has joysticks, toggle switches, buttons, and rotary encoders. Those all go on the custom PCB and that fits into the attractive 3D-printed enclosure.
Aecert Robotics put a lot of effort into the UI, which suits the unique movement and gait of the hexapod robot. For instance, the display shows a simplified overhead view of the hexapod so the leg positions are visible.
And, of course, Aecert Robotics can reprogram the controller to suit any robots he builds in the future, so he doesn’t have to keep reinventing the wheel each time.