Johnny-Five 是一个开源、基于 Firmata 协议的物联网和机器人编程框架,由 Nodebots 社区开发。 Johnny-Five 程序可以为 Arduino(所有型号)、Electric Imp、Beagle Bone、Intel Galileo & Edison、Linino One、Pinoccio、pcDuino3、Raspberry Pi、Particle/Spark Core & Photon、Tessel 2、TI Launchpad 等编写!
Johnny-Five 已经从一个充满激情的项目发展成为一个激发世界各地不同年龄、背景的人们学习和创造力的工具。
只是对学习和构建很棒的东西感兴趣吗?您可能想从约翰尼五人组的官方网站开始。
如果您想查找 API 文档,就在这里。
需要弄清楚项目使用什么平台?我们把那些东西放在这里。
需要为您的下一个 NodeBot 提供灵感吗?查看示例。
想要了解社区项目的最新动态吗?看看这个。
需要 NodeBots 社区或 Johnny-Five 项目更新和公告?这就是您要找的。
Johnny-Five 并不试图提供“所有的东西”,而是专注于提供健壮的、经过实际测试的、高度可组合的 API,这些 API 在所有支持的硬件平台上表现一致。 Johnny-Five 希望成为硬件项目的基线控制套件,让您可以自由地构建、扩展和试验自己选择的各种 JavaScript 库。约翰尼五人组舒适地与:
流行的应用程序库,例如 Express.js 和 Socket.io。
ar-drone、Airgel 和 Spheron 等硬件项目
蓝牙游戏控制器,例如 Xbox Controller 和 DualShock
物联网框架,例如 Octoblu
......这只是众多可探索的可能性中的一小部分。查看这些令人兴奋的项目: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、五-redbot、robotnik、the-blender
为什么选择 JavaScript? NodeBots:JavaScript 机器人的兴起
微控制器和SoC世界中无处不在的“Hello World”程序是“闪烁LED”。以下代码演示了如何使用 Johnny-Five 框架来完成此操作。
const { Board, Led } = require("johnny- Five");const board = new Board();board.on("ready", () => { // 在引脚 13 上创建一个 LED 常量 LED = 新 LED(13); // 每半秒闪烁一次 led.blink(500);});
注意:如果您尝试在节点 REPL 中运行 johnny- Five,节点将会崩溃,但板实例将创建自己的上下文 REPL。将您的脚本放入文件中。
Johnny-Five 已在各种 Arduino 兼容板上进行了测试。
对于非基于 Arduino 的项目,可以使用许多特定于平台的 IO 插件。 IO 插件允许 Johnny-Five 代码以平台使用的任何语言与任何非基于 Arduino 的硬件进行通信!
可以在此处找到 Johnny-Five API 的文档,并在此处找到示例程序。
需要帮助吗?在 NodeBots 社区论坛上提问。如果您有一个简短的问题或对正在进行的设计讨论感兴趣,请加入我们的 Johnny-Five Gitter 聊天。
有关分步示例(包括电子入门知识),请查看 @AnnaGerber 编写的 NodeJS Arduino 实验者指南
以下是 Linux、OSX 或 Windows 的先决条件列表。
如果您想远程控制您的机器人,请查看蓝牙指南。
推荐的入门套件:Sparkfun Inventor's Kit
下载Arduino IDE
通过 USB 插入 Arduino 或 Arduino 兼容微控制器
打开 Arduino IDE,选择:File > Examples > Firmata > StandardFirmataPlus
StandardFirmataPlus 可用于 Firmata v2.5.0 或更高版本
单击“上传”按钮。
如果上传成功,则电路板现已准备就绪,您可以关闭 Arduino IDE。
对于非 Arduino 项目,每个 IO 插件的存储库将提供其自己的特定于平台的设置说明。
git 克隆 git://github.com/rwaldron/johnny- Five.git && cd johnny- Five npm 安装
安装模块:
npm 安装约翰尼五
为了让您快速启动并运行,我们提供了使用每个 Johnny-Five 组件的各种示例。我们特别兴奋的一件事是您可以在整个网站中找到大量的 Fritzing 图表。约翰尼五号项目的很大一部分是处理实际的硬件,我们将这些作为文档的一部分,因为我们意识到,如果没有关于如何连接伺服器的说明,那么关于如何编写代码来控制伺服器的说明是不够的。伺服!
要以交互方式浏览示例,请访问官方网站上的 Johnny-Five 示例页面。如果您想直接链接到此存储库中的示例,可以使用以下链接之一。
目前有 362 个带有代码和图表的示例程序!
主板 - 基本初始化
董事会 - “退出”事件中的清理
董事会 - 多合一计划
板 - 指定采样间隔
板 - 指定端口
自定义数据属性
别针
REPL
引领
LED - 闪烁
LED - 演示序列
LED - 淡入淡出
LED - 淡入淡出回调
LED - 随动画淡入淡出
LED-PCA9685
LED - 脉冲
LED - 脉冲动画
LED - 滑块
LED - Tessel 伺服模块
LED - LED 阵列
LED - 控制 LED 阵列
LED - RGB(共阳极)
LED - RGB(共阳极)PCA9685
LED - RGB 强度
LED - 彩虹
LED - Rainbow BlinkM
LED - 数字时钟
LED - 数字时钟,双显示屏
LED - 数字时钟,HT16K33
LED - 绘制矩阵字符演示
LED - 枚举矩阵字符和符号
LED - 矩阵
LED - 矩阵演示
LED - 矩阵 HT16K33
LED - 矩阵 HT16K33 16x8
伺服
伺服-连续
伺服驱动
伺服 - 多圈
伺服-PCA9685
伺服-提示
伺服 - 滑块控制
伺服-Tessel伺服模块
舵机 - 舵机阵列
GPS - Adafruit 终极 GPS 突破
GPS - 默认 GPS
GPS - 硬件串行
GPS-Sparkfun GP-20U7
伺服 - 动画
伺服 - 腿部动画
颜色 - EVShield EV3(代码)
颜色 - EVShield EV3(原始)
颜色 - EVShield NXT(代码)
颜色 - ISL29125
发动机
电机 - 3 针
电机 - Adafruit DRV8871 直流电机驱动器分线
电机-制动器
电机 - 电流
电机 - 定向
电机 - EVShield EV3
电机 - EVShield NXT
电机 - 启用引脚
电机 - GROVE_I2C_MOTOR_DRIVER
电机 - H 桥
电机 - LUDUS
电机 - PCA9685
电机 - Pololu VNH5019 双电机驱动器分线器
电机 - Sparkfun 双 H 桥 Edison Block
电机 - Sparkfun TB6612FNG
电机 - l298 分线
电机 - 双 H 桥
步进器 - 驱动器
步进器 - 四线
步进-扫频
ESC - 双向
ESC - 按键控制的 ESC
电调-PCA9685
按钮
按钮 - 保险杠
按钮 - EVShield EV3
按钮 - EVShield NXT
按钮 - 选项
按钮 - 上拉
按钮 - 带 AT42QT1070 的系列
转变
开关 - 磁力门
开关 - 倾斜 SW-200D
拨动开关
键盘 - 3x4 I2C 纳米背包
键盘 - 4x4 I2C 纳米背包
键盘-VKEY
键盘 - Waveshare AD
触摸板 - Grove QTouch
触摸板 - MPR121
触摸板 - MPR121,灵敏度
触摸板 - MPR121QR2_SHIELD
触摸板 - MPR121_KEYPAD
触摸板 - MPR121_SHIELD
中继
接力 - 集合
模拟引脚上的继电器
移位寄存器
移位寄存器 - 共阳极七段控制器
移位寄存器 - 共阳极七段,链式
移位寄存器 - 七段控制器
移位寄存器 - 七段,链式
红外运动
红外接近度
红外反射率
红外反射阵列
邻近性
接近 - EVShield EV3(红外)
接近 - EVShield EV3(红外)
接近 - EVShield EV3(超声波)
接近 - EVShield EV3(超声波)
接近 - GP2Y0A710K0F
接近 - HC-SR04
接近 - HC-SR04(模拟)
Proximity - HC-SR04 I2C 背包
近距离 - LIDAR-Lite
接近 - MB1000
接近 - MB1003
接近 - MB1010
接近 - MB1230
接近 - SRF10
运动
运动 - GP2Y0A60SZLF
运动 - GP2Y0D805Z0F
运动 - GP2Y0D810Z0F
运动 - GP2Y0D810Z0F
操纵杆
操纵杆 - Esplora
操纵杆 - 平移 + 倾斜控制
操纵杆 - Sparkfun 盾
Grove - RGB LCD 颜色预览器
液晶显示屏
LCD - 枚举字符
液晶显示屏-I2C
液晶屏 - I2C PCF8574
LCD - I2C 运行器
LCD - 跑步者 16x2
LCD - 跑步者 20x4
液晶显示屏 - Tessel 2 16x2
Tessel 2 + Grove - RGB LCD 颜色预览器
Tessel 2 + Grove - RGB LCD 显示屏
指南针 - 寻找北方
指南针 - HMC5883L
指南针 - HMC6352
指南针 - 记录仪
指南针 - MAG3110
指南针 - Tessel 2 上的 MAG3110
指南针/磁力计
压电
IMU-BNO055
IMU - BNO055(方向)
IMU-LSM303C
IMU-MPU6050
多 - BME280
多 BMP085
多 BMP180
多 - DHT11_I2C_NANO_BACKPACK
多 - DHT21_I2C_NANO_BACKPACK
多 - DHT22_I2C_NANO_BACKPACK
多 - HIH6130
多功能 HTU21D
多 - MPL115A2
多 - MPL3115A2
多 - MS5611
多功能SHT31D
多 - SI7020
多 - SI7021
多-TH02
加速度计
加速度计 - ADXL335
加速度计 - ADXL345
加速度计 - LIS3DH
加速度计 - MMA7361
加速度计 - MMA8452
加速度计 - MPU6050
加速度计 - 平移 + 倾斜
高度计 - BMP085
高度计 - BMP180
高度计 - MPL3115A2
高度计 - MS5611
气压计 - BMP085
晴雨表 - BMP180
气压计 - MPL115A2
气压计 - MPL3115A2
气压计 - MS5611
陀螺仪
陀螺仪 - 模拟 LPR5150AL
陀螺仪 - I2C MPU6050
湿度计 - DHT11_I2C_NANO_BACKPACK
湿度计 - DHT21_I2C_NANO_BACKPACK
湿度计 - DHT22_I2C_NANO_BACKPACK
湿度计 - HIH6130
湿度计 - HTU21D
湿度计-SHT31D
湿度计 - SI7021
湿度计-TH02
传感器
传感器 - 数字微波
传感器 - 柔性传感器
传感器-力敏电阻
传感器 - 麦克风
传感器 - 光敏电阻
传感器-电位器
传感器 - 滑动电位器
温度计 - BMP085
温度计 - BMP180
温度计 - DHT11_I2C_NANO_BACKPACK
温度计 - DHT21_I2C_NANO_BACKPACK
温度计 - DHT22_I2C_NANO_BACKPACK
温度计 - DS18B20
温度计 - 双 DS18B20
温度计 - HIH6130
温度计 - HTU21D
温度计 - LM335
温度计 - LM35
温度计 - MAX31850
温度计 - MCP9808
温度计 - MPL115A2
温度计 - MPL3115A2
温度计 - MPU6050
温度计 - MS5611
温度计-SHT31D
温度计 - SI7020
温度计 - SI7021
温度计-TH02
温度计 - TMP102
温度计 - TMP36
扩展器 - 74HC595
扩展器 - CD74HC4067,16 通道模拟输入接线
扩展器 - LIS3DH
扩展器 - MCP23008
扩展器 - MCP23017
扩展器 - MUXSHIELD2,模拟传感器
扩展器 - MUXSHIELD2,数字输入和输出
扩展器 - PCA9685
扩展器 - PCF8574
扩展器 - PCF8575
扩展器 - PCF8591
光子天气防护罩:水分
按钮 - EVShield EV3
按钮 - EVShield NXT
颜色 - EVShield EV3(代码)
颜色 - EVShield EV3(原始)
颜色 - EVShield NXT(代码)
轻型 - BH1750
光 - EVShield EV3(环境光)
光 - EVShield EV3(反射)
光 - EVShield NXT(环境光)
光 - EVShield NXT(反射)
光 - TSL2561
电机 - EVShield EV3
电机 - EVShield NXT
接近 - EVShield EV3(红外)
接近 - EVShield EV3(超声波)
英特尔 Edison + Grove - 加速计 (ADXL345)
英特尔 Edison + Grove - 加速计 (MMA7660)
Intel Edison + Grove - 空气质量传感器
英特尔 Edison + Grove - 晴雨表 (BMP180)
英特尔 Edison + Grove - 按钮
英特尔 Edison + Grove - 指南针 (HMC588L)
Intel Edison + Grove - 火焰传感器
英特尔 Edison + Grove - Gas (MQ2)
英特尔 Edison + Grove - 湿度和温度 (TH02)
Intel Edison + Grove - I2C 电机驱动器
英特尔 Edison + Grove - 操纵杆
英特尔 Edison + Grove - LED
英特尔 Edison + Grove - 光传感器 (TSL2561)
Intel Edison + Grove - 湿度传感器
英特尔 Edison + Grove - Q Touch
英特尔 Edison + Grove - RGB LCD
Intel Edison + Grove - RGB LCD 颜色预览器
Intel Edison + Grove - RGB LCD 温度显示
英特尔 Edison + Grove - 继电器
Intel Edison + Grove - 旋转电位器
英特尔 Edison + Grove - 伺服
英特尔 Edison + Grove - 触摸
格罗夫 - 按钮
格罗夫 - 操纵杆
格罗夫 - LED
Grove - 电机(I2C 驱动器)
Grove - RGB LCD
Grove - RGB LCD 温度显示器
Grove - 旋转电位器
格罗夫 - 伺服
格罗夫 - 触摸
微型魔术师V2-加速度计
微魔术师V2-电机
微魔术师V2-舵机
TinkerKit - 加速度计
TinkerKit - 眨眼
TinkerKit - 按钮
TinkerKit - 组合
TinkerKit - 连续伺服
TinkerKit - 陀螺仪
TinkerKit - 操纵杆
TinkerKit - 线性电位器
TinkerKit - 旋转电位器
TinkerKit - 温度
TinkerKit - 倾斜
TinkerKit - 触摸
Wii 经典控制器
Wii 双截棍
漏洞
Kinect 机械臂控制器
激光跳闸线
巡线员
Lynxmotion 两足小子
摩托机器人
航海家
节点机器人
凤凰六足动物
雷达
机械爪
晶须
示例插件
Electric Imp 上的 LED 闪烁
Intel Edison Arduino 板上的 LED 闪烁
英特尔 Edison 迷你主板上的 LED 闪烁
Intel Galileo Gen 2 上的 LED 闪烁
Raspberry Pi 上的 LED 闪烁
Spark Core 上的 LED 闪烁
pcDuino3 上的 LED 闪烁
所有贡献都必须遵守 Idiomatic.js 风格指南,并保持现有的编码风格。为任何新的或更改的功能添加单元测试。使用 grunt 检查并测试您的代码。
版权所有 (c) 2012、2013、2014 Rick Waldron [email protected] 根据 MIT 许可证获得许可。版权所有 (c) 2014、2015 The Johnny-Five Contributors 根据 MIT 许可证获得许可。