hybridgroup/cylon — 4.2k★ on GitHub (JavaScript). JavaScript framework for robotics, drones, and the Internet of Things (IoT)
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Cylon.js is a JavaScript framework for robotics, physical computing, and the Internet of Things (IoT).
It provides a simple, but powerful way to create solutions that incorporate
multiple, different hardware devices concurrently.
Want to use Node.js for robots, drones, and IoT devices? You are in the right place.
Want to use Ruby on robots? Check out our sister project, Artoo.
Want to use Golang to power your robots? Check out our sister project,
Gobot.
Build Status:
Getting Started
Installation
All you need to get started on a new robot is the cylon module:
npm install cylon
With the core module installed, now install the modules for whatever hardware
support you need. For the Arduino + LED blink example, we'll need the firmata, gpio, and i2c modules:
npm install cylon-firmata cylon-gpio cylon-i2c
Examples
Arduino + LED
The below example connects to an Arduino over a serial connection, and blinks an
LED once per second.
The example requires that the Arduino have the Firmata sketch installed; which
can be obtained either through the Ardunio IDE or the gort arduino upload firmata command available in gort.
var Cylon = require('cylon');
// define the robot
var robot = Cylon.robot({
// change the port to the correct one for your Arduino
connections: {
arduino: { adaptor: 'firmata', port: '/dev/ttyACM0' }
},
devices: {
led: { driver: 'led', pin: 13 }
},
work: function(my) {
every((1).second(), my.led.toggle);
}
});
// connect to the Arduino and start working
robot.start();
Cylon.js has an extensible syntax for connecting to multiple, different hardware
devices. The following 36 platforms are currently supported:
Platform
Support
ARDrone
cylon-ardrone
Arduino
cylon-firmata
Arduino YUN
cylon-firmata
AT&T M2X
cylon-m2x
Audio
cylon-audio
Beaglebone Black
cylon-beaglebone
Bebop
cylon-bebop
Bluetooth LE
cylon-ble
Crazyflie
cylon-crazyflie
Digispark
cylon-digispark
Electric Imp
cylon-imp
Intel Edison
cylon-intel-iot
Intel Galileo
cylon-intel-iot
Intel IoT Analytics
cylon-intel-iot-analytics
Joystick
cylon-joystick
Keyboard
cylon-keyboard
Leap Motion
cylon-leapmotion
MiP
cylon-mip
MQTT
cylon-mqtt
Nest
cylon-nest
Neurosky
cylon-neurosky
OpenCV
cylon-opencv
Phillips Hue
cylon-hue
Pebble
cylon-pebble
Pinoccio
cylon-pinoccio
PowerUp 3.0
cylon-powerup
Rapiro
cylon-rapiro
Raspberry Pi
cylon-raspi
Salesforce
cylon-force
Skynet
cylon-skynet
Spark
cylon-spark
Speech
cylon-speech
Sphero
cylon-sphero
Sphero BLE
cylon-sphero-ble
Tessel
cylon-tessel
WICED Sense
cylon-wiced-sense
Our implementation of GPIO (General Purpose Input/Output) allows for a shared
set of drivers supporting 14 different devices:
GPIO <=> Drivers
Analog Sensor
Button
Continuous Servo
Direct Pin
IR Range Sensor
LED
Makey Button (high-resistance button like the MakeyMakey)
Maxbotix Ultrasonic Range Finder
Motor
Relay
RGB LED
Servo
Temperature Sensor
TP401 Gas Sensor
We also support 14 different I2C (Inter-Integrated Circuit) devices
through a shared cylon-i2c module:
I2C <=> Drivers
BlinkM RGB LED
BMP180 Barometric Pressure + Temperature sensor
Direct I2C
HMC6352 Digital Compass
JHD1313M1 LCD with RGB Backlight
LCD
LIDAR-Lite
LSM9DS0G 9 Degrees of Freedom IMU
LSM9DS0XM 9 Degrees of Freedom IMU
MAG3110 3-Axis Digital Magnetometer
MPL115A2 Digital Barometer & Thermometer
MPU6050 Triple Axis Accelerometer and Gyro
PCA9544a 4-Channel I2C Mux
PCA9685 16-Channel 12-bit PWM/Servo Driver
In addition to our officially supported platforms, we have the following 8 user contributed platforms:
Platform
Support
APC UPS
cylon-apcupsd
iBeacon
cylon-beacon
Myo
cylon-myo
One-Wire
cylon-one-wire
Parrot Rolling Spider
cylon-rolling-spider
PCDuino
cylon-pcduino
Telegram
cylon-telegram
WeMo
cylon-wemo
We'll also have many more platforms and drivers coming soon, follow us on Twitter for updates.
Browser & Mobile Support
Cylon.js can be run directly in-browser, using the browserify NPM module.
You can also run it from withing a Chrome connected app, or a PhoneGap mobile app.
For more info on browser support, and for help with different configurations, you can find more info in our docs.
API Plugins
Cylon.js has support for different API plugins that can be used to interact with your robots remotely.
At this time we have support for http/https, mqtt, and socket.io with more coming in the near future.
To use an API plugin, install it alongside Cylon:
$ npm install cylon-api-http cylon-api-socketio
Then, all you need to do is call Cylon#api in your robot's script:
var Cylon = require("cylon");
// For http
Cylon.api('http');
// Or for Socket.io
Cylon.api('socketio');
Then visit https://localhost:3000/ and you are ready to control your robots from a web browser!
You can check out more information on the Cylon API in the docs here.
CLI
Cylon uses the Gort http://gort.io Command Line Interface (CLI) so you can access important features right from the command line. We call it "RobotOps", aka "DevOps For Robotics". You can scan, connect, update device firmware, and more!
Cylon also has its own CLI to generate new robots, adaptors, and drivers. You can check it out at https://github.com/hybridgroup/cylon-cli.
Documentation
We're busy adding documentation to our website, check it out at cylonjs.com/documentation.
If you want to help with documentation, you can find the code for our website at on the https://github.com/hybridgroup/cylon-site.
Contributing
For our contribution guidelines, please go to CONTRIBUTING.md.
Release History
For the release history, please go to RELEASES.md.
License
Copyright (c) 2013-2016 The Hybrid Group. Licensed under the Apache 2.0 license.
The most recent commit recorded on hybridgroup/cylon was 6.1 years ago, based on the GitHub push timestamp. The repository has 353 forks — one of the better signals of community interest.
How many stars does hybridgroup/cylon have?
hybridgroup/cylon has 4.2k GitHub stars — refresh the page for the live number, or check github.com/hybridgroup/cylon. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What language is hybridgroup/cylon written in?
hybridgroup/cylon is written primarily in JavaScript. GitHub's language field is based on the largest share of bytes in the default branch.
The project maintains a homepage at https://cylonjs.com. The README tab on this page also usually contains screenshots and a quickstart.
Where do I read more about hybridgroup/cylon?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/hybridgroup/cylon is the definitive source.
Read full README in the tab above.
Still deciding about cylon?
One click hands the question to an AI along with this page — see what it says about cylon.