カンタンにできた!JavaScriptを使ってArduinoでLEDを点滅させる方法

どうもこじまろ(@kojimaro7)です!

最近IoTに興味をもち、二年前に買って眠らせていたArduinoで遊んでみたくなりました。

そこでまず最初のステップとしてArduinoでLEDの点滅をやってみました。

Arduinoの開発はArduino専用の言語で行います。

ですが、Firmata通信とJohnny-Fiveを使うことでJavaScriptを使って開発をすることもできます。

今回のLEDの点滅の処理はJavaScriptを使って実装してみました。

ものすごくカンタンにできたので、本当に驚きました。

今回の記事では、JavaScript+ArduinoでLED点滅させるまでの手順を紹介します。

スポンサーリンク

実行手順

1. Node.jsとnpmをインストールしたホストコンピュータを用意する

JavaScriptを使ってArduinoの制御を行うには「Node.js」をインストールしたPCが必要です。

ちなみに今回ぼくは「Raspberry Pi3 Model B」に「Node.js」をインストールしました。

まずは開発に使用するPCにNode.jsがインストールされているか確認しましょう。

すでにNode.jsがインストールされている場合は以下のコマンドで確認できます。

node --version

Node.jsがインストールされている場合は以下のようにNode.jsのバージョンが出力されます。

Node.jsがインストールされていない場合は、Node.jsとnpmをインストールしていきましょう。

2. johnny-fiveのインストール

JavaScriptでロボティクスやIoTの開発ができるプラットフォームがjohnny-fiveです。

JavaScriptでArduinoを制御するにはjohnny-fiveが必要です。

Node.jsとnpmをインストールしていれば以下のコマンド一発でインストールが完了します。

npm install johnny-five

3. Arduinoのセットアップ

1から2まではArduinoを制御するホストコンピュータの準備でした。

ここからはArduinoのセットアップをしていきます。

PCとArduinoで通信するためにFirmataという通信プロトコルの設定が必要となります。

ArduinoへFirmataの書き込みするために「Arduino IDE」「Arduino WEB Editor」を利用します。

どちらも無料で利用できます。

Software | Arduino Create

「Arduino IDE」と「Arduino WEB Editor」でもやり方は同じですが、今回は「Arduino WEB Editor」を利用してFirmataの書き込みを行いました。

「Arduino WEB Editor」の利用には無料の会員登録が必要となりますので登録していきます。

Arduino Web Editor - Arduino Create

登録が完了するとプラグインのインストールができるようになります。

Welcome to the Arduino Web Editor Plugin! - Arduino Create

このプラグインはPCがArduinoを検知するために必要ですのでインストールしましょう。

ちなみにぼくはMacにプラグインをインストールしました。

インストールが完了すると下の画像にようにアイコンが表示されます。

「Open Plugin」をクリックすればプラングインが起動します。

プラグインを起動させたらPCとArduinoを接続しましょう。

Arduino Web Editorに戻りFirmataの書き込みをしていきます。

Arduino Web Editorのメニューから、「Examples」→「FROM LIBRARIES」→「FIRMATA」→「StandardFirmata」と順番にクリックしていきましょう。

あとはチェックマークのボタン(Verify)をクリックすればArduinoに「Firmata」の設定が書き込まれます。

これでArduinoのセットアップは完了です。

4. LEDを光らせてみよう!

セットアップが完了したら回路を作っていきます。

まずArduinoにLEDを繋げます。

他の色のLEDでも点滅しますが、ここでは赤い色のLEDを利用します。

足の長い方がアノード(+)短い方がカソード(−)です。

アノードを13番に、カソードをGNDに差し込みます。

これだけでもLEDが点滅します。

次にコードを準備します。

コードはjohnny-fiveの公式サイトにあるサンプルコードを利用します。

examples | johnny-five

led.blink(500);

では普通に繋げた状態と変わらないため以下のように変更します。

led.blink(5000);

数値が大きいほど点滅の間隔が遅くなり、小さいほど点滅が早くなります。

サンプルにある通りファイル名も「board.js」としています。

あとはboard.jsのある階層で以下のコマンドを実行すればプログラムが反映されます。

node board.js

ただLEDを繋げた時の光り方に比べて、点滅の感覚が変わることでしょう。

ちなみにキーボードの「control + c」を二回押せば終了します。

スポンサーリンク

おわりに

Arduino+JavaScriptでLEDを制御することができました。

johnyy-fiveの公式サイトにはいろんな光らせ方ができるサンプルコードがあるので、いろいろ試してみたいですね。

examples | johnny-five

あとはブレッドボードや抵抗とか使ってちゃんとした電気回路で光らせるようにしたい...。

勉強することがいっぱいあって非常に面白い。

これはハマりそうです。

スポンサーリンク

-プログラミング, 電子工作