Skip to content

Latest commit

 

History

History
116 lines (83 loc) · 2.89 KB

README.md

File metadata and controls

116 lines (83 loc) · 2.89 KB

HuskyLens

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.

HuskyLens Image courtesy DFRobot

To purchase the HuskyLens, go to dfrobot.com

This repo is not affiliated with DFRobot. Their HuskyLens stuff is here.

Example

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.

Instantiation

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)

Methods

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.

Events

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);
});