デジタル鉄道模型フォーラムDCC・メルクリン等のデジタル鉄道模型の話題でコミュニケーションできる場です。登録・利用は無料です。
デスクトップステーション(DesktopStation)のページはこちら
・無料の日本型超高品質DCCサウンドデータをWebで配布中!
・鉄道模型をスマホで簡単制御!国産で革新的なコマンドステーション DSair2はこちらから。

2018年04月16日

DSturnout gift fair with DSbluebox & DSmain

We will start a gift fair for international shipping with DSbluebox and DSmain. If you ordered DSbluebox or DSmain until next end of June, we offer you 1 DSturnout decoder for free of charge.

Thank you for interest!

---------------------------------------

※日本国内のユーザー様へのサービスはございません(先月やったので)。
posted by yaasan at 08:23 | Comment(0) | 鉄道模型

2018年04月15日

DCCデコーダで自動ブレーキ その2

実際に、リミッター処理を簡単に書いていこうと思います。

Continuousのサンプルをベースに、ちょっと直しました。

ToFSpeedLimiter_20180415.ZIP

□スケッチへの統合

フジガヤさんが先日作った、汽笛入りのスケッチと合体させても、何とか99%で入りきったので、うまく調整すれば、入り切ると思います。
→はいりませんでした。おおよそ12%ほどROMを消費するようです。どうにか圧縮できないか、チャレンジ中です。

基本的には、Dutyを書き込む際のリミッタに介入するように実装するのが一番簡単で確実と思います。

MOTOR_SetCV() 関数にリミッタを叩く処理を追加し、MOTOR_limitSpeedで今はCV5の値(MaxVoltage)を参照しているのを、介入してやるように手直しする形です。

□MP3デコーダへの配線

b1(PC4)->SDA
b2(PC5)->SCL
VCC->5V(LDO)
GND->GND

posted by yaasan at 07:09 | Comment(0) | 鉄道模型

2018年04月14日

DCCデコーダで自動ブレーキ その1

最近、自動ブレーキがクルマで流行ってます。うちのクルマにも付いてますが、簡易式なので、時速30km/h以下で無いと動かないです。

自動ブレーキは、電車でも信号システムと連動して実装されていますが、鉄道模型だと、存在しなかったのでは無いでしょうか。アナログでは絶対に出来ないので、DCCで実現するしかないですが、DCCで自動ブレーキというと、アシンメトリーDCCの自動ブレーキくらいで、デコーダ自体で反応するものはありませんでした。

さて、自動ブレーキを実現するにあたり、そんなことが出来そうなデコーダは、海外のものでは存在しないのではないでしょうか。国内でも同様です。ただ、実装可能なデコーダについては実は存在します。Nagodenさんのデコーダです。

スマイルデコーダR6Nや、MP3デコーダV5のヘッドライト・テールライト用端子(PAD b1,b2)に、実はI2C端子が出ていて、センサーを繋げてDCCデコーダで、いろいろと遊べるようにNagodenさんがきちんと設計していて用意していたのに、誰も気づかず、全く活用されていません。

実はうすうす気づいてましたが、他の誰かがやってくれるだろうとに思っていたので、スルーしておりました。しかし、一向に誰もやってくれないので、仕方なくので自動ブレーキ技術のとっかかり・ネタを当社が提供させて頂きます。

今回使用するセンサーは、赤外線ToF方式を使用した距離センサーであるSTマイクロのVL53L0CXです。入手性も良く、いろいろなメーカーからモジュールが出てます。チップ自体は、QFNでギョッとする状況ですが、チップを買わなくともモジュールを買えば良いのです。

今回、使ったモジュールはAliexpressで買ったものですが、基本はほとんど変わらないようなので、秋月電子のモジュールや、その他のモジュールなど、お好きに選定ください。

ToF_Sensor_with_ICE2.jpg

今回は、モジュールのピンを、Arduino UNOにつなぎましたが、それぞれVCC->5V, GND->GND, SDA->A4, SCL->A5に配線しました。

まずは実験結果です。ICE2の前面に、無理矢理、センサーモジュール基板をテープ止めして、前方の車両との距離をどのように検出するか調べました。

ST_Distance_Meter_review20180414.jpg

検出範囲は上記の通りで、比較的、前方の視野は狭いと思います。ジオラマを作った場合に、駅などの障害物への反応が気がかりな部分ですが、緊急停止と、徐行の制御をうまく入れ込めれば、実用可能だと思います。

検出も、完全に0 or 1ではなく、赤外線の反射レベルで見ているので、特に検出境界線での反応においては、実際の距離と検出値は一致しません。

なので、ほぼ実測に近い距離、検出境界線の距離(偽距離)を、うまく補償するアルゴリズムを実装して、DCCデコーダに実装することで、自動ブレーキが実現できると思います。

センサの設置については、かなり精度が要りますが、真っ正面を向く形で実装し、高さは運転席の窓付近程度の高さ以上に上げないと、線路を誤検出します。

Arduino UNOのスケッチは、GitHubに落ちているPololuのライブラリのExampleのSingleスケッチを使っています。

以下、センサの反応具合の例です。

■10cm

distance_10cm.jpg

■20cm

distance_20cm.jpg

■30cm

distance_30cm.jpg

■40cm

distance_40cm.jpg

■検出値と実距離のグラフ

タンク車をICE2に近づけたり離したりして、距離と検出値を測定しました。以下のような感じで、非線形になってます。近距離と、遠距離で飽和している傾向が見えます。これを補正するように処理を加える必要があることが分かります。

ToF_Distance_DetectVal.png

■まとめ

・距離の検出範囲は、模型用途にはそれほど問題は無さそうである
・境界線付近で、擬似的に距離がずれて検出されるので、その補正処理などを検討する余地がある。データを取りながらアルゴリズムを開発していく。
・スマイルデコーダR6Nなどに搭載する際に、処理時間に影響が無いかを確認する(I2C通信処理のみなので、影響は小さいと考えているが・・・)

-------------------------

■お断り

本記事で、自動ブレーキの技術に必要なToFセンサーをご紹介しましたが、鉄道模型の飲酒運転、脇見運転、居眠り運転を推奨するものではありません!鉄道模型は、きちんと安全に運行して頂きますよう、よろしくお願いします。本技術は、コントロール不能や、突然の事故を未然に防ぐために必要な技術検討です。
posted by yaasan at 18:19 | Comment(7) | 鉄道模型

DSbluebox ファームウェアR4iをリリース

DSbluebox R4iファームウェアをリリースしました。

□変更内容

・CV読み出し処理の高速化
・スレッショルド初期値を変更
・内部のコアを最新版に変更(DSshieldと共通化)

----------------------------

DSblueboxは販売商品の整理のため、キット品の販売を今月で終了し、完成品(15800円)のみの販売に変更します。他の商品も、順次、キット品の販売を終了し、完成品のみの形態に移行しようと思います。

順次、表面実装品に移行しようと思っているので、売れ行きの悪い(ユーザーへの影響の少ないもの)から、完成品のみに切り替えていく予定です。

DSmainは基板が大量にあるので当面は併売は継続しますが、ずっとではありません。
DSairは、最初から完成品で出していきます(チャレンジャーの皆様は別)。

逆に、電子工作をターゲットとするDSshieldは、キット品・基板頒布を強化していきます。

あと、新たな挑戦として、教育向け(プログラミング&電子工作教室向け)に、DSシールドの大量販売サービスは開始しようと思っています。テキストも、いま、Markdownで書いているところです。
posted by yaasan at 16:04 | Comment(2) | 鉄道模型

2018年04月13日

スマイルデコーダR6nをアップデートしてみた

Fujigaya2さんが、スマイルデコーダR6N用に、警笛などを含んだ最新のスケッチを公開してくれました。

デジトラックスのサウンドデコーダが7000円程度と、たぶん日本で入手できる有名メーカー製のサウンドデコーダとしては最安値だと思いますが、NagodenさんのスマイルデコーダR6Nは、2800円でサウンドが出せます。多少の機能の弱点(サウンドのパターン数)はありますが、書き換えれば特に問題は無いので、コストパフォーマンスとしては圧倒的にスマイルデコーダR6Nの勝ちでしょう。

用意するもの

Arduino IDE
Smile Writer V1
・Smile Decoder R6n

Arduino IDEでスケッチを開く

Arduino IDEを起動します。Arduino IDEは、Arduino.ccからダウンロードできます。

SMR6n_dl_up1.png

開く メニューで、SmileDecoderR6nスケッチを開きます。

SMR6n_dl_up2.png

ここでは、MP3V5_DL109_8k_2 をダウンロードしたので、MP3V5_DL109_8k_2.inoを開きます。

SMR6n_dl_up3.png

Arduino IDEでスケッチを開きました。

SMR6n_dl_up4.png

スマイルデコーダR6Nをスマイルライターに差し込む

ここで、スマイルライターにスマイルデコーダR6Nを差し込んで、USBケーブルでPCに接続します。

sm6n_connect.jpg

sm6n_connect2.jpg

書き込む準備を行う

ポートにCOM?(?には任意の番号が入ります)が下記の画面のように表示されることを確認してください。 ボードはArduino UNOにします。書き込み装置は、Arduino as ISPを選択します。

準備が出来たら、ツールメニューの一番下にあるブートローダを書き込むを押します。

SMR6n_dl_up5.png

最初の1回目は、「エラーが発生しました」と表示されるはずです。 スマイルライターを使用すると、必ず最初の書き込みには失敗してしまいます。気にせずに、もう一度、ツールメニューの一番下にあるブートローダを書き込むを押します。

SMR6n_dl_up8.png

次には、「ブートローダの書き込みが完了しました」と表示されるはずです。表示されなければ、うまく差し込まれていない、逆差ししている、スマイルライターにArduino ISPスケッチ(スケッチの例から開いて書き込み可能)が書き込まれていない、などが挙げられます。

SMR6n_dl_up9.png

スケッチをデコーダに書き込む

次に、いよいよデコーダのファームウェアを書き込みます。

スケッチ メニューから、「書き込み装置を使って書き込む」を押します。

SMR6n_dl_up6.png

しばらくすると、以下のように「マイコンボードへの書き込みが完了しました」と表示されます。これでアップデート作業は終了です!

SMR6n_dl_up7.png
posted by yaasan at 21:23 | Comment(0) | 鉄道模型