A Johnny-Five plug-in for the HuskyLens AI Vision Sensor. Learn more about the HuskyLens at DFRobot.
AI on robots doesn't get any easier than this.
To purchase the HuskyLens, go to dfrobot.com
This repo is not affiliated with DFRobot. Their HuskyLens stuff is here.
const five = require("johnny-five");
const HuskyLens = require("../index.js")(five);
const board = new five.Board();
board.on("ready", () => {
const lens = new HuskyLens({
pins: { rx:11, tx:10 },
mode: "OBJECT_RECOGNITION"
});
lens.on("ready", () => {
console.log("The HuskyLens is connected and ready");
});
lens.on("block", block => {
console.log(block);
});
lens.on("arrow", arrow => {
console.log(arrow);
});
});
See the examples
folder for more, uh, examples.
const lens = new HuskyLens(opts);
The opts
parameter can be an array of pins in [rx, tx]
order or a complete options object.
If an object:
opts.pins
- An array of pins in [rx, tx]
order or a pins object { rx: 11, tx: 10 }
.
opts.mode
- A string selecting which mode to put the HuskyLens in at start (default: "FACE_RECOGNITION"
). Recognized values are:
- "FACE_RECOGNITION"
- "OBJECT_TRACKING"
- "OBJECT_RECOGNITION"
- "LINE_TRACKING"
- "COLOR_RECOGNITION"
- "TAG_RECOGNITION"
- "OBJECT_CLASSIFICATION"
opts.baud
- The speed of serial communications between your device and the HuskyLens (default: 9600)
opts.freq
- The frequency of data updates requested from the HuskyLens (default: 10hz)
lens.mode(<string> mode);
Change modes at run time. mode
can be any of the values described in the "Instantiation" section. If no value is passed for mode, this method will return the current mode as a string.
lens.freq(<number> frequency);
Set the frequency (in hz) of data updates from the HuskyLens. If no value is passed for frequency, this method will return th current frequency.
lens.stop();
Stop requesting updates from the HuskyLens.
lens.start();
Resume requesting updates from the HuskyLens.
The lens
instance is an event emitter so you can simply set up listeners to take action when new information is reported.
// When any block is received
lens.on("block", data => {
console.log(data);
});
// When block id:3 is received
lens.on("block-3", data => {
console.log(data);
});
// When an arrow is received
lens.on("arrow", data => {
console.log(data);
});
// When an arrow id:2 is received
lens.on("arrow-2", data => {
console.log(data);
});