littleBits Arduinoモジュールでより細かく値を入出力して状況を伝えよう
こんにちは、dotstudioライターの田中正吾です。電子回路のパーツを磁石でパチパチとつなげるだけで電子工作ができる「littleBits」の連載をLIGブログでおこなっています。
- littleBitsのArduinoモジュールで簡単にプログラミングをはじめてみよう
- ArduinoモジュールでLチカしてみた(Windows・Mac)
- ArduinoモジュールでON・OFFの入力値を取得してみよう
- Arduinoモジュールで入出力の連携をしてみよう
- シリアルモニタとNode.jsでlittleBits Arduinoモジュールを動かしてみよう
- littleBitsのボタンを押すとIFTTT経由でLINEにメッセージが飛ぶ仕組みを作ってみよう
本記事では、これでの連載とは少し視点を変えて、 littleBits Arduinoモジュールでより細かく値を入出力するアナログ入出力 をご紹介します。では、さっそく始めていきましょう!
より細かく状況を伝えるアナログ値
いままで、ボタンを押すと何かが起こるON/OFFの反応で説明していましたが、実はARDUINO CODING KITには、より細かく状況を伝えるアナログ値を扱う入出力モジュールがあります。
たとえば、DIMMERモジュール(真ん中にあるダイヤル状のツマミのモジュール)は、ツマミを回すことで電気の流れが0~100%と変わります。またBAR GRAPHモジュール(右)は流れる電気によって光るLEDの数が変わります。
つまみを回しきったとき。
半分ぐらいまでひねったとき。電流50%のときですね。
ON/OFFではセンサーが「反応した」「反応していない」という2つの情報しか伝えられませんでした。しかし、このように電流の量によって度合いを伝えることができると、たとえば光センサーモジュールを使ったときに明るさを「暗い」「やや暗い」「やや明るい」「とても明るい」といったように、より細かく伝えることができます。
アナログ値をArduinoモジュールで計測してみる
それでは早速アナログ値をArduinoモジュールで計測してみましょう。
DIMMERモジュールをArduinoモジュールの入力2番目のA0に取り付けます。
Arduinoモジュールでアナログ値を計測するには analogRead
関数を使います。Arduinoモジュールで計測できるアナログ値は0%は0として、100%は1023として計測できます。
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(A0);
if(sensorValue>0){
Serial.println(sensorValue);
}
delay(1);
}
このコードを書き込んで、シリアルモニタで数値を見てみます。
DIMMERをひねると値が変わります。
シリアルプロッタのほうがよりわかりやすいですね。
DIMMERモジュールのツマミにあわせて点滅を変えてみる
DIMMERモジュールのツマミの度合いが取れるようになったので、ツマミに合わせてBARGRAPHモジュールの点滅の仕方を変えてみましょう。
このように、さきほどのDIMMERモジュールとArduinoモジュールをつないだものに、BAR GRAPHモジュールも加えます。
void setup() {
Serial.begin(9600);
pinMode(5,OUTPUT);
}
void loop() {
int sensorValue = analogRead(A0);
if(sensorValue>0){
Serial.println(sensorValue);
digitalWrite(5,HIGH);
delay(sensorValue);
digitalWrite(5,LOW);
}
delay(sensorValue);
}
このように書いたコードをArduinoモジュールに書き込みます。
DIMMERモジュールのつまみに対応して、点滅の仕方が変わるようになりました。
さらにサーボに変えてみる
ARDUINO CODING KITのサーボに変えてみました。LEDよりもわかりやすくなりますね。
サーボに顔をつけてみます。
ツマミに合わせて顔がビクビクするものに早変わりします! 磁石で電子工作できる「littleBits」のArduinoモジュールで、入出力の連携をしてみようで試した「三三七拍子するパンダ」はまだ動物らしい動きに見えましたが、この顔ネタはなかなかに気持ち悪いです。夢に出そう。
おわりに
今回はlittleBits Arduinoモジュールで より細かく値を入出力するアナログ入出力 をお伝えしました。ネタはひとつなのに、モジュールを付け替えるだけで光から動力へと変化します。工作物によって伝わる印象も変わるのがlittleBitsの面白いところです。
そして、アナログ値を扱うとON/OFFよりも細かく状況を伝えることができたり、動きにもアクセントを持たせるたりすることができます。
みなさんも、ぜひいろいろなことを試してみてはいかがでしょうか。
littleBitsのハックには、LIGブログのlittleBitsではじめるArduino連載、ならびに拙著『「littleBits」ではじめる電子工作』もぜひご参照ください。