カテゴリ
リンク

ご迷惑をおかけします。以前の記事とリンクが切れています。ただいま修復中です。
当サイトは、玄箱PRO (KURO-BOX/Pro)を中心とした組み込み、Linuxと電子工作を扱っています。
会社案内

情報セキュリティおよび個人情報の取り扱いについて


コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。コメントはそれぞれ投稿した人のものです。

2008年1月...アーカイブ

 「玄箱PROをDebian化して遊ぶ」では、玄箱PROにシリアル通信でデバイスをつなぐことで機能を拡張し、ミュージック・サーバとして楽しむまでに挑戦してきました。 完成したミュージック・サーバは、市販の HDD コンポのように、キーボードやディスプレイなしに、リモコンで音楽を再生し楽曲を液晶に表示します。

 ここでは玄箱PROを利用していますが、ほとんどの話題は PC にインストールした Debian でも利用ができます。また、多くのプログラムは(そのまま、もしくは少しの工夫で)、ほかのディストリビューションの Linux や FreeBSD, NetBSD などでも動作するはずです。

プログラム
 まずは、プログラム単体で測定値を標準出力に表示するプログラムを作る必要があります。作成したプログラムを以下に示します。
 ソース・リスト中には、コマンドとして送信するコードが埋め込まれています。1-Wire システムでも、一つだけのデバイスをつなぐのであれば、これだけでかまわないようです。これらのコマンドについては、データシートと見比べてみてください。

 簡単に受信フォーマット部分だけを説明しますと、「温度データ受信指示」部分がマニュアルでいうところの、READ MEMORY SEQUENCE に相当しており、ここで 14 バイト受信される中の 8 バイト分(Read 8 Bytes Data)が DS18S20 側の MEMORY MAP のコピー(中継して送られてくる)であり、その冒頭2バイトが温度データ部です。
 これは、全体としてのデータ列としては、4 と 5 バイト目ですので、それを狙って拾い出し数値化しています。 なお、デフォルトでは 9600BPS での転送レートに設定されています。
■lcdproc のデバイスとして KURO-RS を使うと
 LCDd のデバイスとして KURO-RS を使うと、デバイス・ファイルを LCDd がオープンしたままなので、ほかのコマンドから KURO-RS のリモコン送信機能を使うことができません。そこで、リモコン送信用 lcdproc クライアントを作ってみました。

 ~ 観測編 ~

●温度を観測する
 玄箱の活用方法の一つとして、「温度測定」をまとめてみたいと思いました。それというのも、温度観測の記事はインターネットで少なからず見つかるのですが、シンプルで簡単でありながら、種々の手法があれこれと載っているサイトが少なかったからです。

  さて、センサ部分とインターフェース部分を自作するのはとても楽しいことなのですが、今回の温度測定の場合、校正がとても厄介です。たとえば、「秋月温度計の校正」という記事には、その技術以上に涙ぐましい努力を読み取ることができますね。
 結局、工作が簡単であっても、計測したデータが最終的に信頼性がなかったりすると、自己満足も半分になってしまいます。こうした所を鑑みて、今回、校正済のデバイスがないかどうか探し始めました。
■HDD の電源を切る
 USB フラッシュで起動すれば、HDDを止めることができます。でも、HDD 並みの容量が欲しい場合もあります。それならば USB フラッシュで起動し、必要なときに HDD の電源を入れて、/home をマウントすることにしては、どうでしょうか。amd (auto mount daemon) を使ってチャレンジしてみました。

■USBフラッシュを用意する
 「USB フラッシュを rootfs にしてみる」と同様に USB フラッシュ・メモリを用意します。CF, SD などと、カード・リーダでもかまいません。今回は miconapl コマンドを利用するので、「nvram, miconapl を使えるようにする」に書いたような方法で、フラッシュメモリ上にも miconapl が使えるように用意します。

 この「コーヒーの有無をオンラインでチェックしたい」最終回では、環境やプログラムについて補足をしておきたいと思います。

 玄箱(pro)の環境

 現時点での Linux のバージョンです。
kurobox:~# uname -a
Linux kurobox 2.6.12.6-oabi #3 Fri Jun 8 13:47:34 JST 2007 armv5tejl GNU/Linux
 cc は gcc が指定されます。
■シリアル・コンソール用レベル・コンバータを作る
 以前に製作したレベル・コンバータの部品の配置を見直して、実体配線図を用意しました。回路図は以前と同じです。ICが一つとコンデンサだけの簡単な回路です。

■用意するもの
 工具としては、はんだゴテ(コテ台)とニッパー、はんだがあればOKです。部品は表に示します。

部品名                                        メーカ        型番                    個数
レベル・コンバータIC*1                  Sipex        SP3232CPE           1
16ピンICソケット                            -                    -                    1
0.1μF 積層セラミック・コンデンサ    -                    -                    5
D-sub 9ピン・コネクタ(メス)             -                   -                     1
小型万能基板*2                          -                   -                     1
4ピン・コネクタ                              -                   -                    1組または2組
直径0.5mm程度のスズ・メッキ線      -                  -                    少々
ビニール線*3                               -                    -                   少々

*1) 3.3Vで動作し外付けコンデンサが 0.1uF であれば、ほかのメーカでもよい
*2) 2.54mm ピッチ, 写真のように部品面で D-sub 9ピンをはんだ付けするには両面スルーホール基板を用意する。写真の基板の大きさは 34mm × 49mm。
*3)4から5色で色分けするとよい, ここではフラットケーブルを利用している

表:シリアル・コンソール用レベル・コンバータの部品表

■alsaplaeyr と Music Player Daemon
 alsaplayer と Music Player Daemon (mpd) を比較してみると、alsaplayer はインターネット・ラジオが再生できるのに対して、 mpd はライブラリの操作が充実しています。そこで alsaplayer でインターネット・ラジオを、mpd で音楽ライブラリを操作する lcdproc クライアントを作ってみることにします。
 ほかの lcdproc クライアントも合わせて全体としては、図のようなシステムになります。

lcdcompo-figs.png
玄箱PROを中心としてリモコンと液晶で音楽を楽しむシステム



おすすめ書籍
Powered by
Movable Type 4.1