トップページへ
Under Updating Everyday
ボルダリング 日記 お絵かき 更新履歴 その他 メール
 Translate to English by google

« 本日の夕飯 | メイン | youTube for television »

2009年02月17日

電子「砂」時計    (Embedded) /(Goods/Gadget/Geek) /(工作とか) Bookmark and Share


Electric Sandglass Timer (prototype 1)
Originally uploaded by namaRyo

アイデア思いついたのはなんと2年ぐらい前。そのままアイデアは寝かせてた。

そして今年になって、とある会議中に暇だったのでノートに仕様と回路図をささっと描いてみた。何点か確認してみないとわからない点があるけど作れそうかな。
必要な部品はほとんど持ってる。唯一新たに入手しなきゃいけないのは砂時計。
砂時計みつけたら買おう!って心に誓って数ヶ月。。。ぜんぜん売ってないんだもん。。

そしてついに先週末ダイソーで砂時計発見!!

部品が揃ったとこで早速実験。

まずはサーボの制御。今回は完全に反転させるので0度~180度で制御が必要。そこまで振れるのか?
手持ちのサーボはWAYPOINTという怪しげなメーカーのもの。
適当にパルス幅変えてみたら、ちょっとフルフルきつそう。。もうちょっと振りたいんだけどジージーいっちゃって。。
ぎりぎりのパルス幅を実測で求めたけど、微妙な加減で指定角度まで到達できなくてジージー言いっぱなしになっちゃったり。
だったら!と強引な方法を思いついた。
1.無理でもいいから強引にパルス幅指定。
2.サーボ回転待ちで1秒ほどwait
3.パルス出力断!!
要するにそこまで行かなくてもそこでサーボの制御を止めちゃうってやりかた。
これでジージーいい続けることなくなった。
強引だけどうまくいってるからいいや。

サーボがなんとかなりそうなので、もうひとつの懸念点。こっちが最大の懸念点。「砂が落ちていること」の検出。
フォトインタラプトを使ってできるんじゃないかと思っていたけど、果たして砂がちゃんと遮光してくれるのか?とか、できたとしてもそのときのパルス幅は?とかとか。

とりあえず手持ちの5個200円のフォトインタラプタで実験。
ハーフピッチの両面基板を切断して半田付けして適当な紙で遮光してみたけど動いてない??
あれ???なんと、データシートのピンアサイン図が「Top View」って書いてあるのにBottom Viewじゃん!!LED側のピンをテスターであたってみて気がつきました。
最初にLED(Ir)には50mAぐらい流してみた(電源5Vで100ohm、本当はVfがあるからもうちょっと少ない)。オープンコレクタの出力(内部で15kでプルアップされてる)はちゃんと遮光するとON/OFFし動いてる。
遮光するものが砂だとテスターじゃあ確認できないから出力にLEDつないでみた。
LEDでわかるかなー、オシロつながないと無理?とか思いながらも。
で、砂時計の細くなっている部分にフォトインタラプタを当ててみるが。。
だめです。LED消えっぱなし(遮光されてません)。。
むむむ。。。LED明るすぎるのかな(赤外なので見えませんが。)。。抵抗を470ohmに変えてみて実験。
ナイス!今度は砂の落下にあわせてLEDがチカチカ点滅してます。やったね!
ただし位置あわせが微妙。。ちょっとずらすとLEDつかないし。固定しっかりしないとね。

実験で使ったアキシャルリードの抵抗やLEDをはずして、チップ部品でセンサー基板の作成。
チップ抵抗は抵抗に書いてある字が読めなくて(苦笑)探すの苦労した。
200ohmつうのが見つかったからセンサー発行側LEDには3チップ直列で600ohm、出力オープンコレクタのモニタ用のLEDは青色のチップLEDで抵抗は200ohmにした。
この青色チップLEDだけど、極性がわからん!!
確立半々!ということで適当に半田付けしたけど。。光らなかった。。orz
コテで温めてはずして破棄(はずすときに熱でやられるんで再利用不可)。同じ青色チップLEDを先ほどとは逆に半田付け。
テスターでショート確認してOK。電源接続して遮光してやるとちゃんと青く光りました。結構明るいな

このモニタLEDのおかげで後々の作業が大変らくでした。

センサ基板できたんでこれを砂時計に固定します。
問題は位置決めなんだけど、センサに通電しながら場所決めしました。
砂を落としながらセンサを微調整。ちゃんとLEDがちらちら点滅する位置でホットボンドで固定。砂時計逆さにしてもちゃんとLEDがつくのを確認。やったね♪
砂の落下が検出できたので先が見えてきました。あとはゴリゴリやるだけー

砂の検知はArduinoの外部割込みにつっこんでいます。digital pin2。
割り込みが入るとグローバル変数のgTimerをクリア。メインループでは100ms毎にgTimer++しててます。割り込みが入らないとどんどんカウントアップ。1秒以上割り込み入らないともう砂が落ちていないって判定してます。

砂が落ちきったことはブザーとLEDで報知しようかと思ってたんですけど、いろいろとデバッグしていてふといいことを思いつきました。
小さな鈴を砂時計に固定して、サーボで砂時計をシェイクして鈴を鳴らそう!
これがまた微妙でした。
最初タイラップで鈴を固定したらいくらサーボで振っても鈴なりませんでした。
糸でぶらさげてみたらいいかなーと思ってやってみましたがちょっとなるだけ。
いろいろとサーボの角度や速度を調整して、この動画の様にいい感じでなりましたー
リビングでテレビみながらこの鈴の実験してたもんだから、きっこが「うるさーい!」ww
動画に音声残ってますwwww

あとはスイッチつけてスタートとアラームのストップ。
停止中はSleepにして省電力化しよう。つうことはスイッチもext. int.に割り当てなきゃ。

懸念点が割りとあっさりと片付いたのであとは簡単です。
時間あるときにのんびり作ります。
最終的にはユニバーサル基板に組んで、ケース入れようかな。

(だいたい)3分電子「砂」時計のプロトタイプでした。

製作中の写真や動画多数(Flickr)




きっこの「練習日記2」はこちら

投稿者 nama : 2009年02月17日 23:00

コメント


なんというデジアナw
腕時計化希望www

投稿者 taroudo : 2009年02月18日 10:24

ありゃ!!
エントリー下書きにしたつもりだったのに、公開しちゃったww

投稿者 nama : 2009年02月18日 10:33

公開して後悔!
ってのはおいといてw
こーいうバカバカしいの大好きです。

投稿者 taroudo : 2009年02月18日 10:58

ばかばかしいって言ってくれると嬉しいです。
それが永遠のテーマですからwww

投稿者 nama : 2009年02月18日 12:41

もちろん、褒め言葉として使ってます(^^
最近は、バカバカしいことも出来ない(認めない)人も多くて・・・ブツブツ・・・。

投稿者 taroudo : 2009年02月19日 12:59

褒めてくれてありがとう♪
MakeMagazineのサイトで紹介されちった。
http://blog.makezine.com/archive/2009/02/arduino_sandglass_timer.html?CMP=OTC-0D6B48984890

>Apparently not satisfied with Arduino's delay() function,
「どうやらArduinoのdelay()関数に満足していない・・・」って面白い事言うねぇ~www


投稿者 nama : 2009年02月19日 14:13

コメントしてください




(書式を変更するような一部のHTMLタグを使うことができます)