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



http://japanese.engadget.com/2015/04/16/xyz-4-9800-3d-jr-1-0-sd/

ダビンチシリーズの新しい3Dプリンタ、ダビンチJr.1.0。
なんと5万円を割ってきた。

15cm×15cm×15cmだけど、結構小さめで軽いみたい。


ダビンチはなぁ、確かスライサー/フロントエンドが
固定だった気がするんだよな。あと、フィラメント
のロールも微妙に特殊だったような…

で、ちょっと調べてみたら、

http://blog.livedoor.jp/take_z_ultima/archives/52390823.html

なんか、ほかのスライサーが使えるかも!?みたいな
情報が。

いいねぇ。欲しいねぇ。
スライサーは、できれば使い慣れたCureがいいなぁ
と思うんだけど、まぁ、いざとなれば別のでも
そんなに気にしない。フィラメントのランタイム
コストかな。





スイッチサイエンスに、Arduino Zero Proが再入荷
したみたい。DUEとの比較が載ってた。

http://trac.switch-science.com/wiki/zeropro_vs_due

DUEほどの大げささは要らなくても、もうちょっと
メモリが欲しいな、と思ったら、やっぱZero Proは
魅力的なんだよな。



そいういえば、USBシリアル変換チップじゃなくて、
内蔵USBでつながってるって点では、Leonardoと
おんなじ感じだろうと思うんだけど、リセット周り
が気になってるんだよな。ソフトウェアリセット
はともかく、ハード基板上のリセット押したときの。

Windowsから見ると、やっぱいきなりデバイスが消失
しちゃうイメージなのかな?





http://www.nicovideo.jp/watch/sm26036324

東海道、その44が来てた。





http://headlines.yahoo.co.jp/hl?a=20150416-00010002-wmap-soci.view-001

明日も雷様来るかも、なのか。うまいことデータ
取れないかな。





http://www.atmarkit.co.jp/ait/articles/1004/02/news097.html

Windowsアップデート、自動再起動はレジストリで
抑制できるのか。
今のところ、「更新だけ確認」して、「ダウンロード
は手動」にしてあるので、ふと気を抜いたら大変な
ことに…とはならないんだけど、でもやっぱ
ちょいちょいアップデートのバルーンが出てくるのが
鬱陶しいよなぁ…


レジストリいじるのが、ちょっとやなんだよな。



コメント ( 0 )




一応、準備は備えておいた。というわけで、1発だけ
データが拾えたみたい。


昨日のArduinoのスケッチをほぼそのまんま動かすと、
シリアルターミナルでデータ垂れ流しになるので、
そいつを使って拾ったデータ。その付近だけを
抽出すると、こんな感じ。


reg0=3E reg1=22 reg2=C2 reg3=0 reg4=16 reg5=14 reg6=A reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=16 reg5=14 reg6=A reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=16 reg5=14 reg6=A reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=16 reg5=14 reg6=A reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=70 reg5=88 reg6=0 reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=35 reg5=AA reg6=0 reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=DC reg5=B1 reg6=0 reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=B1 reg5=3A reg6=1 reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=8F reg5=48 reg6=1 reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=7 reg5=9D reg6=1 reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=29 reg5=45 reg6=2 reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=42 reg5=4F reg6=2 reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=FB reg5=57 reg6=2 reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=E4 reg5=5D reg6=2 reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=47 reg5=5F reg6=2 reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=BC reg5=64 reg6=2 reg7=3F reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=B7 reg5=69 reg6=2 reg7=3F reg8=7
LIGHTNING DETECT
D=6km
Watching........
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=D5 reg5=6D reg6=2 reg7=6 reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=D5 reg5=6D reg6=2 reg7=6 reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=D5 reg5=6D reg6=2 reg7=6 reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=D5 reg5=6D reg6=2 reg7=6 reg8=7
reg0=3E reg1=22 reg2=C2 reg3=0 reg4=D5 reg5=6D reg6=2 reg7=6 reg8=7


(このデータは、お好きなようにお使いください)

うーん、見づらい。CSV形式で出力するように、後で
スケッチを変えよう。っていうか、LCD表示と、
ロギングの機能を分けよう。

ちなみに、6kmってのはうそだな。そんな近いところに
落ちてない。雷レーダーで眺めてみると、いくつか
それっぽいのが思い当たりそうなんだけど、どれかは
よくわかんなかった。まぁ、それはいいや。



で、これは9600bpsで垂れ流しなので、1行あたり、
0.1秒弱。毎秒13行くらいみたい。

で、雷を検出したっていう割り込み信号が来る前に、
レジスタ4と5(それぞれ落雷のエネルギーのLSBとMSB)
に数値が現れ始めて、13行してから「LIGHTNING…」と
出てきてる。
レジスタが変化し始めてから、割り込みがかかるまで、
1秒くらい時間が経ってるなぁ。
その前後はきれいさっぱりデータが変わってない。


データ眺めると、その何十秒だか数分だか前にも、
レジスタ4と5に値が入って変化してる行があるん
だけど、これも雷じゃぁないかなぁ。3~4行だけ
なんだけど。
ノイズとかディスターブとかって表示はなかった。




ここから考えられることは、落雷の先頭で割り込み信号
が出るわけじゃなく、ある程度落雷が進んでから
(というか、終わってから?)割り込みが発生して
いるってことかな。

スケッチ見返すと、LIGHTNING…の表示の後に、1.3秒
時間稼ぎの処理が入ってるんだよな。この間のデータ
が見えないから、なんともいえないなぁ。

このログ取得と落雷の光を同時に観測できてれば、
その辺の勘所も判るはずなんだけど、これだけ
だと情報不足。できれば、夜に来てくれないかな?

それにしても、レーダーだと、40km圏内にはもう少し
落ちてたんじゃないかって思えるんだけどな。
感度の問題なのか、それとも室内においてあった
からなのか…




今日の落雷の数から考えても、レジスタ4と5の値が
変化してるタイミングを考えれば、落雷以外のノイズ
でレジスタ4と5が変化することは皆無と見てよい
みたいだな。

であれば、割り込み信号を受けてシャッター開く
んじゃなく、レジスタ4と5を受けて、先に
シャッター開いちゃう手もありそう。問題は、
どのくらい変化したら「落雷」と判断するか、かな。
このログだと、0.1秒程度の精度しかないからなぁ。




この秋月の雷センサーで使ってるIC、どんな計算
してるんだろうねぇ?
500kHzの電磁波を、かなり厳密にキャリブレーション
して、内部でも3.5%くらい?の超細いバンドパス
フィルターで抽出しているみたいなんだけど、この
500kHzって、何か深い意味があるんだろうか?






http://www.cnn.co.jp/fringe/35063233.html?tag=cbox;fringe

おぉ。冥王星のカラー写真。
カロンって、こんなに近くにあるのかな?それとも
まだ大きく写せるほど近くじゃないから、画像処理
で伸ばしたらこうなったのかな?



コメント ( 0 )




明日夜は、雷来るかもしれない予報。

というわけで、秋月で買っておいた雷センサー。

http://akizukidenshi.com/catalog/g/gK-08685/

こないだ作ったケーブルレリーズシールドにもなる
アレに、雷センサーを取り付け。



秋月の製品ページで公開されているサンプルスケッチ
を元に、特定の液晶じゃなく、シリアルポートにデータ
を出力できるようにちょこっと改造。
(そのスケッチは後述)


ただし、ピン配置については、DFrobot社のLCDシールド
と合わせて使いたかったので、D5の代わりに、ピン入力
割り込みが使えるD2に変えてみた。


で、動かしてみる…。

とりあえず、I2Cの通信はできてるみたいなんだけど、
500kHzのキャリブレーションがはたらかない。なんで
だろうと思って色々スケッチを見返してみるも、
反応無し。

これは、モジュールがだめってことか?と思ったら、
そうではなかった。

雷センサーモジュールのI2C以外の端子=雷検出の
ピン割り込み用、およびキャリブレーション時の
周波数信号出力用は、D5(固定)に繋がないと
うまくいかないらしい。

理由は、「FreqCounter.h」ライブラリが、16ビット
タイマのキャプチャ機能を使っているかららしく、
コードの中身をちょっと読んでみて解った。



あぁ、困った。ピン配置変えるだけじゃぁすまない
んだよな。LCDシールドがこれだから。

というわけで、対応策を考えてみる…



ソフト的にピンの変化の回数を拾って、回数を
延べ時間で割れば、平均周波数が出てくるだろう、
と思ったんだけど、やってみると、遅い周波数なら
かなり正確な値が出るのに、500kHzに近づくと誤差
がでかくなる。

理由を考えてみる…
多分、時間計測その他でArduinoコアで発生している
タイマ割り込みが悪さしているのかと。なにしろ、
16MHzでも500kHzを計るには、32クロック間隔。
elfファイルから逆アセンブリリスト眺めてみても、
ソフトでピン変化を見るのはぎりぎりのクロック数。

ってことは、割り込みが挟まれば、間違えなく誤差
として計上されちゃう。これだ、多分。



というわけで、ソフト的に図るという手段はだめ
っぽい。別の方法を考える。


キャリブレーション時にD5から入力できて、雷待ち
のときはD2から入力してもかまわないわけだから、
その間隙を突くことにする。

さっきの写真のように、D5とD2の間に1kΩの抵抗
を取り付けて、キャリブレーション時にはD5を入力
に設定しておいて、それが終わったらD5は出力に。
→つまりLCD出力用に切り替え。

D2は、ピン変化割り込みがネイティブで利くので、
元々ピン選択としてはこっちのほうがいいだろうと。




とりあえず、キャリブレーションが終わったら、
レジスタのダンプがだらだらと出るだけ。

キャリブレーションの様子。とりあえず、ぶっ壊れず
動くみたい。まぁあたりまえ。



こうなって、キャリブレーションが終わったら、
あとはレジスタの中身がだらだらと出てくる。



部屋の中の電磁ノイズを拾うみたいで、時々こんな
メッセージが出てくる。



というわけで、D2とD5が1kΩで繋いじゃえば、
インターバルタイマや、雷にシンクロして
シャッター切るみたいな用途なら、これで
いいんじゃないかなと。



というわけで、秋月からダウンロードした
Arduino用スケッチの改造版。
(ちょっと、無駄に長い、かつ、まだピンチェンジ
 割り込みとか組み込んでない)

//AS3935 SCL = A5
//AS3935 SDA = A4
//AS3935 IRQ = D5 -> D2
//AQM1602 SCL = A5
//AQM1602 SDA = A4
//USE 5V PWR

#include <Wire.h>
#include <FreqCounter.h>

#define AS3935_ADRS 0x00

#define AFE_GB  0x1F  // ANALOG FRONT END GAIN BOOST = 12(Indoor) 0x00 to 0x1F
#define NF_LEV  0x02  // NOIS FLOOR LEVEL 0x00 to 0x07
#define WDTH    0x02  // WATCH DOG THRESHOLD 0x00 to 0x0F

String OUT_STRING;
byte reg0,reg1,reg2,reg3,reg4,reg5,reg6,reg7,reg8,reg3A,reg3B,reg3C,reg3D,regDUMMY;
unsigned long enargy;
unsigned int distance;
long int freq;
long int OLD_BUFFER = 10000;
long int NOW_BUFFER = 0;
int C;
long int F;
byte CAP_RESULT;
  

void ByteWrite(byte reg, byte data)
{
  Wire.beginTransmission(AS3935_ADRS);
  Wire.write(reg);
  Wire.write(data);
  Wire.endTransmission();
  delay(50);
}

byte ByteRead(byte reg)
{
  byte data = 0;
  Wire.beginTransmission(AS3935_ADRS);
  Wire.write(reg);
  Wire.endTransmission(false);
  Wire.requestFrom(AS3935_ADRS,1);
  data = Wire.read();      // 1バイトを受信
  return data;
}

void resistorRead(void)
{
  Wire.beginTransmission(AS3935_ADRS);
  Wire.write(0);
  Wire.endTransmission(false);
  Wire.requestFrom(AS3935_ADRS,9);
  reg0 = Wire.read();
  reg1 = Wire.read();
  reg2 = Wire.read();
  reg3 = Wire.read();
  reg4 = Wire.read();
  reg5 = Wire.read();
  reg6 = Wire.read();
  reg7 = Wire.read();
  reg8 = Wire.read();
  Wire.beginTransmission(AS3935_ADRS);
  Wire.write(0x3A);
  Wire.endTransmission(false);
  Wire.requestFrom(AS3935_ADRS,4);
  reg3A = Wire.read();
  reg3B = Wire.read();
  reg3C = Wire.read();
  reg3D = Wire.read();
  
}

void setup()
{
  pinMode(2,INPUT);
  pinMode(5,INPUT);
  

  Wire.begin();
  Serial.begin(9600);          // start serial communication at 9600bps
  Serial.println("READY");   // print the reading
  Serial.print("IRQ from D2 = ");
  Serial.print(2);
  Serial.print(" (now : ");
  Serial.print(digitalRead(2));
  Serial.println(")");
  
  DISP_OPENNING();
  INIT_AS3935();
}

void loop()
{
  Serial.println();
  while(1)
  {
    if (digitalRead(2)== HIGH) INT_DETECTS(); 
    resistorRead();
    serialDisplay2();
  }
}

void INT_DETECTS(void)
{
  byte reg3buffer;
  delay(4);
  resistorRead();
  reg3buffer = reg3 & 0x0F;          //interrupt reason
  if (reg3buffer == 0x01) INT_NH();  // noise too high
  if (reg3buffer == 0x04) INT_D();   // disturber 
  if (reg3buffer == 0x08) INT_L();   // lightning
}

void INT_NH(void)  //noise level too high
{
  Serial.println();
  OUT_STRING = "Nois Level High ";
  delay(700);

  serialDisplay();

  OUT_STRING = "Watching........ ";
  Serial.println(OUT_STRING);
}

void INT_D(void)  //disturber detected
{
  Serial.println();
  OUT_STRING = "Disturber DETect";
  delay(700);

  serialDisplay();

  OUT_STRING = "Watching........";
  Serial.println(OUT_STRING);
}

void INT_L(void)  //lightning interrupt
{
  OUT_STRING = "LIGHTNING DETECT";
  Serial.println(OUT_STRING);

  enargy = (((reg6 & 0x0F) * 65536)+ (reg5 * 256)+ (reg4)) & 0x0FFFFF;
  distance = (reg7 );
  OUT_STRING = " E=" + String(enargy) + " D=" + String(distance) + "km";
  if(reg7 == 0x01)  OUT_STRING = " E=" + String(enargy) + " OvrHed";
  if(reg7 == 0x3F)  OUT_STRING = " E=" + String(enargy) + " OutRng";
  Serial.println(OUT_STRING);
  delay(1300);

  OUT_STRING = "Watching........";
  Serial.println(OUT_STRING);
}

void INIT_AS3935(void)
{
  ByteWrite(0x3C,0x96);           // preset default
  ByteWrite(0x3D,0x96);           // calib_RCO
  ByteWrite(0x00,(AFE_GB << 1));  // SET ANALOG FRONT END GAIN BOOST
  ByteWrite(0x01,((NF_LEV << 4) | WDTH));
  ByteWrite(0x03,0x00);           // FRQ DIV RATIO = 1/16
  CALIB_LCO();
}

void CALIB_LCO(void)
{
  Serial.println();
  delay(20);
  OUT_STRING = "NOW  CALIBRATION";
  Serial.println(OUT_STRING);
  OUT_STRING = " C=000pF F=500000";
  Serial.println(OUT_STRING);
  FREQ_COUNT();    //DUMMY
  for ( byte b = 0; b < 0x10 ; b++)
  {
    ByteWrite(0x08,(0x80 | b));
    delay(50);
    FREQ_COUNT();
    NOW_BUFFER = abs(freq - 3125);
    if(OLD_BUFFER > NOW_BUFFER) CAP_RESULT = b;
    OLD_BUFFER = NOW_BUFFER;
    Serial.print("CAP = ");
    Serial.print(b,DEC);
    Serial.print(" freq = ");
    Serial.println((freq * 16 * 10 ),DEC );

    delay(300);
  }
  
  Serial.println();
  Serial.print("CAP_RESULT=");
  Serial.print(CAP_RESULT);
  Serial.print("   ");
  Serial.print(CAP_RESULT * 8);
  Serial.println("pF");
  ByteWrite(0x08,(0x80 | CAP_RESULT));
  delay(100);
  FREQ_COUNT();
  OUT_STRING = "CALIBRATION DONE";
  Serial.println(OUT_STRING);

  ByteWrite(0x08,CAP_RESULT);
  delay(3000);
}

void  FREQ_COUNT(void)
{
    FreqCounter::f_comp = 10;
    FreqCounter::start(100);
    while (FreqCounter::f_ready == 0);
    freq = FreqCounter::f_freq;
}  

void DISP_OPENNING(void)
{
  OUT_STRING = "Lightning Sensor";
  Serial.println(OUT_STRING);
  OUT_STRING = "   AS3935 DEMO  ";
  Serial.println(OUT_STRING);
  delay(2000);
}


void serialDisplay(void)
{
  Serial.println(OUT_STRING); 
  Serial.print(" reg0=");
  Serial.print(reg0,HEX);
  Serial.print(" reg1=");
  Serial.print(reg1,HEX);
  Serial.print(" reg2=");
  Serial.print(reg2,HEX);
  Serial.print(" reg3=");
  Serial.print(reg3,HEX);
  Serial.print(" reg4=");
  Serial.print(reg4,HEX);
  Serial.print(" reg5=");
  Serial.print(reg5,HEX);
  Serial.print(" reg6=");
  Serial.print(reg6,HEX);
  Serial.print(" reg7=");
  Serial.print(reg7,HEX);
  Serial.print(" reg8=");
  Serial.println(reg8,HEX);
}


void serialDisplay2(void)
{
  Serial.print(" reg0=");
  Serial.print(reg0,HEX);
  Serial.print(" reg1=");
  Serial.print(reg1,HEX);
  Serial.print(" reg2=");
  Serial.print(reg2,HEX);
  Serial.print(" reg3=");
  Serial.print(reg3,HEX);
  Serial.print(" reg4=");
  Serial.print(reg4,HEX);
  Serial.print(" reg5=");
  Serial.print(reg5,HEX);
  Serial.print(" reg6=");
  Serial.print(reg6,HEX);
  Serial.print(" reg7=");
  Serial.print(reg7,HEX);
  Serial.print(" reg8=");
  Serial.println(reg8,HEX);
}


雷、いい時間帯に来るといいなぁ。




コメント ( 0 )




http://news.mynavi.jp/news/2015/04/13/168/

Linuxのカーネル4.0は、セキュリティーパッチで
カーネル再起動が要らなくなって、オンラインパッチ
ができるようになるのか。へぇ。

スマホとかだと便利だろうな。Ubuntuのデスクトップ
とかでも、気兼ねなくパッチ当てられそうだから、
やっぱり便利そう。


ただ、こういうのって、新たなセキュリティーホール
の原因になっちゃったりしないのかな?仕組み自体の。
大丈夫なのかな?





http://gigazine.net/news/20150407-arduino-apple2-emulater/

ArduinoでApple][作っちゃうとは!しかもビデオ出力
まで付いてる。

そうか。ビデオ出力周りは、MEGA16U2を使ってるのか。
ファームをMIDIインターフェースに書き換えてるのは
見たことがあるけど、ビデオ出力インターフェースに
しちゃうとは。なるほどねぇ。

オイラのArduino-Unoは一番古いやつだから、MEGA8U2
なんだよな。

そういえば、MEGA16U2部分だけ単体になってる
小さいボードってあるんだっけ?





http://photo.cyclekikou.net/?p=3695

フォーサーズはともかく、この暗い空が欲しいな。
地平線近くまで真っ暗な空が。

フォーサーズの中古機も欲しいんだけどもなぁ。






https://twitter.com/rw_brabra/status/587138918421626882

シワシワネーム。
そんな名前があるとは。

でも、アレだな。あと150年位すると、「彦左衛門」
とか、「十三」とか、「義一」とか、「大介」とか
「進」とか「雪」なんて名前が、ナウなヤングに
付けられるようになるだろうな。





コメント ( 0 )




というわけで、さらに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 )



« 前ページ 次ページ »