「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



というわけで、さらにFreeBASICを少しいじる。

SerialPort関係の通信が、ほんとに簡単にできちゃう
のかとか、グラフィック表示はどんななのか。

まぁ、WindowsみたいなUIのGUIは無理だろうけど、
ちょっと簡単なグラフィック表示するだけなら
何とでもできるだろうと。

(実は、WindowsのUIはともかく、イベントドリブン
 な、いわゆるWindows的なコーディングスタイルは
 可能らしい。へぇ)




まず、serial関係をやってみる。生きてるポートを
探して、その後で固定ポート名でなにやら文字を
出力するという感じで。
(ブログの仕様上、インデント消えちゃうけどご容赦)


dim i as integer
dim ret as integer

' *** for windows,dos ***
for i=1 to 15
ret = open com ("com" + str(i) + ":9600" as 1)
if ret = 0 then
print "o " + str(i) + " port is alive."
close 1
else
print "x " + str(i) + " port is closed."
end if
next i

' *** for linux (usb serial port) ***
for i=0 to 10
ret = open com ("/dev/ttyUSB" + str(i) + ":9600" as 1)
if ret = 0 then
print "o ttyUSB" + str(i) + " is alive."
close 1
else
print "x ttyUSB" + str(i) + " is closed."
end if
next i


' *** for windows,dos ***
open com "com1:9600,n,8,1" as 1

print #1, "string output via serial port." + chr(13, 10)
print #1, "9600bps bit-length=8 parity=non stop-bit=1" + chr(13,10)

close #1

' *** for linux (usb serial port) ***
open com "/dev/ttyUSB0:9600,n,8,1,cs0,ds0,cd0" as 1

print #1, "string output via serial port." + chr(13, 10)
print #1, "9600bps bit-length=8 parity=non stop-bit=1" + chr(13,10)

close #1


DOS/Windowsみたいな「com1」とかっていう番号で探す
のと、Linuxみたいに「/dev/ttyナントカ」って探すの
両方やってみて、結果はretって変数で読み出す。

んで、Ubuntu使ってたんで、/dev/usbTTY0に文字列
出力してみて、なんか出てきたことを確認。

(自動的にcomナントカには割り振られないんだなぁ)




次、グラフィック関係。適当にLine文で色の線を
描いたり、その上でprint文で文字書いたらどう
なるか、みたいな実験。


dim as integer x1, y1, x2, y2, c ,i
dim s as string

screenres 640, 480, 8
randomize

cls

for i=0 to 1000
x1 = (rnd * 640)
y1 = (rnd * 480)
x2 = (rnd * 640)
y2 = (rnd * 480)
c = (rnd * 16)
line (x1, y1) - (x2, y2), c
next i

color 15
locate 10, 10
input "input any word : ", s
print "input text is .. " + s
print "push any key!!!"

sleep


結果から言うと、



こんな風に表示できた。描画も結構速い。
文字は、グラフィック表示のルーチンを使うと、自動で
コンパイラが出力先を標準出力からグラフィック画面に
切り替えるみたい。
(グラフィックと標準出力を合わせたい場合は、
 標準出力用の命令使わないといけないみたい)

場所はlocateで指定できるし、改行も勝手にするし、
input文もこのとおり使える。ただ、文字の裏にあった
グラフィックが消える。イメージ的にはFM-7みたいだな。
妙に懐かしい。



ちなみに、グラフィック関係の処理を動かそうとすると、
ncursesだけだとエラーになっちゃうので、以下のライブラリ
もインストールする必要があるみたい。日本語マニュアルの
サイトにも書いてある。

http://www.excite-webtl.jp/world/english/web/?wb_url=http%3A%2F%2Fwww.freebasic.net%2Fwiki%2Fwikka.php%3Fwakka%3DCompilerInstalling%26wb_dis%3D3&wb_lp=ENJA&reload=1

・libxrandr-dev
・libx11-dev
・libxext-dev
・libxpm-dev
・libxrandr-dev
・libxrender-dev

あと、もしかしたら

・libffi-dev
・libgl1

もかな?オイラは今のところまだ入れてない。



それにしても、やっぱBASICはなじむな。頭に
思いついたコードをバシバシ書いて、コンパイル
してみると、大体通る。わかんないところとか
方言だけ調べれば、後はどうとでも。

ちょっとしたツールにはもってこいなんだけど、
やっぱ、gui関係の画面作るのメンドイよな、って
思ってたら、


FreeBasicでglade/Gtkを使うっていう変換ソフト
とかそろってるみたい。

www.siebke.com/freebasic/howto_glade_freebasic.pdf

glade使って画面をVSみたいにサクサク描いて、
出力した画面定義のxmlを、「galde2bas」って
ソフトを使ってFreeBASICのコードに変換して
くれるらしい。

こいつをコンパイルのときに読み込ませてやればいい
みたい。

うーーーーん。なんか、一気に環境がそろっちゃった感
があるなぁ。

まともに動くなら、あれこれFreeBASICで動かしてみたい
気もする。

でもまぁ、でっかい開発とかはあまり推奨してない
みたいだし、OSとかを自分で作っちゃうのも推奨
してないみたいだもんな。ツール用だな。





http://www.highriskrevolution.com/gamelife/index.php?e=393

Ysの開発の歴史の一幕。へぇ。

でも、オイラ的には1と2はちゃんとつながってたと
思うし、それより、Originの設定とかストーリーとか、
すごくよかったよな。アドルの時代までの話の設定
にちゃんとつながってて。




https://twitter.com/HayakawaYukio/status/587136828605534209

お。こう見ると、西ノ島がどのくらいの大きさなのか
がよくわかるなぁ。米塚と同じくらいのスコリア丘
なのか。その昔、米塚の噴火もあんな感じだったん
だろうか。






http://akizukidenshi.com/catalog/g/gP-09190/

秋月で、表面実装用のDIP8ピンソケットっていう、
なんだかよくわからないものが。

これがあれば、表面実装基板のアンプ回路で、
オペアンプをとっかえひっかえできちゃうって
魂胆なのかな?



コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする