first commit
This commit is contained in:
commit
a5a0434432
1126 changed files with 439481 additions and 0 deletions
203
Software/NodeJS/tests/basicTest.js
Normal file
203
Software/NodeJS/tests/basicTest.js
Normal file
|
|
@ -0,0 +1,203 @@
|
|||
var GrovePi = require('../libs').GrovePi
|
||||
var Commands = GrovePi.commands
|
||||
var Board = GrovePi.board
|
||||
var AccelerationI2cSensor = GrovePi.sensors.AccelerationI2C
|
||||
var UltrasonicDigitalSensor = GrovePi.sensors.UltrasonicDigital
|
||||
var AirQualityAnalogSensor = GrovePi.sensors.AirQualityAnalog
|
||||
var DHTDigitalSensor = GrovePi.sensors.DHTDigital
|
||||
var LightAnalogSensor = GrovePi.sensors.LightAnalog
|
||||
var DigitalButtonSensor = GrovePi.sensors.DigitalButton
|
||||
var LoudnessAnalogSensor = GrovePi.sensors.LoudnessAnalog
|
||||
var RotaryAngleAnalogSensor = GrovePi.sensors.RotaryAnalog
|
||||
var DustDigitalSensor = GrovePi.sensors.dustDigital
|
||||
|
||||
var board
|
||||
|
||||
|
||||
var testOptions = {
|
||||
acceleration: false,
|
||||
ultrasonic: false,
|
||||
airQuality: false,
|
||||
dhtDigital: false,
|
||||
lightAnalog: false,
|
||||
digitalButton: true,
|
||||
loudnessAnalog: false,
|
||||
rotaryAngle: true,
|
||||
dust: true,
|
||||
customAccelerationReading: false
|
||||
}
|
||||
|
||||
function start() {
|
||||
console.log('starting')
|
||||
|
||||
board = new Board({
|
||||
debug: true,
|
||||
onError: function (err) {
|
||||
console.log('TEST ERROR')
|
||||
console.log(err)
|
||||
},
|
||||
onInit: function (res) {
|
||||
if (res) {
|
||||
|
||||
console.log('GrovePi Version :: ' + board.version())
|
||||
|
||||
if (testOptions.acceleration) {
|
||||
var accSensor = new AccelerationI2cSensor()
|
||||
// I2C sensor doesn't need to specify a port
|
||||
// Acc. XYZ
|
||||
console.log('Acceleration I2C Sensor (single read) :: ' + accSensor.read())
|
||||
console.log('Acceleration I2C Sensor (start stream - 1sec delay)')
|
||||
accSensor.stream(1000, function (res) {
|
||||
console.log('Acceleration stream value=' + res)
|
||||
})
|
||||
console.log('Acceleration I2C Sensor (start watch)')
|
||||
accSensor.on('change', function (res) {
|
||||
console.log('Acceleration onChange value=' + res)
|
||||
})
|
||||
accSensor.watch()
|
||||
}
|
||||
|
||||
if (testOptions.ultrasonic) {
|
||||
var ultrasonicSensor = new UltrasonicDigitalSensor(3)
|
||||
// Digital Port 3
|
||||
// Ultrasonic Ranger
|
||||
console.log('Ultrasonic Ranger Digital Sensor (start watch)')
|
||||
ultrasonicSensor.on('change', function (res) {
|
||||
console.log('Ultrasonic Ranger onChange value=' + res)
|
||||
})
|
||||
ultrasonicSensor.watch()
|
||||
}
|
||||
|
||||
if (testOptions.airQuality) {
|
||||
var airQualitySensor = new AirQualityAnalogSensor(1)
|
||||
// Analog Port 1
|
||||
// Air Quality Sensor
|
||||
console.log('AirQuality Analog Sensor (start watch)')
|
||||
airQualitySensor.on('change', function (res) {
|
||||
console.log('AirQuality onChange value=' + res)
|
||||
})
|
||||
airQualitySensor.watch()
|
||||
}
|
||||
|
||||
if (testOptions.dhtDigital) {
|
||||
var dhtSensor = new DHTDigitalSensor(3, DHTDigitalSensor.VERSION.DHT22, DHTDigitalSensor.CELSIUS)
|
||||
// Digital Port 3
|
||||
// DHT Sensor
|
||||
console.log('DHT Digital Sensor (start watch)')
|
||||
dhtSensor.on('change', function (res) {
|
||||
console.log('DHT onChange value=' + res)
|
||||
})
|
||||
dhtSensor.watch(500) // milliseconds
|
||||
}
|
||||
|
||||
if (testOptions.lightAnalog) {
|
||||
var lightSensor = new LightAnalogSensor(3)
|
||||
// Analog Port 3
|
||||
// Light Sensor
|
||||
console.log('Light Analog Sensor (start watch)')
|
||||
lightSensor.on('change', function (res) {
|
||||
console.log('Light onChange value=' + res)
|
||||
})
|
||||
lightSensor.watch()
|
||||
}
|
||||
|
||||
if (testOptions.loudnessAnalog) {
|
||||
var loudnessSensor = new LoudnessAnalogSensor(2)
|
||||
//Analog Port 2
|
||||
// Loudness Sensor
|
||||
console.log('Loudness Analog Sensor (start monitoring - reporting results every 10s)')
|
||||
loudnessSensor.start()
|
||||
setInterval(loudnessSensorGetAvgMax, 10000, loudnessSensor)
|
||||
}
|
||||
|
||||
if (testOptions.digitalButton) {
|
||||
var buttonSensor = new DigitalButtonSensor(4)
|
||||
//Digital Port 4
|
||||
// Button sensor
|
||||
console.log('Digital Button Sensor (start watch)')
|
||||
buttonSensor.on('down', function (res) {
|
||||
//res will be either singlepress or longpress
|
||||
console.log('Button onDown, data=' + res)
|
||||
})
|
||||
buttonSensor.watch()
|
||||
}
|
||||
|
||||
if (testOptions.rotaryAngle) {
|
||||
var rotaryAngleSensor = new RotaryAngleAnalogSensor(1)
|
||||
//Analog Port 1
|
||||
// Rotary Angle Sensor
|
||||
console.log('Rotary Angle Sensor (start watch)')
|
||||
rotaryAngleSensor.start()
|
||||
rotaryAngleSensor.on('data', function (res) {
|
||||
console.log('Rotary onData value=' + res)
|
||||
})
|
||||
}
|
||||
|
||||
if (testOptions.dust) {
|
||||
var dustSensor = new DustDigitalSensor(2)
|
||||
//digital port 2
|
||||
// Dust Digital Sensor
|
||||
console.log('Dust Digital Sensor (start monitoring - reporting results every 30s)')
|
||||
//we must get results every 30 seconds
|
||||
dustSensor.start()
|
||||
setInterval(dustSensorGetAvgMax, 30 * 1000, dustSensor)
|
||||
}
|
||||
|
||||
if (testOptions.customAccelerationReading) {
|
||||
// Custom external reading
|
||||
console.log('Custom external reading')
|
||||
console.log('customAccelerationReading()::' + customAccelerationReading())
|
||||
}
|
||||
} else {
|
||||
console.log('TEST CANNOT START')
|
||||
}
|
||||
}
|
||||
})
|
||||
board.init()
|
||||
}
|
||||
|
||||
function loudnessSensorGetAvgMax(loudnessSensor) {
|
||||
var res = loudnessSensor.readAvgMax()
|
||||
console.log('Loudness avg value=' + res.avg + ' and max value=' + res.max)
|
||||
}
|
||||
|
||||
function dustSensorGetAvgMax(dustSensor) {
|
||||
var res = dustSensor.readAvgMax()
|
||||
//avg and max will be the same in this test
|
||||
//since we're gathering them over 30 seconds
|
||||
//but that's the same pediod this loop runs
|
||||
console.log('Dust avg value=' + res.avg + ' and max value=' + res.max)
|
||||
}
|
||||
|
||||
function customAccelerationReading() {
|
||||
var write = board.writeBytes(Commands.acc_xyz.concat([Commands.unused, Commands.unused, Commands.unused]))
|
||||
if (write) {
|
||||
board.wait(100)
|
||||
board.readByte()
|
||||
var bytes = board.readBytes()
|
||||
if (bytes instanceof Buffer) {
|
||||
var x = bytes[1] > 32 ? -(bytes[1] - 224) : bytes[1]
|
||||
var y = bytes[2] > 32 ? -(bytes[2] - 224) : bytes[2]
|
||||
var z = bytes[3] > 32 ? -(bytes[3] - 224) : bytes[3]
|
||||
return [x, y, z]
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
function onExit(err) {
|
||||
console.log('ending')
|
||||
board.close()
|
||||
process.removeAllListeners()
|
||||
process.exit()
|
||||
if (typeof err != 'undefined')
|
||||
console.log(err)
|
||||
}
|
||||
|
||||
// starts the test
|
||||
start()
|
||||
// catches ctrl+c event
|
||||
process.on('SIGINT', onExit)
|
||||
62
Software/NodeJS/tests/led_blink.js
Normal file
62
Software/NodeJS/tests/led_blink.js
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
var GrovePi = require('../libs').GrovePi
|
||||
|
||||
// put led in port D3
|
||||
var led = new GrovePi.sensors.DigitalOutput(3);
|
||||
|
||||
// status will tell us if the led is on or off
|
||||
var status = 0;
|
||||
|
||||
var board;
|
||||
|
||||
function toggle() {
|
||||
|
||||
if (status == 0){
|
||||
console.log("toggle off");
|
||||
led.turnOff();
|
||||
status = 1;
|
||||
}
|
||||
else {
|
||||
console.log("toggle on");
|
||||
led.turnOn();
|
||||
status = 0;
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
console.log('starting')
|
||||
|
||||
board = new GrovePi.board({
|
||||
debug: true,
|
||||
onError: function(err) {
|
||||
console.log('TEST ERROR')
|
||||
},
|
||||
|
||||
onInit: function(res) {
|
||||
console.log("OnInit");
|
||||
if (res) {
|
||||
// call toggle every second
|
||||
setInterval(toggle, 1000)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
board.init();
|
||||
} // end start()
|
||||
|
||||
|
||||
// called on Ctrl-C.
|
||||
// close the board and clean up
|
||||
function onExit(err) {
|
||||
console.log('ending')
|
||||
board.close()
|
||||
process.removeAllListeners()
|
||||
process.exit()
|
||||
if (typeof err != 'undefined')
|
||||
console.log(err)
|
||||
}
|
||||
|
||||
// starts the test
|
||||
start()
|
||||
// catches ctrl+c event
|
||||
process.on('SIGINT', onExit)
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue