ユーザ用ツール

サイト用ツール


dsair2_basic

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
dsair2_basic [2019/02/14 17:18]
yaasan [DSair BASIC (DSbasic)]
dsair2_basic [2019/05/04 07:17] (現在)
yaasan [Special Thanks]
行 1: 行 1:
 ====== DSair BASIC (DSbasic) ====== ====== DSair BASIC (DSbasic) ======
  
-[[DSair2_ukeng]]+Keywords: BASIC, Programming, プログラミング, 教育, Education, Maker, DIY, interpreter, 
 + 
 +[[DSair2_ukeng]] ([[DSair2|JPN]])
  
 DSbasic is a very easy programming solution on your smartphone! This function works in DSair2's webapp on your browser.\\  DSbasic is a very easy programming solution on your smartphone! This function works in DSair2's webapp on your browser.\\ 
-DSbasicは、スマートフォン(Android,iOS)上で動作する、鉄道模型制御向けに最適化されたBASIC開発環境です。命令を打ち込んで実行するだけで、お好きな自動運転や、運転支援機能を実現できます。+DSbasicは、スマートフォン(Android,iOS)上で動作する、鉄道模型制御向けに最適化されたBASIC開発環境です。命令を打ち込んで実行するだけで、お好きな自動運転や、運転支援機能を実現できます。BASICファイルは、SDカードに置けば、ファイル一覧からロードできます。修正したプログラムは、スマホのメモリに保存できます。
  
-{{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/flashair_28Pixel20229-thumbnail2.png}}\\  +{{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/DSbasic_21-thumbnail2.png}}\\  
-[[http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/flashair_28Pixel20229.png|Large Image]]+[[http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/DSbasic_21.png|Large Image]]
  
  
行 20: 行 22:
   * Support Locomotive and Turnouts control via BASIC language   * Support Locomotive and Turnouts control via BASIC language
   * MP3 Play suported in MP3 files of FlashAir SD card.   * MP3 Play suported in MP3 files of FlashAir SD card.
-===== Function =====+===== BASIC Function ===== 
 + 
 +==== DSair2 Unique Functions ====
  
 LocAddr is Locomotive address. Default protocol is DCC. If you want to control Marklin's, configure protocol on web app. LocAddr is Locomotive address. Default protocol is DCC. If you want to control Marklin's, configure protocol on web app.
行 30: 行 34:
 |ACC| AccAddr, Direction| diverse=0, straight=1 | |ACC| AccAddr, Direction| diverse=0, straight=1 |
 |DIR| LocAddr, Direction| FWD=1, REV=2 | |DIR| LocAddr, Direction| FWD=1, REV=2 |
-|FNC| LocAddr, FuncNo, FuncON/OFF| FuncNo=0-28 | +|FNC| LocAddr, FuncNo, FuncON/OFF| FuncNo=0-28, FuncON/OFF=0(OFF) or 1(ON) 
-|FNX| LocAddr, FuncNo| FuncNo=0-28 |+|FNX| LocAddr, FuncNo| FuncNo=0-28,ファンクションのOFF->ON->ON操作をします。 |
 |MP3PLAY| FileName with Path | MP3PLAY "Horn.mp3"  | |MP3PLAY| FileName with Path | MP3PLAY "Horn.mp3"  |
 |MP3STOP| - | MP3STOP | |MP3STOP| - | MP3STOP |
-|GETACC| AccAddr(1-2044) | | +|GETACC| AccAddr(1-2044) |指定アドレスのポイント状態(0=div, or 1=str)を返します。 | 
-|S88START| - | | +|GETACCW| AccAddr(1-2044) |指定アドレス以降16個分のポイント状態(0=div, or 1=str)を返します。 | 
-|S88GET| S88Sensor address(1-16) | Supported 1 S88 decoder +|getslotaddr| SlotNo(0-3) | 4つのユーザー指定アドレススロットからアドレスを取得します。 | 
-|DCPWM| PWMDuty(0-1203) | |+|getslotspd| SlotNo(0-3) | 4つのユーザー指定アドレススロットから速度を取得します。 | 
 +|getslotfnc| SlotNo(0-3), FuncNo(0-28) | 4つのユーザー指定アドレススロットからファンクション状態(0=OFF,1=ON)を返します。 | 
 +|getslotfncw| SlotNo(0-3) | 4つのユーザー指定アドレススロットからファンクション状態を29bit分返します。 
 +|S88START| - | S88機能を有効にします。S88の関数を使う場合は必ずBASICプログラムの最初に記述して下さい。括弧はつけないでください。 
 +|S88GET,GETS88| S88Sensor address(1-16) | S88センサーの値(0=OFF,1=ON)を返します。 | 
 +|GETS88W| S88Sensor address(1-16) | S88センサーの値を16bit分返します。 
 +|DCPWM| PWMDuty(0-1023) | 
 +|DCDIR| Direction| FWD=1, REV=2 |
  
 The parameters of function mean as the followings.\\  The parameters of function mean as the followings.\\ 
行 50: 行 61:
 BASIC functions are described in [[https://github.com/google/wwwbasic|wwwbasic]] user manual. BASIC functions are described in [[https://github.com/google/wwwbasic|wwwbasic]] user manual.
  
-==== BASIC functions ====+==== Main functions ====
  
-FOR,NEXT,IF,GOTO,END IF,ELSE,WHILE,WEND, +  * FOR 
-PRINT,COLOR,LOCATE,LINE,PAINT +  * NEXT 
-RND,INT,SLEEP+  * IF 
 +  * GOTO 
 +  * END IF 
 +  * ELSE 
 +  * WHILE 
 +  * WEND 
 +  * CALL 
 +  
  
 +==== Drawing functions ====
 +
 +  * PRINT
 +  * COLOR
 +  * LOCATE
 +  * LINE
 +  * PAINT
 +  * CIRCLE
 +  * PUT
 +  * SCREEN
 +  * CLS
 +  * WIDTH
 +  * PALETTE
 +  * 
 +
 +==== Math functions ====
 +
 +asc, sqr, int, cint
 +abs, cos, sin, tan
 +atn, exp, log, rnd, atan2
 +
 +==== Text functions ====
 +
 +  * val 文字を数値に変換
 +  * str$  数値を文字列に変換
 +  * ltrim$ 左側文字列を抜き出す
 +  * rtrim$ 右側文字列を抜き出す
 +  * left$
 +  * right$
 +  * mid$
 +  * string$
 +  * space$ スペースを抜き出す
 +  * tab
 +  * ucase$ 英字を大文字にする
 +  * lcase$ 英字を小文字にする
 +  * mid$
 +  * 
 +
 +
 +
 +==== Key Input functions ====
 +
 +  * inkey$
 +  * input
 +
 +==== Mouse Input functions ====
 +
 +  * getmouse
 +  * 
 +
 +==== Etc functions ====
 +
 +  * timer
 +  * SLEEP
 +  * swap
 +  * 
 ===== Examples ===== ===== Examples =====
  
行 147: 行 221:
 ==== S88 decoder example ==== ==== S88 decoder example ====
  
-S88デコーダのセンサデータを取得するサンプルです。+S88デコーダのセンサデータを取得し、Roco BR621(Addr.3)の往復運転を行うサンプルです。 
 + 
 +Detail: [[http://powerele.sblo.jp/article/185548716.html|DSair2で自動運転をしてみる]]
  
 <code> <code>
 +screen(7)
 s88start s88start
-testb = getacc(1) + 
-test = s88get(1) +pwr 
-print s88get(2) +print "START S88 Control" 
-print s88get(3) + 
-print s88get(4) +dir 3,1 
-print s88get(5+fnc 3,0,1 
-print s88get(6) +fnc 3,1,1 
-print s88get(7+fnx 3,2 
-print s88get(8+spd 3,200 
-print s88get(9+ 
-print s88get(10+while s88get(1)=0  
-print s88get(11+print "RUN!" 
-print s88get(12+sleep 1000 
-print s88get(13+wend 
-print s88get(14+ 
-print s88get(15+print "S88 Adr.1 Detected" 
-print s88get(16)+spd 3,0 
 +sleep 2000 
 + 
 +print "REV" 
 +dir 3,2 
 +spd 3,200 
 +sleep 12000 
 +spd 3,0 
 + 
 +fnc 3,0,0 
 +fnc 3,1,0 
 + 
 +print "end." 
 +end 
 +</code> 
 + 
 + 
 +==== Speed based Announce example ==== 
 + 
 +This automatic announce program is triggered by slot 1 speed. 
 + 
 +[[http://powerele.sblo.jp/article/185561119.html|DSbasicで運転支援機能]] 
 + 
 +{{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/DSbasic_21-thumbnail2.png}} 
 + 
 +<code> 
 +screen(7) 
 + 
 +print "Announce supporter" 
 +print "Addr:";getslotaddr(0
 +print "Speed:";getslotspd(0
 + 
 +state=0 
 +currentspd = getslotspd(0
 + 
 +while 1  
 + 
 +sleep(1000
 +if currentspd<>getslotspd(0then 
 +print "Current Speed is ";getslotspd(0
 +currentspd = getslotspd(0
 +end if 
 + 
 +if state=0 then 
 +if getslotspd(0)>512 then 
 +state = 1 
 +print "Next Station" 
 +mp3play "NextStationAnnounce.mp3" 
 +end if 
 +end if 
 + 
 +if state=1 then 
 +if getslotspd(0)<100 then 
 +state = 0 
 +print "Stop at Station" 
 +mp3play "StopStationAnnounce.mp3" 
 +end if 
 +end if 
 +wend
 end end
 </code> </code>
 ===== Hints ===== ===== Hints =====
  
-==== 文字を大きくする ====+==== Font size / 文字を大きくする ====
  
 screen(7)コマンドを最初に宣言すると、文字が大きくなります(おおよそ二倍) screen(7)コマンドを最初に宣言すると、文字が大きくなります(おおよそ二倍)
行 180: 行 315:
 </code> </code>
  
 +==== Comment / コメント ====
 +
 +If you want to use comment, type like the following.
 +
 +<code>
 +'Comment example
 +'コメントです
 +</code>
 ==== 関数・サブルーチンを宣言する ==== ==== 関数・サブルーチンを宣言する ====
  
行 224: 行 367:
 NEXT i NEXT i
 </code> </code>
 +
 +
 +
 +===== 活用例 =====
 +
 +皆様のDSbasicの活用例、サンプル、解説などお待ちしております。
 +
 +  * [[http://powerele.sblo.jp/article/185725380.html|DSbasicでポイントを使った自動運転をしてみた]] (DesktopStation公式ブログ)
 +  * [[https://tsujiru.hatenablog.com/entry/2019/04/30/195231|DSbasic 入門してみる(1)]],[[https://tsujiru.hatenablog.com/entry/2019/04/30/211900|(2)]],[[https://tsujiru.hatenablog.com/entry/2019/05/01/195229|(3)]],[[https://tsujiru.hatenablog.com/entry/2019/05/01/195229|(4)]],[[https://tsujiru.hatenablog.com/entry/2019/05/02/123319|(5)]],[[https://tsujiru.hatenablog.com/entry/2019/05/02/192817|(6)]],[[https://tsujiru.hatenablog.com/entry/2019/05/03/193437|(7)]] (つじるの忘れんぼ鉄道)
 +  * [[http://powerele.sblo.jp/article/185561119.html|DSbasicで運転支援機能]]  (DesktopStation公式ブログ)
 +  * [[http://powerele.sblo.jp/article/185548716.html|DSair2で自動運転をしてみる]]   (DesktopStation公式ブログ)
 +  * [[https://desktopstation.net/bb/showthread.php?tid=126|DSbasic (DSair用BASIC) 相談室]] デジタル鉄道模型フォーラム
  
  
行 229: 行 384:
 ===== Special Thanks ===== ===== Special Thanks =====
  
-DSbasic is powered by wwwbasic and Ace text editor.+DSbasic is powered by [[https://github.com/google/wwwbasic|wwwbasic]] and Ace text editor.
dsair2_basic.1550132337.txt.gz · 最終更新: 2019/02/14 17:18 by yaasan