An Introduction to NodeBots
NodeBots have been around for a while, and the community around them is growing like wildfire. In this article, I’m going to explain what NodeBots are, how they work and how you can get started tinkering away at robot creation.
What is a Microcontroller?
Before I get too far into things, we’ll be mentioning microcontrollers quite frequently. A microcontroller is a tiny and very simple computer. It has a simple physical programmable circuit board that can detect various inputs and send outputs. An Arduino is a type of microcontroller. It’s actually one of the most common ones for newcomers to experiment with. There are other sorts of microcontrollers too that can be powered by Node, including Particle boards (my favorite!), BeagleBone boards, Tessel boards (the board itself runs on JS) and Espruino boards (also runs on JS). In this article, I’ll be focusing on Arduinos, as they’re the most common.
What are NodeBots?
NodeBots are (quite literally) robots of one kind or another that can be controlled via Node. They can have everything from wheels, movable arms and legs, motion detectors, cameras, LED displays, the ability to play sound and so much more. The only limits are your imagination and the components you can find and put together!
The whole idea of NodeBots evolved through the increasing capabilities of Node.js and the interest of a few developers like Nikolai Onken, Jörn Zaefferer, Chris Williams, Julian Gautier and Rick Waldron who worked to develop the various Node modules we use in NodeBots today. The Node package called node-serialport by Chris Williams started it all, allowing access to real world devices via reading and writing to serial ports at a low level.
Where To Start
- SparkFun Inventors Kit. This is the kit that started it all for me years ago! It comes with a range of standard components like colored LED lights, sensors, buttons, a motor, a tiny speaker and more. It also comes with a guide and sample projects you can use to build your skills. You can find it here: SparkFun Inventor’s Kit.
- Freetronics Experimenter’s Kit for Arduino. This kit is by an Australian-based company called Freetonics. It has very similar components to the SparkFun one, with a few small differences. It also has its own guide with sample projects to try as well. For those based in Australia, these kits and other Freetronics parts are available at Jaycar. You can also order it online here: Freetronics Experimenter’s Kit.
- Seeed Studio ARDX starter kit. Seeed Studio have their own starter kit too, which is also very similar to the SparkFun and Freetronics ones. It has its own guide and such too! You can find it here: ARDX – The starter kit for Arduino.
- Adafruit ARDX Experimentation Kit for Arduino. This kit is also very similar to the ones above with its own guide. You can find it here: Adafruit ARDX Experimentation Kit for Arduino.
- Arduino Starter Kit. The guys at Arduino.cc have their own official kit that’s available too. The starter kit is similar to the ones above but has some interesting sample projects like a “Love-O-Meter”. You can find it here and often at other resellers too: Arduino Starter Kit.
With all of the above kits, keep in mind that none of them are targeted towards NodeBot development. So the examples in booklets and such are written in the simplified C++ code that Arduino uses. For examples using Node, see the resources below.
Resources for Learning NodeBots
There are a few key spots where you can learn how to put together various NodeBot projects on the Web. Here are a few recommendations:
- Controlling an Arduino with Node.js and Johnny-Five. This is a free SitePoint screencast I recorded a little while ago that introduces the basics of connecting up an Arduino to Node.js and using the framework to turn an LED light on and off.
- Arduino Experimenter’s Guide for NodeJS. An adaptation by Anna Gerber and other members of the NodeBots community from the SparkFun version of .:oomlout:.’s ARDX Guide. It shows how to do many of the examples from the kits mentioned above in Node instead of the simplified C++ code from Arduino.
- The official Johnny-Five website. Not so long ago, the Johnny-Five framework had a whole new website released that has great documentation on how to use the framework on Arduino and other platforms too!
- NodeBots Official Site. Check this page out if you’re looking for a local NodeBots meetup near you, or to read more about NodeBots in general.
- NodeBots – The Rise of JS Robotics. A great post by Chris Williams on how NodeBots came to be. It’s a good read for those interested.
Andrew Fisher, a fellow Australian NodeBot enthusiast, put together a rather simple project for people to build for their first NodeBot experience. It’s called a “SimpleBot”, and it lives up to its name. It’s a NodeBot that you can typically build in a single day. If you’re keen on getting an actual robot up and running, rather than just a basic set of sensors and lights going on and off, this is a great project choice to start with. It comes available to Australian attendees of NodeBots Day (see below) in one of the ticket types for this very reason! It’s a bot with wheels and an ultrasonic sensor to detect if it’s about to run into things. Here’s what my own finished version looks like — which I prepared as a sample for NodeBots Day a few years ago:
A list of SimpleBot materials needed and some sample Node.js code is available at the SimpleBot GitHub repo. Andrew also has a YouTube video showing how to put the SimpleBot together.
Andrew also collaborated with the team at Freetronics to put together a SimpleBot Arduino shield that might also be useful to people who’d like to give it a go as a learning project without needing to solder anything: SimpleBot Shield Kit.
That concludes a simple introduction into the world of NodeBots! If you’re interested in getting involved, you’ve got all the info you should need to begin your NodeBot experience.