マイコン

XBee Eheim2074モニター完成


 ブレッドボードで試してたXBee エーハイムモニターを基板に固定化しました。ケースはテンポラリ。プログラムサイズが小さかったので、CPUは余らしているATmega168Pを使ってます。

 今回のミステイク、
 1.秋月のスルーホールC基板を使ったのだけど、裏返しに使っていしまった事。スルーホール両面基板だから特に問題はないですけどね。ガイドの5 15 25の5ピンごとのシルク印刷が見られないだけ。
 2.XBeeとのrx,txの接続が逆だった事。SoftwareSerialでの接続だったのでプログラムでピンを入れ替えて修正はできたけども、今回5VのATmegaとの接続かつATmegaのTX側の分圧抵抗レベルシフトのみだったので危ないところでした。まぁ、前にも5VをXBeeに入れることはやらかしてて短時間なら大丈夫な事はわかっているので結果OK。

 今回の工夫、
 1.SoftwareSerialでxbee-arduinoライブラリを使用した事。
 2.マルチカラーLEDを使ってプログラムの動作状態を把握できるようにした事。
   ハードウエアrx,txはRS485に取られているしSoftwareSerialの1個しか使えないRXも使われているので楽ちんななUSBシリアルのモニターはつかえませんから。コマンド待ち、エーハイムデータ受信中、データ送信中で赤・緑・青に光らせてみました。

 今回利用した秋月DIP化基板は3つ。XBee基板とオーディオピンプラグ基板とUSBminiメス基板。どれもサイズが大きめなので、C基板だと手狭になってしまい配線に苦労しました。あと、スルーホールはハンダがリード線をたどって裏側に流れてしまうのがちょっと厄介ですね。隣のホールをはんだブリッジしたいのに全然つながらない事があります。裏をみると大変な事になってたり(苦笑)。
 このエーハイム外部フィルターのモニター基板は、ハードウエア的にはこれで打ち止め。ソフトウエアは改良して、外部フィルターへ設定変更コマンドを送信出来るようにソフトウエア面の改良はしていきます。


エーハイム2074モニターXBeeプロトタイプ版


RS485トランシーバを足した程度。

流量とモーター回転数取得

 ArduinoのSoftwareSerialでAPIモードのxbee-arduinoライブラリによるXBee通信ができたので、エーハイムの外部フィルターと無線接続を試してみた。
4/28の実験ブレッドボードにRS485の回路を設置。ハードUARTのRX,TXはRS485に使ってしまうので、USBから電源は取れない。sparkfunのブレッドボード用電源を追加。
ソフトは、ArduinoEthernetで動かしてたヤツのネット部分を外してXBee部分を追加。動作確認用のmbed側はリターンデータの解釈の部分の変更のみ。
で、相変わらずtxとrxを逆に繋いでたりといった凡ミスを経てすぐに動作しました。大したことしてないしね。自分の使い方みたいな少量データならばSoftwareSerialでXBeeを使うのもありですね。UARTでやるのと消費電力的にどれくらい違うですかね?まぁ、Ethernetを使うと消費電力は(マイコン的には)超増えるからどっちがお得かわからんです。
 連休後半の雨の時に、秋月C基板かスイッチサイエンスのXBee対応C基板でハードウエア固定化しますかね。

 で、ATmega644P。こいつで同じ事をする(シリアルは、2つあるUARTを使いますけど)テストもしてみますよ。どうやらArduinoのご先祖のWiringが644Pだったりするのですので情報調査します。


2012年の第2三半期の計画


2012年も第1三半期が終わりです。第1三半期でできたことは、

・家庭内電力メータを基板固定化
・金魚水槽カメラ作成&設置
・ベランダ用カメラ作成&設置
・ベランダ用土壌温度&水分系作成&設置
・水槽フィルターモニター作成&設置
・mbedマスターコントローラ作成

と、結構多いですねw。自分が施主なので判断が早いからですね。

で、第2三半期はというと、

・水槽フィルターモニターブラッシュアップ
 モニターだけでなくコントローラも賄う。ATmega328でやるかATmega644にするか決めかねている。前者で抑えておいて、時間があれば後者に移行かな。
・家電コントローラ
  基本IRリモコンや商用電源管理ですね。
・家庭内温度モニター設置
・ベランダ気象台に風センサーと雨センサーを作成&設置。

かな。昨年から検討しているベランダ水やりのマイコン制御はちょっとおいておく。うちの植物博士のツレが言うには水やりのタイミングは微妙みたいなので。
第2三半期は基本的に電気工事士試験の勉強もしないと行けないのでゆるめで行きます。


xbee-arduinoをSoftwareSerialでテスト


 UARTが1つしか無い、ATmega168/328シリーズ。水槽フィルターモニターをXBee経由でコントロールしたいので試してみた。水槽フィルターとの接続は115200bps(フィルター側のファームで固定。いつかバラしたいw。)と高速なのでハードウエアUARTが必要。かたや,xbeeの定番Arduino用ライブラリxbee-arduinoもHardwareSerialが基本。r22の時はNSSに対応してたみたいですが最新は公式対応してない。ので、SoftwareSerial専用にライブラリを書き換えた。書き換えたってもシリアルのオブジェクトを変えただけで、両対応はしてません。
 画像のように親機のmbedからコマンドを送って、それをArduino側で受け取って、何らかのデータを返すパターンでテスト。どうも、コマンドは送られてきて、Arduino本体でも受信できているのだが、返却データがタイムアウトしている。それも親機子機双方で。なんとなく親機のアドレスが上手くとれてなくて、変な相手に返信しようとして双方タイムアウトかなとおもいつつ。プロアナで流れてるXBeeAPIフレームをみてみたら・・・。ビンゴでした。アドレスの最上位16ビットがへんてこな値でした。 何のことはないXBeeのAPIモードのAPIモードの設定が一部違っとるがな。XBeeの設定をX-CTUで直して無事動作。
 さて、UARTが2つあるATmega644も買ってみたのだが、どうしますかね。いわゆるsanguinoをお手製でやるわけですが。ライブラリの改築とか面倒かも。ATmega644はArduinoのデフォルト想定CPUファミリーとはちと違うのでねぇ。


エーハイム2074シールド


 ArduinoEthernetでプログラム調整をした。無事にPachubeへのポストまでは完了。RS485の通信安定化対策も効いている。安定化対策ってもコマンドに対するレスポンスにタイムアウトを設定できるようにしただけだ。

 回路が安定してるので、ブレッドーボードから基板へ写しこみをした。とりあえずこの状態で運用しつつ、次なるエーハイム2074シールドmk2を目指す。mk2はATmega644(ATmega1284は秋月で長期売り切れなのだ)でXBee対応の予定です。(あ、『シールド』じゃなく単体基板ですね)


Arduino-2074通信成功


 扱いやすいように、台付きのブレッドボードに組み替えて、Arduinoもnanoにして作り直し。昨日までは、コマンドの送信ができても受信が上手く行かず、プロアナ見ながらタイミングを調整していた。
 で、本日なんとか、流速とモータ回転数が取得できるようになりましたとさ。次はXBeeとの接続だが、ハードウェアUARTが1個しか無いのでArduinoMegaで行こうと思います。


追加のLTC485が届いたので


 今日は夕方雨の天気予報だったので公共交通機関にて出社。4月だからか人がいっぱいで嫌になる。ので、社バスは使わずに歩いた。
 そして3時間残業した帰宅時間には雨は降っていない状態。遅くなると、電車の駅から自宅までバスが少なくなる。終バスは22:05という路線だ。腹立たしい。
 で、それでも悔しいので帰宅後ちょっと半田付け。オーディオジャック。そして本日追加で届いたLTC485の回路をミニブレッドボードに起こしてArduinoと繋ぐ。(日中に受け取ってくれたツレに感謝)。遅く帰る事が多いとツレの精神状態への影響が気になる。

.
 今日はこのあたりで時間切れ。ソフトを作る暇も気力もなし。プロトタイプとしてpachubeに流速とモータ回転数をアップしようと思っていたのだが・・・。この時間のなさのやるせなさが腹立たしくて厳しい。早起きしかないかな?


2074とRS485接続成功


 朝、LTC485が届いたので、早速ブレッドボードに挿してUSBを接続。あれ?PC側にcomポートが出てこない。と思ったら、LTC485がアッチッチ。即座に電源落として回路をみたら、VCCとGNDが逆じゃん。正しく直して再挑戦。あれ?また駄目?実は純正品では485チップのRE#とFT232のPWREN#が繋がってる。参考回路だと485のRE#はDEと一緒にFT232のTXDENに接続されてるのでそうしてたのだった。
 純正品と同じように接続したら、純正品と同じように動作しました。ふぅ、一安心。

安価なロジックアナライザも手に入れたので、観てみました。

ZEROPLUS LAP-C 16064

 良い感じ。でも、メーカーサイトに落ちてる様で、「今なら20個無料」のプロトコル追加ができない。UARTとI2CとSPIは標準装備だから使えてるけど。USB1.1, SPI Plus, LCD12864, LCD1602, IRDA, JTAG 2.0, 1-WIRE, 3-WIRE,CAN 2.0Bあたりは追加しておきたいかな。


ブレッドボード工作 RS485編


 RS485ドライバチップが届いたら即テスト出来るようにブレッドボードで工作。

.

エーハイム純正ケーブル互換回路


.
 【注意】上の画像はLTC485CN8へのVCCとGNDが逆です。8番VCC、5番GNDが正解。
1点目は、ばらしたエーハイムの純正USBケーブルの互換回路。USBシリアルは秋月のAE-UM232Rなので楽チン。LTC485CN8がささるべき場所にはNE555を差してみたw。サイズ一緒だし、1個20円だし。本番では忘れずに入れ替えますが。

.

Arduino水槽フィルターセンサーwithXBeeのプロトタイプ


.
2点目は、本題となるArduinoによるエーハイムの水槽外部フィルターのモニターおよび制御です。主に流速モニターを予定。mbedのマスターコントローラから呼ばれたら現在の流速を返す感じ。Arduinoのソフトはまだ何も作ってません。コマンドとレスポンスの解析と上記1点目の動作確認ができてからですかね。1点懸念点があって、ArduinoのハードウエアUARTをXbeeにつないでるので、RS485はソフトウエアシリアルになります。115200bps(エーハイム通信の速度)に耐えられるだろうか?駄目ならmbedに繋ぐか、ATmegaを2つで分業してi2cかSPIかソフトシリアルで会話させるって手かな?ATmega複数間のコラボはやったこと無いからやってみたいかも。

.

20120414改


【追記】動作のモニターが出来るように、SoftwareSerialをもう一つ増設して秋月USBシリアル変換基板に接続しました。RS485のテスト用プログラムは右下にいるArduino promini 5V版に書き込み済みです。LTC485CN8は大阪から移動中です。秋葉に行けばあったかもしれんが、もう、今の秋葉は勝手がわからないから探すのが面倒。


雨降りセンサー


原始的な方法で

 雨降りセンサーを検討中。超原始的な感じで。ブレッドボードタイプのユニバーサル基板で、互い違いに連結してくし形のセンサーにしますよ。例によって2SC1815あたりで感知してマイコンへつなぐという感じ。こないだ秋月でかったロームのデジトラでもいいかな。まぁやってみよう。


  • ぷー水槽

  • スナック753

  • 本日の電力使用量@おうち

    Now loading Hnybear's power consumption graph
  • Twitter: hnybear

  • 月間アーカイブ

  • Copyright © 1996-2010 kumachan.com. All rights reserved.
    iDream theme by Templates Next | Powered by WordPress