Wifi RGB コントローラーをつくる(1)

MicroPythonというプログラミング言語を学びはじめることにしました。

英国シェフィールドのPIMORINI社からボタンにLEDが内蔵された4X4キーパッドが発売されています。これでDCCコントローラーをつくるとおもしろいだろうと思っていたのですが、メーカーが提供するライブラリーがC++とMicroPythonのみでArduinoがないので、ちょっと引いていました。

9600の梯子で躓いて手が止まっているところに、MicroPythonは易しいという悪魔のささやきに心奪われてしまい、このキーパッドを使ったDCCコントローラーを作り始めることにしました。この製品日本でも数社が取り扱っていますが今のところ秋月電子が一番安いようです。

Pimoroni

PIMORINI社のホームページから引用

なおMicroPythonでDCC信号電流を発生させるのは難しいようなので、DSair2に接続するWifiコントローラーをつくることにしました。このキーパッドに無線通信機能が内蔵されたRaspberry Pi Pico Wを組み合わせました。

Dsa2_py_wifi

上の画像をクリックすると拡大します。

ネット上に公開されているコードを参考にwifi接続部分は容易にプログラム書くことができました。

wifi経由で、DSair2の電源をオンにして、内部情報を取得するプログラムです。

キーパッド部分は、メーカー提供のライブラリーとサンプルプログラムが提供されているので、これを参考にコードを書いていけそうです。

これなら比較的容易にまとまりそうです。

またAdafruit社からも、RP2040とOLEDモニター、ロータリーエンコーダーを内蔵した4X3キーパッドが発売されているようです。この利用も考えたのですが、12キーであることや無線通信機能がないこと、ボリュームではなくロータリーエンコーダーが載っているという理由で、PIMORINI社のキーパッドにRaspberry Pi Pico Wの組合せを採用しました。

☆1/21追記

ある方に、このRGBキーボード用のArduinoスケッチ送っていただきました。これを使えば、ArduinoならDesktop stationさんところのRaspberry Pi Pico用のDCC信号生成のライブラリーあるので、DCCコントローラーもできそうです。

 

| | Comments (0)

牽引力測定車で測定しました

先日製作した牽引力測定車を使って千曲鉄道の山線で牽引力走行抵抗測定をおこないました。

この写真はH御大の9750にクラーケンさんの160を補機としてつないでいます。その次に牽引力測定車をつないでいます。速度と牽引力走行抵抗のデータは手元のタブレットにwifiで飛ばして目視で観測しています。

20230416-13-41-01

いろいろ機関車を取り替えて測定したところ、結果補機やユウレイなしで、中型蒸機が牽くことができるのは、0.3-0.4N程度の牽引力が必要な走行抵抗のある列車であり、補機やユウレイをつけることにより0.6-0.7N程度の牽引力が必要な走行抵抗のある列車も牽引可能であることがわかりました。

コンさんが持ちこまれたリオグランデ改造のコンソリは、牽引力が0.7Nあるらしいので、なんとか0.6N程度の牽引力山線での引張力が必要な列車を単機で引っ張りあげましたし、客車に仕込んだユウレイは0.77Nの最大牽引力があるそうですので、頭に蒸機を連結しないユウレイ単機で0.6N程度の牽引力以上の引張り力が必要な列車を牽いて快走していました。

なお1Nは約102gの物体にはたらく重力の大きさです。1Nがだいたい100gfです。

私の牽引力測定車は、サンプリング速度が5Hz程度と低く、そんなに高精度のものではありませんが、まあだいたいの傾向がわかりました。

☆4/20追記

この牽引力測定車で測った値を機関車の「牽引力」と定義するのはおかしいのではないかとある方からご指摘をいただきました。

確かにこの値は機関車固有の(最大)牽引力ではなく、走行時の列車牽引時の走行抵抗というのが適当だと思えます。従って線路の勾配や曲線などで変化していく値だと思います。

また別の方からこのデータを使って、詳細な解析ができないかと質問を受けましたが、このデータは走行時の実物換算速度と牽引している列車の走行抵抗をラフに取得して、手元のタブレットにリモート表示して遊ぶものであって、そういう解析を目的としたものではないしそういう解析に必要な精度もない、そのため採取したデータの保存もしていないとおこたえしました。

子供が電車の先頭で運転席の速度計などのデータを覗き見して、楽しんでいるのと同じとお考えいただきたいです。

 

| | Comments (2)

牽引力測定車をつくる

以前製作した速度測定車に、牽引力測定機能を追加しました。

車端に木の角材を取り付けて、そこに100gフルスケールの小型のロードセルを取り付けました。ロードセルの片側にカプラーをアダプターを介して直付けしました。これは森井さんの作例を参考にさせていただきました。

20230408-22-28-06

それに電子秤測定の定番IC のHX-711の載った秋月電子のモジュール基板をつないで、そこからデータをマイコン(ESP-WROOM-02) に取り込んで、車載のOLEDに表示するだけではなく、wifiでタブレットにデータ飛ばして表示しています。これだとレイアウトで車両がトンネルに入ってもデータがわかります。

20230408-22-21-25

できれば更に9軸センサーを載せて、線路勾配も測定して表示できるようにしたいと思います。

なおこれはラフな簡易測定なので、データをサンプリング収集してもあまり役立ちそうになく、測定数値をみて調整したり、眺めて楽しむだけのものにしておきたいと思います。

較正も写真に見えるニュートンメーターを使って簡単に済ませてしまいました。

現時点での問題は、マイコン起動時にロードセルからの値をとって、自動ゼロ較正するようにしているのでが、なぜかゼロになってくれないことです。

☆4/18追記

メールなどでご質問いただきましたが、この測定車はデータ収集してそのデータを解析する目的で製作したのではありません。そのためサンプリング速度も遅く、測定データを保存する機能も持っていません。

測定車にWEBサーバー機能を持たせているので、専用の測定ソフトがインストールされたパソコンがなくても、スマホやタブレットのネットブラウザでスケール換算速度と牽引力を表示できるようにしたものです。

精密な測定と収集したデータの解析を目的としたものではありませんので、誤解なきようにお願いします。

| | Comments (2)

高機能パワーパック(2)

20221230-0-29-23

高機能パワーパックが完成しました。内部の配線はお見せできるようなものではないです。

ちょっと欲張り過ぎて機能が中途半端で使い勝手はイマイチ感があります。

費用面でも時間面でもコスパ考えると、定電流機能付きの中華安定電源買った方が良かったかもしれないと思いますが、作る過程でいろいろ調べるのが楽しかったです。鉄道模型製作と同じですね。

仕掛かり品がひとつ減りました。

※12/31 追記

20221231-10-56-33

ちょっと恥ずかしいですが、リクエストありましたので中身の写真を載せます。配線がグチャグチャしていて見苦しいです。昔のパワーパックとは違ってデジタル家電みたいです。

今回マイコンはSpeediunoXIAOを使ったのですが、Arduino Nanoあたりに比べると小型なのはよいですが、ピンソケットを使ったのでピン数が少ないためか、USB抜き差しするときに接続が弛んで不具合がでることがあるようです。頻回にUSB抜き差しする用途のときは、基板に半田付けしてしまった方がよいように思いました。

あとプログラム(スケッチ)を書き換えて、電流が0.1A以下の時は小数点一桁のmA表示、それ以上の時は小数点2桁のA表示に切り替わるようにしました。OLEDディスプレーの方が、白黒液晶に比べて見やすいと感じます。

 

 

| | Comments (0)

高機能パワーパック(1)

仕掛かりの高機能パワーパックに手を手をつけました。

KKC総会が終わり、続いてあった表の仕事の業界団体の年一度のイベントも終わったので一段落しました。そこでちょっと電子工作をすることにしました。

20221123-17-20-44

以前からLT3081モジュールを使ったパワーパックを使用していましたが、それに定電流電源機能を付加したパワーパックを作ることにしました。

定電圧・電流電源装置は市販品があり、中華製なら一万円以下で買えますが、電圧・電流調節ツマミが微調整用で鉄道模型向きではないし、もちろん逆転スイッチもついていないので自作することにしました。

ちなみにJAMの低速コンテストは、市販の電源装置で運転するので、その電圧調整操作に難儀されたかたが多かったらしいですね。

Lt3801

LT3081モジュールINA226モジュールともストロベリーリナックス製を使っています。

上面に操作つまみと極性逆転スイッチをつけました。左上に液晶モニターをつけます。手前の面に電源スイッチ、定電圧・定電流切替スイッチ、電流調整つまみ(粗調整+微調整用)をつけて、背面には出力の鉄道模型運転用の極性転換可能な端子(RCAジャック)と極性固定の端子(陸軍式端子)をつけました。

一日では完成せず今日できたのは、左半分の赤枠で囲った電源部分です。デジタル電圧電流計部分はこれから組込みます。

20221123-17-34-08


ブレッドボード上では完成動作確認済です。今回はマイコンはSeeeduinoXIAOを使用し、ArduinoIDEでプログラムしました。

USB端子から、電圧・電流変化のログをとれるようにしています。

定電流機能は、LEDの抵抗値の決定や電解めっきなどの電源などに使おうと思っています。

| | Comments (0)

マルチファンクションテスター

20220820-13-28-21 

dda40xさんのブログにこのマルチファンクションテスターが紹介されていたので、アマゾンから購入してみました。
手持ちの2SC1815を接続してみたら写真のような結果が表示されました。コンデンサーの容量も表示できるようです。
三千円でお釣りがきました。安くて便利なものができたものです。

 

| | Comments (0)

PWM制御と電圧制御切替式パワーパックをつくる

秋月電子から出ているロングセラーの電子組み立てキットで、PWM(スイッチング方式)DCモーター速度可変キットがあります。これは12Vの電源がそのまま使えるので、鉄道模型のパワーパックの制御回路としても好適です。

私も以前このキットを購入してPWM制御のパワーパックとして使っていましたが、今回Desktop stationさんのピュアアナログアダプターの互換基板(ノラ版)を付加して、PWM制御と電圧制御を切り替えて使えるパワーパックに仕立て直しました。

以前は、電池ボックス内蔵のケースに入れていましたが、かさばるのと最近は乾電池より、携帯用のモバイルバッテリーから電圧昇圧ケーブルで電源をとることが多いので、今回は電源は内蔵していません。ショート対策も電源の方の保護回路が働くようなので、今回は省略しました。

20220522-23-26-35
なおキットは下記のように改造しています。
ボリュームは基板上のボリュームは使わず、スイッチつきボリュームを外付けにしました。
PWM周波数が約10kHzで少し耳障りなのと、コアレスモーターには周波数が低くて不適当なので、約30kHzに変更してあります。これはキットのC1コンデンサーを1000pFから330pFに交換してタイマーICの発振周波数を変更しました。
またこのキットは、PWMのデューティー比が2-99%の可変で、0%にはなりません。キット説明書にはモーター制御では問題ないと書かれていますが、小型のコアレスでは回転が停止しないこともあるので、R1とR2-FETゲートの間にスイッチを入れてオンオフすることにより、0%出力になるようにしました。このスイッチは、スイッチつきボリュームを使って、ボリュームが最小のときオフになるようにしています。

20220522-13-09-57

Photo_20220526120001

秋月電子のキット説明書より引用 追加注記

 

ピュアアナログアダプターは純正どおりの回路をユニバーサル基板上に組みました。ただチョークコイルの距離はもう少し離した方がよいかもしれません。

20220522-13-11-47

タカチのアルミケースに納めました。左の基板が秋月のキット、右端の基板がピュアアナログアダプターの基板です。

20220522-23-12-01

左のトグルスイッチが、中立オフつきの前後進切替用です。

右の4回路2接点のトグルスイッチが、PWM制御と電圧制御の切替用です。上側に倒すと走行電流がピュアアナログアダプターを経由して平滑直流に変換して出力され、下側に倒すとバイパスしたPWM電流が出力されます。

 

出力電圧の波形を簡易オシロスコープで観察してみました。

 

PWM制御方式の電圧波形です

 

電圧制御方式の電圧波形です。元のPWM波形が歪んでいるためかノイズが混入しています。

簡易オシロをiPhone手持ちで撮影したので動画が揺れて申しわけありません

電圧制御といっても、トランジスタやFETを使って降圧しているわけではありません。PWM制御の方形波の直流電圧に強いローパスフィルタをかけて、平滑な直流に変換しています。トランジスタなどで降圧すると、抵抗制御とおなじように下げた電圧分の電力を熱で放出してエネルギー浪費しますが、このフィルタ方式だとその無駄ありません。といっても効率は100%にはなりませんが、バッテリーの保ちはかなり違うはずです(まだ条件を揃えた実験していないので、エビデンスがありません)

 

 

 

| | Comments (0)

DCCコントローラー

20210912-12-30-33

パワーパック型のDCCコントローラーができました。まだ表面の保護シート剥がしていません。

某鉄道模型バー(現在は緊急事態下でカフェ)に置かせてもらうために作ったものです。

従来のパワーパックの操作感に近づけるため前後進はプッシュスイッチではなく上面の液晶モニター手前のトグルスイッチで切替えるようにしました。もちろんセンターオフありです。まだお店にDCC車両持ち込まれる方少ないようなので、DC運転にもつかえるように 手前右側のスイッチで、DCCと通常のDC(パルス制御)を一発で切替えられるようにしてあります。左側のスイッチは、プログラミングトラックの切替スイッチです。

ファンクション操作やアドレス指定のためのテンキーは、ゴムスイッチを使って耐久性を持たせると同時に操作感を改善しました。

操作プログラムは、DeskstopStationさんのDSシールド2のスケッチの改造です。基本的には、以前作ったDSシールド2コントローラーと同じです。

もう少しプログラムをチューニングして、来月ぐらいにはお店に持ち込ませてもらいます。もうちょっとCOVID19感染状況落ち着かないと県境越える気にはならないです。

| | Comments (0)

鉄道模型コントローラーの電源基盤

最近はDCCのみならずアナログDCでも、鉄道模型コントローラー(パワーパック)の制御に、マイコンやタイマーIC使うことが多くなりました。こういうときには、鉄道模型運転電源としての12V以外に5Vの電子回路用の電源も必要となります。もちろん制御基板に三端子レギュレーターやDC-DC降圧コンバーター組み込めばよいのですが、秋月の半完成基板キットを利用すると簡単にできますので、ご報告しておきます。

20210815-14-18-32

5dengen

この基板はスライドスイッチが組み込めるようになっていますが、そこに2回路の端子台をつけます。ただし端子台の足がφ1.0あり、基板の孔はφ0.9なのでそのままでは挿入できません。基板の孔は1.1のドリルで拡大すると足が入ります。基板の孔がスルーホールではなくなってしまいますが、問題はないようです。スイッチは外付け用の端子にハンダ付け配線します。
定格は1.34Aですが、これは5Vに降圧する三端子レギュレーターの電流制限なので、12Vの電流制限は端子やスイッチの電流容量によることになります。鉄道模型でも、DCアダプターを利用することが多いので、基板上にアダプター用DCジャックがついているのも便利です。

| | Comments (0)

BEMF モーターの逆起電力を測定する(続々)

もう一度マシマの12V缶モーターを使って測定しました。

サンプリングを10Hz(100ms)とした場合(青点)と100Hz(10ms)でサンプリングして10回の平均値を出した場合(オレンジ点)で比較してみました。

逆起電力の電圧のサンプリングは300μs PWM出力停止後 30μs間隔で8回測定したものを平均しています。
なごでんさんのサウンドキューブのスケッチ参考にさせていただきました。

Masima-bemf

やはり100Hzでサンプリングして平均値を出した方が、値のばらつきが小さくなるようです。(当然か?)

BEMFはモーターの回転数に比例するので、エンコーダーつけなくてもモーター回転数をモニターできます。

動輪の回転数はモーターの回転数に比例するので、BEMFを測定することで、蒸機のブラスト音など走行速度に比例したサウンドを出せるはずです。

7/14追記

縦のスケールは、aruduinoから帰ってくるanalogread()の値です。AruduinoのAD変換は10ビットなので、このモーターだとBEMFの最大電圧は、5*(100/2^10)=約0.5vです。

| | Comments (0)

より以前の記事一覧