2013年6月29日土曜日

赤外線リモコン送信データの解析


<概要>

mbedのライブラリに、赤外線リモコンからのデータを解析するライブラリ(RremoteIR)があります。このライブラリは、一般的なフォーマットである、“NECフォーマット”、“SONYフォーマット”、“AEHAフォーマット”に対応しています。

これ以外のフォーマットの場合は、波形を解析して、プログラムを作る必要があります。
今回、波形のHi,Lo時間を1[us]単位で測定して出力する処理を”RemoteIR”ライブラリに追加して、”Propo_RemotoIR”ライブラリとして公開しました。
この解析方法を説明します。


<サンプルプログラムで動作確認>


mbedのWebから”irRawDataDisplay”のProgramをダウンロードします。(図1)
http://mbed.org/users/suupen/code/irRawDataDisplay/




図1 irRawDataDisplay  Program Web

このプログラムに入っている、”Propo_RemotoIR”ライブラリフォルダの”ReceiverIR.h”の23行目の”IR_RAW_DATA_ANALYSIS”マクロ定義を有効にして、コンパイルをしてください。このマクロ定義で条件コンパイルして、赤外線データの波形測定処理を有効にします。(図2)



図2 Propo_RemotoIRライブラリ - ReceiverIR.h 変更箇所




 main.cpp 側では、USB-COMの通信速度の設定と、赤外線受信モジュールのポート設定がありますが、main側ではそれ以外の処理はありません。赤外線データの解析とパソコンへの送信処理はすべて、ReceiverIR.cpp/.h で行っています。


mbed側での赤外線受信モジュールの接続方法は図3のようにします。


図3 mbedの接続図

パソコンには、ターミナルソフト(TeraTarmなど)を起動して、COM設定を図4のようにします。


図4 パソコンのターミナルソフトのCOM通信設定


mbedとパソコンとは、USBで接続して、パソコン側はUSB-COMとして認識させます。

赤外線データ(IRC Helicopter “SWIFT”のPropo)の受信データを表示させたところが、図5になります。


図5 赤外線通信波形の解析表示


この解析結果から、通信波形のHi,Loの時間を確認して、信号先頭のリーダーや、データビットの時間幅を推定します。


2013年6月28日金曜日

IRC Helicopter “HonyBee”プロポ送信データ受信mbed用Test Program


<概要>

HonyBeeのプロポから送信される赤外線データを受信、解析するmbed用プログラムを作りました。

<送信データの解析>

こちらのWebにPropoからの送信データの解析記事があります。
http://www.oidenansho.com/pic/26kpic/26k1010tx2_honey/26k1010tx2_honey.htm
送信波形自体は”SONY”フォーマットで1フレーム20bitのデータになります。
(このWebでは、スタートビットを4bitとしていますが、通信フォーマット仕様としては、最初の1bitはヘッダとなり、データは20bitとなります)

通信フォーマットについては、こちらに解説があります。
http://elm-chan.org/docs/ir_format.html


<テストプログラム>

テストプログラムは、下記のWebにおいてあります。
http://mbed.org/users/suupen/code/HonyBeePropoIR_TestProgram/



このプログラムでは、mbedの”p5”端子で赤外線受信信号を受け、解析したデータはUSBでパソコンに送信します。
パソコン側には予めUSBからのデータをCOMデータとして受信するドライバをインストールしておきます。

パソコンでの受信データの表示にはターミナルソフト(TeraTarmなど)を使い、
ボーレート:38400[bps]
データ長:8[bit]
パリティ:なし
ストップビット:1[bit]
の設定で使用します。




mbedの準備
赤外線受信モジュールとmbedは図1のように接続します。電源は、USBから供給します。



図1 mbedと赤外線モジュールの接続

mbedに、プログラム(SwiftPropoIR_TestProgram)をダウンロードします。

main.cpp のファイルヘッダの直下(28,29行目)のマクロ定義で、Propoデータ解析内容を変更することが出来ます。マクロは”PROPO_RAW_DATA”と、”HONYBEE_NORMALIZE”の2つになります。

<プログラムの実行>

1. Propoデータの機能毎のデータ出力
“PROPO_RAW_DATA”、”HONYBEE_NORMALIZE”の両方をコメントアウトしてコンパイルします。(図2)


図2 マクロの設定


Propoからの送信データをmbedで解析して、PC(Treatram)で表示した結果が図3になります。

 図3 TreaTramでの受信データ表示


2. Propoデータの出力を正規化

“PROPO_RAW_DATA”はコメントアウト。
“HONYBEE_NORMALIZE”は有効。
としてコンパイルします。(図4)。データの表示結果が図5になります。



図4 コンパイル条件



図5 データ表示結果




3. Propoデータの生データ
“PROPO_RAW_DATA”を有効、”HONYBEE_NORMALIZE”はコメントアウトしてコンパイルします。(図6)。データの表示結果が図7になります。



図6 コンパイル条件



図7 データ表示結果






<ライブラリについて>

赤外線データ受信ライブラリ
”RemoteIR”ライブラリ(http://mbed.org/users/shintamainjp/notebook/remote_ir_ja/)
を改造した”Propo_RemotoIR”(http://mbed.org/users/suupen/code/Propo_RemotoIR/)
を使用していますが、元のライブラリ”RemoteIR”でも使用できます。
これは、HonyBeeの送信データが”SONY”フォーマットで、”RemoteIR”がこのフォーマットに対応しているためです。
改造した”Propo_RemotoIR”はSWIFTのPropoが送信するデータ受信のための改造と、未知の通信波形を解析するための仕組みも組み込みしてあります。

 <受信データ解析ライブラリ>

“CodecIRPropoHonybee”ライブラリを新作しました。”Codec”となっていますが、現状は受信解析(Decode)のみの対応です。


2013年6月26日水曜日

IRC Helicopter “SWIFT”プロポ送信データ受信mbed用Test Program

IRC Helicopter “SWIFT”プロポ送信データ受信mbed用Test Program


<概要>

SWIFTのプロポから送信される赤外線データを受信、解析するmbed用プログラムを作りました。

<テストプログラム>

テストプログラムは、下記のWebにおいてあります。
http://mbed.org/users/suupen/code/SwiftPropoIR_TestProgram/




このプログラムでは、mbedの”p5”端子で赤外線受信信号を受け、解析したデータはUSBでパソコンに送信します。
パソコン側には予めUSBからのデータをCOMデータとして受信するドライバをインストールしておきます。

パソコンでの受信データの表示にはターミナルソフト(TeraTarmなど)を使い、
ボーレート:38400[bps]
データ長:8[bit]
パリティ:なし
ストップビット:1[bit]
の設定で使用します。






<mbedの準備>

赤外線受信モジュールとmbedは図1のように接続します。電源は、USBから供給します。



図1 mbedと赤外線モジュールの接続

mbedに、プログラム(SwiftPropoIR_TestProgram)をダウンロードします。

<プログラムの実行>

main.cpp のファイルヘッダの直下(28,29行目)のマクロ定義で、Propoデータ解析内容を変更することが出来ます。マクロは”PROPO_RAW_DATA”と、”SWIFT_NORMALIZE”の2つになります。

1. Propoデータの機能毎のデータ出力

“PROPO_RAW_DATA”、”SWIFT_NORMALIZE”の両方をコメントアウトしてコンパイルします。(図2)



図2 マクロの設定

Propoからの送信データをmbedで解析して、PC(Treatram)で表示した結果が図3になります。



図3 TreaTramでの受信データ表示


2. Propoデータの出力を正規化
“PROPO_RAW_DATA”はコメントアウト。
“SWIFT_NORMALIZE”は有効。
としてコンパイルします。(図4)。データの表示結果が図5になります。



図4 コンパイル条件




図5 データ表示結果




3. Propoデータの生データ

“PROPO_RAW_DATA”を有効、”SWIFT_NORMALIZE”はコメントアウトしてコンパイルします。(図6)。データの表示結果が図7になります。



図6 コンパイル条件



図7 データ表示結果





<ライブラリについて>

赤外線データ受信ライブラリ
”RemoteIR”ライブラリ(http://mbed.org/users/shintamainjp/notebook/remote_ir_ja/)
を改造した”Propo_RemotoIR”(http://mbed.org/users/suupen/code/Propo_RemotoIR/)
を使用します。
これは、SWIFTのPropoが送信する赤外線通信波形が一般的なものではなく”RemoteIR”ライブラリでは受信解析できなかったためです。今回の改造に合わせて、未知の通信波形を解析するための仕組みも組み込みました。

受信データ解析ライブラリ
“CodecIRPropoSwift”ライブラリを新作しました。”Codec”となっていますが、現状は受信解析(Decode)のみの対応です。


2013年6月16日日曜日

IRC ヘリ “SWIFT”のPropoデータ解析

IRC ヘリ “SWIFT”のPropoデータ解析


<概要>

東京マルイ のIRCヘリ“SWIFT”のプロポ信号を解析しました
http://www.tokyo-marui.co.jp/products/rcirc/helicopter/6001


<通信フォーマット>

(受信回路側での測定)
・ 単位時間:T=350[us]
・ リータ:10T+3T
・ データ:32ビット固定長
・ データ:1T+2T(ビット0),  2T+1T(ビット1)
・ ストップビット:1T(Low Level)
・ 送信順序:LSB fast
・ 送信間隔:60[ms], 160[ms]

<プロポの動作について>

プロポの左側ステックを操作している間は赤外線信号を出力する。
送信間隔は、送信データに変化が無い場合は160[ms]、ある場合は60[ms]となる。




図1-1 赤外線通信のフレームとタイミング構成




図1-2 赤外線通信 データ構成




図1-3 データ割付




図1-4 パリティ計算

パリティ計算では、DATA0~DATA2の下位6bitが対象となっている(上位2bitは無視)

2013年5月5日日曜日

雨戸ガタツキ対策

雨戸ガタツキ対策


<概要>

戸袋の無い雨戸だと、風が吹くと雨戸ががたつき音が気になります。ネオジム磁石を使って対策します。

<方法>

雨戸が磁石に付く材質であることを確認して、ネオジム磁石を雨戸に貼り付け、雨戸同士を磁石で固定します。雨戸のがたつきの音は、雨戸同士の接触音なので、磁石で固定すれば音は出なくなります。


ネオジム磁石は長さが5[cm]程度のものを使いました。




ネオジム磁石をそのまま使うと磁力が強すぎてはずせなくなるので、厚紙で固定した上で、厚手のビニール袋に入れて使います。





袋に入れたネオジム磁石を、雨戸1枚毎に2つ程度つけていきます。




この状態で、雨戸を戸袋に収納すると、磁石で、雨戸同士が張り付き風などでがたつくことが無くなります。


2013年5月4日土曜日

レンガ葺き通路をつくる

レンガ葺き通路をつくる


<概要>

庭の通路に自転車を置いているのですが、舗装していないので、ぬかるんで自転車のスタンドが沈んだり、水溜りで歩きにくくなっていました。
このために、レンガで舗装しました。

<作業手順>

レンガを購入します。今回は舗装に使うので、表面がざらついて滑りにくそうなものを選びました。舗装面積1220×6400[mm]、レンガ(98×198)で400個購入しました。




レンガを敷く前に、地面を整地します。すでにある通路や駐車場のコンクリート面とレンガの上面が合うように掘り込みます。ロープを張って整地面高さの目処をつけておくと作業がしやすいです。

今回は下地に路盤用の砕石やセメントは使わず、地面に直接レンガを敷いていきます。使ううちに沈んで波打つと思いますが人が乗る程度なので問題ないと判断しました。



レンガを敷いていきます。千鳥状になるようにしました。基準に出来る面から敷いていきます。舗装する領域の寸法とレンガの寸法が割り切れずうまくレンガを収めることが出来ない場合は、その周辺のレンガの目地を大きめに取って調整していきます。

レンガを敷き終わったら、土を撒き目地に落とし込んでレンガを固定していきます。数日放置して、土から水分が抜けると砂状になり、目地に落とし込みやすくなります。



(写真では、レンガ敷きの端はレンガ半個分の隙間が開いていますが、後でレンガを半分に割ってはめ込んでいきました。ただ後ではめ込む場合に寸法が合わずはめ込むのに苦労するので、予め半分に割ったレンガを用意して一緒に敷いて行くほうが良いです)

レンガを割るときは、割る位置を鉛筆で印をつけて、




タガネで1[cm]程度掘り込んでいき



掘り込んだ辺りを叩いて割ります。端が欠けたりしますが、あまり細かいことは気にしないでも良いでしょう。




最後に、残った土を取り除き、水を撒いて目地の砂を絞めて完成です。


2012年12月28日金曜日

冊子を作る

冊子を作る


<概要>

最近の製品には、製本された取扱説明書ではなく、PDFなどの電子データで提供されているものが多くなりました。
パソコンのアプリケーションでは、アプリと、取扱説明書の両方を開いて作業することになりますが、画面が二分されるため効率が悪くなります。
この場合、プリントアウトして使うことになりますが、なるべく手間をかけず、使い勝手の良い冊子の形にまとめる方法を紹介します。

<作業手順>

まず、冊子にしたい電子データをプリントアウトします。この場合、両面印刷が可能ンタで、冊子(A4の用紙に裏表4ページを印刷し、折りたたむことで冊子にするモード)があるプリンタが必要です。レーザープリンタに、こうした機能が付いています。両面印刷するので、インクジェットプリンタでは裏写りしてうまく行きません。


図1.使用したレーザープリンタ(DCP8025J brother)

レーザープリンタ(DCP8025J)での「冊子」での出力設定は、図2のようになります。



図2 DCP8025Jでの「冊子」での出力設定

出力された紙をホッチキスで留めます。枚数があると張りが通りにくくなるので、何度か折り曲げて、紙を柔らかくします。(図3)




図3 ホッチキスで留める部分に折り目をつける

折り目をつける場合は全ての紙をまとめて折り曲げます。厚みがあるので多少ずれが生じますが、ホッチキスで留めた後も紙の厚さ分だけのズレが出るので気にする必要はありません。

折り曲げたら、ホッチキスで留めますが、ホッチキスを普通の状態で使おうとしても止まりません。そこで、固めのスポンジと、針が出る部分と、針を受ける部分が離れるタイプのホッチキスを用意します。(図4)



図4 固めのスポンジとホッチキス

針で留める部分の下に、スポンジを敷き、そのスポンジに向けて針を打ち込みます。(図5)



図5 ホッチキスで針を打ち込む

垂直に打ち込むようにするとうまくいきます。(針に対して斜めに力がかかると針が折れ曲がります)

うまく針が打ち込めると図6、図7のようになります。



図6 針の表面



図7 針の裏面

A4サイズなら、上・中・下の3箇所に打ち込めばよいと思います。(図8)



図8 3箇所に針を打ち込んだ様子


完成して使用している様子です。(図9)



図9 冊子を使用している様子


以上