Go to file
Andrew Stewart db2283ee1f Readme updates 2013-11-20 10:41:10 -08:00
dist Added adaptor extra params and updated salesforce example. 2013-11-15 21:09:27 -06:00
examples Update examples 2013-11-18 01:02:38 -08:00
src Clean up digital-pin 2013-11-19 11:47:34 -08:00
test Clean up tests 2013-11-11 11:28:37 -05:00
.gitignore Initial commit 2013-10-17 23:55:48 -07:00
.jshintrc Initial commit 2013-10-17 23:55:48 -07:00
.travis.yml Do not run travisci on site code 2013-11-15 09:44:23 -08:00
CONTRIBUTORS.md Add contributors list 2013-11-01 17:53:17 -07:00
Gruntfile.js Compile literate coffeescript 2013-11-05 15:09:37 -08:00
LICENSE Adding a test robot method 2013-10-18 22:32:23 -07:00
README.md Readme updates 2013-11-20 10:41:10 -08:00
package.json Update version to 0.5.0 2013-11-16 20:07:23 -08:00

README.md

Cylon.js

Build Status

Cylon.js (http://cylonjs.com) is a JavaScript framework for robotics and physical computing using Node.js.

It provides a simple, yet powerful way to create solutions that incorporate multiple, different hardware devices at the same time.

Want to use Ruby on robots? Check out our sister project Artoo (http://artoo.io).

Want to use the Go programming language to power your robots? Check out our sister project Gobot (http://gobot.io).

Getting Started

All you need to get started is the cylon module:

npm install cylon

Then install modules for whatever hardware support you want to use from your robot (in this case, an Arduino using the Firmata protocol):

npm install cylon-firmata

Examples

Note: before running examples in the examples/ dir from source, make sure to compile using grunt coffee first.

Javascript:

var Cylon = require("cylon");

// Initialize the robot
var robot = Cylon.robot({
  connection: { name: 'arduino', adaptor: 'firmata', port: '/dev/ttyACM0' },
  device: { name: 'led', driver: 'led', pin: 13 },

  work: function(my) {
    // we do our thing here
    every((1).second(), function() { my.led.toggle(); });
  }
});

// start working
robot.start();

CoffeeScript:

Cylon = require "cylon"

# Initialize the robot
robot = Cylon.robot
  connection:
    name: 'arduino', adaptor: 'firmata', port: '/dev/ttyACM0'

  device:
    name: 'led', driver: 'led', pin: 13

  work: (my) ->
    # we do our thing here
    every 1.second(), -> my.led.toggle()

robot.start()

Hardware Support

Cylon.js has a extensible system for connecting to hardware devices. The following robotics, physical computing, or software platforms are currently supported:

Support for many devices that use General Purpose Input/Output (GPIO) have a shared set of drivers provded using the cylon-gpio module:

Support for devices that use Inter-Integrated Circuit (I2C) have a shared set of drivers provded using the cylon-i2c module:

More platforms and drivers are coming soon...

Documentation

We're busy adding documentation to our web site at http://cylonjs.com/ please check there as we continue to work on Cylon.js

Thank you!

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

Version 0.1.0 - Initial release for ongoing development

Version 0.2.0 - Cylon.Basestar to help develop external adaptors/drivers

Version 0.3.0 - Improved Cylon.Basestar, and added API

Version 0.4.0 - Refactor proxy in Cylon.Basestar, improve API

License

Copyright (c) 2013 The Hybrid Group. Licensed under the Apache 2.0 license.