最近はlittleBitsを使っているわけですが、このような記事を見て、
知育電子ブロック工作のlittleBitsに、プログラマブルArduinoモジュールが登場 – TechCrunch
Arduinoモジュールも使ってみようと思っていました。
そこでlittleBitsのArduinoモジュールを購入し使ってみたところ、Blinkサンプルで変なハマり方をしたものの解決した話です。
まずはじめに
littleBitsのArduinoモジュールはこんな感じ。
littleBitsの本家サイトのSHOPから購入しました。
インストール方法も親切
Getting Started with Arduino – Troubleshooting / Arduino – littleBits discussions
ひとまずこちらで認識させつつ、ステップを進めていきます。
Blinkサンプルを試す
BlinkサンプルでのlittleBitsの組み合わせを作る
Arduino Sketchesの最初のサンプルBlinkを進めていきます。
Blink: a littleBits Project by littleBits
お手本の構成例。
自分はArduinoスターターキットを持っているわけではないので、写真のような構成ではなく手持ちのパーツで
- V9電池給電からUSB給電に変更
- バーLEDを通常のLED
にしました。他は一緒です。
BlinkのコードをExamplesから呼び出す
いろいろ調べながらBlinkサンプルがどうもArduino界隈のGettingStartではメジャーなこと感じつつ、File>Examples>01.Basic>Blinkでサンプルを呼び出します。
このようなコードです。
// 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を押す。
littleBits側も左のランプが2回点灯→
→両方のランプが3回点灯→
→左のランプが1回点灯。
転送ログが出る。
と、うまく反応し転送できた。しかし、どうもLEDが点滅しない!
なぜだ。
コメントを良く読んでみたら素晴らしい気づきがあった。
いろんな文献をみたのですが、Arduinoのチュートリアルだと当然のように動くようです。そして、littleBitsでのArduinoモジュールサンプルはというとまだ少ない印象。そして、何故かあっさりと動いたものばかり。
これやばいハマり方だ・・・。
しかし、もう一度Blinkサンプルのコメントを良く読んでみたら素晴らしい気づきがありました。spilthさんという方の発言がありまして。
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 }
こちらで無事点滅しました。やったー。
おわりに
終わってみれば、そもそもチュートリアルにも書かれてあるように、Arduinoを理解した上でlittleBitsのArduinoモジュールを使えればなんてことないことなのかもしれません。
しかし私はlittleBits側から入ってしまったために、通常のArduinoとは違うアプローチになってしまい、littleBitsとArduinoの間の知見でハマってしまったのでした。
今回は幸いにも情報を見つけることが出来て良かったです。
それでは、よきlittleBits and Arduino Lifeを。