DSbasicは、DCC対応の鉄道模型をBasicで制御するための機器です。ArduinoにDSbasicシールドを装着し、PS/2キーボードとTVがあればご利用になれます。DSbasicを動かすためのパソコンは不要です。
以下のサイトを参考に開発しました。御礼を申し上げます。
DSbasicは上級者向けとなります。ベーシック言語を理解されている方、Arduinoのプログラミングができる方が対象です。 サンプルのスケッチには、未知のバグなどが含まれています。ご理解の上、利用ください。
※上記の例では、アマゾンで販売されている爆安4.3inchモニターTVを使用しています。12V ACアダプタから分岐するケーブルがあると便利です。
Parts No | Parts type | Spec | Akizuki No. |
---|---|---|---|
C1 | Capacitor | 0.1u, 5mm pitch | |
C4 | Capacitor | 220-470u, 3.5mm pitch | |
C5 | Capacitor | 1u, 5mm pitch | |
CN1 | Connector | 6pin Long Header | |
CN2 | Connector | 8pin Long Header | |
CN3 | Connector | 8pin Long Header | |
CN4 | Connector | 8pin Long Header | |
CN5 | Connector | 2×3 long pin header | |
CN6 | Connector | 2pin Terminal box | |
CN7 | Connector | RJ-2410N/Y | C-06508 |
CN8 | Connector | PS/2, MJ-373/6 | C-09018 |
CN9 | Connector | RJ45, 7810-8P8C | C-00159 |
D1 | LED | 3mm, Yellow | |
D2 | LED | 3mm, Green | |
D3 | LED | 3mm, Red | |
IC1' | DIP Socket | DIP Scoket | |
IC1 | MCU | ATMEGA328P | DSCore R217書き込み済であること |
IC2 | Motor Driver | TB6643KQ | I-07688 |
R1 | Resistor | 1k, 1/4W | |
R2 | Resistor | 1k, 1/4W | |
R3 | Resistor | 1k, 1/4W | |
R4 | Resistor | 470, 1/4W | |
R5 | Resistor | 1k, 1/4W | |
R6 | Resistor | 6.8k, 1/4W | |
R7 | Resistor | 6.8k, 1/4W | |
R8 | Resistor | 6.8k, 1/4W | |
SW1 | Tackt Switch | SKHHLPA010 | P-07193 |
DSbasicは、Tiny Basicをベースとしており、弘前大の解説ページなどの資料も参考にできます。
コマンド | パラメータ | コメント |
---|---|---|
NEW | なし | プログラムを初期化します。 |
RUN | なし | プログラムを実行します。 |
SAVE | なし | プログラムを保存します。 |
LOAD | なし | 保存されたプログラムを復帰させます。 |
LIST | なし | プログラムの一覧を表示します。 |
MEM | なし | プログラムの残りの仕様可能量を表示します。 |
文字や変数など | 文字を表示できます。変数も表示できます。 | |
DELAY | 遅延時間(ms) | 千分の1秒単位でウェイトさせます。 |
DWRITE | ピン番号,出力状態 | デジタル端子(Dx)でデジタル信号出力 |
AWRITE | ピン番号,出力状態 | アナログ端子(Ax)でデジタル出力 |
INKEY | なし | 入力されたキー番号を返します。 |
コマンド | パラメータ | コメント |
---|---|---|
PWR | 電源ON/OFF(1 ON, 0 OFF) | 線路への電源ON/OFFを制御します。 |
SPD | DCCアドレス,速度(0-100) | 即時速度指定。速度は0(停止)~100(最高速度)。 |
SPX | DCCアドレス,開始速度,完了速度,時間(1d=0.1sec) | 徐々に加速、徐々に減速の速度指定 速度は0(停止)~100(最高速度)。 |
DIR | DCCアドレス,方向(0 FWD, 1 REV) | 進行方向を変えられます |
FNC | DCCアドレス,ファンクション番号,ON/OFF(1/0) | ファンクションを操作できます |
FNX | DCCアドレス,ファンクション番号 | ファンクションのモーメンタリ動作。OFF→ON→OFFを一気に行えます。 警笛とかで2行使うのは勿体無いので。 |
ACC | DCCポイントアドレス,分岐/直進(分岐0, 直進1) | DCCのポイントを切り替えできます |
GS8 | S88デコーダ番号(8bit間隔) | S88デコーダのデータを取得します。8bit間隔なので注意。 0を指定すると16bitタイプのS88デコーダであれば1~8のデータが取れます。 1を指定すると、9~16のデータが取れます。 2を指定すると、17~24のデータが取れます。設定できる範囲は0-3までです。 |
なお、公式には出していませんがスケッチをちょっとだけ改造することで、Marklin Motorolaの車両やポイントが操作できます。
DSbasicをより一層便利に使えるWindows用の管理ソフト DSbasic Editorを開発しました。無償でご利用いただけます。 DSbasicスケッチR0.40b以降でご利用いただけます。
特徴:
DSbasicとのシリアル通信速度は38400bps固定になっています。DSbasicスケッチの古いバージョン(R0.40b以降ではないもの)では動きませんのでご注意ください。
DSbasicスケッチ*
DSbasicEditor:
更新履歴:
(R0.40b)
・SPD,ACC,FNX,FNC,DIRの内部処理に100ms程度のウェイトを追加。連続実行可能になった。
・シリアル通信速度を38400bpsに落とした(DSbasic Editorとの通信の安定性確保)
(R0.30)
・弘前大の改善機能を取り込み。ESCで強制停止、シリアル経由でテキスト入力、自動ロード&実行、And(&)、Or(|)、剰余(%)のコマンドの追加、RAM配置バグ修正
・SPXコマンドでウェイトが無いバグ、速度ダウンの時に動かないバグを修正
・EEPROMロード&セーブがおかしいバグを修正
(R0.21)
フジガヤさんに指摘されたバグを修正。
S88デコーダの情報を読む関数GS8を追加。
アップデート時の注意:
R0.30ではEEPROMの管理方式を変更しています。R0.2xからアップデートしてお使いの場合、NEWコマンドでメモリをクリアしてから作業を行ってください。
Arduinoでご利用できる基板(シールド)を頒布しております。
送料は、200円(個数に限らず一定額となります)です。