Git Product home page Git Product logo

cylon-firmata's Introduction

Cylon.js for Firmata

Cylon.js (http://cylonjs.com) is a JavaScript framework for robotics, physical computing, and the Internet of Things (IoT).

This module provides an adaptor for microcontrollers such as the Arduino that support the Firmata protocol. This is possible thanks to the firmata module.

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).

Build Status Code Climate Test Coverage

How to Install

To get started, just install the NPM module:

$ npm install cylon cylon-firmata cylon-gpio cylon-i2c

How to Use

This quick example blinks an LED connected to an Arduino once per second:

var Cylon = require('cylon');

Cylon.robot({
  connections: {
    arduino: { adaptor: 'firmata', port: '/dev/ttyACM0' }
  },

  devices: {
    led: { driver: 'led', pin: 13 }
  },

  work: function(my) {
    every((1).second(), my.led.toggle);
  }
}).start();

How to Connect

Upload the Firmata Firmware to the Arduino

This section assumes you're using an Arduino Uno or another compatible board. If you already have the Firmata sketch installed, you can skip straight to the examples.

OS X

First plug the Arduino into your computer via the USB/serial port. A dialog box will appear telling you that a new network interface has been detected. Click "Network Preferences...", and when it opens, simply click "Apply".

Install the cylon-firmata module:

$ npm install cylon cylon-firmata

Once plugged in, use Gort's gort scan serial command to find out your connection info and serial port address:

$ gort scan serial

Use the gort arduino install command to install avrdude, this will allow you to upload firmata to the arduino:

$ gort arduino install

Once the avrdude uploader is installed we upload the firmata protocol to the arduino, use the arduino serial port address found when you ran gort scan serial:

$ gort arduino upload firmata /dev/tty.usbmodem1421

Now you are ready to connect and communicate with the Arduino using serial port connection

Ubuntu

First plug the Arduino into your computer via the USB/serial port.

Install the cylon-firmata module:

$ npm install cylon cylon-firmata

Once plugged in, use Gort's gort scan serial command to find out your connection info and serial port address:

$ gort scan serial

Use the gort arduino install command to install avrdude, this will allow you to upload firmata to the arduino:

$ gort arduino install

Once the avrdude uploader is installed we upload the firmata protocol to the arduino, use the arduino serial port address found when you ran gort scan serial, or leave it blank to use the default address ttyACM0:

$ gort arduino upload firmata /dev/ttyACM0

Now you are ready to connect and communicate with the Arduino using serial port connection

Windows

First plug the Arduino into your computer via the USB/serial port.

Install the cylon-firmata module:

$ npm install cylon cylon-firmata

Then download and install gort for your OS from the gort.io downloads page and install it.

Open a command prompt window by right clicking on the start button and choose Command Prompt (Admin) (on windows 8.1). Then navigate to the folder where you uncompressed gort (uncomress to a folder first if you haven't done this yet).

Once inside the gort folder, first install avrdude which we'll use to upload firmata to the arduino.

$ gort arduino install

When the installation is complete, close the command prompt window and open a new one. We need to do this for the env variables to reload.

$ gort scan serial

Take note of your arduinos serialport address (COM1, COM2, COM3 etc). You need to already have installed the arduino drivers from arduino.cc/en/Main/Software. Finally upload the firmata protocol sketch to the arduino.

$ gort arduino upload firmata <COMX>

Make sure to substitute <COMX> with the apropiate serialport address.

Now you are ready to connect and communicate with the Arduino using serial port connection.

Using arduino IDE

Open arduino IDE and go to File > Examples > Firmata > StandardFirmata and open it. Select the appriate port for your arduino and click upload. Wait for the upload to finish and you should be ready to start using Gobot with your arduino.

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

For our contribution guidelines, please go to https://github.com/hybridgroup/cylon/blob/master/CONTRIBUTING.md .

Release History

For the release history, please go to https://github.com/hybridgroup/cylon-firmata/blob/master/RELEASES.md .

License

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

cylon-firmata's People

Contributors

deadprogram avatar edgarsilva avatar rafmagana avatar stewart avatar xixebombilla avatar zankavrogin avatar zankich avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cylon-firmata's Issues

Sending shell command to start Cylon node script from sketch

I'm not sure where to ask this question..

I've been going through this guide:
http://cylonjs.com/documentation/platforms/yun/

Regarding the step that tells you disable the bridge script. If you do that, does that mean that you can no longer send shell commands to Linux via the Firmata sketch like so:

Serial.begin(115200);
while (!Serial);
Bridge.begin();
Process shell;
shell.runShellCommand(".....");

I'm doing this to run the Node script that has Cylon in it.

Does the Node script need to be started inside the /etc/rc.local file?

After a reboot, the device will not boot Linux

Hello,
I am using your StandardFirmataForATH0.ino with latest firmware on Arduino Yun.
It works great with Cyclon...

BUT, the problem is that after a reboot, the device will not boot Linux (maybe Linux interfaces are down).

for whatever reason, these lines are causing the problem:

Serial1.begin(57600); // Set the baud.
Firmata.begin(Serial1);

but if I do it like the original file:

Firmata.begin(57600);

the Linux works fine on boot, but I can't get Firmata to work if I take that line...
so it's a catch 22..

can you pleeeeeeeeeeeeeease help me,

I am already 2 days on this and I can't find a solution,

Regards,

Sean.

Subject: Arduino Yun and node.js, a good read

Subject: Arduino Yun and node.js, a good read

After spending 2 weeks working through lots of challanges with Arduino Yun and Node.js, I put together a massive article with lots of source code to cover in depth Arduino Yun and Node.js.

I also provide a pre-built binary image that you can bun onto your own Micro SD (instruction included) for the perfect Yun / Node.js setup.

I developed a serial Watchdog (for when serial bridge doesn't connect), socket.io client using binary ws for the Yun, figured our node.js live remote debug and more...

I just had too many good things to not share it with everyone, so here it is, ENJOY and please comment:

https://github.com/born2net/mediaArduino

(PS sorry that has to open an issue, but no other way to post on GitHub).

Error installing on Mac OSX

I am trying to install on Mac OSX Mountain Lion but I am getting the following:

[gregaryh@lapras ~]$ npm install cylon-firmata
npm http GET https://registry.npmjs.org/cylon-firmata
npm http 200 https://registry.npmjs.org/cylon-firmata
npm http GET https://registry.npmjs.org/cylon-firmata/-/cylon-firmata-0.7.0.tgz
npm http 200 https://registry.npmjs.org/cylon-firmata/-/cylon-firmata-0.7.0.tgz
npm http GET https://registry.npmjs.org/firmata
npm http GET https://registry.npmjs.org/node-namespace
npm http 304 https://registry.npmjs.org/node-namespace
npm http 200 https://registry.npmjs.org/firmata
npm http GET https://registry.npmjs.org/firmata/-/firmata-0.2.9.tgz
npm http 200 https://registry.npmjs.org/firmata/-/firmata-0.2.9.tgz
npm http GET https://registry.npmjs.org/serialport
npm http 304 https://registry.npmjs.org/serialport
npm http GET https://registry.npmjs.org/bindings/1.1.1
npm http GET https://registry.npmjs.org/sf/0.1.6
npm http GET https://registry.npmjs.org/async/0.1.18
npm http GET https://registry.npmjs.org/optimist
npm http 304 https://registry.npmjs.org/optimist
npm http 304 https://registry.npmjs.org/async/0.1.18
npm http 304 https://registry.npmjs.org/bindings/1.1.1
npm http 304 https://registry.npmjs.org/sf/0.1.6
npm http GET https://registry.npmjs.org/wordwrap
npm http 304 https://registry.npmjs.org/wordwrap

> [email protected] install /Users/gregaryh/node_modules/cylon-firmata/node_modules/firmata/node_modules/serialport
> node-gyp rebuild

  CXX(target) Release/obj.target/serialport/src/serialport.o
  CXX(target) Release/obj.target/serialport/src/serialport_unix.o
  CXX(target) Release/obj.target/serialport/src/serialport_poller.o
  SOLINK_MODULE(target) Release/serialport.node
  SOLINK_MODULE(target) Release/serialport.node: Finished
npm http GET https://registry.npmjs.org/cylon-gpio
npm http GET https://registry.npmjs.org/cylon-i2c
npm http 200 https://registry.npmjs.org/cylon-i2c
npm http GET https://registry.npmjs.org/cylon-i2c/-/cylon-i2c-0.6.0.tgz
npm http 200 https://registry.npmjs.org/cylon-gpio
npm http GET https://registry.npmjs.org/cylon-gpio/-/cylon-gpio-0.8.1.tgz
npm http 200 https://registry.npmjs.org/cylon-gpio/-/cylon-gpio-0.8.1.tgz
npm http 200 https://registry.npmjs.org/cylon-i2c/-/cylon-i2c-0.6.0.tgz
npm http GET https://registry.npmjs.org/i2c
npm http 200 https://registry.npmjs.org/i2c
npm http GET https://registry.npmjs.org/i2c/-/i2c-0.1.4.tgz
npm http 200 https://registry.npmjs.org/i2c/-/i2c-0.1.4.tgz
npm http GET https://registry.npmjs.org/bindings
npm http GET https://registry.npmjs.org/underscore/1.2.4
npm http GET https://registry.npmjs.org/repl/0.1.3
npm http GET https://registry.npmjs.org/coffee-script/1.3.3
npm http 200 https://registry.npmjs.org/bindings
npm http 200 https://registry.npmjs.org/repl/0.1.3
npm http GET https://registry.npmjs.org/repl/-/repl-0.1.3.tgz
npm http 200 https://registry.npmjs.org/underscore/1.2.4
npm http GET https://registry.npmjs.org/underscore/-/underscore-1.2.4.tgz
npm http 200 https://registry.npmjs.org/repl/-/repl-0.1.3.tgz
npm http 200 https://registry.npmjs.org/underscore/-/underscore-1.2.4.tgz
npm http 200 https://registry.npmjs.org/coffee-script/1.3.3
npm http GET https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz
npm http 200 https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz

> [email protected] install /Users/gregaryh/node_modules/cylon-i2c/node_modules/i2c
> node-gyp rebuild

  CXX(target) Release/obj.target/i2c/src/i2c.o
In file included from ../src/i2c.cc:11:
../src/i2c-dev.h:27:10: fatal error: 'linux/types.h' file not found
#include <linux/types.h>
         ^
1 error generated.
make: *** [Release/obj.target/i2c/src/i2c.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:789:12)
gyp ERR! System Darwin 12.5.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/gregaryh/node_modules/cylon-i2c/node_modules/i2c
gyp ERR! node -v v0.10.18
gyp ERR! node-gyp -v v0.10.9
gyp ERR! not ok
npm ERR! weird error 1
npm ERR! not ok code 0

installation problem

Thank you for taking the time

I try to install this module on two machine(Raspberry PI and my laptop).

When I run : npm install cylon-firmata

What happens: I get this error at the end of the process on both machine

1695 http GET http://registry.npmjs.org/cylon-i2c/-/cylon-i2c-0.5.0.tgz
11696 info retry fetch attempt 1 at 13:38:51
11697 verbose fetch to= C:\Users\Frank\AppData\Local\Temp\npm-6080-mfh-v0qr\1388255931367-0.9531360752880573\tmp.tgz
11698 http GET http://registry.npmjs.org/cylon-gpio/-/cylon-gpio-0.7.0.tgz
11699 http 404 http://registry.npmjs.org/cylon-i2c/-/cylon-i2c-0.5.0.tgz
11700 error fetch failed http://registry.npmjs.org/cylon-i2c/-/cylon-i2c-0.5.0.tgz
11701 silly lockFile 867d64a3-rg-cylon-i2c-cylon-i2c-0-5-0-tgz http://registry.npmjs.org/cylon-i2c/-/cylon-i2c-0.5.0.tgz
11702 silly lockFile 867d64a3-rg-cylon-i2c-cylon-i2c-0-5-0-tgz http://registry.npmjs.org/cylon-i2c/-/cylon-i2c-0.5.0.tgz
11703 http 404 http://registry.npmjs.org/cylon-gpio/-/cylon-gpio-0.7.0.tgz
11704 silly lockFile c9999bc3-cylon-i2c-0-5-0 [email protected]
11705 silly lockFile c9999bc3-cylon-i2c-0-5-0 [email protected]
11706 error fetch failed http://registry.npmjs.org/cylon-gpio/-/cylon-gpio-0.7.0.tgz
11707 silly lockFile a60b3a32--cylon-gpio-cylon-gpio-0-7-0-tgz http://registry.npmjs.org/cylon-gpio/-/cylon-gpio-0.7.0.tgz
11708 silly lockFile a60b3a32--cylon-gpio-cylon-gpio-0-7-0-tgz http://registry.npmjs.org/cylon-gpio/-/cylon-gpio-0.7.0.tgz
11709 silly lockFile 9b75bab8-cylon-i2c-0-5-0 cylon-i2c@>= 0.5.0
11710 silly lockFile 9b75bab8-cylon-i2c-0-5-0 cylon-i2c@>= 0.5.0
11711 silly lockFile f647ef02-cylon-gpio-0-7-0 [email protected]
11712 silly lockFile f647ef02-cylon-gpio-0-7-0 [email protected]
11713 silly lockFile 8af7b22b-cylon-gpio-0-7-0 cylon-gpio@>= 0.7.0
11714 silly lockFile 8af7b22b-cylon-gpio-0-7-0 cylon-gpio@>= 0.7.0
11715 info C:\Users\Frank\Desktop\One\node_modules\cylon-firmata unbuild
11716 info preuninstall [email protected]
11717 info uninstall [email protected]
11718 verbose true,C:\Users\Frank\Desktop\One\node_modules,C:\Users\Frank\Desktop\One\node_modules unbuild [email protected]
11719 info postuninstall [email protected]
11720 error Error: 404 Not Found
11720 error     at WriteStream.<anonymous> (C:\Program Files (x86)\nodejs\node_modules\npm\lib\utils\fetch.js:57:12)
11720 error     at WriteStream.EventEmitter.emit (events.js:117:20)
11720 error     at fs.js:1596:14
11720 error     at C:\Program Files (x86)\nodejs\node_modules\npm\node_modules\graceful-fs\graceful-fs.js:103:5
11720 error     at Object.oncomplete (fs.js:107:15)
11721 error If you need help, you may report this *entire* log,
11721 error including the npm and node versions, at:
11721 error     <http://github.com/isaacs/npm/issues>
11722 error System Windows_NT 6.1.7601
11723 error command "C:\\Program Files (x86)\\nodejs\\\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "cylon-firmata"
11724 error cwd C:\Users\Frank\Desktop\One
11725 error node -v v0.10.24
11726 error npm -v 1.3.21
11727 verbose exit [ 1, true ]

Timing issue, in many cases when running node firmata, it will hang.

Timing issue, in many cases when running node firmata, it will hang.
Happens about 50% of the time.

See below:

I, [2014-10-24T19:25:53.682Z] INFO -- : Initializing connections.
I, [2014-10-24T19:25:53.704Z] INFO -- : Initializing connection 'arduino'.
D, [2014-10-24T19:25:53.714Z] DEBUG -- : Loading adaptor 'firmata'.
D, [2014-10-24T19:25:56.319Z] DEBUG -- : Registering Firmata adaptor for Robot 76175
D, [2014-10-24T19:25:56.542Z] DEBUG -- : Registering i2c BlinkM driver for Robot 76175
D, [2014-10-24T19:25:57.013Z] DEBUG -- : Registering i2c HMC6352 driver for Robot 76175
D, [2014-10-24T19:25:57.048Z] DEBUG -- : Registering i2c MPL115A2 driver for Robot 76175
D, [2014-10-24T19:25:57.055Z] DEBUG -- : Registering i2c BMP180 driver for Robot 76175
D, [2014-10-24T19:25:57.058Z] DEBUG -- : Registering i2c MPU6050 driver for Robot 76175
D, [2014-10-24T19:25:57.062Z] DEBUG -- : Registering i2c LCD driver for Robot 76175
D, [2014-10-24T19:25:57.065Z] DEBUG -- : Registering i2c LSM9DS0G driver for Robot 76175
D, [2014-10-24T19:25:57.069Z] DEBUG -- : Registering i2c LSM9DS0XM driver for Robot 76175
I, [2014-10-24T19:25:57.093Z] INFO -- : Initializing devices.
I, [2014-10-24T19:25:57.098Z] INFO -- : Initializing device 'led'.
D, [2014-10-24T19:25:57.110Z] DEBUG -- : Loading driver 'led'.
I, [2014-10-24T19:25:57.124Z] INFO -- : Initializing device 'servo'.
D, [2014-10-24T19:25:57.128Z] DEBUG -- : Loading driver 'servo'.
I, [2014-10-24T19:25:57.138Z] INFO -- : Initializing device 'button'.
D, [2014-10-24T19:25:57.141Z] DEBUG -- : Loading driver 'button'.
I, [2014-10-24T19:25:57.171Z] INFO -- : Starting connections.
I, [2014-10-24T19:25:57.187Z] INFO -- : Connecting to 'arduino' on port /dev/ttyATH0.

Crash with Unhandled error: Serialport not open

I'm using the leapmotion and firmata Cylon modules. Controlling two servos on an Arduino based on hand movements with the Leap Motion. (Note: I was unable to install Firmata using Gort, so I installed the Standard Firmata from the Arduino API.)

Everything starts up and runs fine if I do a series of slow or normal/medium speed hand movements. But if I do hand movements that cause a servo to make a rapid series of angle changes, I get a crash:

events.js:72
throw er; // Unhandled 'error' event
^
Error: Serialport not open.
at SerialPortFactory.SerialPort.write (/Users/wys3/node_modules/cylon-firmata/node_modules/firmata/node_modules/serialport/serialport.js:211:17)
at Board.pinMode (/Users/wys3/node_modules/cylon-firmata/node_modules/firmata/lib/firmata.js:601:13)
at Adaptor.pinMode (/Users/wys3/node_modules/cylon-firmata/lib/firmata.js:117:14)
at Adaptor.servoWrite (/Users/wys3/node_modules/cylon-firmata/lib/firmata.js:90:8)
at Servo.angle (/Users/wys3/node_modules/cylon-gpio/lib/servo.js:57:19)
at Device. (/Users/wys3/Documents/cylonjs/leap_arduino.js:28:46)
at Device.emit (events.js:95:17)
at Connection. (/Users/wys3/node_modules/cylon-leapmotion/node_modules/cylon/lib/basestar.js:59:22)
at Connection.emit (events.js:95:17)
at Leap.loop.frame (/Users/wys3/node_modules/cylon-leapmotion/lib/adaptor.js:39:12)
at emit (events.js:95:17)

blinkM example; "EventEmitter memory leak detected."

Hi all. Thanks for the reply yesterday :)

I'm trying the BlinkM example code to work. I've gotten Cylon & Firmata working fine, and BlinkM works perfectly well with the BlinkMController, but the i2c stuff is failing when the cylon & firmata combination. Here are the errors.

I, [2015-05-21T21:10:22.480Z]  INFO -- : [Robot 35514] - Initializing connections.
I, [2015-05-21T21:10:22.694Z]  INFO -- : [Robot 35514] - Initializing devices.
I, [2015-05-21T21:10:22.697Z]  INFO -- : [Robot 35514] - Starting connections.
I, [2015-05-21T21:10:25.984Z]  INFO -- : [Robot 35514] - Starting devices.
I, [2015-05-21T21:10:25.985Z]  INFO -- : [Robot 35514] - Working.
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
    at addListener (events.js:160:15)
    at once (events.js:185:8)
    at Board.sendI2CReadRequest ( /Users/kevin.cannon/Documents/Prototyping/cylon-firmata/node_modules/cylon-firmata/node_modules/firmata/lib/firmata.js:956:8)
    at Adaptor.i2cRead ( /Users/kevin.cannon/Documents/Prototyping/cylon-firmata/node_modules/cylon-firmata/lib/firmata.js:202:14)
    at BlinkM.getRGBColor ( /Users/kevin.cannon/Documents/Prototyping/cylon-firmata/node_modules/cylon-i2c/lib/blinkm.js:190:26)
    at null.<anonymous> ( /Users/kevin.cannon/Documents/Prototyping/cylon-firmata/cylon.js:30:17)
    at wrapper [as _onTimeout] (timers.js:261:14)
    at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)

I noticed someone else having a similar issue a few months back here, but they never said if the issue was resolved for them: hybridgroup/cylon-i2c#17

I think it may be a wiring issue. I've tried it the way it's documented on the BlinkM page (just plugging it in)
http://thingm.com/fileadmin/thingm/images/photos/tm_blinkm_arduino_insert.jpg
and also on your documentation page:
http://cylonjs.com/documentation/drivers/blinkm/
(though without the resistors as it seems they're not needed)

Any thoughts? I tried to follow the advice for the compass in the other thread, but wasn't sure where to apply that code to test it.

Error importing submodules

Whenever I try to run one of the examples provided, I receive this warning:

Please install it with 'npm install cylon-gpio'

While checking on my installed modules, I can see that cylon-gpio is installed as a submodule of cylon-firmata.
Is it correct? Should I install the dependency separately?

npm install cylon-firmata - Error

Hi I tried to install cylon-firmata but it gives bellow error, anyone knows how to fix this ?

E:\wamp\www\iot-project\arduino\cylone>npm install cylon-firmata
npm WARN addRemoteGit Error: not found: git
npm WARN addRemoteGit     at F (C:\Program Files\nodejs\node_modules\npm\node_modules\which\which.js:78:19)
npm WARN addRemoteGit     at E (C:\Program Files\nodejs\node_modules\npm\node_modules\which\which.js:82:29)
npm WARN addRemoteGit     at C:\Program Files\nodejs\node_modules\npm\node_modules\which\which.js:93:16
npm WARN addRemoteGit     at FSReqWrap.oncomplete (fs.js:83:15)
npm WARN addRemoteGit  jacobrosenthal/node-pre-gyp-github#production resetting remote C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\git-github-com-jacobrosenthal-node-pre-gyp-github-git-production-00f1b2658a8ab0261b1b6e8aa994ae37 because of error: { [Error: not found: git] code: 'ENOGIT' }
npm ERR! git clone --template=C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\_templates --mirror git://github.com/jacobrosenthal/node-pre-gyp-github.git C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\git-github-com-jacobrosenthal-node-pre-gyp-github-git-production-00f1b2658a8ab0261b1b6e8aa994ae37: undefined
npm ERR! git clone --template=C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\_templates --mirror git://github.com/jacobrosenthal/node-pre-gyp-github.git C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\git-github-com-jacobrosenthal-node-pre-gyp-github-git-production-00f1b2658a8ab0261b1b6e8aa994ae37: undefined
npm WARN addRemoteGit Error: not found: git
npm WARN addRemoteGit     at F (C:\Program Files\nodejs\node_modules\npm\node_modules\which\which.js:78:19)
npm WARN addRemoteGit     at E (C:\Program Files\nodejs\node_modules\npm\node_modules\which\which.js:82:29)
npm WARN addRemoteGit     at C:\Program Files\nodejs\node_modules\npm\node_modules\which\which.js:93:16
npm WARN addRemoteGit     at FSReqWrap.oncomplete (fs.js:83:15)
npm WARN addRemoteGit  jacobrosenthal/node-pre-gyp-github#production resetting remote C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-jacobrosenthal-node-pre-gyp-github-git-production-1e8dd7eab6415a0b31fc9e88e23213e9 because of error: { [Error: not found: git] code: 'ENOGIT' }
npm ERR! git clone --template=C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\_templates --mirror https://github.com/jacobrosenthal/node-pre-gyp-github.git C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-jacobrosenthal-node-pre-gyp-github-git-production-1e8dd7eab6415a0b31fc9e88e23213e9: undefined
npm ERR! git clone --template=C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\_templates --mirror https://github.com/jacobrosenthal/node-pre-gyp-github.git C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-jacobrosenthal-node-pre-gyp-github-git-production-1e8dd7eab6415a0b31fc9e88e23213e9: undefined
npm WARN addRemoteGit Error: not found: git
npm WARN addRemoteGit     at F (C:\Program Files\nodejs\node_modules\npm\node_modules\which\which.js:78:19)
npm WARN addRemoteGit     at E (C:\Program Files\nodejs\node_modules\npm\node_modules\which\which.js:82:29)
npm WARN addRemoteGit     at C:\Program Files\nodejs\node_modules\npm\node_modules\which\which.js:93:16
npm WARN addRemoteGit     at FSReqWrap.oncomplete (fs.js:83:15)
npm WARN addRemoteGit  jacobrosenthal/node-pre-gyp-github#production resetting remote C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\git-github-com-jacobrosenthal-node-pre-gyp-github-git-production-d32d5d69965585ea64fc38a162bde390 because of error: { [Error: not found: git] code: 'ENOGIT' }
npm ERR! git clone --template=C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\_templates --mirror [email protected]:jacobrosenthal/node-pre-gyp-github.git C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\git-github-com-jacobrosenthal-node-pre-gyp-github-git-production-d32d5d69965585ea64fc38a162bde390: undefined
npm ERR! git clone --template=C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\_templates --mirror [email protected]:jacobrosenthal/node-pre-gyp-github.git C:\Users\Rimaz\AppData\Roaming\npm-cache\_git-remotes\git-github-com-jacobrosenthal-node-pre-gyp-github-git-production-d32d5d69965585ea64fc38a162bde390: undefined
npm WARN install Couldn't install optional dependency: not found: git
- [email protected] node_modules\cylon
- [email protected] node_modules\cylon-gpio\node_modules\cylon
- [email protected] node_modules\cylon-gpio
- [email protected] node_modules\cylon-i2c\node_modules\cylon
- [email protected] node_modules\cylon-i2c
- [email protected] node_modules\cylon-firmata
npm WARN EPACKAGEJSON [email protected] No description

Stepper Motors with Cylon

I would like to use the BigEasyDriver to drive a stepper motor from the Arduino.

I've chosen Cylon over Johnny-Five because, although newer, I believe Cylon has the right structure in place to make the system incredibly extensible and I believe it fits a larger scheme that I have in mind.

What I noticed with Cylon is a lack of support for stepper motors, although Arduino firmata packages exist which can support steppers, one such instance even being configurable to include only the necessary features.

Here is what I'm looking for:

  1. If someone has already driven stepper motors using Cylon, I would like to know about it.
  2. If not, I am prepared to find time to make it happen myself (I have both C/C++ knowledge as well as minor Javascript knowledge), but I will definitely need some guidance: where should I start?

Please NOTE, I can always simply use individual pins to drive the BigEasy, but handling the timing for a stepper motor on the Node.js side is NOT ideal. It is far better to handle the timing for a stepper motor on the Arduino which is why these firmata's which include stepper motor functionality exist.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.