Johnny-Five は、Nodebots Community によって開発された、オープンソースの Firmata プロトコル ベースの IoT およびロボティクス プログラミング フレームワークです。 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 は、情熱を持ったプロジェクトから、あらゆる年齢、背景、世界中の人々の学習と創造性を刺激するツールへと成長しました。
素晴らしいものを学び、構築することに興味があるだけですか?まずは Johnny-Five の公式 Web サイトから始めてみてはいかがでしょうか。
API ドキュメントを探したい場合は、ここにあります。
プロジェクトにどのプラットフォームを使用するかを決める必要がありますか?そういったものをここに置きます。
次の NodeBot に関するインスピレーションが必要ですか?例を確認してください。
コミュニティ内のプロジェクトの最新情報を入手したいですか?これをチェックしてください。
NodeBots コミュニティまたは Johnny-Five プロジェクトの最新情報やお知らせが必要ですか?これがあなたが探しているものです。
Johnny-Five は、「すべてのもの」を提供しようとするのではなく、サポートされているすべてのハードウェア プラットフォームで一貫して動作する、堅牢で現実テストが行われ、高度に構成可能な API を提供することに重点を置いています。 Johnny-Five は、ハードウェア プロジェクトのベースライン コントロール キットとなり、ユーザーが独自に選択した多様な JavaScript ライブラリを自由に構築、拡張、実験できるようにしたいと考えています。 Johnny-Five カップルは次のように快適に過ごせます。
Express.js や Socket.io などの一般的なアプリケーション ライブラリ。
ar-drone、Aerogel、Spheron などのハードウェア プロジェクトの仲間
XBox コントローラーや DualShock などの Bluetooth ゲーム コントローラー
Octoblu などの IoT フレームワーク
...そしてそれは、多くの検討可能な可能性のうちのほんの一部にすぎません。これらのエキサイティングなプロジェクトをチェックしてください: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
なぜ JavaScript なのか? NodeBot: JavaScript ロボティクスの台頭
マイクロコントローラーと SoC の世界のユビキタスな「Hello World」プログラムは、「LED を点滅させる」です。次のコードは、Johnny-Five フレームワークを使用してこれを行う方法を示しています。
const { Board, Led } = require("johnny-five");const board = new Board();board.on("ready", () => { // ピン 13 に LED を作成します const LED = 新しい LED(13); // 0.5秒ごとに点滅します 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 Experimenter's Guide を参照してください。
Linux、OSX、または Windows の前提条件のリストを次に示します。
ロボットをリモート制御したい場合は、Bluetooth ガイドを確認してください。
推奨開始キット: Sparkfun Inventor's Kit
Arduino IDEをダウンロード
USB 経由で Arduino または Arduino 互換マイクロコントローラーを接続します。
Arduino IDE を開き、[ファイル] > [サンプル] > [Firmata] > [StandardFirmataPlus] を選択します。
StandardFirmataPlus は Firmata v2.5.0 以降で利用可能です
「アップロード」ボタンをクリックします。
アップロードが成功すると、ボードの準備が完了し、Arduino IDE を閉じることができます。
Arduino 以外のプロジェクトの場合、各 IO プラグインのリポジトリは、独自のプラットフォーム固有のセットアップ手順を提供します。
git clone git://github.com/rwaldron/johnny-five.git && cd johnny-five npmインストール
以下を使用してモジュールをインストールします。
npm インストール johnny-five
すぐに使い始められるように、Johnny-Five の各コンポーネントを使用するためのさまざまな例が用意されています。私たちが特に興奮していることの 1 つは、サイト全体で見つかるフリッツィング図の広範なコレクションです。 Johnny-Five プロジェクトを行う上で大部分を占めるのは、実際のハードウェアを扱うことです。サーボを制御するためのコードの書き方に関する説明だけでは、サーボの接続方法に関する説明がなければ不十分であると認識したため、これらをドキュメントの一部として含めました。サーボ!
サンプルを対話的にナビゲートするには、公式 Web サイトの Johnny-Five サンプル ページにアクセスしてください。このリポジトリの例に直接リンクする場合は、次のリンクのいずれかを使用できます。
現在、コードと図を含むサンプル プログラムが 362 個あります。
ボード - 基本的な初期化
ボード - 「終了」イベントのクリーンアップ
ボード - 複数の 1 つのプログラム
ボード - サンプリング間隔の指定
ボード - ポートを指定
カスタム データ プロパティ
ピン
REPL
導かれた
LED - 点滅
LED - デモシーケンス
LED - フェード
LED - フェード コールバック
LED - アニメーション付きフェード
LED - PCA9685
LED - パルス
LED - アニメーション付きパルス
LED - スライダー
LED - テッセルサーボモジュール
LED - LED の配列
LED - LED アレイの制御
LED - RGB (共通アノード)
LED - RGB (共通アノード) PCA9685
LED - RGB 強度
LED - レインボー
LED - レインボーブリンクM
LED - デジタル時計
LED - デジタル時計、デュアルディスプレイ
LED - デジタル時計、HT16K33
LED - マトリックス文字の描画デモ
LED - マトリックスの文字と記号を列挙する
LED - マトリックス
LED - マトリックスデモ
LED - マトリックス HT16K33
LED - マトリックス HT16K33 16x8
サーボ
サーボ - 連続
サーボ - ドライブ
サーボ - マルチターン
サーボ - PCA9685
サーボ - プロンプト
サーボ - スライダーコントロール
サーボ - テッセルサーボモジュール
サーボ - サーボの配列
GPS - Adafruit Ultimate GPS ブレークアウト
GPS - デフォルトの GPS
GPS - ハードウェアシリアル
GPS - スパークファン GP-20U7
サーボ - アニメーション
サーボ - 脚のアニメーション
カラー - EVShield EV3 (コード)
カラー - EVShield EV3 (生)
カラー - EVShield NXT (コード)
カラー - ISL29125
モーター
モーター - 3ピン
モーター - Adafruit DRV8871 DC モーター ドライバー ブレークアウト
モーター - ブレーキ
モーター - 電流
モーター - 方向性
モーター - EVShield EV3
モーター - EVShield NXT
モーター - イネーブルピン
モーター - GROVE_I2C_MOTOR_DRIVER
モーター - H ブリッジ
モーター - LUDUS
モーター - PCA9685
モーター - Pololu VNH5019 デュアル モーター ドライバー ブレークアウト
モーター - Sparkfun デュアル H ブリッジ エジソン ブロック
モーター - Sparkfun TB6612FNG
モーター - l298 ブレークアウト
モーター - デュアル H ブリッジ
ステッパー - ドライバー
ステッパー - 4 線式
ステッパー - スイープ
ESC - 双方向
ESC - キープレス制御の ESC
ESC - PCA9685
ボタン
ボタン - バンパー
ボタン - EVShield EV3
ボタン - EVShield NXT
ボタン - オプション
ボタン - プルアップ
ボタン - AT42QT1070 のコレクション
スイッチ
スイッチ - 磁気ドア
スイッチ - チルト SW-200D
トグルスイッチ
キーパッド - 3x4 I2C Nano バックパック
キーパッド - 4x4 I2C Nano バックパック
キーパッド - VKEY
キーパッド - Waveshare AD
タッチパッド - Grove QTouch
タッチパッド - MPR121
タッチパッド - MPR121、感度
タッチパッド - MPR121QR2_SHIELD
タッチパッド - MPR121_KEYPAD
タッチパッド - MPR121_SHIELD
リレー
リレー - コレクション
アナログピンのリレー
シフトレジスタ
シフト レジスタ - コモン アノード 7 セグメント コントローラ
シフト レジスタ - コモン アノード 7 セグメント、チェーン
シフト レジスタ - 7 セグメント コントローラ
シフト レジスタ - 7 セグメント、チェーン
IRモーション
IR近接
IR反射率
IR反射率アレイ
近接性
近接性 - EVShield EV3 (IR)
近接性 - EVShield EV3 (IR)
近接 - EVShield EV3 (超音波)
近接 - EVShield EV3 (超音波)
近接 - GP2Y0A710K0F
プロキシミティ - HC-SR04
近接 - HC-SR04 (アナログ)
プロキシミティ - HC-SR04 I2C バックパック
近接性 - LIDAR-Lite
近接 - MB1000
近接 - MB1003
近接 - MB1010
近接 - MB1230
近接 - SRF10
モーション
モーション - GP2Y0A60SZLF
モーション - GP2Y0D805Z0F
モーション - GP2Y0D810Z0F
モーション - GP2Y0D810Z0F
ジョイスティック
ジョイスティック - Esplora
ジョイスティック - パン + チルト コントロール
ジョイスティック - Sparkfun シールド
Grove - RGB LCD カラー プレビューア
液晶ディスプレイ
LCD - 文字を列挙する
液晶ディスプレイ - I2C
LCD - I2C PCF8574
LCD - I2C ランナー
LCD - ランナー 16x2
LCD - ランナー 20x4
LCD - テッセル 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 (IR)
近接 - EVShield EV3 (超音波)
Intel Edison + Grove - 加速度計 (ADXL345)
Intel Edison + Grove - 加速度計 (MMA7660)
Intel Edison + Grove - 大気質センサー
Intel Edison + Grove - 気圧計 (BMP180)
インテル エジソン + グローブ - ボタン
インテル エジソン + グローブ - コンパス (HMC588L)
Intel Edison + Grove - 炎センサー
Intel Edison + Grove - ガス (MQ2)
Intel Edison + Grove - 湿度と温度 (TH02)
Intel Edison + Grove - I2C モーター ドライバー
Intel Edison + Grove - ジョイスティック
インテル エジソン + グローブ - LED
Intel Edison + Grove - 光センサー (TSL2561)
Intel Edison + Grove - 水分センサー
インテル エジソン + グローブ - Q Touch
Intel Edison + Grove - RGB LCD
Intel Edison + Grove - RGB LCD カラー プレビューア
Intel Edison + Grove - RGB LCD 温度表示
Intel Edison + Grove - リレー
Intel Edison + Grove - ロータリー ポテンショメータ
Intel Edison + Grove - サーボ
Intel Edison + Grove - タッチ
グローブ - ボタン
グローブ - ジョイスティック
グローブ - LED
Grove - モーター (I2C ドライバー)
グローブ - 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 二足歩行 BRAT
モトボット
ナビゲーター
ノードボット
フェニックスヘキサポッド
レーダー
ロボットクロー
ウィスカー
プラグインの例
電気インプの LED 点滅
Intel Edison Arduino ボードの LED 点滅
Intel Edison Mini ボードの LED 点滅
Intel Galileo Gen 2 の LED Blink
Raspberry Pi の LED ブリンク
スパークコアのLED点滅
PCDuino3 の LED 点滅
すべての投稿は、既存のコーディング スタイルを維持することにより、Idiomatic.js スタイル ガイドに準拠する必要があります。新しい機能または変更された機能の単体テストを追加します。 lint を実行し、grunt を使用してコードをテストします。
Copyright (c) 2012, 2013, 2014 Rick Waldron [email protected] MIT ライセンスに基づいてライセンスされています。 Copyright (c) 2014, 2015 The Johnny-Five Contributors MIT ライセンスに基づいてライセンスされています。