Johnny-Five é uma estrutura de programação de IoT e robótica de código aberto, baseada em protocolo Firmata, desenvolvida pela comunidade Nodebots. Os programas Johnny-Five podem ser escritos para Arduino (todos os modelos), Electric Imp, Beagle Bone, Intel Galileo & Edison, Linino One, Pinoccio, pcDuino3, Raspberry Pi, Particle/Spark Core & Photon, Tessel 2, TI Launchpad e muito mais!
Johnny-Five passou de um projeto apaixonante a uma ferramenta para inspirar aprendizagem e criatividade para pessoas de todas as idades, origens e de todo o mundo.
Apenas interessado em aprender e construir coisas incríveis? Você pode querer começar com o site oficial do Johnny-Five.
Se você quiser encontrar a documentação da API, está aqui.
Precisa descobrir qual plataforma usar para um projeto? Colocamos essas coisas aqui.
Precisa de inspiração para o seu próximo NodeBot? Confira os exemplos.
Quer se manter atualizado sobre os projetos da comunidade? Confira isso.
Precisa de atualizações e anúncios da comunidade NodeBots ou do projeto Johnny-Five? Isto é o que você está procurando.
Johnny-Five não tenta fornecer "todas as coisas", mas em vez disso se concentra em fornecer APIs robustas, testadas na realidade e altamente combináveis, que se comportam de forma consistente em todas as plataformas de hardware suportadas. Johnny-Five quer ser um kit de controle básico para projetos de hardware, permitindo a você a liberdade de construir, desenvolver e experimentar diversas bibliotecas JavaScript de sua escolha. Casais Johnny-Five confortavelmente com:
Bibliotecas de aplicativos populares, como Express.js e Socket.io.
Outros projetos de hardware como ar-drone, Aerogel e Spheron
Controladores de jogos Bluetooth como XBox Controller e DualShock
Estruturas de IoT, como Octoblu
...E essas são apenas algumas das muitas possibilidades exploráveis. Confira estes projetos interessantes: node-pulsesensor, footballbot-workshop-ui, nodebotui, dublin-disco, node-slot-car-bot, servo-calibrator, node-ardx, nodebot-workshop, phone-home, purple-unicorn, webduino, leapduino, lasercat-workshop, simplesense, five-redbot, robotnik, the-blender
Por que JavaScript? NodeBots: a ascensão da robótica JavaScript
O onipresente programa "Hello World" do microcontrolador e do mundo SoC é "piscar um LED". O código a seguir demonstra como isso é feito usando a estrutura Johnny-Five.
const { Placa, Led } = require("johnny-five");const board = new Board();board.on("ready", () => { // Cria um Led no pino 13 led const = novo Led(13); // Pisca a cada meio segundo led.blink(500);});
Nota: o nó irá travar se você tentar executar johnny-five no REPL do nó, mas as instâncias da placa criarão seu próprio REPL contextual. Coloque seu script em um arquivo.
Johnny-Five foi testado em uma variedade de placas compatíveis com Arduino.
Para projetos não baseados em Arduino, vários plug-ins IO específicos da plataforma estão disponíveis. Os plug-ins IO permitem que o código Johnny-Five se comunique com qualquer hardware não baseado em Arduino em qualquer idioma que a plataforma fale!
A documentação da API Johnny-Five pode ser encontrada aqui e programas de exemplo aqui.
Precisar de ajuda? Faça uma pergunta no Fórum da Comunidade NodeBots. Se você tiver apenas uma pergunta rápida ou estiver interessado em discussões contínuas sobre design, junte-se a nós no Johnny-Five Gitter Chat.
Para exemplos passo a passo, incluindo uma cartilha de eletrônica, confira o Arduino Experimenter's Guide for NodeJS de @AnnaGerber
Aqui está uma lista de pré-requisitos para Linux, OSX ou Windows.
Confira o guia do bluetooth se quiser controlar remotamente o seu robô.
Kit inicial recomendado: Kit do Sparkfun Inventor
Baixe o IDE do Arduino
Conecte seu Arduino ou microcontrolador compatível com Arduino via USB
Abra o IDE do Arduino, selecione: Arquivo > Exemplos > Firmata > StandardFirmataPlus
StandardFirmataPlus está disponível em Firmata v2.5.0 ou superior
Clique no botão "Carregar".
Se o upload for bem-sucedido, a placa estará preparada e você poderá fechar o IDE do Arduino.
Para projetos não Arduino, o repositório de cada plug-in IO fornecerá suas próprias instruções de configuração específicas da plataforma.
git clone git://github.com/rwaldron/johnny-five.git && cd johnny-five instalação npm
Instale o módulo com:
npm instalar johnny-cinco
Para que você comece a trabalhar rapidamente, fornecemos uma variedade de exemplos de uso de cada componente do Johnny-Five. Uma coisa que nos deixa especialmente entusiasmados é a extensa coleção de diagramas de Fritzing que você encontrará em todo o site. Uma grande parte de qualquer projeto Johnny-Five é lidar com o hardware real, e nós os incluímos como parte da documentação porque percebemos que as instruções sobre como escrever código para controlar um servo são insuficientes sem instruções sobre como conectar um servo!
Para navegar interativamente pelos exemplos, visite a página de exemplos do Johnny-Five no site oficial. Se quiser vincular diretamente aos exemplos neste repositório, você pode usar um dos links a seguir.
Existem atualmente 362 programas de exemplo com códigos e diagramas!
Placa - Inicialização Básica
Quadro - Limpeza em evento de ‘saída’
Quadro - Múltiplo em um programa
Placa - Especifique o Intervalo de Amostragem
Placa - Especifique a porta
Propriedades de dados personalizados
Alfinete
REPL
LIDERADO
LED - Piscando
LED - Sequência de demonstração
LED - Desaparecer
LED - retorno de chamada fade
LED - Fade com animação
LED-PCA9685
LED - Pulso
LED - Pulso com animação
LED - controle deslizante
LED - Módulo Servo Tessel
LEDs - Uma matriz de LEDs
LEDs - Controlando uma série de LEDs
LED - RGB (Ânodo Comum)
LED - RGB (Ânodo Comum) PCA9685
LED - Intensidade RGB
LED - Arco-Íris
LED - Rainbow BlinkM
LED - Relógio Digital
LED - Relógio Digital, Displays Duplos
LED - Relógio Digital, HT16K33
LED - Demonstração de caracteres da matriz de desenho
LED - Enumerar caracteres e símbolos da matriz
LED - Matriz
LED - Demonstração de Matriz
LED - Matriz HT16K33
LED - Matriz HT16K33 16x8
Servo
Servo - Contínuo
Servo - Acionamento
Servo - Multivoltas
Servo-PCA9685
Servo - Alerta
Servo - controle deslizante
Servo - Módulo Servo Tessel
Servos - Uma variedade de servos
GPS - Adafruit Ultimate GPS Breakout
GPS - GPS padrão
GPS - Série de hardware
GPS-Sparkfun GP-20U7
Servo - Animação
Servo - Animação de Perna
Cor - EVShield EV3 (Código)
Cor - EVShield EV3 (bruto)
Cor - EVShield NXT (Código)
Cor - ISL29125
Motor
Motor - 3 pinos
Motor - Adafruit DRV8871 DC Motor Driver Breakout
Motor - Freio
Motor - Corrente
Motor - Direcional
Motor-EVShield EV3
Motor - EVShield NXT
Motor - Pino de habilitação
Motor - GROVE_I2C_MOTOR_DRIVER
Motor - Ponte H
Motor - LUDUS
Motor - PCA9685
Motor - Pololu VNH5019 Breakout de driver de motor duplo
Motor - Bloco Edison de ponte H dupla Sparkfun
Motor - Sparkfun TB6612FNG
Motor - Fuga l298
Motores - Ponte H Dupla
Passo a Passo - Motorista
Stepper - Quatro Fios
Stepper - Varredura
ESC - Bidirecional
ESC - ESCs controlados por teclas
ESC-PCA9685
Botão
Botão - Pára-choques
Botão - EVShield EV3
Botão - EVShield NXT
Botão - Opções
Botão - Pullup
Botões - Coleção c/ AT42QT1070
Trocar
Interruptor - Porta Magnética
Interruptor - Inclinação SW-200D
Alternar interruptor
Teclado - Mochila Nano 3x4 I2C
Teclado - Mochila Nano 4x4 I2C
Teclado - VKEY
Teclado - Waveshare AD
Touchpad - Grove QTouch
Touchpad - MPR121
Touchpad - MPR121, Sensibilidade
Touchpad - MPR121QR2_SHIELD
Touchpad - MPR121_KEYPAD
Touchpad - MPR121_SHIELD
Relé
Relé - Coleção
Relé no pino analógico
Registro de turno
Registrador de deslocamento - controlador de ânodo comum de sete segmentos
Registrador de deslocamento - ânodo comum de sete segmentos, encadeado
Registrador de deslocamento - controlador de sete segmentos
Registrador de deslocamento - sete segmentos, encadeados
Movimento infravermelho
Proximidade infravermelha
Refletância infravermelha
Matriz de refletância infravermelha
Proximidade
Proximidade - EVShield EV3 (IR)
Proximidade - EVShield EV3 (IR)
Proximidade - EVShield EV3 (Ultrassônico)
Proximidade - EVShield EV3 (Ultrassônico)
Proximidade - GP2Y0A710K0F
Proximidade - HC-SR04
Proximidade - HC-SR04 (Analógico)
Proximidade - Mochila HC-SR04 I2C
Proximidade - LIDAR-Lite
Proximidade - MB1000
Proximidade - MB1003
Proximidade - MB1010
Proximidade - MB1230
Proximidade - SRF10
Movimento
Movimento - GP2Y0A60SZLF
Movimento - GP2Y0D805Z0F
Movimento - GP2Y0D810Z0F
Movimento - GP2Y0D810Z0F
Manche
Joystick - Esplora
Joystick - controle Pan + Tilt
Joystick - Escudo Sparkfun
Grove - Visualizador de cores LCD RGB
LCD
LCD - Enumerar caracteres
LCD-I2C
LCD-I2C PCF8574
LCD - Corredor I2C
LCD - Corredor 16x2
LCD - Corredor 20x4
LCD - Tessel 2 16x2
Tessel 2 + Grove - Visualizador de cores LCD RGB
Tessel 2 + Grove - Tela LCD RGB
Bússola - Encontre o norte
Bússola - HMC5883L
Bússola - HMC6352
Bússola - Registrador
Bússola - MAG3110
Bússola - MAG3110 em Tessel 2
Bússola / Magnetômetro
Piezo
IMU - BNO055
IMU - BNO055 (Orientação)
IMU-LSM303C
IMU-MPU6050
Multi-BME280
Multi-BMP085
Multi-BMP180
Multi - DHT11_I2C_NANO_BACKPACK
Multi - DHT21_I2C_NANO_BACKPACK
Multi - DHT22_I2C_NANO_BACKPACK
Multi-HIH6130
Multi-HTU21D
Multi-MPL115A2
Multi-MPL3115A2
Multi-MS5611
Multi-SHT31D
Multi-SI7020
Multi-SI7021
Multi-TH02
Acelerômetro
Acelerômetro - ADXL335
Acelerômetro - ADXL345
Acelerômetro - LIS3DH
Acelerômetro - MMA7361
Acelerômetro - MMA8452
Acelerômetro - MPU6050
Acelerômetro - Pan + Tilt
Altímetro - BMP085
Altímetro - BMP180
Altímetro - MPL3115A2
Altímetro - MS5611
Barômetro - BMP085
Barômetro - BMP180
Barômetro - MPL115A2
Barômetro - MPL3115A2
Barômetro - MS5611
Giroscópio
Giroscópio - Analógico LPR5150AL
Giroscópio - I2C MPU6050
Higrômetro - DHT11_I2C_NANO_BACKPACK
Higrômetro - DHT21_I2C_NANO_BACKPACK
Higrômetro - DHT22_I2C_NANO_BACKPACK
Higrômetro - HIH6130
Higrômetro - HTU21D
Higrômetro - SHT31D
Higrômetro - SI7021
Higrômetro - TH02
Sensor
Sensor - Microondas Digital
Sensor - Sensor flexível
Sensor - Resistor sensível à força
Sensor - Microfone
Sensor - Fotoresistor
Sensor - Potenciômetro
Sensor - Potenciômetro deslizante
Termômetro - BMP085
Termômetro - BMP180
Termômetro - DHT11_I2C_NANO_BACKPACK
Termômetro - DHT21_I2C_NANO_BACKPACK
Termômetro - DHT22_I2C_NANO_BACKPACK
Termômetro - DS18B20
Termômetro - Duplo DS18B20
Termômetro - HIH6130
Termômetro - HTU21D
Termômetro - LM335
Termômetro - LM35
Termômetro - MAX31850
Termômetro - MCP9808
Termômetro - MPL115A2
Termômetro - MPL3115A2
Termômetro - MPU6050
Termômetro - MS5611
Termômetro - SHT31D
Termômetro - SI7020
Termômetro - SI7021
Termômetro - TH02
Termômetro - TMP102
Termômetro - TMP36
Expansor - 74HC595
Expansor - CD74HC4067, Breakout de entrada analógica de 16 canais
Expansor - LIS3DH
Expansor - MCP23008
Expansor - MCP23017
Expansor - MUXSHIELD2, Sensores Analógicos
Expansor - MUXSHIELD2, Entrada e Saída Digital
Expansor - PCA9685
Expansor - PCF8574
Expansor - PCF8575
Expansor - PCF8591
Escudo climático de fótons: umidade
Botão - EVShield EV3
Botão - EVShield NXT
Cor - EVShield EV3 (Código)
Cor - EVShield EV3 (bruto)
Cor - EVShield NXT (Código)
Luz - BH1750
Luz - EVShield EV3 (ambiente)
Luz - EVShield EV3 (refletida)
Luz - EVShield NXT (ambiente)
Luz - EVShield NXT (refletida)
Luz - TSL2561
Motor-EVShield EV3
Motor - EVShield NXT
Proximidade - EVShield EV3 (IR)
Proximidade - EVShield EV3 (Ultrassônico)
Intel Edison + Grove - Acelerômetro (ADXL345)
Intel Edison + Grove - Acelerômetro (MMA7660)
Intel Edison + Grove - Sensor de qualidade do ar
Intel Edison + Grove - Barômetro (BMP180)
Intel Edison + Grove - Botão
Intel Edison + Grove - Bússola (HMC588L)
Intel Edison + Grove - Sensor de chama
Intel Edison + Grove - Gás (MQ2)
Intel Edison + Grove - Umidade e temperatura (TH02)
Intel Edison + Grove - driver de motor I2C
Intel Edison + Grove-Joystick
Intel Edison + Grove-LED
Intel Edison + Grove - Sensor de luz (TSL2561)
Intel Edison + Grove - Sensor de umidade
Intel Edison + Grove-Q Touch
Intel Edison + Grove-LCD RGB
Intel Edison + Grove - Pré-visualizador de cores LCD RGB
Intel Edison + Grove - display de temperatura LCD RGB
Intel Edison + Grove - Relé
Intel Edison + Grove - Potenciômetro Rotativo
Intel Edison + Grove - Servo
Intel Edison + Grove - Toque
Bosque - Botão
Bosque - Joystick
Bosque - LED
Grove - Motor (Driver I2C)
Bosque - LCD RGB
Grove - display de temperatura LCD RGB
Grove - Potenciômetro Rotativo
Bosque - Servo
Bosque - Toque
Micro Magician V2 - Acelerômetro
Micro Mágico V2 - Motor
Micro Mágico V2 - Servo
TinkerKit - Acelerômetro
TinkerKit - Piscar
TinkerKit - Botão
TinkerKit - Combo
TinkerKit - Servo contínuo
TinkerKit - Giroscópio
TinkerKit-Joystick
TinkerKit - Potenciômetro linear
TinkerKit - Potenciômetro rotativo
TinkerKit - Temperatura
TinkerKit - Inclinação
TinkerKit - Toque
Controle Clássico Wii
Wii Nunchuck
Erro
Controlador de braço robótico Kinect
Fio de viagem a laser
Seguidor de linha
Lynxmotion Bípede BRAT
Motobot
Navegador
Nodebot
Hexápode Fênix
Radar
Garra Robótica
Bigode
Plug-in de exemplo
Led pisca no Imp elétrico
Led piscando na placa Intel Edison Arduino
Led piscando na mini placa Intel Edison
Led pisca no Intel Galileo Gen 2
Led piscando no Raspberry Pi
Led pisca no Spark Core
Led pisca no pcDuino3
Todas as contribuições devem aderir ao Guia de Estilo Idiomatic.js, mantendo o estilo de codificação existente. Adicione testes de unidade para qualquer funcionalidade nova ou alterada. Lint e teste seu código usando grunt.
Copyright (c) 2012, 2013, 2014 Rick Waldron [email protected] Licenciado sob a licença MIT. Copyright (c) 2014, 2015 The Johnny-Five Contributors Licenciado sob a licença MIT.