FUJI-SAKURAさくっと作っちゃいましたオレ流開発環境&ポーティング発表会たろサ(@momoonga)山本三七男さくっとLua移植
2自己紹介ハードウェアスクリプト制御研究会ABC2012で発表・生産技術研究所協力の元、Androidによるマイクロ送液システムを試作。・AndroidではLuaスクリプトが動いており、送液制御を行っている。溝幅 30μmカメラ画像カメラ(株)...
3自己紹介GR-SAKURA上で動くLua開発環境さくるあ(SakuLua)githubで公開中
4外 観SDカードスロットUSBシリアル
5回路図
6仕 様FM3基板のCN4のピンに対してPIOの制御ができる。・コネクタ番号(1~14)を指定して制御します。・0番はLED接続ピンに割り当てています。
7仕 様PCとのシリアル接続が可能SDカードへの読み書きが可能
8コマンド説明== PIO関連コマンド ==■ pinMode( pin, mode ) ピンのモードを設定します。  pin: ピンの番号  mode:    0: INPUTモード    1: OUTPUTモード■ digitalWrite...
9スクリプトの起動sakulua.xml に起動ファイル<?xml version="1.0" encoding="utf-8" standalone="yes"?><Config><Start file="linesrun.lua" /></...
10Lチカスクリプト--ledchika.lua--pinMode( 0, 1 ) --0 が LEDdigitalWrite(0, 0) --0 を LOWwhile(true)dodelay(250)pinMode( 0, 0 ) --0 ...
11ターミナルからの操作
12ターミナルからの操作Serial.print("n")if(m:len()==0)thenSerial.println("n loader.lua Running...")sys.setrun("loader.lua")elsem = m:...
13ターミナルからの操作
14ターミナルからの操作
15ターミナルからの操作ローダスクリプト----LuaLoaderfm=""Serial.print("nInput Lua filename>")while(true)do repeat  k = Serial.read() until(k>...
16ターミナルからの操作Lチカ の様子http://www.youtube.com/watch?v=iBpYFntKSeo
ご清聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

開発ツールさくっと作ってみた発表資料

530 views

Published on

Published in: Self Improvement
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
530
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

開発ツールさくっと作ってみた発表資料

  1. 1. FUJI-SAKURAさくっと作っちゃいましたオレ流開発環境&ポーティング発表会たろサ(@momoonga)山本三七男さくっとLua移植
  2. 2. 2自己紹介ハードウェアスクリプト制御研究会ABC2012で発表・生産技術研究所協力の元、Androidによるマイクロ送液システムを試作。・AndroidではLuaスクリプトが動いており、送液制御を行っている。溝幅 30μmカメラ画像カメラ(株)アクアテックリングポンプ RP-Q1神戸支部PIC ADKMiniboardスマートフォンのカメラを顕微鏡代わりに使っています。
  3. 3. 3自己紹介GR-SAKURA上で動くLua開発環境さくるあ(SakuLua)githubで公開中
  4. 4. 4外 観SDカードスロットUSBシリアル
  5. 5. 5回路図
  6. 6. 6仕 様FM3基板のCN4のピンに対してPIOの制御ができる。・コネクタ番号(1~14)を指定して制御します。・0番はLED接続ピンに割り当てています。
  7. 7. 7仕 様PCとのシリアル接続が可能SDカードへの読み書きが可能
  8. 8. 8コマンド説明== PIO関連コマンド ==■ pinMode( pin, mode ) ピンのモードを設定します。  pin: ピンの番号  mode:    0: INPUTモード    1: OUTPUTモード■ digitalWrite( pin, value ) ピンのHigh, Lowをセットします。  pin: ピンの番号  mode:    0: LOW    1: HIGH■ digitalRead( pin ) ピンの状態を取得します。  pin: ピンの番号    0:LOW    1:HIGH■ delay( msec ) 指定時間(ms)待ちます。   msec: 時間(ms)== シリアル関連コマンド ==■ Serial.print( [str] ) シリアルに出力します。  str: 文字列    省略時は何も出力しません■ Serial.println( [str] ) シリアルにrn付きで出力します。  str: 文字列  省略時はrnだけ出力します。■ Serial.read() シリアルから1バイト取得します。  戻り値   0x00~0xFFの値、   データが無いときは-1が返ります。■ Serial.write( buf, len ) シリアルにデータを出力します。  buf: 出力データ  len: 出力データサイズ 戻り値  出力したバイト数== SDカード関連コマンド ==■ SD.read( number ) オープンしたファイルから1バイト読み込みます。  number: ファイル番号 0 または 1 戻り値  0x00~0xFFが返る。ファイルの最後だったら-1が返る。■ SD.seek( number, byte ) オープンしたファイルの読み出し位置を移動する。  number: ファイル番号 0 または 1  byte: seekするバイト数(-1)でファイルの最後に移動。 戻り値  成功: 1, 失敗: 0■ SD.write( number, buf, len ) オープンしたファイルバイナリデータを書き込む。  number: ファイル番号 0 または 1  buf: 書き込むデータ  len: 書き込むデータサイズ 戻り値  実際に書いたバイト数■ SD.open( number, filename[,mode] ) ファイルをオープンします。  number: ファイル番号 0 または 1  filename: ファイル名(8.3形式)  mode: 0:Read, 1:Append, 2:New Create 戻り値  成功: 番号, 失敗: -1■ SD.close( number ) ファイルをクローズします。  number: ファイル番号 0 または 1== システム関連コマンド ==■ sys.setrun( filename ) Luaファイルを実行します。  filename: 実行するLuaファイル名■ sys.ver() バージョンを取得します。 戻り値  SakuLuaのバージョン■ sys.exit() 終了します。■ delay( msec ) 指定時間待ちます。  msec: 時間(ms)■ El_Psy_Congroo()
  9. 9. 9スクリプトの起動sakulua.xml に起動ファイル<?xml version="1.0" encoding="utf-8" standalone="yes"?><Config><Start file="linesrun.lua" /></Config>
  10. 10. 10Lチカスクリプト--ledchika.lua--pinMode( 0, 1 ) --0 が LEDdigitalWrite(0, 0) --0 を LOWwhile(true)dodelay(250)pinMode( 0, 0 ) --0 を入力にしてHigh Zで電流を流さないdelay(250)pinMode( 0, 1 ) --0 を出力にして電流を流すendsys.exit()
  11. 11. 11ターミナルからの操作
  12. 12. 12ターミナルからの操作Serial.print("n")if(m:len()==0)thenSerial.println("n loader.lua Running...")sys.setrun("loader.lua")elsem = m:gsub("^%s*(.-)%s*$", "%1")SD.open( 0, "linesrus.lua", 2 )SD.write(0, m, m:len())m=";if(a~=nil)then Serial.println(a) end;"SD.write(0, m, m:len())SD.close(0)sys.setrun("linesrus.lua")endLuaスクリプト--Multi Lines Runrepeat k=Serial.read() until(k<0)Serial.println("Input end with [Ctrl-z]")m=""while(true)dorepeatk = Serial.read()until(k>0)if(k==26)then break endif(k==8)thenm=m:sub(1,m:len()-1)elsem=m..string.format("%c",k)endSerial.print(string.format("%c",k))end
  13. 13. 13ターミナルからの操作
  14. 14. 14ターミナルからの操作
  15. 15. 15ターミナルからの操作ローダスクリプト----LuaLoaderfm=""Serial.print("nInput Lua filename>")while(true)do repeat  k = Serial.read() until(k>0)  if(k==10)then break end  fm=fm..string.format("%c",k)  Serial.print(string.format("%c",k))endfm = fm:gsub("^%s*(.-)%s*$", "%1")Serial.println("nFilename:["..fm.."]")fp = 0SD.open( fp, fm, 2 )SD.write( fp, "--"..fm.."n", fm:len()+3 )eflg=0while(true)do t=1000 repeat  t = t - 1  k = Serial.read()  if(t<0)then   Serial.println("Close?(Enter)")   repeat    l = Serial.read()   until(l>0)if(l==10 or l==13)theneflg = 1breakelsek=lendt=1000end  if(k==0)then k=10 end  delay(1) until(k>0) if(eflg==1)then break end SD.write( fp, string.format("%c",k), 1 ) Serial.print(string.format("%c",k))endSD.close( fp )sys.setrun(fm)
  16. 16. 16ターミナルからの操作Lチカ の様子http://www.youtube.com/watch?v=iBpYFntKSeo
  17. 17. ご清聴ありがとうございました

×