Control an Arduino's LED, servo, or motor from Node.js without writing any C++ or embedded firmware.
Build a browser-controlled hardware project by combining Johnny-Five with Express.js and Socket.io.
Prototype IoT sensor projects on Raspberry Pi or BeagleBone using the same JavaScript API as on Arduino.
Create a game controller for physical hardware by pairing Johnny-Five with a Bluetooth controller library.
| rwaldron/johnny-five | raspberrypifoundation/blockly | mishoo/uglifyjs | |
|---|---|---|---|
| Stars | 13,404 | 13,404 | 13,393 |
| Language | JavaScript | JavaScript | JavaScript |
| Setup difficulty | moderate | moderate | easy |
| Complexity | 3/5 | 3/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Arduino boards need a one-time Firmata sketch uploaded via the Arduino IDE before Node.js can control them.
Johnny-Five is a JavaScript framework for programming robots and IoT (Internet of Things) devices. It lets developers write Node.js code to control physical hardware like LEDs, motors, sensors, and displays, using the same JavaScript they might already know from web development. The framework uses a protocol called Firmata to talk to the hardware. For Arduino boards, the setup involves uploading a Firmata sketch through the Arduino IDE once, and from that point forward your JavaScript code communicates with the board over USB without needing any C++ or low-level embedded code. A list of IO Plugins handles non-Arduino platforms like Raspberry Pi, BeagleBone, Intel Edison, and Tessel 2, so the same Johnny-Five API works across a wide range of devices. The classic starting example blinks an LED on and off every half second in about five lines of code. From there the library provides APIs for servos, DC motors, sensors, buttons, accelerometers, temperature sensors, LCDs, piezo buzzers, and many other components. The project website at johnny-five.io has the full API reference, a large set of example programs, and wiring diagrams. Johnny-Five was designed to serve as a base layer rather than a complete solution. It pairs with other JavaScript libraries: web servers like Express.js, real-time frameworks like Socket.io, Bluetooth game controllers, and drone control libraries. That composition model lets you build web-connected or browser-controlled hardware projects using tools from the existing Node.js ecosystem. Installation is a single npm command. The full README is longer than what was shown.
A Node.js framework for programming robots and IoT devices using JavaScript, letting web developers control LEDs, motors, sensors, and displays on Arduino and other hardware boards without writing any C++.
Mainly JavaScript. The stack also includes JavaScript, Node.js, Arduino.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.