Arduinoをはじめよう、をやってみた
GWだし普段やってないことをやってみよう、ということでArduinoを触ってみた。Arduinoをはじめようという本と、それに合わさったキットをつかっている。*1
- Arduinoをひとまず起動する
- LEDをつけてみる
- スイッチをon/offしてLEDをつけたり消したりしてみる
- Cdsセルをつかって、LEDをつけたり消したりする
- Cdsセルをつかって、LEDの光る強さを変えてみる
- ブログから本文読み取って、単語数をもとに3つのLEDの光る強さを変える
ということをした。所要時間5時間くらい。組み立てつつ、写経しつつ進めた。たぶんProcessingとかこういう部品組むのとか慣れてる人だったらもっと早く終わると思う。
つかったもの
環境はOSX 10.9.5のMBP。

- 出版社/メーカー: スイッチサイエンス
- メディア: エレクトロニクス
- 購入: 64人 クリック: 1,164回
- この商品を含むブログ (51件) を見る

Arduinoをはじめよう 第2版 (Make:PROJECTS)
- 作者: Massimo Banzi,船田巧
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/03/16
- メディア: 単行本(ソフトカバー)
- 購入: 9人 クリック: 27回
- この商品を含むブログ (11件) を見る
ここからIDEを落とす。Processingで書けるらしい。Cに変換されるとのこと。
Arduino - Software http://www.arduino.cc/en/main/Software
ArduinoをはじめようキットだとArduino Unoというボードがついている。これをPCとUSBでつなぐと、Arduinoに電力が供給されて動くようになっている。ちなみに本には設定が必要だと書いてあったんだけど、USBでつないでArduinoのIDEを起動したら勝手に設定が終わっていた。簡単。接続されているデバイスの中からArduinoを勝手に認識してくれているらしい。
コード書いてチェックボタンでverify、→ボタンでコンパイルとデプロイされる。便利。
まずLEDをつけたりスイッチをつけたり
Arduino IDEで新規ファイルを作成するとSTUBの手続きが生成される。
void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: }
setup()
がマイコンボードに書き込まれた際に実行される処理。 loop()
はその後繰り返し呼び出される。LEDをつけるには
void setup(){ pinMode(13, OUTPUT); // LEDのポート番号 } void loop(){ digitalWrite(13, HIGH); }
これだけでいい。ちなみに読み込みはINPUT
用のpinをつくって、digitalRead()
すればいい。するとボタンを押してLEDをつけたり消したりするのは以下のようにかける。
int val = 0; void setup(){ pinMode(13, OUTPUT); // LEDのポート番号 pinMode(7, OUTPUT); // 例えば、ボタンのポート番号 } void loop(){ val = digitalRead(7); // ボタンの値を読み込む if (val == HIGH) { digitalWrite(13, HIGH); // LED on } else { digitalWrite(13, LOW); // LED off } }
といったような感じでコードを書いていく。だいたいArduino側がapiを用意してくれているので、単純なdigitalRead()
やdigitalWrite()
だとさくさく書けるようだ。
こういった例がいくつかあって、以下の様に部品を組んで動かしていく。
微妙にはまったところ
6章にクラウドとの会話という章がある。ここで、ブログのフィードからテキストをもってきて、LEDライトのそれぞれの明るさに反映するという例になっている。
ブログのフィードを持ってきてシリアル通信でボードに送るところはProcessingで書かれている。ただこのままだと動かない。
- そもそも
http://blog.makezine.com/index.xml
が403 - Processingをインストールしてもそのままでは動かない。
processing-java
を入れる必要があり、それらのimport
宣言が抜けている。
ということでちゃちゃっと直した。https://processing.org/download/からProcessingを落としてきてインストール。Tools -> Install "processing-java" でprocessing-javaをインストール。あとは以下のimport文をスケッチに足す。
import java.net.*; import java.io.*; import java.util.*;
あとはURLを適当に変えてあげる。私は代わりに String feed = "http://blog.arduino.cc";
とした。また、ここで例にあげられているlove, peace, arduinoの単語はブログによって頻度が違うので適当に選ぶといい。私はそれぞれwindows, make, arduinoとした。
で結果として以下のようになった。
ちゃんと光った。
感想
面白かった。シリアル通信できればProcessingで処理した部分は他の言語でも書けるだろうし、もっといろいろできそう。あと色んなセンサーを集めて遊んでみたくなった。
*1:2つともwishlistからプレゼントとしてもらったもの。harukasan, amacbeeありがとう!