2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TECH::CAMPAdvent Calendar 2016

Day 16

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

Last updated at Posted at 2016-12-16

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

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

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

おおお、「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が必要なわけですが、もちろんありました。


出典: 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:

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?