2012/12/26

気圧インフォメーションボード

ボードの名称を色々考えたのですが、天気予報というにはちょっとおこがましい気も
したので、気圧の変化をお知らせする装置としました。。。
さて、どんな物を作ったのかの説明です。
・15分ごとに現在の気圧と2時間前の気圧を比較します。
・時間あたりの気圧の変化量を計算したら、五段階に分けて3つのLEDを光らせます。
(●が点灯です)
 ●○○:急速に気圧上昇
 ●●○:緩やかに気圧上昇
 ○●○:気圧変化無し
 ○●●:緩やかに気圧下降
 ○○●:急速に気圧下降
・シリアルからデータも出力されます。
以上の機能になります。
それを二週間動作させてみました。
センサーの誤差や風の影響などもあるため、ある瞬間LEDを見ても、そこまで信頼できる情報になるかと言うと少々疑問です。(^^;;
これを作った目的は、夏の爆弾低気圧が事前に分からないか、というところからスタート
したので、テストとしてはあと半年くらい続けないといけないかな、、、と思ってます。
仮に売り物にするなら、もっとユーザーインターフェイスやパッケージを考えないと
いけませんね…

2012/12/13

ArduinoのプログラムをATmega328Pへ

前回、ATmega328PとAVR ISP MkIIの接続ができない、と書いて終わりましたが、
その後確認したところ、ピンとコネクタの間に配線が挟まっていたことが分かりました。orz
配線をコネクタの邪魔にならないようにシッカリよけたら、ISPがATmegaを認識して
くれました。
ISPもつながったので、Arduinoで作ったプログラムをATmega328Pに書き込むの
ですが、以下の手順で成功しました。
念のため、AVRのマイコンはプログラムを格納する領域と、ピンやブートの番地設定を
するヒューズビットと呼ばれる領域があります。
今回はプログラムの書込みとヒューズビットの設定を行いました。
(1) プログラムの書込み
  pressuer.cpp.hexというのがArduinoのコンパイルで生成されたHEXファイルです。

 $ avrdude -c avrispmkII -P usb -p m328p -U flash:w:pressuer.cpp.hex:i

(2) ヒューズビットの設定
  リンクのページで書き込むヒューズビットの計算をしてくれます。
  http://www.engbedded.com/fusecalc
  また、日本語でヒューズビットの説明をしてくれるサイトです。
  http://ja9ttt.blogspot.jp/2011/05/avr-atmaga8x-fuse-bit-memo.html
  以上で設定値が分かりましたら、avrdudeで書込みを行います。
  (私のボードでは16MHz X'TALを入れています)

 $ avrdude -c avrispmkII -P usb -p m328p -U lfuse:w:0xcf:m -U hfuse:w:0xd9:m -U efuse:w:0x07:m

以上の設定で、オリジナルのボードでプログラムが動作しているようです。

2012/12/11

Weather forecast board

天気予報ボードプロトタイプ。零号機です。
ハンダ付けが完了しました。
予想できましたが、とてもシンプル。(^^;)

下のピンにAVR ISP MkIIを接続してプログラムを焼き込むのですが、
その下準備が必要でした。
Macではavrdudeというコマンドを使うのですが、インストールする前に以下のパッケージ
をインストールする必要があります。
・Command Line Tools for Xcode: makeコマンドなどが入っています
  参考サイト http://d.hatena.ne.jp/deepfolte/20120225/1330129212
・Macports: BSDのようなportコマンドが使えるようになります
  参考サイト http://shokai.org/blog/archives/5557
・portコマンドを使いlibusb, avrdudeをインストールします。
  $ sudo port install libusb avrdude
以上でavrdudeも動作できるので、接続!、、、、
あら?ATMega328Pと接続しない。。。