「管理人Japanino作品展示室」の編集履歴(バックアップ)一覧に戻る

管理人Japanino作品展示室 - (2010/05/18 (火) 16:53:55) のソース

*管理人が作ったJapanino(ジャパニーノ)に関連する作品展示室です。

**作品1:P.O.V.時計
----
P.O.V.に現在時刻を表示する時計です。
***動画
&nicovideo(http://www.nicovideo.jp/watch/sm10757188){340,185}
***静止画(22時15分)
#image(MOL009.ASF_000009500.jpg)

見ていただけると分かりますが、ハンドルを回さないと時刻が分かりません(笑)。
時刻設定は、シリアルモニタから行う事が出来ますと言うか、それ以外に方法はありません。

まず、ArduinoライブラリとしてMsTimer2が必要なので入手してください(株式会社武蔵野電波さん内の解説ページ)。
http://www.musashinodenpa.com/arduino/ref/index.php?f=1&pos=1668

ライブラリがうまく動いたら、下記の時計(clock)のスケッチをダウンロードしてください。
&link(時計のスケッチのダウンロード){http://www35.atwiki.jp/japanino/?cmd=upload&act=open&page=%E7%AE%A1%E7%90%86%E4%BA%BAJapanino%E4%BD%9C%E5%93%81%E5%B1%95%E7%A4%BA%E5%AE%A4&file=clock.pde}

***これをArduino IDEで読み込んでコンパイルします。
#ref(t_compile.jpg)
***コンパイル出来たらUSBでプログラムを転送します。
#ref(t_trans.jpg)
***シリアルモニタを起動して時刻を設定ます。
#ref(t_console.jpg)
シリアルモニタから使えるコマンドは2つで、
"d" 現在時刻をシリアルで表示します。
"HHMMMSS"で現在時刻(時分秒)を設定します

***clockスケッチの解説
| 変数や関数 | 解説 |
| TIMER_COUNT |割り込みタイマの周期です。お持ちのJapaninoの誤差度合いに合わせて調整してください。&br()大きくすると時計の進みが遅くなります。小さくすれば早くなります。|
| bitmap[][4] |数字の表示パターンです。|
| setup() |P.O.V.のLEDとSW、割り込みタイマ2、シリアル通信の初期化をしています。|
| loop() |メインループです。P.O.V.の処理とシリアル通信によるコマンド処理をしています。|
| pov() |P.O.V.に時刻を表示する制御しています。|
| serial_input() |シリアル通信されてきたコマンドを一旦バッファに貯めています。&br()連続したデータを受け取れるようにウェイト処理も行っています。|
| command() |受け取ったコマンドを解析して処理します。&br()コマンドは時刻表示と設定です。|
| serial_disp() |シリアル通信で時刻をシリアルモニタへ送ります(表示)。|
| disp() |P.O.V.に一文字表示する関数です。|
| timer() |割り込みで時計のカウントをしています。約1/2秒に一回この関数が呼び出されるますので呼び出し回数をカウントして時刻を計算します。|
結構ちゃんとしたプログラムになっちゃいました。
初心者の方には難しかったかも知れませんね。

***<気が向いたら新作を追加予定>

もしよろしかったら、コメントをお願いします。
#comment_num(,size=60)


&br()