JavaScript, along with its various libraries and frameworks, is one of the most used programming languages today. NodeJS (a.k.a. Node) is one of these JavaScript frameworks and is responsible for many of the most popular applications on the Internet because it is lightweight, efficient, has excellent performance, and is highly scalable.

Node is continually being used in new and exciting ways in everything from microservices to computationally-heavy operations. One example of that is how Node is being leveraged to control microcontrollers to build everything from simple mechanical systems to very complex robotic systems and even wearable technology.

The Ins and Outs of Microcontrollers

Microcontrollers are an important piece of the puzzle in the discussion of Nodebots, thus a brief discussion of what they are and the different kinds there are is warranted.

Quite simply, microcontrollers are small programmable computers that accept various components and can be controlled through the use of Node. Several different microcontrollers are available commercially, such as the Raspberry Pi, Particleboards, Spark Core, and the more common - Arduino boards. Each of these boards can be used however, Arduino is the most utilized microcontroller and works right out of the box with the Nodebot libraries. One reason why they are the most utilized is that Arduino is open source, and there are numerous starter kits available which include an array of components that can be connected and controlled by the board. Because of this, it makes rapid prototyping with an Arduino-based system easy and affordable. Although the kits and commercial components are convenient, they can have limitations in their ability to be used in more advanced applications or more complex problems. However, because Arduino is open source, we have the ability to build our own boards to solve these more complex problems.

So what is a Nodebot exactly?

A Nodebot is literally any type of robotic system that is controlled via Node. These systems can range from a small blinking LED to a complex battle bot or quad-copter. A Nodebot can contain motors, cameras, wheels, arms and legs, displays, and various detectors, as well as many other components. Because the microcontroller can accept this vast array of different components, the sky really is the limit on what can be built leveraging Node with the different microcontrollers and components.

Nodebots can be credited to several developers, however Chris Williams’ Node-serialport package was the first step in developing Nodebots. Node-serialport, allows developers to use low energy serial ports to gain access to real world devices. The Firmata library, developed by Julian Gautier, was the next step in the evolution of Nodebots. It allows developers to use JavaScript to access the various microcontrollers via software. Finally, using the Firmata library, Rick Waldren developed the Johnny-Five framework, which is a full JavaScript Robotic and Internet of Things (IoT) programming framework. I'll share more about that below. 

The Johnny-Five Framework

The Johnny-Five framework makes controlling the various components connected to a microcontroller relatively simple and straightforward and is the most utilized Nodebot framework today. As an npm module and open source project that allows JavaScript to interact with microcontrollers in a language they can understand, its baseline control kit has robust APIs and behaves the same across multiple platforms. Because it uses NodeJs, it can be combined with a vast number of libraries, including HapiJS, ar-drone and Octoblu, among others, to enhance the core functionality. This provides a more in-depth interaction with the various microcontrollers and components. With these additional frameworks, the Nodebots can interact with drones, IoT technologies, and be controlled from web calls.

Beyond Robotics

Using Johnny-Five and Node to build complex robotic systems is an interesting and fun concept, however there is so much more potential to build systems that go beyond simple robotics. At Dialexa, we’re exploring the use of Nodebots for developing new types of sensors that will monitor and collect data in new ways, including health data via wearables, soil and weather conditions to help automate agriculture, voice activated technology to enable human and computer interactions and automate processes in the home, as well as connect and develop new IoT technologies. In reality, the only limitations on what can be built are the imagination of the developer and the components that can be bought or designed.

To learn more about how Dialexa approaches innovation for our customers, including our software development process, click the image below.

Get Farther Faster with a free copy of our Guide to New Product Development Process for Software  


Be in the know.

Sign up for updates.

Click to Comment