Board pt_BR - dtex/johnny-five GitHub Wiki
A classe Board constrói objetos que representam a própria placa fisicamente. Todos os objetos do dispositivo dependem de um objeto de placa inicializado e pronto.
Johnny-Five foi testado em, mas não está limitado às, seguintes placas:
- Arduino UNO
- Arduino Leonardo
- Arduino MEGA
- Arduino FIO
- Arduino Pro
- Arduino Pro Mini
- Arduino Nano
- TinyDuino
Veja também: Suporte Multi Placas
- opções Objeto opcional e parâmetros opcionais.
| Nome da Propriedade | Tipo | Valor(es) | Descrição | Obrigatório | 
|---|---|---|---|---|
| id | Número, String | Qualquer | Identificação definida pelo usuário | não | 
| port | String ou objeto | "/dev/ttyAM0", "COM1", new SerialPort() | Caminho ou nome da porta/COM ou objeto SerialPort | não | 
{ 
  ready: ...Um valor booleano que indica se a placa fisica está pronta
  firmata: ...Uma referência para a camada de protocolo
  id: ...Um valor de identificação definido pelo usuário. Padrão gera um id único
  pins: ...Um array de todos os pinos, resultado da query de capacidades
  type: ...Uma string identificando o tipo da placa, pode ter os seguintes valores: "UNO", "MEGA", "LEONARDO" or "UNKOWN"
  repl: ...Referência para o objeto repl session
  port: Uma string ilustrando o caminho do dispositivo ou endereço COM
}O jeito mais fácil de inicializar o objeto placa é chamando a função construtora Board precedida de um new. Não se preocupe em saber o caminho do seu dispositivo ou porta COM, o Johnny-Five irá descobrir em qual porta USB a placa está conectada e irá se conectar a ela automaticamente.
var five = require("johnny-five"),
    board = new five.Board();Você pode, opcionalmente, especificar a porta fornecendo ela como uma propriedade do parâmetro do objeto:
var five = require("johnny-five"),
    board = new five.Board({ port: "/dev/tty.usbmodemNNNN" });ou
var five = require("johnny-five"),
    board = new five.Board({ port: "COM1" });ou você pode especificar o objeto SerialPort fornecendo-o como uma propriedade do parâmetro do objeto:
var SerialPort = require("serialport").SerialPort;
var five = require("johnny-five");
var board = new five.Board({
  port: new SerialPort("COM4", {
    baudrate: 9600,
    buffersize: 1
  })
});Uma vez que o objeto da placa foi inicializado, ele deve ser conectado a placa fisica através de uma série de passos simples, uma vez que eles foram completados, a placa está pronta para comunicar com o programa. Esse processo é assíncrono, e enviado ao programa através do evento ready.
var five = require("johnny-five"),
    board = new five.Board();
board.on("ready", function() {
  // The board can now communicate with this program.
});Um exemplo básico, mas completo, do uso do construtor Board:
var five = require("johnny-five"),
    board = new five.Board();
board.on("ready", function() {
  // Create an Led on pin 13
  var led = new five.Led(13);
  // Strobe the pin on/off, defaults to 100ms phases
  led.strobe();
});- 
repl Esta é a propriedade do objeto da placa que representa o REPL automáticamente gerado que é criado quando um programa Johnny-Five é executado. Esse objeto possui um método injectque pode ser chamado quantas vezes for necessário.
- 
repl.inject(object) Injeta objetos ou valores, do programa para a sessão REPL. 
var five = require("johnny-five"),
    board = new five.Board();
board.on("ready", function() {
  // Initialize an Led object that can be controlled from the REPL session
  this.repl.inject({
    led: new five.Led(13)
  });  
});
/*
  From the terminal...
  > node program.js
  1375291815062 Board Connecting... 
  1375291815081 Serial Found possible serial port /dev/whatever-this-port-is
  1375291815082 Board -> Serialport connected /dev/whatever-this-port-is
  1375291816115 Board <- Serialport ready /dev/whatever-this-port-is
  1375291816116 Repl Initialized 
  >> 
  (Since the led object is available here...)
  >> led.on();
  >> led.off();
  
*/- 
pinMode(pin, mode) Define o modo modede um pinopinespecífico, pode ter um dos valores seguintes: INPUT, OUTPUT, ANALOG, PWM, SERVO. Constantes de modo estão expostas através da classePin
| Modo | Valor | Constante | 
|---|---|---|
| INPUT | 0 | Pin.INPUT | 
| OUTPUT | 1 | Pin.OUTPUT | 
| ANALOG | 2 | Pin.ANALOG | 
| PWM | 3 | Pin.PWM | 
| SERVO | 4 | Pin.SERVO | 
board.on("ready", function() {
// pin mode constants are available on the Pin class this.pinMode(13, five.Pin.INPUT); });
- **analogWrite(pin, value)** Write an analog value (0-255) to a digital `pin`.
```js
var five = require("johnny-five"),
    board = new five.Board();
board.on("ready", function() {
  // Assuming an Led is attached to pin 9, this will turn it on at full brightness
  // PWM is the mode used to write ANALOG signals to a digital pin
  this.pinMode(9, five.Pin.PWM);
  this.analogWrite(9, 255);
});
- 
analogRead(pin, handler(voltage)) Registra uma função para ser chamada quando a placa reportar o valor de voltagem (0-1023) do pino pinespecificado.
var five = require("johnny-five"),
    board = new five.Board();
board.on("ready", function() {
  // Assuming a sensor is attached to pin "A1"
  this.pinMode(1, five.Pin.ANALOG);
  this.analogRead(1, function(voltage) {
    console.log(voltage);
  });
});- 
digitalWrite(pin, value) Escreve um valor digital (0 ou 1) para um pino pindigital.
var five = require("johnny-five"),
    board = new five.Board();
board.on("ready", function() {
  // Assuming an Led is attached to pin 13, this will turn it on
  this.pinMode(13, five.Pin.OUTPUT);
  this.digitalWrite(13, 1);
});- 
digitalRead(pin, handler(value)) Registra uma função para ser chamada quando a placa informar o valor (0 ou 1) do pino pinespecificado.
var five = require("johnny-five"),
    board = new five.Board();
board.on("ready", function() {
  // Assuming a button is attached to pin 9
  this.pinMode(9, five.Pin.INPUT);
  this.digitalRead(9, function(value) {
    console.log(value);
  });
});- 
shiftOut(dataPin, clockPin, isBigEndian, value) Escreve um byte no dataPin, seguido de uma alteração noclockPin.Referência: Understanding Big and Little Endian Byte Order
- 
wait(ms, handler()) Registra uma função para ser chamada uma vez no próximo turno de execução e assim que o tempo especificado em milissegundos passar. 
var five = require("johnny-five"),
    board = new five.Board();
board.on("ready", function() {
  // Assuming an Led is attached to pin 13
  this.pinMode(13, five.Pin.OUTPUT);
  // Turn it on...
  this.digitalWrite(13, 1);
  this.wait(1000, function() {
    // Turn it off...
    this.digitalWrite(13, 0);
  });
});- loop(ms, handler()) Registra uma função para ser chamada repetidamente em outro turno de execução, sempre que o tempo especificado em milissegundos passar.
var five = require("johnny-five"),
    board = new five.Board();
board.on("ready", function() {
  var byte;
  // Assuming an Led is attached to pin 13
  this.pinMode(13, five.Pin.OUTPUT);
  // Homemade strobe
  this.loop(500, function() {
    this.digitalWrite(13, (byte ^= 0x01));
  });
});