3.0.5 • Published 7 years ago

nodatron v3.0.5

Weekly downloads
4
License
MIT
Repository
github
Last release
7 years ago

Nodatron

This module will allow you to easily create objects for your Arduino components, such as LEDs, sensors, buttons and servos. You can send commands by easily calling methods on these objects. These objects will also emit events when something happens, such as a button being pressed.

Note

This module is NOT Johnny-five. Use Johnny-five for a completely tested framework that supports many different boards and a lot more components. Each sample here comes with its corresponding sketch. You will still need to upload that sketch to your Arduino for any of this to work. I created Nodatron because I was having too many issues getting the serialport package to work on a Raspberry Pi.

This framework has only been tested on the following:

  • Arduino Uno R3 board connected to a Raspberry Pi 2/3.
  • Arduino Uno R3 board connected to a Raspberry Pi Zero.

#INSTALL

npm install nodatron

pip install pyserial

#RUN

npm test (will test a connection.)

npm button (will print out to the console whenever a button is toggled.) npm led (will blink an led.) npm sensor (will print out to the console when a sensor is triggered.) npm servo (will sweep a servo from 0-180 degrees.)

#LED blink

var nodatron = require('nodatron');

var arduino = new nodatron({"device" : "/dev/ttyACM0","baud" : 9600});

arduino.on("connected", function(){
  var led          = arduino.createLed(2);

  led.startBlink();
});

#Sensor

var nodatron = require('nodatron');

var arduino = new nodatron({"device" : "/dev/ttyACM0","baud" : 9600});

arduino.on("connected", function(){

  var motionSensor = arduino.createPir(7);

  motionSensor.on('start',function(){
    console.log("sensor detected some movement! Intruder alert!");
  });

  motionSensor.on('stop',function(){
    console.log("movement has stopped.");
  });

});

#Servo sweep

var nodatron = require('nodatron');

var arduino = new nodatron({"device" : "/dev/ttyACM0","baud" : 9600});

arduino.on("connected", function(){
  var servo         = arduino.createServo(9);

  var resetFlag = false;

  setInterval(function(){
    if(!resetFlag){
      servo.move(180);
      resetFlag = true;
    }
    else{
      servo.move(0);
    }
  },10000);

});

#Button

var nodatron = require('nodatron');

var arduino = new nodatron({"device" : "/dev/ttyACM0","baud" : 9600});

arduino.on("connected", function(){

  var button = arduino.createButton(6);

  button.on('on',function(){
    console.log("button toggled to on.");
  });

  button.on('off',function(){
    console.log("button toggled to off.");
  });

});

#Emic to speech module

var nodatron = require('nodatron');

var arduino = new nodatron({"device" : "/dev/ttyACM0","baud" : 9600});

arduino.on("connected", function(){
  var emic          = arduino.createEmicToSpeech(12);

  emic.speak("Hello. Do you want to play a game?");//this will be spoken.
});

#Gracefully shutting down

process.on('SIGTERM', function() {//called from /etc/init.d/nodatron.sh from kill pid
  log.info("Got kill signal. Exiting.");
  arduino.shutdown();
});

process.on('SIGINT', function() {
  log.warn("Caught interrupt signal(Ctrl-C)");
  arduino.shutdown();
});

#enable raw input from commandline (good for debugging)

arduino.enableConsole();

#catch a serial connection error

arduino.on("serialLostConnection", function(msg){
  console.error(msg);
});
3.0.5

7 years ago

3.0.4

7 years ago

3.0.3

7 years ago

3.0.2

7 years ago

3.0.1

7 years ago

3.0.0

7 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago

0.7.10

8 years ago

0.7.9

8 years ago

0.7.8

8 years ago

0.7.7

8 years ago

0.7.6

8 years ago

0.7.5

8 years ago

0.7.4

8 years ago

0.7.3

8 years ago

0.7.2

8 years ago

0.7.1

8 years ago

0.7.0

8 years ago

0.6.1

8 years ago

0.6.0

8 years ago

0.5.3

8 years ago

0.5.2

8 years ago

0.5.1

8 years ago

0.5.0

8 years ago

0.4.3

8 years ago

0.4.2

8 years ago

0.4.1

8 years ago

0.4.0

8 years ago

0.3.8

8 years ago

0.3.7

8 years ago

0.3.6

8 years ago

0.3.5

8 years ago

0.3.4

8 years ago

0.3.3

8 years ago

0.3.2

8 years ago

0.3.1

8 years ago

0.3.0

8 years ago

0.2.17

8 years ago

0.2.16

8 years ago

0.2.15

8 years ago

0.2.14

8 years ago

0.2.13

8 years ago

0.2.12

8 years ago

0.2.11

8 years ago

0.2.10

8 years ago

0.2.9

8 years ago

0.2.8

8 years ago

0.2.7

8 years ago

0.2.6

8 years ago

0.1.5

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.0.12

8 years ago

0.0.11

8 years ago

0.0.10

8 years ago

0.0.9

8 years ago

0.0.8

8 years ago

0.0.7

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago

0.0.0

8 years ago