GroveモジュールのUPMを利用したサンプルコードです。一部、mraaを利用したものもあります。
Grove Touch
var mraa_touch = require("mraa"); var touch = new mraa_touch.Gpio(8); touch.dir(mraa_touch.DIR_IN); function readTouch() { console.log("Gpio is " + touch.read()); } setInterval(readTouch, 1000);
Grove Temperature
//Load grove module. var groveSensor = require('jsupm_grove'); //Initialize temperature sensor class on Aio #1 var temp = new groveSensor.GroveTemp(1); console.log(temp.value());
// Load Grove module var groveSensor = require('jsupm_grove'); // Create the temperature sensor object using AIO pin 0 var temp = new groveSensor.GroveTemp(0); console.log(temp.name()); // Read the temperature ten times, printing both the Celsius and // equivalent Fahrenheit temperature, waiting one second between readings var i = 0; var waiting = setInterval(function() { var celsius = temp.value(); var fahrenheit = celsius * 9.0/5.0 + 32.0; console.log(celsius + " degrees Celsius, or " + Math.round(fahrenheit) + " degrees Fahrenheit"); i++; if (i == 10) clearInterval(waiting); }, 1000);
Grove Rotary
var upm_grove = require('jsupm_grove'); //setup access analog input Analog pin #0 (A0) var groveRotary = new upm_grove.GroveRotary(0); loop(); function loop() { var abs = groveRotary.abs_value(); var absdeg = groveRotary.abs_deg(); var absrad = groveRotary.abs_rad(); var rel = groveRotary.rel_value(); var reldeg = groveRotary.rel_deg(); var relrad = groveRotary.rel_rad(); //write the knob value to the console in different formats console.log("Abs: " + abs + " " + Math.round(parseInt(absdeg)) + " " + absrad.toFixed(3)); console.log("Rel: " + rel + " " + Math.round(parseInt(reldeg)) + " " + relrad.toFixed(3)); //wait 2 s and call function again setTimeout(loop, 2000); }
Grove Button
// Load Grove module var groveSensor = require('jsupm_grove'); // Create the button object using GPIO pin 0 var button = new groveSensor.GroveButton(0); // Read the input and print, waiting one second between readings function readButtonValue() { console.log(button.name() + " value is " + button.value()); } setInterval(readButtonValue, 1000);
Grove Slide
var upm_grove = require('jsupm_grove'); //setup access analog input Analog pin #0 (A0) var groveSlide = new upm_grove.GroveSlide(0); loop(); function loop() { var raw = groveSlide.raw_value(); var volts = groveSlide.voltage_value(); //write the slider values to the console console.log("Slider Value: " + raw + " = " + volts.toFixed(2) + " V"); //wait 2 s then call function again setTimeout(loop, 2000); }
Grove mini servo
//Load servo module. var servoModule = require("jsupm_servo"); //Instantiate Servo module on digital port 5 var servo = new servoModule.Servo(5); servo.setMinPulseWidth(600); servo.setMaxPulseWidth(2200) function moveServo() { //set angle of the servo to 180 degree after one seconds setInterval(function () { servo.setAngle(180); }, 1000); //set angle of the servo to 90 degree after two seconds setInterval(function () { servo.setAngle(90); }, 2000); //set angle of the servo to 0 degree after three seconds setInterval(function () { servo.setAngle(0); }, 3000); } moveServo();
Grove LED
var upmled = require("jsupm_grove"); var myled = new upmled.GroveLed(2); var flag = true; function blink() { if (flag) { myled.on(); } else { myled.off(); } flag = !flag; //toggle between states. setTimeout(blink, 1000); } blink();
Grove LCD Backlight
//Load i2clcd module var LCD = require('jsupm_i2clcd'); //Initialize Jhd1313m1 at 0x62 (RGB_ADDRESS) and 0x3E (LCD_ADDRESS) var myLcd = new LCD.Jhd1313m1 (0, 0x3E, 0x62); myLcd.setCursor(0,0); myLcd.write('Hello World');
Grove buzzer
var upmBuzzer = require("jsupm_buzzer"); var myBuzzer = new upmBuzzer.Buzzer(5); var chord = [upmBuzzer.DO, upmBuzzer.RE, upmBuzzer.MI, upmBuzzer.FA, upmBuzzer.SOL, upmBuzzer.LA, upmBuzzer.SI, upmBuzzer.DO, upmBuzzer.SI]; var chordIndex = 0; function melody() { if (chord.length != 0) { //Play sound myBuzzer.playSound(chord[chordIndex], 100000); chordIndex++; //Reset the sound to start from the beginning. if (chordIndex > chord.length - 1) chordIndex = 0; setTimeout(melody, 100); } } melody();
Grove Light
UPM sample code
var pinNumber = 1; // replace your pin number var groveSensor = require('jsupm_grove'); var light = new groveSensor.GroveLight(pinNUmber); console.log(light.value());
// Load Grove module var groveSensor = require('jsupm_grove'); // Create the light sensor object using AIO pin 0 var light = new groveSensor.GroveLight(0); // Read the input and print both the raw value and a rough lux value, // waiting one second between readings function readLightSensorValue() { console.log(light.name() + " raw value is " + light.raw_value() + ", which is roughly " + light.value() + " lux"); } setInterval(readLightSensorValue, 1000);
Grove Button
mraa_button = require("mraa"); myButton = new mraa_button.Gpio(8); myButton.dir(mraa_button.DIR_IN); function readButton() { console.log("Gpio is " + myButton.read()); } setInterval(readButton, 1000);
Grove Relay
// Load mraa.js module. var mraa = require("mraa"); //Initialize gpio 8 and 6 var myButton = new mraa.Gpio(8); var myrelay = new mraa.Gpio(6); //set input direction for button and output for relay myButton.dir(mraa.DIR_IN); myrelay.dir(mraa.DIR_OUT); function readButton() { //if button is pressed, send HIGH signal to relay. if (myButton.read() == 1) { myrelay.write(1); } else { myrelay.write(0); } } setInterval(readButton, 10);
Seeed Studioの出来合いのセンサー・表示器製品Grove systemをEdisonでつないでnode.jsでいろいろするサンプル。mraaの上位のライブラリにupmっていうのがあって、node.jsだとjsupmとなる