dsbasic
文書の過去の版を表示しています。
DSbasic
DSbasicは、DCC対応の鉄道模型をBasicで制御するための機器です。ArduinoにDSbasicシールドを装着し、PS/2キーボードとTVがあればご利用になれます。DSbasicを動かすためのパソコンは不要です。
参考文献
以下のサイトを参考に開発しました。御礼を申し上げます。
- Arduino版tiny Basicを使ったものづくり 弘前大学教育学部
特徴・概要・対象
DSbasicは上級者向けとなります。ベーシック言語を理解されている方、Arduinoのプログラミングができる方が対象です。 サンプルのスケッチには、未知のバグなどが含まれています。ご理解の上、利用ください。
動かすのに必要なもの
- TV, モニタ(RCA端子搭載、デジタル系は一切不可)
- PS/2キーボード(USBは未対応のもの)
- ACアダプタ
- DSbasic Shield
- Arduino UNO(互換機も可)
- スケッチを書き込むパソコンとUSBケーブル
※上記の例では、アマゾンで販売されている爆安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 |
組み立て手順
- 部品をすべてそろえる。
- IC1のATMEGA328PにDSCore R217が書き込まれているか確認する。書き込み済みATMEGA328Pが付属しているキットの場合は飛ばして構いません。AVRisp mk2等を持っていなくて、Arduino IDEを使ってどうにかする場合は、フジガヤさんのメモを参照のこと。
- 背の低い部品からはんだ付けする。LEDや電解コンデンサは方向があるので注意する。
- 背の高い部品をはんだ付けする。RJ45やコネクタ類。
- はんだ付けが終わったら、テスタで5VとGNDを当てて、ショートしていないか確認する。ショートしていたら、はんだ付けミスをしているのでショートの個所を頑張って探します。
- 問題なければ、Arduino UNOに合体してPOWERのLEDが点灯しているか確認する。
- Arduino UNOに、所望のスケッチ(通常はDSbasicスケッチ)を書き込む
- ACアダプタをつなぎ、フィーダー線をつないで、PS/2キーボード、RCAケーブルをテレビにつないで、動作確認する。
- 「PWR 1(エンターキーを押す)」で、RUN LEDが付くか確認する。付けば動作OK。
- あとはお好きにお使いください。
DSbasicは、Tiny Basicをベースとしており、弘前大の解説ページなどの資料も参考にできます。
DSbasic 独自コマンド
コマンド | パラメータ | コメント |
---|---|---|
PWR | 電源ON/OFF(1 ON, 0 OFF) | 線路への電源ON/OFFを制御します。 |
SPD | DCCアドレス,速度 | 即時速度指定 |
SPX | DCCアドレス,開始速度,完了速度,時間(1d=0.1sec) | 徐々に加速、徐々に減速の速度指定 |
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の車両やポイントが操作できます。
Download
- DSbasic スケッチ 2016/7/14 更新 R0.21
- DSbasic スケッチ 2016/7/13 更新 R0.2
更新履歴:
フジガヤさんに指摘されたバグを修正。
S88デコーダの情報を読む関数GS8を追加。
頒布
- 基板のみ 試作基板(配線ミスが有るため要改造)は無償、ただし無償なのでフィードバックやレビュー記事をWebに投稿が条件
ユーザーレビュー
- フジガヤさん DSbasicを試す
- hhiroseさん DS basic
dsbasic.1469099840.txt.gz · 最終更新: 2016/07/21 20:17 by yaasan