Pages Navigation Menu

Help! My robot is out of control!

Help! My robot is out of control!

Eventually, we’ll have fully autonomous robots…programming the next generation of robots that will take over the world. But, for now, STEP robots need human control in order to dominate. Here’s another game changing element of STEP. We’re deploying cost-effective controllers which lets the average participant download and start programming at home. Yes, at home. For free. But, there are choices to make.

Decisions, Decisions, Decisions…

If you are using the VEX micro-controller, the decisions have been made for you. The USB Keys in the Cortex and Joystick facilitate a Wi-Fi link between the two. (They call it their VEXnet). The VEXnet based Joystick is very capable with two sticks, 4 “trigger” buttons, 8 face buttons, and even 2-axis accelerometer. It sells for around $150. Yikes! But, worse than the stiff cost is it’s inherent restriction to the Cortex micro-controller. The technology is all hidden from the user and there is little to be learned that can apply to non-VEX robotics. On the positive side, you’ll get up and running quickly.

STEP teams using the Arduino micro-controllers have two options for wireless communication. You may use Bluetooth or Wi-Fi. You’ll also have alternative programming options for each wireless standard. Let’s see them side by side.


data speed: fast 10 times faster
theoretical range: 30 m depends on antenna
practical range: <20 m >100m
difficulty trivial some work
benefit just communication additional processor and I/O
quickstart link: Instructable Hackaday
do more: robot internet of things

It’s a tough decision to make. But, don’t worry. Choosing the easy route now (the HC-06 Bluetooth module) won’t prevent you from migrating to the ESP8266 WiFi breakout board later.

Programming Choice

In addition to choosing the robot communication standard, the Arduino-based STEP team needs to choose a human-machine interface. In other words, what device will the drivers be holding in their hands. Most hand held devices have both Bluetooth and WiFi options. So do many laptops. We just need to create an app to run on your device which can control your device’s communication standard. Truth is, there is likely an app already out there that will get you started whether you’ll be using your android phone, iPhone, or tablet. Let’s look at some options:

RobotRemo is a little app that does a lot of what you’ll need for free for either Bluetooth or WiFi (and beyond). It’s $5 for the full featured app. But, by the time you need the full featured app, you’ll probably be creating your own app from scratch.

Blynk is a strong candidate for the ESP8266. They have a great getting started page. Right now you can get more control using Blynk for free. However, there is reason to believe that they might soon start charging for their service. Blynk has a HUGE concern in that it is a server based interaction. Meaning, your hand held device and robot must both WiFi to a server which moderates the conversation. This could be a significant challenge in some environments where your network administrator is territorial. Of course, you can setup a Raspberry Pi as a simple server. But, that’s a topic for another day.

If you have access to an Android device, then Android Studio may soon become your new friend. Sure, there will be a learning curve with this powerful tool. But, imagine how cool it would be to write your own apps for your own phone. Way Cool! Now, we want to be realistic. This is not an overnight learning curve. Think, “by the end of the year.” Still, how great would it be to be able to write your own phone apps! To accelerate this option, we’ll be posting a template robot controller file for you to start with soon.

Finally, you might consider the Processing programming environment for programming for your Android or even your laptop.

Is all this programming stuff beyond our STEP students? I don’t think so. It may be new. But, there’s no time like the present to get started.

Leave a Comment

Your email address will not be published. Required fields are marked *