Help us understand the problem. What is going on with this article?

ArduinoをNode.jsで制御してLチカをする

More than 3 years have passed since last update.

今回はArduinoを制御してみたいと思います。

ただArduinoってC言語風のArduino言語で書くし、工学系のガチな人たちがいじるイメージ。。。

でも実はweb系の人でもいじれるっぽいんです!それがこちら :tada:

http://nodebots.io/

おおお、「Node」なんか聞いたことあるぞ。

そうです、Node.jsです。

johnny-five というライブラリを使うとNode.jsでArduinoを制御できるそうです。

これはweb系の人には朗報ですね!
しかも、、、!


出典: tableflip/nodebot-workshopより

おおお、「なんか教科書っぽい」

そうです、Node.jsに関連するソフトウェアを無料で学習できる Node School というオープンソースの学習ツールです。

このNode Schoolがjohnny-fiveでArduinoの制御方法を勉強できる学習ツールを出しているんです。
それがこちら。https://github.com/tableflip/nodebot-workshop

なんか感心するほど、ほとんど揃ってますねw

あとは、実際に制御するArduinoが必要なわけですが、もちろんありました。

https://dotstud.io/projects/nodebots-seeeduino-for-beginners/


出典: NodeBot kit for Beginners ver.JP | dotstudioより

購入ページでセットを買うことができました。

これで必要なものが揃ったので早速始めたいと思います。

環境設定

ではサクサク始めます

$ mkdir nodebot
$ cd nodebot
# グローバルにnodebot-workshopをダウンロードするのは嫌だったのでローカルにダウンロードします
$ npm init -y
$ npm i -S nodebot-workshop
$ nodebot-workshop

こういう画面が出力されましたか?もし英語になった場合は、言語を選択できるので日本語に設定しましょう。カーソル↑↓またはjkで上下に移動できます。

これで環境設定は完了ですね。nodebotが手元にある人はArduinoをUSBコードでPCに繋げてください。

Lチカ

ではLチカをやってみます。

Lチカ を選択すると以下のようなmarkdownが出力されました。用意周到ですねw
あとはこれを読んでやってみましょう。すごい丁寧に誘導されているので大丈夫でしょう!ドキュメントもありますし

コードを書けたら、一旦テストを実行しましょう。

$ nodebot-workshop verify l-chika.js

1481897226692 Device(s) /dev/cu.usbserial-FAKEID
1481897226715 Connected /dev/cu.usbserial-FAKEID
1481897227119 Repl Initialized
>> 回答をテストしています。お待ちください。。。
  ✓  Boardインスタンスが作成されました。

  ✓  LEDインスタンスが作成されました。

  ✓  LEDがpinに接続されました。

  ✓  LED is flashing once a second

  ✓  LED is flashing once a second

  ✓  Pin 2 was set to OUTPUT mode

  ✓  Pin 13 was turned on

  ✓  Pin 13 was turned off

  # おめでとう! 「Lチカ」に対するあなたの回答は合格です!

  あと8個のチャレンジが残っています。 メニューを表示するには
  'nodebot-workshop' と入力してください。

こうなれば正解です!実際はこの検証が通らなくてもLチカはできましたw

一応回答を載せておきます。

var five = require('johnny-five');
var board = new five.Board();
board.on('ready', function() {
  var led = new five.Led(13);
  led.strobe(1000);
});

おわり

こんな感じで結構気軽にマイコンを制御できるので、よかったらやってみてください!
僕は家で家族に年越しサプライズするために、黙々実装してますw
ではでは、良いお年を! :tada:

sainu
FinTechの会社で共通ID基盤システムの開発をしてます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away