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 板 = 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 > 範例 > 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 授權取得許可。