wiredFish トップ ⧫ その他の記事 ⧫ u-con Port pata-pata ⧫ 留守番ねこのための空調制御 ⧫ 基礎検討:マイコンの選定
これまでの検討で温度計測やリモコン制御のために必要なインターフェースが明らかになった(そんな大げさなインターフェースでもありませんが)ので、今回はそれらを制御するマイコンの選定を行いたいと思います。
検討するまでもなく、H8 3052Fを使いたいと思います。一番の理由は単純に筆者が慣れているからです。使ったことのないマイコンを使うより、実績のあるマイコンを使った方が開発期間をはるかに短縮できます。
これまでの検討からマイコンには以下の様なペリフェラルが必要となることがわかりました。
● A/Dコンバータ … 温度センサーの出力電圧の計測
● GPIO … リモコンの「POWER」ボタン操作
将来的には市販のリモコンを使わずに直接リモコン通信を行いたいので、以下のようなペリフェラルも必要になります。
● GPIO … リモコン用LEDのON/OFF制御
● タイマー … リモコン通信のビットレート等の生成
● タイマー … リモコン信号のサブキャリア生成
これらの要求に対してH8 3052Fは、10ビット×8チャンネルのA/Dコンバータ、5チャンネルのタイマー、10本のGPIOを持ちます。一部のGPIOは4ビットだったり、入力専用だったり、他の機能ピンと兼用だったりしますが、基本的に8ビットの出力が可能です。いずれのペリフェラル要求に対しても十分に余裕をもって対応することができます。必要となる機能や処理速度からすると、おそらくオーバースペックのマイコンだと思います。
実はマイコンではなく、パソコンで制御できないかとも考えてみました。もちろんドライバーを書く気などさらさらないのですが、ドライバーを書かなくてもUSB経由でGPIO、シリアル、I2C制御が可能なデバイスがあります。
秋月電子で取り扱っているAdafruit Industries(エイダフルート)の「FT232H使用USB⇔GPIO+SPI+I2C変換モジュール」は、USBからGPIOの入出力、SPI(シリアル)通信、I2C通信を行うことができます。ドライバーはWindows用、Linux用、Mac OSX用が提供されています。
残念ながら(温度計測用の)A/Dコンバータの機能はありませんが、SPIやI2Cに対応した温度センサーがありますのでそれを利用すれば対応可能です。ただ、最初の目標である市販のリモコンを使ったシステム程度なら対応できそうですが、直接リモコン通信を行おうとするとビットレートやサブキャリア変調などリアルタイム性の要求される処理をパソコン→USB経由で実現できるとは思えません。
以上に加えて、サーバー機でもないPCを年中起動しっぱなしにしておくとパソコンの寿命を縮めるのではないかとの懸念もあります。特に夏場は発熱も著しいので心配です。
以上の理由から、パソコンからの制御は断念しました。
パソコンがだめならば … と、シングルボードコンピュータ「Beagle Bone Black」を買って、少しいじってみました。初期のBeagle Bordでは、USB経由でカメラからビデオストリームを転送してHDMIに動画を表示するような実験をやったことがあるのである程度なじみがあります。しかしそれは10年ほど昔の話。今はすっかり忘却の彼方で、それを思いだしたり、新しいことを覚えたりするもの結構時間がかかりそうで、早々にこれも断念しました。
筆者はH8 305Fに慣れ親しんで他のマイコンボードについて深く考えませんでしたが、ArduinoやRaspberry piでも実現できるかもしれません。そうであれば、マイコンに慣れていない方でもH8よりとっつきやすそうです。