「NAME」さん
「使い方」:車載用MP3プレイヤー
夏休みのドライブのお供にと、車載用のMP3プレイヤーを製作しました。
無理矢理こじつけて夏休みっぽくしましたが、前回の組み込み用Linuxボードという提案の有言実行ということで、 2回にわたって開発したMP3プレイヤーを車載しました。

*夏休みの機械工作
玄箱をトランクに積んでケーブルを引っ張るのがいちばん簡単ですが、どうせならということで、1DINサイズのケースをアルミで自作しました。
アルミで作るとシルバーコになるので、塗装してクロバコにしました。

*夏休みの電子工作
車の中でAC100Vを使おうとするとインバータが必要となりますが、どうせならということでそんなものは使わず、クルマの12Vを直接利用することにしました。
必要なのは12Vと5Vなので、レギュレータを使った簡単な電源回路を設計・搭載しました。
しかし、このままでは玄箱はずっと目を覚ましたままで、車のバッテリがあがってしまうかもしれません。クルマの中のこうした機器は、イグニッションに連動して動作します。
そこで、アクセサリ電源をトリガーにして自動的に玄箱の電源を制御することにしました。
玄箱の電源スイッチの配線を拝借し、ワンチップマイコン(PIC)によるインテリジェントな制御を実現しました。
> ACC ON: バッテリ電源を玄箱基板に -> 玄箱スイッチを押す(起動)
> ACC OFF: 玄箱スイッチ長押し(終了処理) -> バッテリ電源カット
(今回もs8220さんに協力してもらい、この部分の回路を作ってもらいました。)

*夏休みのハッキング
ハードディスク内蔵ナビなどがありますが、一般的にハードディスクは振動や衝撃に弱く、車に搭載するのは少し気が引けます。
そこで、システムをリードオンリー化し、IDE変換を介したコンパクトフラッシュを起動ディスクとしました。
この玄箱MP3プレイヤーはUSBフラッシュメモリ、USB接続のHDDなどのUSB-Storageに対応しています。
USBカードリーダを使うことで、それ以外にもCompact Flash、Memory Stick、SDカード、Smart Mediaなどのほとんどのメディアを利用できます。
これらのメディアにmp3を入れて繋げば自動的に認識、中のmp3を検索、そして自動で再生を行います。音はUSB接続の音源からステレオミニジャックで取り出します。

*夏休みはゲーム三昧
操作は片手用のUSBゲームパッドを使うことで行います。
ボタン1=順番に再生開始;ボタン2=ランダム再生開始
ボタン3=Playlistの作り直し;ボタン4=停止
上=一時停止;下=再開
右=次の曲へ;左=何もしない
曲名は、前回と同様にUSB-I/Oを経由しLCDに表示します。(デザイン&配線変更中のため写真なし)

*夏休みのオートハックス
実際に車に取り付けたところです。


標準的なステレオミニジャックなので、カーステレオの外部入力やカセットアダプタ、FMトランスミッタなどの多くの接続方法があります。
全体の構成図です。


*この夏休みを振り返って
かけた費用を考えると、MP3対応デッキが買えますが、この満足感は pricelessです。最終目標として、赤外線リモコンによる操作を考えています。

*夏休みにお世話になった方々
玄箱のVine Linux化 「LinkStation/玄箱 をハックしよう」
http://www.yamasita.jp/linkstation/index.html (山下康成さん)
各種ドライバ提供 & CF化アドバイス 「LinkStation」
http://linkstation.yi.org/ (たつやさん)
(前回も利用させて頂いたにも関わらず記載を忘れてしまいました。この場を借りてお詫びいたします。)
リードオンリー化参考 「Linux CD-ROM ゲームシステム」
http://www15.big.or.jp/~yamamori/sun/tech-linux-2/ (山森丈範さん)
賃金を払いたいくらいにSpecial Thanks to...
 s8220さん (電源回路設計・はんだづけ、アルミ加工指導)
情報提供、アドバイスなどのSpecial Thanks to...
 かぶさん、しるばさん、炭素、鮮魚、DX-7、K0、池面



「やすゆき」さん
無線LAN内蔵ライブカメラ

玄箱にカメラと無線LANアダプタを接続してライブカメラとして使用します。
無線LANを搭載しているので、電波が届いて電源のあるところならば、どこでも設置して撮影できます。
さらに、無線LANアダプタを玄箱内部の空きスペースに「内蔵」したので、外観もすっきりとしたものになりました。


無線LAN(ソフトウェア)
使用する無線LANアダプタは BUFFALO WLI-USB-KS11G です。11MbpsのIEEE802.11b対応でUSB接続のものです。
この無線LANアダプタにはIntersil社製のPRISM系チップが使われているので、Linuxで動作させるためには linux-wlan-ng を使用します。
1. linux-wlan-ng をビルドします。当然カーネルソースが必要になりますが、今回は http://linkstation.yi.org/ サイト内のlinux-2.4.17_mvl21-sandpoint_040630.tar.gzを利用させていただきました。
2. linux-wlan-ng の設定をします。/etc/wlan/wlan.conf や/etc/wlan/wlancfg-ID (IDは実際に接続するアクセスポイントのSSID)に必要な設定があります。
設定ファイルを作成したら/etc/init.d/wlan startを実行して、無線LANアダプタのLEDが点滅から点灯に変われば成功です。
3. TCP/IPの設定をします。/etc/network/interfaces に無線側の設定を追加します。
いざというときに有線側から接続して修復できないと困るので(何しろローカルログインができないので)、有線側と無線側の設定が衝突しないように注意しつつ、設定値を決めていきます。

無線LAN(ハードウェア)
無線LANアダプタの動作を確認したら、いよいよ玄箱に内蔵します。
1. 無線LANアダプタを分解。
2. USBコネクタの根本にリード線をハンダ付け。

3. 無線LANアダプタの基盤を玄箱の基盤上に両面テープで貼り付ける。
4. リード線の反対側を玄箱の基盤上の「もう1つのUSBポート」にハンダ付け。

一部のLinkStationシリーズでは前面USBポートがあるところで、玄箱ではパターンしかありませんが、(少なくとも私の個体では)しっかり信号が来ていました。


カメラ
使用するカメラは Logicool Qcam Pro 4000 です。
xawtvに含まれるwebcamを使用して、定期的にftpでwebサーバーにアップロードします。無線LAN経由でのストリーミングは厳しそうだし、そもそも玄箱自身を外部に公開するつもりはなかったのでこうしました。
1. 必要なカーネルモジュールを用意。pwc.o と videodev.o は、無線LANのドライバ構築に使ったカーネルソースに含まれているので、それをコンパイルして使用します。
2. pwcx.o はバイナリのみで配布されているようです。ppcアーキテクチャのバイナリもあるので、それを落として、insmod -f pwcx と強制的に組み込んで使用します。
3. webcamをインストール。webcamrcにアップロードするftpサイトなどを設定して完了。・・・と思いきや。
4. 1000回ちょっとftp転送すると、それ以降転送されなくなります。
どうやらftpプロセスを終了させずにopenとcloseを繰り返すと解放されないソケットがたまっていく模様です。
netkit-ftp のソースを取ってきてコンパイルしたものを使ったら直りました。
しかし長時間動かしているとメモリ消費量が増え続けているような気が・・・とりあえず時々再起動しながら運用することにする。



「炭素」さん
ITエンジニアの快適なヒキコモリライフ

真夏日が続く東京,エアコン無しにはやってられません。
エアコンをコントロールするのはもちろんリモコン。しかし,ITエンジニアならボタンをポチポチ押すより,軽快にキーボードを叩きコマンドを入力してコントロールしたくなるはずです。
そこで,今回は赤外線ユニット,及びコントロールソフトを使って玄箱からエアコンをコントロールするアイディアを提案します。

・ハードウェア
玄箱にUSBで接続するリモコンユニットが必要になります。また,遠く離れた場所から部屋の温度を把握する為に,温度センサーも搭載します。

写真の温度センサーより,室温を測定し,USBにて情報を取得します。
また,エアコンをコントロールするコマンドが打ち込まれた場合,赤外線LEDからエアコンに向けてコントロール信号が送信されます。

・ソフトウェア
ITエンジニアに親しみやすいユーザインタフェースです。
設定できる項目はエアコンのON/OFF,温度設定,運転切り替え(冷房/暖房/除湿),風速,風向.表示できる情報は室温となります。
エアコンの動作状態を取得出来れば面白いんですが,エアコン側にそのような仕組みが無い為今回は断念です。

airctl #このコマンド+引数でエアコンのコントロールをします。
第一引数は「set」か「show」です。
setの場合は,エアコンの設定。
showは情報を取得する場合に使います。
第二引数は設定する項目です。
電源ON,OFFや温度設定などをこの引数で設定します。
第三引数は設定値になります。
下記に詳しいコマンド実行例を示します

・動作例
bash-2.04$ ./airctl set pwr on #電源ON
電源OFFの場合は,offにすることでエアコンを切ることが出来ます。また,隠しコマンドとしまして,rebootを入力することでOFF/ONをすることが出来ます。
bash-2.04$ ./airctl set mode cool #冷房に切り替え
coolにすると冷房,hotの場合は暖房,jyosituで除湿に切り替わります。
bash-2.04$ ./airctl set temp 28 #28℃に設定
デフォルトでは摂氏温度での入力になりますが,Fを付けることで華氏温度も入力できます。
この場合,プログラム側で摂氏温度への変換を行います。
bash-2.04$ ./airctl set wind low #風速を弱に設定
low,middle,high,autoの中から設定することが出来ます。

bash-2.04$ ./airctl set dest 45 #風向を45度に設定
風向の調整をします。エアコンに対して前方向に吹く風を0度。真下方向に吹く風を90度として設定することが出来ます。
0〜90の範囲で入力出来ますが,エアコンの仕様上5段階の風向調整となります。
autoにすることで風向を自動調整することが出来ます。(動作イメージ)
bash-2.04$ ./airctl show temp
26C #室温は26度
温度を取得し,コンソールに表示します。(未実装)
・今後の課題
今回は時間的な制約から温度取得を実装出来ませんでした。今後はこの機能の実装を早急に行います。
また,その他に考えられる課題としましてサーバの内部温度に応じてエアコンのON/OFFをするようなソフトウェアの開発。
あとは携帯からのメールでエアコンをコントロール出来ればもっと快適になるでしょう。
・スペシャルサンクス
NAME この玄箱コンテストの開催を教えてくれました.ありがとう。



「まぁくん」さん
Windows用周辺機器を玄箱で利用する方法として、前回賞品として頂いたPC-MV5DX/U2(MPEG2 TVキャプチャBOX)を使ってみました。
ソフト名は、「玄やぎ君」です。
玄箱にメールを送って、パソコンを起動させて、PCastTVでの録画予約を行います。
予約結果は、メールで回答します。メール内容によっては、単に、パソコンの起動だけを行わせる事も可能です。



「いいシネマ」さん
観葉植物自動管理システム

目的:ミニ温室を作り観葉植物を玄箱で自動管理しようというものです。

まず、温室を暖めるのに使用するのはペルチェ素子です。
よく玄人の間でも使われたりする品ですが一般に冷やすために使われています。
今回はそれを逆転し暖めるために使うことにしました。
サーミスタから温度へ変換する回路を組んでおきそれで検出した温度が定義した温度より高ければペルチェをストップさせるという風にリレー他を使って玄箱より制御します。
それと同時にペルチェが動いている間は玄箱が冷やされるので一石二鳥の効果があります。
そしてミニ除湿機を用意し電源をつけっぱなしにします。
湿度が取れれば部屋は快適になりますがそこで困るのが水。
今回はその水を観葉植物の水として使用することにしました。
ある定義された時間になったらリレーでポンプの電源を入れ水をやるというプログラムを起こします。
ここまでで、水やりと温度管理の自動化が実現しました。
次はライブカメラの設置をします。
ライブカメラを設置することにより24時間どこからでも植物の状態が観察できます。
また、WEBサーバも立ち上げ温室内の温度などを表示するというプログラムを作っておきサイトから閲覧できるようにもします。
そのサイトにメールフォームを設け、定義された時間以外にも自由にユーザが水やりができるというのも立ち上げますがその際、 メールアドレス制限をし自分以外のメールは受け付けないことで他人からの異常な水やりをシャットアウトします。
わかりやすいよう図にまとめましたのでご覧ください。

なお、図を作っている最中PCがフリーズしましたので画面をデジカメで撮影したものになります。
少々見にくいですがご了承ください。



「かぶ」さん
「玄箱戦車」
 概要:玄箱を制御コンピューターとして大型戦車ラジコンを遠隔操作可能なロボットにしてしまう。

ラジコンとしてではなく無線ネットワーク経由で操作可能なロボットにする。カメラを搭載し、戦車の目線から風景をライブでモニタ可能。BB弾も発射可能なのでカメラ映像をベースに対戦も可能(相手がいれば^^;)
仕様: 1)メインコンピューター
 玄箱(フロントUSB拡張済)
 コンパクトフラッシュもしくはマイクロドライブ(OS内蔵用)
 玄箱駆動用バッテリー(12V)
 DCDCコンバーター(12V->5V)
 OSは山下さん提供のハックキットベース(VineLinux)
2)フレーム(戦車)
 玄箱を搭載可能なサイズのラジコン(本体のみ使用しRC部分は不要)
3)周辺機器
<確定分>
 本体駆動用バッテリー(標準x1もしくは同等品で2並列)
 IOポート(Km2Net殿 USB-IO)
 走行用モーター駆動回路
 砲台回転用モーター駆動回路
 砲弾(BB弾)発射モーター制御回路
 ウインカーランプ
 カメラ(USBカメラor小型ピンホールカメラNTSCワイヤレスタイプ)
 無線ネットワーク(USB接続無線LAN、無線LAN Ethernetメディアコンバータ、Bluetooth)
<検討中>
 GPS、ツインカメラ化(視野確保用)、バッテリー残量監視装置、電源を燃料電池へ・・・
4)コントローラ
 PC接続ジョイスティック(同等品のBELKIN SpeedPad n52)
5)制御ソフト
<玄箱側>
 Linux版USB-IOコントロールドライバ(kuro-box動作可能モジュール)
 ネットワーク経由で双方向通信可能なアプリケーション
<PC側>
 カメラ映像をどう扱うかによっては、PC側で映像を表示するソフトを作成予定
 ネットワーク経由で双方向通信可能なアプリケーション
 *締め切り前までには動作可能と思いますので追って写真等お送りできればと思います。