目次

DSbasic

DSbasicは、DCC対応の鉄道模型をBasicで制御するための機器です。ArduinoにDSbasicシールドを装着し、PS/2キーボードとTVがあればご利用になれます。DSbasicを動かすためのパソコンは不要です。

buin2gou.sakura.ne.jp_sblo_files_powerele_image_dsbasic_rx5-thumbnail2.jpg

buin2gou.sakura.ne.jp_sblo_files_powerele_image_dsbasic_rx4-thumbnail2.jpg

参考文献

以下のサイトを参考に開発しました。御礼を申し上げます。

特徴・概要・対象

DSbasicは上級者向けとなります。ベーシック言語を理解されている方、Arduinoのプログラミングができる方が対象です。 サンプルのスケッチには、未知のバグなどが含まれています。ご理解の上、利用ください。

動かすのに必要なもの

※上記の例では、アマゾンで販売されている爆安4.3inchモニターTVを使用しています。12V ACアダプタから分岐するケーブルがあると便利です。

部品表

Parts No Parts type Spec Akizuki No.
C1Capacitor0.1u, 5mm pitch
C4Capacitor220-470u, 3.5mm pitch
C5Capacitor1u, 5mm pitch
CN1Connector6pin Long Header
CN2Connector8pin Long Header
CN3Connector8pin Long Header
CN4Connector8pin Long Header
CN5Connector2×3 long pin header
CN6Connector2pin Terminal box
CN7ConnectorRJ-2410N/YC-06508
CN8ConnectorPS/2, MJ-373/6C-09018
CN9ConnectorRJ45, 7810-8P8CC-00159
D1LED3mm, Yellow
D2LED3mm, Green
D3LED3mm, Red
IC1'DIP SocketDIP Scoket
IC1MCUATMEGA328P DSCore R217書き込み済であること
IC2Motor DriverTB6643KQI-07688
R1Resistor1k, 1/4W
R2Resistor1k, 1/4W
R3Resistor1k, 1/4W
R4Resistor470, 1/4W
R5Resistor1k, 1/4W
R6Resistor6.8k, 1/4W
R7Resistor6.8k, 1/4W
R8Resistor6.8k, 1/4W
SW1Tackt SwitchSKHHLPA010P-07193

組み立て手順

  1. 部品をすべてそろえる。
  2. IC1のATMEGA328PにDSCore R217が書き込まれているか確認する。書き込み済みATMEGA328Pが付属しているキットの場合は飛ばして構いません。AVRisp mk2等を持っていなくて、Arduino IDEを使ってどうにかする場合は、フジガヤさんのメモを参照のこと。
  3. 背の低い部品からはんだ付けする。LEDや電解コンデンサは方向があるので注意する。
  4. 背の高い部品をはんだ付けする。RJ45やコネクタ類。
  5. はんだ付けが終わったら、テスタで5VとGNDを当てて、ショートしていないか確認する。ショートしていたら、はんだ付けミスをしているのでショートの個所を頑張って探します。
  6. 問題なければ、Arduino UNOに合体してPOWERのLEDが点灯しているか確認する。
  7. Arduino UNOに、所望のスケッチ(通常はDSbasicスケッチ)を書き込む
  8. ACアダプタをつなぎ、フィーダー線をつないで、PS/2キーボード、RCAケーブルをテレビにつないで、動作確認する。
  9. 「PWR 1(エンターキーを押す)」で、RUN LEDが付くか確認する。付けば動作OK。
  10. あとはお好きにお使いください。

DSbasicは、Tiny Basicをベースとしており、弘前大の解説ページなどの資料も参考にできます。

よく使うBasicコマンド

コマンド パラメータ コメント
NEWなし プログラムを初期化します。
RUNなし プログラムを実行します。
SAVEなし プログラムを保存します。
LOADなし 保存されたプログラムを復帰させます。
LISTなし プログラムの一覧を表示します。
MEMなし プログラムの残りの仕様可能量を表示します。
PRINT 文字や変数など 文字を表示できます。変数も表示できます。
DELAY 遅延時間(ms) 千分の1秒単位でウェイトさせます。
DWRITE ピン番号,出力状態 デジタル端子(Dx)でデジタル信号出力
AWRITE ピン番号,出力状態 アナログ端子(Ax)でデジタル出力
INKEY なし 入力されたキー番号を返します。

DSbasic 独自コマンド

コマンド パラメータ コメント
PWR電源ON/OFF(1 ON, 0 OFF) 線路への電源ON/OFFを制御します。
SPDDCCアドレス,速度(0-100)即時速度指定。速度は0(停止)~100(最高速度)。
SPXDCCアドレス,開始速度,完了速度,時間(1d=0.1sec) 徐々に加速、徐々に減速の速度指定
速度は0(停止)~100(最高速度)。
DIRDCCアドレス,方向(0 FWD, 1 REV) 進行方向を変えられます
FNCDCCアドレス,ファンクション番号,ON/OFF(1/0) ファンクションを操作できます
FNXDCCアドレス,ファンクション番号 ファンクションのモーメンタリ動作。OFF→ON→OFFを一気に行えます。
警笛とかで2行使うのは勿体無いので。
ACCDCCポイントアドレス,分岐/直進(分岐0, 直進1) DCCのポイントを切り替えできます
GS8S88デコーダ番号(8bit間隔) S88デコーダのデータを取得します。8bit間隔なので注意。
0を指定すると16bitタイプのS88デコーダであれば1~8のデータが取れます。
1を指定すると、9~16のデータが取れます。
2を指定すると、17~24のデータが取れます。設定できる範囲は0-3までです。

なお、公式には出していませんがスケッチをちょっとだけ改造することで、Marklin Motorolaの車両やポイントが操作できます。

DSbasic Editor

DSbasicをより一層便利に使えるWindows用の管理ソフト DSbasic Editorを開発しました。無償でご利用いただけます。 DSbasicスケッチR0.40b以降でご利用いただけます。

特徴:

DSbasicとのシリアル通信速度は38400bps固定になっています。DSbasicスケッチの古いバージョン(R0.40b以降ではないもの)では動きませんのでご注意ください。

Download

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円(個数に限らず一定額となります)です。

ユーザーレビュー