littleBitsのArduinoモジュールのBlinkサンプルで変なハマり方をしたものの解決した話

最近はlittleBitsを使っているわけですが、このような記事を見て、

知育電子ブロック工作のlittleBitsに、プログラマブルArduinoモジュールが登場 – TechCrunch

Arduinoモジュールも使ってみようと思っていました。

そこでlittleBitsのArduinoモジュールを購入し使ってみたところ、Blinkサンプルで変なハマり方をしたものの解決した話です。

まずはじめに

littleBitsのArduinoモジュールはこんな感じ。

image_20150309_000117_1

littleBitsの本家サイトのSHOPから購入しました。

image_20150309_000408_1

インストール方法も親切

Getting Started with Arduino – Troubleshooting / Arduino – littleBits discussions

image_20150309_000901_1

ひとまずこちらで認識させつつ、ステップを進めていきます。

Arduino Sketches

image_20150309_001205_1

Blinkサンプルを試す

BlinkサンプルでのlittleBitsの組み合わせを作る

Arduino Sketchesの最初のサンプルBlinkを進めていきます。

Blink: a littleBits Project by littleBits

お手本の構成例。

image_20150309_001333_1

自分はArduinoスターターキットを持っているわけではないので、写真のような構成ではなく手持ちのパーツで

  • V9電池給電からUSB給電に変更
  • バーLEDを通常のLED

にしました。他は一緒です。

image_20150309_000117_2

BlinkのコードをExamplesから呼び出す

いろいろ調べながらBlinkサンプルがどうもArduino界隈のGettingStartではメジャーなこと感じつつ、File>Examples>01.Basic>Blinkでサンプルを呼び出します。

image_20150309_002003_19

このようなコードです。

image_20150309_002145_20

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

これでいざ転送!しかし、どうも点滅しない?

Uploadを押す。

image_20150309_003800_21

littleBits側も左のランプが2回点灯→

image_20150309_011146_25

→両方のランプが3回点灯→

image_20150309_011146_26

→左のランプが1回点灯。

image_20150309_011146_25

転送ログが出る。

image_20150309_003809_22

と、うまく反応し転送できた。しかし、どうもLEDが点滅しない!

image_20150309_004048_24

なぜだ。

コメントを良く読んでみたら素晴らしい気づきがあった。

いろんな文献をみたのですが、Arduinoのチュートリアルだと当然のように動くようです。そして、littleBitsでのArduinoモジュールサンプルはというとまだ少ない印象。そして、何故かあっさりと動いたものばかり。

これやばいハマり方だ・・・。

しかし、もう一度Blinkサンプルのコメントを良く読んでみたら素晴らしい気づきがありました。spilthさんという方の発言がありまして。

image_20150309_004418_1

spilth 5 months ago
Latest version of Arduino software (as of 2014-10-12) uses Digital Pin 13 instead of 5 in the Blink example. So change the number 13 to 5 though out the Blink code before uploading.

訳すとこういう意味。

(2014年10月12日現在)Arduinoのソフトウェアの最新バージョンは、デジタルピン13の代わりに、点滅の例では5を使用しています。だから、アップロードする前に点滅コードからも5に番号13に変更します。

まじですか!

コードを修正

ひとまず番号が違うようなので、コードの13の部分を5に変更。

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(5, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(5, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(5, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

こちらで無事点滅しました。やったー。

image_20150309_011153_28

image_20150309_011153_27

おわりに

終わってみれば、そもそもチュートリアルにも書かれてあるように、Arduinoを理解した上でlittleBitsのArduinoモジュールを使えればなんてことないことなのかもしれません。

しかし私はlittleBits側から入ってしまったために、通常のArduinoとは違うアプローチになってしまい、littleBitsとArduinoの間の知見でハマってしまったのでした。

今回は幸いにも情報を見つけることが出来て良かったです。

それでは、よきlittleBits and Arduino Lifeを。