NTTドコモ様_dカーシェア
NTTドコモ様_dカーシェア
2016.05.12
第3回
littleBitsではじめるArduino

磁石で電子工作できる「littleBits」のArduinoモジュールで、ON・OFFの入力値を取得しよう

田中 正吾

こんにちは、DevRelチャンネル外部ライターの田中正吾です。電子回路パーツを磁石でパチパチとつなげるだけで電子工作ができる「littleBits」の連載第3回目です。

前回の記事ではArduinoの開発環境のインストール方法、そしてモジュールにプログラミングを書き出しLEDライトをチカチカと点滅させる(通称:Lチカ)までの流れについて紹介しました。第3回目となる今回は、littleBitsのArduinoモジュールでON・OFFの入力値を受けてみようということで、littleBitsのINPUTモジュール(例:ボタンモジュール)からのON・OFFの入力を受け取る流れをお伝えします。

Arduinoプログラミングとプロトタイプ作成を同時に楽しみたい方におすすめです。

1. INPUTモジュールから動きを取得する繋ぎ方は3つ

littlebits-arduino-vol3_1

ARDUINO CODING KITを購入した前提で話を進めます。INPUTモジュール(ボタンモジュール)から動きを受け取りたいときは、上記のように3つのつなぎ方ができます。

 
littlebits-arduino-vol3_14

図のカッコ内の数字「0,A0,A1」は、Arduino IDEでプログラムを書くときに重要なポートの名前です。頭の片隅でいいので覚えておきましょう。入力1、2、3番目とならないことに注意してください。

前回の記事で2番目の出力でLEDを反応させるために、ポート5に命令を出すのと同じことです。littleBitsでのつなぎ方が分かったので入力を取得してみます。

2. シンプルにON・OFFを取得してみる

littlebits-arduino-vol3_3

シンプルにON・OFFを取得してみます。今回は上から2番目のA0でつないでいきましょう。Arduino IDEプログラムは以下のように書きます。

void setup() {
  Serial.begin(9600);
  // A0ポートで入力値を取得するよと宣言
  pinMode(A0, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // A0ポートからON/OFF取得
  int sensorValue = digitalRead(A0);
  // ON/OFF取得をシリアルモニタで表示
  Serial.println(sensorValue);
  // 1秒ごとにON/OFF取得の値を取得(1か0が出力)
  delay(1000);
}

littlebits-arduino-vol3_15

setupで「A0ポートで入力値を取得するよ」と宣言しておきます。loopは常に動いています。delay(1000)によって1秒ごとに動くようにしています。

loopでは「A0ポートからON/OFF取得」「ON/OFF取得をシリアルモニタで表示」「1秒ごとにON/OFF取得の値を取得(1か0が出力)」という動きをします。

3. Arduinoモジュールに書き込む

littlebits-arduino-vol3_5

Arduinoモジュールに書き込むプログラムを書き込みます。Arduino IDEの使い方やプログラムの書き込み方は前回の記事を参考にしてください。

4. シリアルモニタで確認する

今回の動きはArduino IDEについているシリアルモニタというもので確認します。シリアルモニタは、USBケーブルを経由してArduinoからくる値を表示するものです。

// ON/OFF取得をシリアルモニタで表示
  Serial.println(sensorValue);

こちらで書かれたカッコ内の値が出力されます。Arduino IDEを見てみましょう。

littlebits-arduino-vol3_6

マイコンボードとシリアルポートがちゃんと設定されていることを確認して、シリアルモニタをクリックします。

 
littlebits-arduino-vol3_12

littlebits-arduino-vol3_7

いまはボタンモジュールが押されていないので1秒ごとに0が出力されています。下部のメニューの設定も注意です。自動スクロールがチェックされ、改行なし、9600 bpsになっていることも確認しておきます。

 
littlebits-arduino-vol3_13

ボタンを押してみます。

 
littlebits-arduino-vol3_11

ボタンを押すと1が出力されるようになります。

おわりに

今回はボタンを押したときの状態を受け取る「入力」についてお伝えしました。シンプルな1と0を取得しましたが、これでPCとlittleBits(ハードウェア)が1と0という同じ言葉で会話できるようになります。

PCとlittleBits(ハードウェア)が共通の言葉で会話ができることで、この値の変化をきっかけに「1が来たらPCのほうで何かをソフトウェアを動作させる」「0が来たらWEBに何かを知らせる」といったことも可能になります。こちらについても、以後の連載でお伝えしていきます。

次回はボタンの入力とバーグラフモジュールLEDが連携する「入出力の連携」についてお伝えします。お楽しみに!