2014年12月25日木曜日

TWE-Lite賞を受賞しました

 先月、こっそり応募した「みんなのラズパイコンテスト」で、しゃべる戸締まりチェッカーがTWE-Lite賞を受賞しました。ありがとうございます。
 事前に届いていたお知らせメールに全く気づかなくて、発表を見て受賞を知りました。
 

賞品は、TWE-Lite DIPその他の福袋という事でしたが、袋ではなく箱で届きました。

いざ、開封。
じゃーん!
 TWE-Lite DIPが4種類とUFL用アンテナ、新商品のパッチアンテナが揃っています。ToCoStickもうれしい。

 意外だったのが 、TWE-Lite SMDとハテナアンテナのセット。しかも、10個の大盤振る舞い。過去の作品はSMD版がメインだったので、ナイスな選定です。今まで手半田の空中配線でしたが、そろそろKiCADに挑戦して、基盤を作らないといけませんね。

 正直なところ、Pythonのスクリプトは少し書きましたが、Raspbery Piが無くてもシステムの大半は問題なく動くし、GPIOもカメラも使っていないので、ラズパイコンテストの応募作品としてはかなり微妙だったと思います。その代わり、TWE-Liteの工作は寝る間を惜しんで頑張りました。

 賞品が生かせるように、次の工作ネタを考えなくちゃ。

2014年12月23日火曜日

自転車発見器でジングルベル

 季節に合わせて、自転車発見器のメロディーをクリスマスソングに変えてみました。今週は、ジングルベルで自転車を探します。

オレオレTWE-Lite R基板でファーム書き換え



 このところお気に入りのTWE-Liteは、DIP/SMD取り混ぜて15個以上を使いました。秋月のFT231X USB-シリアル変換モジュールを持っていたので、専用ライターのTWE-Lite Rは持たず、書き込みにはこのモジュールを使っています。また、使用割合の高いSMDタイプはTWE-Lite Rのソケットに載らないため有り難味がほとんど無く、TWE-Lite Rを必要としない理由のひとつになっています。
 この方法は汎用性があって良いのですが、RESETとPRG(PWM3)をタクトスイッチにつないで操作するのが多少煩わしいです。

TWE-Lite Rの中核部分は設定変更したFT232Rらしく、「TWE-Lite Rメモ」に詳細が書いてありました。メモと回路図を参考に結線し、FT_PROGでEEPROMの設定を書き換えてみたら、TWE-Lite プログラマに「TWE-Liteのリセット」ボタンが現れ、無事にオレオレTWE-Lite Rが出来上がりました。これで、書き換え時のスイッチ操作が不要になります。


  TWE-Lite DIPの下端にある書き換え用端子は、RESET, RX, PRG, TX, GNDの5ピンが引き出されています。また、TWE-Liet Rには対向側の5個の端子が用意されているようです。ただ、実際に使ってみると、
  • 電源に太陽電池やCR2032を使う子機に対しては、書き換え時に外部から安定した電源を供給したい。
  • 無線タグアプリの子機でインタラクティブモードに入るために、M1をアサートしたい。
等の便利機能が欲しくなります。このため、自分で工作する場合は、RESETの隣にVccを、GNDの隣にM1を配置した7ピンをピンヘッダで出しておきます。すなわち、以下のようなピン配置になります。
  1. Vcc
  2. RESET
  3. UART RX
  4. PRG
  5. UART TX
  6. GND
  7. CFG(M1)
 この配置に合わせたピンソケットやTWE-Lite DIP用ソケット、PRG,RESETスイッチ、M1用ジャンパーピンを装備した、オレオレTWE-Lite R用の基板を作りました。結構便利です。






2014年12月22日月曜日

自転車ビーコン メロディー書き換えのデモ

 メロディー書き換えのできるファームウェアの作成と並行して、自転車ビーコンの2セット目を組み立てました。受信機はキャンドゥ(100円ショップ)の自転車用LEDフロントライトを電池ケースとして利用しながら改造、送信機はタカチのプラスチックケースCS75に収納しました。
 デモ動画では、サンプルアプリに入っていた「ちょうちょ」の他に、3曲を次々に書き換えています。
シリアルコマンドを拡張してMML転送用のコマンドパケットを定義し、ペイロードにMMLを載せて、画面外のPCに接続したTWE-Lite DIPから送信しています。受信側では、ペイロードのMMLをEEPROMに書き込んで、すぐに再生を開始します。スリープ中は受信機がコマンドを受信しないので、受信動作が連続するメロディー再生中に書き換えを行います。

2014年12月20日土曜日

自転車ビーコンの改良版ファームウェアを作成

 ブレッドボード上で組んだ試作回路であれこれいじって、改造版のファームウェアが完成しました。
  • 親機からの無線パケットに乗せてMMLのメロディーデータを更新
  • モードビット配線無しに、Device Idでmode3,mode4,mode7が指定可能
  • 子機間欠モードでチャンネル変更に対応(u32ChMaskの末尾をデフォルトchに使用)

マニュアルが無いので使う人はいないと思いますが、回路図とソースコードは公開してあります。
  https://github.com/true-nature/App_BicycleFinder

 無線経由のメロディー更新は、ぜひとも実現したかった機能です。これで、新曲が出てもすぐに対応できます。

2014年12月18日木曜日

自転車ビーコン改造中

 自作の自転車ビーコンは、受信機側の電池を最後に交換してから3箇月経ちました。まだ動いています。

 近日中に、2個目を製作する予定です。2個目の製作と同時に、ファームウェアも以下のように改造します。

間欠モードをDevice Idで指定可能にする

現在は、標準アプリの仕様を継承してモードビットM1,M2,M3の結線で間欠モードを指定しています。間欠10秒モードでは3本すべてをGNDに落とす必要があり、SMD版の製作が多少難しくなっています。
 親機または中継器の場合は、インタラクティブモードでDevice Idを121または122に設定すると、結線無しにモードを変更できますが、子機にはこのような仕様はありません。このモード変更は、ファームウェアを少し改造するだけで子機にも応用できるので、全てのモードをDevice Idで指定できるようにします。

インタラクティブモードで設定したチャンネルを反映させる

現在は、子機間欠モードで使用するチャンネルは、ビルド時に指定したデフォルト値以外使用できません。この原因と思われる部分を見つけたので、対策してみます。

メロディデータを無線経由で変更可能にする

TWE-Liteには4kBのEEPROMがありますが、システムと設定値で少し使用しているだけで、ほとんどが未使用です。もったいないので、ここにMMLデータを置けるようにして、 ファームウェアを書き換えなくてもメロディーを変更できるようにします。