今回は列車を往復運転させる簡単なスクリプトを通して、基本的なスクリプトの書き方、実行の流れを解説します。 Continue reading »
それでは連載ということで、JMRIとPythonをつかって自動制御を進めていきたいと思います。
今回はPythonとはです
Pythonとは
Pythonとはプログラミング言語(他にはC言語,PHP,Java ….)の一種でパイソンと読みます。Wikipediaには大変詳しい説明が載っています。が、JMRIにおけるPythonの立場を本当に簡単に説明したいとおもいます。
たまにJMRIの解説サイトで多く見られる誤解はPythonをJMRIで自動運転するためのスクリプト言語であるというものです。が、Pythonは汎用のプログラミング言語でありJMRI専用ではありません、JMRIではPythonで簡単に鉄道模型の制御ができるようにライブラリ(関数群)を用意しているのです(これが書きたかったのです)。ですからPythonを使えるようにすることはJMRIのみならずパソコン用のプログラミングもできるようになる可能性があるわけです。また、Pythonはプログラミングを初めて勉強するのに向いているほうの言語ですからその後にC言語やJava等の言語を学習するハードルを下げることができるかもしれません。
今回は短い記事となりましたが、次回から実際に利用していきたいと思います。
BDL168とRX4のLoconetとの通信部分は解析できたので次は車両から発信(発光?)するパケットの構造を決めてAVRで送受信の実験をしたいと思います。
(実はAVRとLoconetの接続を避けているだけなのですがw。UARTを一旦MAX232を通せばLocoUSB Rev.1と同じ回路でLoconetに接続できるのですが、LoconetはオープンコレクタなのでわざわざRS232に変換しなくても….長くなるので今度にします。)
- パケット構造の決定
- パケット内容の決定
- AVRに実装
という順番で書きます。 Continue reading »
車両検出を行うにあたり、最後の実験であるAVR(マイコン)をLoconetに接続し、実際にLoconet上に検出情報を送信することを試みます。
Loconetはマイコン関係でいうところのUART(USART)、パソコンではRS-232CのTTLレベル(正論理)に相当する信号です。詳しくはDigitraxのLocoNet ® Personal Use Edition 1.0を参照してください。
LocoUSB Rev.1では一旦MAX232でRS-232C(負論理)に変換してからJMRIのページの参考回路を利用しましたが、TTLレベルのシリアルをMAX232を利用せずに安価な回路でLoconetに接続することを実現したいと思いました。 Continue reading »
車両検出機器を自作するにあたり、BDL168 & RX4と完全互換にしたいので、それらがLocoNetに送出するパケットがどのようなものか調べていきます。(車両検出機器の構想についてはコチラを参照ください。)
が、実機をもっていないのでインターネット上の資料からのみ推測します。
Python初心者のNゲージ自動制御に挑戦!さんのJMRIでトランスポンディングという記事のJMRIのLoconet Trafficのスクリーンショットが手がかりでした。(写真は当方で同じ状態を再現したもの)
JMRIにはLoconet Trafficを利用するることで、LocoNet上に流れているパケットが説明付きで見れます。また、Send LocoNet Packetを利用することで好きなパケットをLocoNet上に流すこともできます。 Continue reading »
これを利用して調べていくことにします。
最終目標はもちろん自動運転なのですが、そのためには列車の位置を把握する必要があります。
DigitraxではBDL168というレール上の消費電力を元に在線検知するボードと、RX4というデコーダから発信されるアドレスを受信するアンテナを利用するのが一般的と思われます。
しかしどちらもやはり高価(機能と便利さを考えると手頃な値段なのだが)でお小遣いで買い足していくのには無理があります。
ということで、例によって自作することにします。 Continue reading »
普段Macを利用しているのですが、この記事のように製作したLocoUSB Rev.1はMacやVistaでは利用できません。(これについての説明はこの記事を参照)
そこで、Rev.2をつくるまでの間はWindows XPのパソコンにLoconetを接続し、MacとXPをJMRIの機能であるLoconet Serverでネットワーク接続して利用することにします。 Continue reading »
DCCのパケットの取得はできたのでポイントデコーダを作りたいと思います。
- マイコンからポイントを駆動させる
- DCCパケットからアクセサリデコーダへの命令を取得する
- 上記2つをくっつける
という手順で進めます。 Continue reading »
今回からレールからDCCのパケットを受信する実験をしたいとおもいます。
そのためにはDCCの規格を読まないといけません。DCCの標準規格はNMRAという団体が策定しています。DCCのパケット情報についての説明はNMRA STANDARDの中のElectrical Standards For Digital Command Controlに電気的な説明が、Communication Standards For Digital Command Controlにパケットについてが記載されています。
そこでこの書類を読んで順番に進めていくのですが、桂庵さんが日本語に翻訳なさっているのでそちらをありがたく参照させていただきます。さらにはDCCパケットの内容についても詳しく説明なさっているので非常に参考になります。 Continue reading »
(注意:最新はLocoUSB Ver.2です)
Loconetとパソコンをつなぐためのインターフェースを製作します。
市販されているものですと、MS100やLocoBuffer-USBなどがあります。
MS100はシリアルポート接続なのでシリアルポートが搭載されていないパソコンでは使えませんし、USBシリアル変換というものも存在しますが、Loconetの特殊な通信速度(16600bps)には対応していないものがほとんどです。
また、LocoBuffer-USBは日本で入手するのはめんどくさく、価格もそれなりにします。
以上の理由でインターフェースを製作することにしました。 Continue reading »


最近のコメント