When it comes to choosing a control system for your robot, there are many considerations and nearly infinite options available. How do you choose Arduino vs Raspberry Pi vs all the other possibilities?! We've broken it down into three simple steps.
1. Understand what features and functions you want a robotic control system to perform. Any system that is going to integrate into a robot needs at a minimum to respond to a wireless remote and to be able to drive the motors of the robot. For the purposes of this discussion, our robot will be assumed to be driven by standard 3-wire driven motors, similar to VEX robotics 3-wire motors or standard servo cabling.
2. Decide what types of sensors and remote control you want to use with your robot. If your team is familiar with the xBox style remote control, maybe you want to integrate that controller. Maybe using a Wiimote to drive the robot sounds like an interesting challenge and is a goal for the year.
3. Research options. There are many pros and cons to each of the options and it can be very important to do a little research before selecting a controller that will come up short or be unnecessarily complicated.
There are many different combinations that can be implemented successfully onto a competitive robot. Below are three options that could be used:
Option #1 - Raspberry Pi running Linux
A Raspberry Pi is a battery operated Single Board Computer (SBC) that most often runs a version of the Linux operating system. One of the biggest downsides of the RaspBerry Pi can be the boot up time, but in applications where the Computer can be powered up ahead of time, this effect can be minimized. The system running Linux is not the same as a dedicated microController in that the Linux board has many different processes going on at once, whereas the microController is more focused.
Option #2 - Arduino MicroController with USB Host Shield
This combination allows for a dedicated microController that can connect a remote to a bluetooth USB dongle. This setup is known to work with PS3, PS4, xBox, and Wiimotes.
Option #3 - Apollo MicroController with Bluetooth Remote Controller
The Apollo MicroController is based on the popular ESP-32 MicroController which has built in Bluetooth and Wifi capability. One configuration of this controller takes advantage of the Bluetooth to connect the Apollo to a mobile phone. The phone acts as a middleman to relay messages from the Bluetooth Remote to the robot.