実験室-Danger-では大変危険な実験をしています。
このサイトの記事をまねして行った、制作、実験により起きた事故については一切責任を負いません。
きちんと危険性を理解して実行し、友達等に簡単に貸し出さないようにしてください。

2013年3月1日金曜日

ARDUINOをはじめよう!

arduino(アルディーノ)、実Dをいつも見てくださってる方は聞いたことはあると思います。
マイコンをいとも簡単に使えてしまう入門に最適なボードなんです。
今回はそれを入手したので、さっそく、レポートさせていただこうと思う所存です。

公式サイトはこちら
このボードのもとになっているのは「AVR」という種類のマイコンです。
もちろんこれを普通に使うのはPICを使うのと同じく、たくさんの初期設定や、ヒューズ設定、それを行うための構造の理解など、すごく大変です。
プロでも初めて使う種類のマイコンをまともに使えるようになるには構造の理解に一日以上を費やすことも少なくないそうです。
でもアルディーノはそれを自動ですべて行ってくれているので、これらのストレスがまったくなく、初心者でも超高速で開発を進められます!!

さらにさらに、前回のようなマイコンの開発では開発ソフト、それに入れるライブラリ(機能を付け足すための辞書みたいなの)、コンパイラ(機械語に直す翻訳機みたいなの)、それを書き込むツール、書き込みツールからマイコンにつなぐ回路、電源回路、これらの一つでもまずいと開発はうまくいかないことになります。
しかもそれを作ってる会社が一つづつ違ったり、自分でマイコンに合わせて設計したり、組み立てる回路もあります。



もちろん参考書を持ってきてもその参考書が違うコンパイラを使っていたりすると、役に立たなくなっちゃうこともあるんです。
同じシリーズでもマイコン本体自身も多種多様で一つ一つ構造が違うので、参考書が違う本体ならまた話は違います。
僕みたいな初心者は参考書が役に立たないと手出しできません・・・

ここがアルディーノなら専用ソフトにコンパイラが内蔵されていて、書き込みツールもマイコンを動かすための回路もアルディーノの基盤に搭載されてます。
さらにライブラリも同じサイトから簡単にダウンロードして、適用することができます。
つまり、ソースが正しくかければ、アルディーノの基盤はほぼ確実にその通りに動きます。
ちなみに違う基盤を使う場合はソフトで選択すればいいだけなので、心配ご無用。
参考書も基盤さえ同じものをつかってれば参考にすることができます。

つまり、僕がミソだとおもうのはこの2点です。
・バグが出にくい、出ても探しやすい。
・参考書もちょっと選べば使える。

(ここまでのうんちくは僕の生半可な知識によるものなので、まちがえていたらご指摘ください。あと、鵜呑みにしないでください・・・)





簡単だ、とはいってもほんとはどうなんだよ!っていうことで、今回はタイムアタックでLCDでストップウォッチをつくってみます。
LCDは液晶表示器のこと。秋月なんかでもうってますよね。こんなやつです。
PICで何回も使えるように努力しましたが、結局まだ使えません・・・
使うアルディーノはArduino UNO。これ、アマゾンでもうってるんですよね・・・びっくりです。
今回はそれを使いました。

専用ソフトはダウンロード済み、LCDディスプレイはブレッドボードにさせるようにピンをはんだ付け済み。
参考書籍は図書館で借りた「たのしくできるArduino電子工作」

では、アルディーノはじめて触るとある高専生が何時間でLCDストップウォッチが作れるかタイムアタック!
スタート!


~開始から10分後~
ハードウェアドライバーのインストールで手間取りましたが、参考書をもとにLEDをちかちかさせることに成功しました。なるほど、さすが使いやすいですね。
一発で動きました。


~それから8分後~
CDSセルを使って光の明るさに応じてLEDの明るさを変えることができました。
アナログ入力も、アナログ出力もPICではやったことのない初の試みでしたが、初期設定は全く必要なく一発で動きました。


~それから20分後~
さて、いよいよLCD。データシートとにらみ合って配線。配線に合わせて初期設定の関数をいくつか書きます。
まぁ、さすがに一発で表示できるなんてことは・・・
一発で表示できたーーーー!?
今までのPICで苦労したのはなんだったんだよ!! なんで一発なんだよ!びっくりだよ!
それは、参考書とまったく同じ状況だからなんですが、これは笑いが止まりません。楽しくなってまいりました。
(ちなみに写真左のボリュームはコントラスト調整ですが、以降はGNDにショートで問題ありませんでした。)


~それから35分後~
タイマーのライブラリーを公式サイトからダウンロード、参考書通りに適用します。
タイマー割り込みも一発で使用できました。なんて使いやすいんでしょう。
さて、ここからは僕のターン!全力でプログラムを書いていきます。

よし、とりあえず、分:秒:100分の一秒での表示ができるようになりました。


~それから10分後~
カウント中はリセットボタンをきかないようにしたり、60分以上はカウントしないようにしたり、表示を追加したり、あとバグを適当にとって完成!
おおー!できたできた!


で、結果は・・・1時間23分

ま、まじかよ・・・。
あたかも自分がスーパーエンジニアになったような夢のような1時間半でした。
何も考えずどんどんことが進んでいくんですよ!圧倒的でした。




とはいえこれを組み込んで何かを作ってしまおうという気にはなりませんね。
多分プロでもこれを製品に入れてしまおうという気にはならないと思います。
そう思うのは次の理由からです。

●ちょっと高価。
いくらちょっとした周辺回路をふくんでいるとはいえ、一台3000円位します。
●几帳面な人ならわかるこの感覚・・・
作品に入れるってことは書き込みはもうしばらくしないってこと。使わない書き込み器がケースの中で眠ってるってなんか、嫌ですよね・・・。
使わないポートがあったりするのもまた・・・。
●でかい。
書き込み器など必要でない基盤をのけて、一つの基盤にしてしまうのがスマートです。

これ、見てください。前回の記事のものを電池も含めて小型化しました。

中身はこんなの。
実はこれ自分で作った十色を保存しておき、スピードも変えてイルミネーションできるプログラムに改良しておきました。EPPROMという場所に保存することで電源をきってもイルミネーションは消えません。
イルミネーションコーディネーターと個人的によんでます。


こんな小型化、明らかに無理ですよね。

サイズのみならず、仕事で使うときは消費電力など、もっとたくさんのことを”最小”にする必要があるんではないでしょうか。

参考資料はこちら。
今回のストップウォッチのコード、回路図、および、PICによるイルミネーションコーディネーターのコードと回路図をひとまとめにしています。ご利用ください。



今回のまとめです。
アルディーノ、ちょっと遊ぶには最高のものです。
ちょっとならずとも、SDカードやできる人ならAndroid携帯と同期させたり、なんてのもできるそうです。かなり遊べそうです。
でもマイコンの勉強にはならないかもしれませんね。プログラミングの勉強にはなりそうです。
作品を作るのにも使えなさそう。
でも、回路を今から始める人、興味を持ちたい人、モチベーションを上げたい人には最適でしょう!
この記事をよんで興味がでたらぜひやってみてほしいと思います。たのしいですよ!

では、また!roboでした。






おまけ。

小学生でも大喜びする簡単工作をご紹介。今回は「手投げくすだま」。
小学生のころに発明した品です。

まず、適当なゼリーカップを二つ、キリ、輪ゴムを準備します。
まずゼリーカップの底のど真ん中にキリで穴をあけます。

そして開けた穴から輪ゴムを通して針金などで外から引っ張っても外れないようにします。
同じようにして二つのカップが輪ゴムでつながったような状態になれば完成です。
さ、くすだまなので中に紙ふぶきを入れて次の写真のように輪ゴムを回してください。



 投げるときは下の写真のように輪ゴムをずらします。
高い壁や天井に向かって投げてみてください!
うまくいけば輪ゴムのちからでパカッとひらきます。予想外にいい音がします!!
普通のくすだまよりもずっときれいに紙ふぶきが飛び散ります。ゴムの力でひらきますからね。


もちろん、ほかのものもいれられます。
BB弾をいれてサバゲーで手りゅう弾にしてもよし、パラシュートをいれて手投げパラシュートなんかでも小さい子は大喜びでしょう。

まじで楽しいです!ゼリーのカップが二つあればおもいだしてみてください。

2 件のコメント:

田舎小僧 さんのコメント...

お久しぶりです!田舎小僧です
僕は、普段は、arduinoUNOで実験して
arduinoPROで実装かAVRマイコン(ATmega328P)にブートローダー書き込んで使ったりしてます。
arduinoは簡単で便利ですしいいですよね
僕も記事を書かなくては・・・・

robo さんのコメント...

田舎小僧さん> おひさしぶりです!
ほう!Arduinoで試したものをAVRに入れてつかえるんですね! いいこと聞きました。
自分も機会があればやってみたいです。
記事たのしみにしてますよーw