2015年5月21日木曜日

LPC810でLチカ / JIS D 5601準拠の車速パルス発生器

 1年以上前のトラ技付録に付いてきたLPC810を使ってLチカしてみました。

 単純にLEDを点滅させても何の役にも立たないので、JIS D 5601:1992(自動車用スピードメータ)に準拠した車速パルスを出せるように周期を調整し、パルス周期の時速換算値をLCDに表示するようにしました。LPC810の出力はFET(2SK4017)のゲートにつながっていて、車載電源と同じ電圧のパルスを発生できるようになっています。デフォルトの設定ではメーター1回転毎に4パルスですが、リセット時にUP/DOWNキーを押しておくと、2pulse/rev., 8pulse/rev., 16pulse/rev.に切り替えることができます。
 この信号をカーナビの車速信号ラインに流すと、時速300kmの世界をナビ上で再現できます。


 こんなの作っても、何の役にも立ちませんけどね。

 参考にした書籍は「挿すだけ! ARM32ビット・マイコンのはじめ方」です。サンプルのソースコードがコンパクトで理解しやすかったです。

 ソースコードと回路データは、githubの公開リポジトリに置いてあります。

2015年4月29日水曜日

KiCadの3DフットプリントをFreeCADで作るの巻

 今年に入ってから、TWE-Liteの工作に使う基板に、専用のプリント基板(PCB)を使うようになりました。プリント基板CADはKiCadを使っています。
 KiCadには既存の部品ライブラリがあります。しかし、抵抗やコンデンサ、FETのような一般的な部品以外は、自分の使う部品はライブラリにはまず存在しません。これらは、回路図の部品も、基板エディタで必要となるフットプリントも、全て自分で用意しなくてはなりません。
 KiCadには回路図ライブラリエディタとPCBフットプリントエディタがあるので、プリント基板を作るのに必要なデータはKiCadだけで用意することが出来ます。さらに、2次元のPCBフットプリントに3Dデータを関連付けすると、基板の部品配置を3Dプレビューで立体的に把握することが出来ます。TWE-Liteを使う工作では、小さなケースに部品を配置する必要があるため、この3Dプレビューがとても役に立っています。
KiCad用の3Dフットプリントを作るにあたり、以下のチュートリアルが参考になりました。 
    Tutorial: Custom 3D models for KiCad 3D viewer


 私も、TWE-Liteの3Dフットプリントを作る過程を録画してみました。
 こちらは 、TWE-Lite SMD本体。

 さらに、ハテナアンテナも。
動画は10分前後ですが、実際には、データシートから必要な寸法を拾い出すのに多くの時間を要しています。
 この他に、電気二重層コンデンサ、リチウムコイン電池ホルダー、 リチウムコイン電池、タクトスイッチ、プラスチックケース等の3Dフットプリントも作りました。これらは、githubのリポジトリで公開しています。

2015年4月26日日曜日

しゃべる戸締りチェッカーのリモート子機を追加

 「みんなのラズパイコンテスト」でTWE-Lite賞を受賞した戸締りチェッカーのリモート子機をもう一台作ってみました。初号機はユニバーサル基板にTWE-Lite DIPでしたが、弐号機はKiCadで設計してElecrowで作ったプリント基板にTWE-Lite SMDを搭載しています。
 初号機のケースは穴あけ位置を間違えた結果、切り貼りの後が痛々しくて見苦しかったので、弐号機はFreeCADで配置を確認しながら位置を決めました。でも、まだ改善の余地があります。

 新旧のリモート子機を並べてしゃべらせてみました。左の黒が初号機、右のアイボリーが弐号機です。 アナログアンプ部分が別物なため、弐号機は妙に大声になっています。
初号機の音声合成ICは「ATP3012F5-PU(落ち着いた女声)」、弐号機は「ATP3011F4-PU(かわいい系の女声)」です。この弐号機の声、何度聞いてもPepperと同じです。PepperもAquesTalkを使っているのでしょうか?

2015年4月20日月曜日

自転車発見器に新機能 タッチでメロディ切り替え

 TWE-Liteのサンプルアプリとして公開されているApp_Melodyは、DI1-DI4に対してメロディーを割り当てて、3+1(停止)種類のメロディーを鳴り分けるようになっていました。App_Melodyを改造した自転車発見器では、送信機のボタンが一個しか無いため、DIの番号による鳴り分けはできません。メロディーは1種類に固定されています。
 これではつまらないので、メロディーをEEPROMから読むように改造し、独自に定義したメロディー更新のパケットによってメロディーを書き換えられるようにしました。これでメロディーは自由に選べるようになりました。しかしこの方式では、メロディー書き換えのためにPCが必要になります。また、書き換え用のパケットを送る操作は、プログラマーでなければ到底できそうにない難解なものでした。

 自転車発見器はTWE-Liteの入出力の一部しか使用していません。未使用の入出力端子のうち、送信機のDI4にリードスイッチを接続して、受信機に仕込んだ磁石にタッチしてスイッチONするという使い方を追加しました。App_Melodyの既存機能により、DI4はメロディーの停止に割り当てられています。これをリードスイッチでONにすると、タッチ操作で再生中のメロディーが止まるようになります。 これだけならリセットスイッチと大して変わりはありませんが、さらに、DI1に接続したタクトスイッチを押しながらタッチすると、タクトスイッチのDI1とリードスイッチのDI4の同時押しができます。この場合の処理として、送信機からメロディー書き換えのパケットを送ることにしました。

 我ながら、面白い機能が出来たと思います。今まではメロディーを止めるために受信機のリセットスイッチを押していましたが、リードスイッチでメロディーを止められるようになったので、受信機のリセットスイッチは廃止しました。

2015年4月19日日曜日

自転車ビーコン 受信機ver3 & 送信機ver4.1

 自転車ビーコンの受信機をElecrowで作った基盤で再実装し、ケースをダイソーの自転車用LEDリアライトに変更しました。このケースはキャンドゥのLEDライトと違い、電池と基板の収納場所が分かれてるうえ、基板に割り当てられるスペースに余裕があるため、改造にとても向いています。
  送信機も、リセットICとGND切り離し用のFETを追加して作り直しました。スイッチを中央に配置して、押しやすくなっています。
以前は受信機の圧電スピーカーをケースの外にボンドで貼り付けていましたが、今度は表面実装用の圧電スピーカーを基板上に実装しました。スピーカーがケース内に入ってデザインの問題は解消しましたが、代わりに音量不足という新たな問題が発生しました。そこで、秋月電子のチャージポンプ内蔵圧電スイッチングドライバモジュールで音量の増強を図ることにしました。上の画像で、左のセットが標準音量版、右のセットは音量増強版(4倍)です。
 これらを並べて動作させてみました。音量の違いがわかるでしょうか?
駅へ行く用事が会ったので、駐輪場で早速試運転してみました。今までは、よーく耳を澄まさないと聞こえませんでしたが、音量増強版では、離れていても聞き取れる、十分な音量になりました。

2015年3月22日日曜日

自転車ビーコンの第4世代リモコン

予定していた通り、自転車ビーコンのリモコンをタカチのPS-65プラスチックケースに移行し、歴代最小のリモコンが出来上がりました。
画像左のPS-85(全長85mm)と右のPS-65(全長65mm)比べると、スペック以上に小さく感じます。手の中にすっぽり収まる小ささとなり、小型化に関しては納得のいくレベルになりました。

 電池交換後に手動で強制リセットが必要、ボタンが中央に無いために持ち方に気を遣う必要があるなど、心残りな点がまだあるので、また基板を起こして作り直す予定です。

TWE-Liteの外部リセット回路

 TWE-LiteでリセットICを使うに至った経緯を書いたばかりですが、まだ詰めが甘かったです。TOCOSさんの技術情報にあったリセット回路から部品点数を減らして簡略化したリセット回路にしたところ、自作TWE-Lite Rからファームウェアのプログラミングモードに入れなくなりました。
 最初は、push-pull動作のリセットICとライターでRST信号の競合が起きているかと思い、リセットICとTWE-LiteのRST端子の間に抵抗を入れてみました。しかし、現象は変わりませんでした。テスターで調べてみると、ボルテージディテクタ(リセットIC)が電圧不足を判定してRESET#をアサートしている時に、TWE-LiteのRST端子からVccと同じ電圧が出力されていました。
TWE-LiteのMCUであるJN5164のリセット端子は入力専用ですので、不可解な動作です。もしかすると、JN5164のRSTが直接出ていないのかもしれません。このような現象に直面し、TOCOSさんの技術情報にあるリセット回路が、RST端子のアサートではなくGNDの切り離しでリセットを実現している意味が理解できたような気がします。TWE-Liteでは、起動に至る前にRST端子が出力動作をする事があって、通常のリセットICの使い方では起動の制御ができないのではないかと思います。
 観念して、 技術情報にあったリセット回路と同等の回路を組むことにしました。リセットICの追加だけでなくGNDの切り離しが必要なため、小手先の変更では対応できそうにありません。Elecrowから基板が届いたばかりですが、早速作り直しが必要です。

 今回のリセットICにまつわる試行錯誤で得た教訓は「TWE-LiteのRST端子にリセットICを接続するな」です。