SSブログ
DCCコントローラ ブログトップ
前の10件 | 次の10件

F28まで押せるコントローラの検討 GPS取り付けの検討 その2 [DCCコントローラ]

 最後の一時帰休で今日も仕事がお休みでしたが、6月の給料は、4,5月の帰休分が引かれていて、あからさまに手取りが少ないです・・・。まあ、休んでいろいろ遊べるメリットの方が高いような気がしますが、いろいろと先行きが不安にはなります。
 さて、GPSユニットをDCCコントローラの通信ポートに付けて、車のシガーソケットから12V(測ったら14.5Vありましたが・・・)取って、まずは7セグでスピードメーターがわりにしてどんなものか試してみました。
re_IMG_20200625_173726.jpg

 M5StackのGPSユニットはデフォルトで9600bps、1Hzの更新のため、かなり、タイムラグがありました。検索したらMake-a-Projectさんのページにやり方が書いてあったので、その通りにやってきます。まずはGnssToolKit3を立ち上げ、メニューの一番右を適当に選んでいって、中国語を英語に直します。GPSユニットはUSB COMの変換基板で適当につないでおきます。
無題3_language.png

 で、適当にツールバーのアイコンを押して行って、ConfigrationViewから通信速度を変更して、送信して、Saveしておきます。
無題.png

 秒あたりの更新速度も10Hzとかに変更、送信して、Saveしておきます。
無題2.png

 もしかしたら、Sendボタンの右に出ている文字列をダイレクトに送っても、GPSユニットの設定を変えられるかもですが、私は試していません。
 これでめでたく、GPSが10Hz、マイコンとの通信も115200bpsと速くなりました。で、車を走らせながら、スピードメーターとGPSから取ったスピードを見比べてみましたが、GPSは0.5秒~1秒おくれる。スピードメーターの90%ぐらいの値を示すことがわかりました。GPSの方が正確だと思いますので、50Km/hで走っているとき、本当は45km/hで走っているということですね。
 昔々、スピード違反で捕まると、こちらが見ていたメーターよりも少し遅いスピードで警察の人が違反切符を切ってくれて、サービスしてくれてありがとうと思ったことがあったのですが、そうではなくて、車のスピードメーターが10%増しの正しく無い値を表示しているというだけってことですね。
 と、そんな話は置いておいて、あとは、DCCコントローラ側からGPS連動のスピードをEsuやMp3V6に出してやれば、プリウスに乗りながら電車気分が味わえるはずです。このごろは、エンジン音のアプリとか、実車でも、純正でダミーのエンジン音を出す機構とかあるそうですし、それとあんまり変わらないかと思うんですけど・・・。

 
コメント(0) 

F28まで押せるコントローラの検討 GPS取り付けの検討 その1 [DCCコントローラ]

 今日は日食のようでしたが、家の近くは曇っていたので、見えないだろうなあと確認すらしませんでした。ショッピングモールに行きましたが、お祭りのように混んでいました。まあ、確かに解除されたんでお祭りですよね。うちも5人で夕ご飯食べに行ったし。
 さて、やりたいことが迷走気味です。
 で、M5Stick GPS unitを買ったので、早速、動かしてみましたが、ベランダに出してやったら、サンプルの状態で、スピードとかも取れるようです。緯度、経度は産出された値をGoogleMapに入れてやったら、本当いに家の前の座標でした。すごい。
re_DSC03083.jpg

 ということで、時々GPSのスピードを問い合わせて、デコーダに送ってやれば、スピードに合った音が出るでしょう。
 次に、シンプルコントローラ側のスケッチをArduinoNano→ArduinoProMicro用に変更ですが、こっちはdigitalWriteをマクロで直書きしていたせいで、最初、出力ピンをMicro用に合わせたのに、信号が出ない!などと無駄な試行錯誤をしていました。まあ、動きました。
re_DSC03086.jpg

 あとは、シンプルコントローラ側のスケッチをボタンとかに対応させて、そのあとに、GPS→スピードにも対応させて、車の12Vから電源をとって、スピーカー出力を車のLineに入れてとしていけば、デバッグ環境は完成となりそうです。危ない危ない。

 
コメント(0) 

F28まで押せるコントローラの検討 DSAir2用Webアプリ用(KeyEmu) [DCCコントローラ]

 さて、今日、金曜日は一時帰休です。6月の給料から4,5月に休んだ分の一時帰休分の給料が減るということで、戦々恐々としております。少し前に證券会社から電話があって、毎月積み立てている米ドルMMFは今の金利では増えないから、ドル建て債券買わないか?という売込みがありました。その時、なんで、今から景気が悪くなるってわかっているのに、株価は落ちないんですかね?と聞いたら、リーマンショックの時と違って、コロナ禍が終わったら、景気回復することがわかっているから、みんな冷静に対処しているんですよと言われました。その時はそうなんだーと思って、特に突っ込みませんでしたが、このごろ、ニュースとか見ていると、各国の金融当局がリーマンショックの二の舞にならないように空前の買い支えているらしいということで、そうなると、買い支えをやめるときとか、先進国のどっかがデフォルト起こすとか、景気対策で突然戦争始めるとかなると、一気に市場がうごくのかしらん。
 それはそうと、DSAir2のWebアプリ用のKeyboard代わりに使えるスケッチを書いてみました。今回からバージョンアップを簡単にするためGitHubに上げてみました(今後もやるかどうかは不明)。こちらです。右の方のclone or download ボタンを押して、download zipを選ぶと、ローカルに落とせるかと思います。一緒に落ちるkeyboard.jsはDSAir2のWebアプリのSD_WLAN\jsフォルダ内の同名ファイルを入れ替えます。理由ですが、F28まで動かすためのキーが足りなかったためです。
キーの追加としては、
・ALT+0~8はF20~F28とする
・Dirはもともとzでトグル切り替え、shift+zでFWD,alt+zでREVとする。
としました。F20~F28は最初CTRL+0~8としてみたのですが、ブラウザのタブ切り替えのショートカットだったのでやめました。
 なお、7SEG LEDに加え、ボタンのOn/Off確認用のLEDを32個全部点けると、USB供給の電流では少し不足するのか、スライダー操作によるスピードがぶれるので、電流足りないなら、せっかく付けた12V電源を試して見ようと思って、ACアダプタを挿したら、ArduinoMicroが死にました・・・。見かけレギュレータとかついているArduinoだし、RAWに12V入れて大丈夫のはずなんだが・・・。(下は、今回のMain基板の図面)
DCC_CheapCont2-Main_K0.png

 で、死んだのはMain基板だけのようなので、そっちだけ作り直しです。(今回は薄さを追求するため、Arduinoをソケットで付けていなくて、全作り直ししないといけないというところも問題を大きくしてしまっています)
re_DSC03062.jpg

 とりあえずRAW端子の所はパターンカットしました。
re_DSC03063.jpg

 で、TA78M05F(500mA)を適当に付けて、ArduinoMicroにも適当にソケット接続としました。改版するなら、このレギュレータかスイッチングレギュレータを付けられるようにしようと思います。
re_DSC03064.jpg

 で、復活です。
re_DSC03066.jpg

 少し、スケッチの構造を見やすくして、次は、DSmainR6用のコントローラづくりをしようと思います。電流足りるかなあ?
コメント(0) 

F28まで押せるコントローラの検討 その7 [DCCコントローラ]

 昨日、雷で空が時々光る中、蛍を妻と二人で見に行きました。子供は行かず・・・。まあいっぱい飛んでてきれいでした。人もいっぱいでしたが。
 で、本日は、夕方、基板とケースが到着したので、組み立てです。まずは記念撮影。
re_DSC03053.jpg

 一か所間違えました。奥側の側面板、上板と下板でほぞを組むところが一列ずれています・・・。作り途中で変更したにも関わらず、ちゃんと組んだ時のシミュレーションをしていないため、こんな有様に。まあ、カッターナイフでガリガリ切るだけで、加工はできたので良いですが。さすが2㎜のアクリル。弱いです。(左側が加工したもの、右側が頼んだ状態)
re_DSC03054.jpg

 で、仮組。それ以外は大丈夫でした。
re_DSC03055.jpg

 次に、Main基板(左)とExp基板(右)の中継部分。ぎちぎちで作ったら、やっぱりぎちぎちでした。仮組した状態で上からはんだ付けしないと、クリアランスがやばそうだったので、そうしました。
re_DSC03056.jpg

 あとはMain基板のDCCの出口とArduinoMicroが干渉している・・・。なんで気づかなかったんだろう。アートワークを少々変えた方がよさそう。また、C3のシルク上にスルーホールがあるのですが、なんか、モータードライバのよからぬ部分にショートしそう。画面上で拡大して見ているときは全然大丈夫だって思うんですけどね。
re_DSC03057.jpg

 で、あとはExp基板(右側)のスイッチとLEDを無心にハンダ付けして・・・。(スイッチの足が4ハンダ、LEDが2ハンダで32個分あるので、ここだけで6*32=192か所のハンダが必要で、LEDもスイッチも部品がほぼ枯渇しました。自分で作りながら、嫌がらせだよなあと思いました。タッチパネル液晶にすればいいんじゃないの?という涼しい言葉に全く反論できません。なんか、大学のころに授業であったアセンブラの実験学習キットがこんな見た目だったような気がするのは気のせいか?
re_DSC03058.jpg

 そして、動作検証のため、TM1637部分のスケッチを適当に作って、まあ、今日はこの程度にしておきます。明日からお仕事だし。
re_DSC03061.jpg

 さて、操作方法をよく考えないと・・・。

コメント(0) 

F28まで押せるコントローラの検討 その6 [DCCコントローラ]

 今日は蛍を見に行ったら、いっぱいいました。明日の夜、雨が降らなかったら、家族で見に行こうと思いますが、子供は虫が嫌だとか言ってついてこなさそう・・・。
 で、Elecrowから発送の連絡が来ました。今回発想が遅めに感じたので、思わず朝にまだ発送してませんか?ってメールを出したら、昼ぐらいに昨日の夜に発送したよというメールが来ました。受け取りは早くても来週かなあという感じですかね。ボタンいっぱいのコントローラとトミックスのフィーダーみたいな光センサの少し寸法調整品になります。今気づきましたが、光センサ買わないとストックが少ないかも。
re_無題.jpg

 とすると、今週末は何をしようかなあと考えます。キハ110にNext18の基板とパリピLEDでも付けるか?いや、やめておこう。
コメント(0) 

F28まで押せるコントローラの検討 その5 [DCCコントローラ]

 昨日は買った覚えのない猫撃退器がアマゾンから届きました。購入依頼を見ても買っていないし、なんか住所とか名前が英語で書かれているし、で、怪しいので、アマゾンのカスタマーセンターに連絡して、荷物番号を確認して、返品しました。こわいこわい。
 で、DCCの制御部分の続きです。
 今日は、アクセサリ制御部分を作ろうとしました。
 こんな感じに作ればよいらしいです。
 {preamble} [10AAAAAA] [1AAACDDD] [check sum]
 で、適当にGoogle翻訳して、作ってみましたが全く動きません・・・。アドレスは4つごとに飛ぶし、CDDDのCでOnOffをしてみましたが、全く動かないしDDDには何を入れるのかわからん。英語の仕様書だけでは一部意味不明だったため、DSmainR6のソースも参考にしました。
でわかったことは、1byte、2byte目は、("1"とか"0"は固定値です)
[ "1" "0" A5 A4 A3 A2 A1 A0] ["1" A8 A7 A6 C D2 D1 D0]
としたときに
・A5~A0はアドレスの下位6ビットです。
・A8~A6はアドレスの上位3ビットで1の補数表現します(bitを反転させればよい。010なら101。)
・D2、D1がアドレスのサブアドレスのようなもので2ビットあるので0~3の値をとります。
・D0がポイントとかのOnOffビットです。
・Cは1固定のようです。

送る1byte目と2byte目の命令はアドレスも含めてこんな感じになります。Xはアクセサリのオンオフです。
アドレス1の時A8~A0 = 1 D2D1 = 0b00 → [1000 0001] [1111 100X]
アドレス2の時A8~A0 = 1 D2D1 = 0b01 → [1000 0001] [1111 101X]
アドレス3の時A8~A0 = 1 D2D1 = 0b10 → [1000 0001] [1111 110X]
アドレス4の時A8~A0 = 1 D2D1 = 0b11 → [1000 0001] [1111 111X]
アドレス5の時A8~A0 = 2 D2D1 = 0b00 → [1000 0010] [1111 100X]

アドレスは512(9ビット)*4(2ビット)=2048個持っているんですかね?

ということで、アクセサリ命令も送れるようになったので、ひとまず終了で、次は基板が来てからtm1637辺りをいじりながら進めていきたいと思います。まだ発送連絡ありませんが。


コメント(0) 

F28まで押せるコントローラの検討 その4 [DCCコントローラ]

 昨日は、そろそろ蛍の季節かなあと思って、近く(と言っても歩いて40分ぐらいかかるところ)の山まで見に行きましたが、まだのようでした。4匹ぐらいしかいませんでした。例年通り6月のはじめ(来週末)に見に行こうと思います。
 で、うちにも10万円の申込書が来ました。家族には、「世帯主として全部私の懐に入れます」宣言をしておきましたが、まあ、一時帰休のせいで、わりと似たような額の給料が減りそうですので、生活費に消えるでしょう・・・。早速、申し込んでおきました。マスクもそうですが、いつ来るのやら。
 あとは緊急事態宣言が解除されたので、近くの海まで行ってみました。
re_IMG_20200530_164108.jpg

 で、本題ですが、F28まで押せるコントローラを作るので、Fujigaya2CheapControllerもLongAddress対応、F28まで押せて、アクセサリも使えるようにしよう!というコンセプトで改造を開始しました。
 以前にYaasanさんからショートアドレスだけでファンクションもF4ぐらいまでなら簡単だけど、全部入りは難しい。なぜならDCCの仕様がツギハギだから!という話を聞いていました。
 今回、作りながら、(そして、まだ終わっていませんが)よーくわかりました。
 まずは、アドレス。
 命令の送信は 
 [プリアンブル] [アドレス] [命令] [チェックサム]という順番で送るというのが、大まかな流れなのですが、アドレスにはショートアドレスと、ロングアドレスがあります。それぞれのアドレスのとき
Aがアドレスのビットで、

ショートアドレス:[0AAA AAAA] 1~127を送信可能
ロングアドレス:[11AA AAAA] [AAAA AAAA] 2バイト使って128以降?のアドレスを送信可能

とすでにここまでで、アドレスによって送信Byte数が違います。(なんか128~XXXがdigitraxと、メルクリンとかで違うという話があるらしいが知りません)
次にそのあとのF0~F28 の命令送信です。Dの各ビットが1でOn,0でOffとなるのですが、ツギハギっぷりに磨きがかかって、

F0-F4:[100DDDDD]  でなぜか並びがF0F4F3F2F1
F5-F8:[1011DDDD] 並びはF8F7F6F5
F9-F12:[1010DDDD] 並びはF12F11F10F9
F13-F20:[11011110] [DDDDDDDD] 並びはF20・・・F13
F21-F28:[11011111] [DDDDDDDD] 並びはF28・・・F21

と、カオスです。アドレス種類*ファンクション種類で、パケット数が2~4Byteと変わってしまうことがわかりましたので、現状固定バイトで作っている送信部分を全体的に作り直すことにしました。
今回からGitHubでVersion管理をするかと思って、使い始めていますが、変更コメントの入れ方が適当すぎて、人に見せられないのですが、Ayanoさんのみたら、潔くnewとしか書いていませんでしたね。まあ、人と共作するわけじゃないし、時々後戻りできれば良いだけだから、私もそうしようかなあと思いました。
 で、j今日は力尽きたので、明日アクセサリ制御部分を作ろうかなあと思っています。
 
コメント(0) 

F28まで押せるコントローラの検討 その3 [DCCコントローラ]

 コロナの影響で、6月末まで一時帰休を週に1日程度することになったので、今日は休みです。今のところ、趣味の時間が増えて、特に喜び以外はありません。(まだ収入の減りで食べるものに困るというところにはなっていないので)
 GitHubにでもスケッチを載せて、バージョン管理もしようかと思いつつ、勉強を始めましたが、そちらはまた今度。
 で、本題ですが、アクリルケースを作りましたので、Elecrowに注文しました。
 毎度のことながら、アクリルケースの設計はまずアートワークを行うMBEで画像をPNGでエキスポートします。この時dpiを指定できますので、それを覚えておきます。

 次にこのPNGをinpscapeで読み込み、ねじ位置やボタン位置を正確に把握して、アクリルの穴を開ける位置を決めます。また、側面板のホゾ形状なども決めていきます。で、最後に外形と穴位置だけ残して、完成です。今回は100㎜*150㎜ぐらいの大きさの基板になりますので、アクリル板は200㎜*200㎜のを頼みました。強引に一枚で一セットできるようにしています。Elecrowのアクリルは異種面付けで追加料金はかかりません。また、いつもPDFファイルで頼んでいます。(昔はそれを知らずに律義に一ピースずつ頼んでいてとても高いサービスになっていた)
inkscape途中.png

 で、少し前のTomix向けフィーダーの改良版と合わせて注文しました。こっちは微妙な(0.3mmとかの修正)なので、出来が変わってくれるのか心配ではあります。来週の終わりぐらいには届きそうかなあと思いますので、余力があればソフトでも書いていようかと思います。

コメント(0) 

F28まで押せるコントローラの検討 その2だったか [DCCコントローラ]

 昨日は焼き肉、今日は焼きそばと、ホットプレートを使って子供に料理を手伝ったもらいつつ、ご飯を食べてました。小学校の高学年にもなると、少々焼き肉で油が腕に飛んで熱かったりしても心が折れないようで、成長したなあと思いました。
 さて、昨日の続きです。きっとKicadで自動配線すればすぐに終わったんだろうけど、私はMBEを使っているので、自分で考えて、適当に配線です。楽しいですが、全く最適化されていません。仕事でやったら、ただ飯喰らい!と怒られそうですが、趣味は楽しければいいんだと思っています。
 で、基板の方はほぼ完成です。
ほぼ完成.png

Main基板
DCC_CheapCont2-Main_K0.png

Ext基板
DCC_CheapCont2-Ext_K0.png

 32個のボタンと32個のLEDに対して、マトリクスのように配線しましたが、まあ、汚いです。
 それはそうと、機能に欲を出してしまい、今までで、Cheap Controller機能、USB Throttle機能をスケッチの書き換えで作るつもりでしたが、もう一個UARTの出力を付けて、dsmain6も有線で操作できるようにするつもりです。あくまでもつもりなので、スケッチすら作っていませんが。そんなに難しいものではなかったような気がします。
 で、次はアクリルケースを作らないと。来週ぐらいに注文できるかしら。

コメント(0) 

F28まで押せるコントローラの検討 [DCCコントローラ]

 さて、アベノマスクがいまだに来ませんが、6月からやっと子供の小中学校が始まるようです。夏休みが2~3週間程度しかないとのことで、まあ、3~5月家の中に軟禁されつつ休んではいますが、少々可哀想かなあとも思います。盛夏に三密を避けつつ授業となると、数十年前と違い地球温暖化のため酷暑で各教室にクーラーはついていますが、窓を開けてとなって・・・、高温高湿の中、勉強ができるような環境なんだろうかと心配はしております。昔も夏はプリントのわら半紙が手にくっついて、破ってしまって、なんか微妙だった記憶があります。いつのころからかコピー用紙が主流になって、そういうこともなくなりましたが。
 で、F28まで物理ボタンで押せるコントローラを検討中です。
TM1637ですが、Arudinoのライブラリで、KeyPressまで対応しているのがありました。これで確認したところ、ばっちりでしたので、進めていきます。
re_DSC03045.jpg

 で、今、少し前に作った安物コントローラの横に32個のボタンを追加して作っているので、10cm*15cmに適当に配置して38個のボタンがあります。ケチなので、10cm*5cmと10cm*10cmの基板に分割しています。
無題.png

 で、とりあえずの回路図はこれ。
 Main基板
DCC_CheapCont2-Main_K0.png

 Ext基板
DCC_CheapCont2-Ext_K0.png

 スイッチにLEDを付けたら、部品数で、80個ぐらい。はんだ付けのポイントはたぶん200ぐらいになっているような気がしていて、作るのが嫌がらせかなあと思います。というかその前に配線できるのかを明日、試そうと思っています。
 あと、USBスロットルとCheapControllerを兼用するため、ProMicroで作る予定です。
コメント(0) 
前の10件 | 次の10件 DCCコントローラ ブログトップ