今ボードが手元にないけど、インストールしてライブラリとsketchを眺めて、Wiringでできる事をまとめてみた。
ちなみにこれがボード
Wiring 1.0 _ALPHA_ >> Download
Windows、Mac、Linux版がある。俺はWindowsXPなのでWindows版Wiring0005 ALPHAをDLして、解凍。
解凍したらwiring0005というディレクトリができるので、その中のwiring.exeから起動できる。
proce55ingと同じくsketchに大量のサンプルがある。
リファレンスとスケッチを見たかんじ滅茶苦茶簡単っぽい。phidgetsとどっちが簡単なのかな?
processingと同じく、起動時にsetup()関数が実行され、次にloop()関数が無限ループする。draw()は無い。
processingとはシリアルポートで通信して連携させるらしい。まとめてコードが書けると思ったのでちょっと残念。
その代わり、プログラムを書き込めばPCからI/Oボードを切り離しても動かせる。ここら辺の、単独で動かせるかPCと繋いだままにするかというのは重要になると思う。
サーボとか使わないならUSBバスパワーでPC側から給電してやるのが楽らしい。
もっと電力が必要なら、別の口から7~15Vを給電できる。
I/Oボードに乗っているのがAVRのATMEGA128なので、それの機能が使える。→翻訳版データシート
でもデータシート読む必要は全くない。
だいたい今実装されてる機能はこれぐらい。
■デジタル入出力
void pinMode(ピン番号, OUTPUT) もしくはINPUTで入出力設定
void digitalWrite(ピン番号, HIGH) もしくはLOWでデジタル出力。LEDを光らせたり
boolean digitalRead(ピン番号) デジタル入力の有無がわかる
あとPIN8個の集合としてPORTも使える。
portMode()、portWrite()、portRead()など。でもあまり使わないだろう。
■パルスを読む
pulseIn();
いまいちよくわからない。
■シリアル通信
Serial.begin(9600);
printMode(SERIAL);
Serial.write(数値);
でI/Oボードからシリアルポートに送信できる。proce55ingとはこれで通信するらしい。
■A/Dコンバータでアナログ入力
int analogRead(0);
でアナログ値が返ってくる。センサーが使える。
■PWMでアナログ出力
実際は凄い速度でON/OFFを切り替えている疑似アナログ出力。
analogWrite(ピン番号、どのぐらい出すか);
まだ実装されていないが、これとは別にPulse Generationというのがあって周期などを指定してpulseRun()すると信号が出せるらしい。
AVRでやると結構計算が面倒臭かったが、これ楽そう。
■LCD
beginDisplay();
printMode(DISPLAY);
print(“文字”);
でLCDに文字が出せる
■サーボモータ
サーボモータも使える。どんなサーボか知らないけど。
Servo servo;
servo.attach(ピン番号);
servo.write(角度);
delay(時間); // ちょっと待つ
割り込みが無いのだが今後実装されるのかだろうか?
そのうち暇を見て試してみる。
ちょっとプログラムが楽になったUSBで書き込めるAVRマイコンといった所だけど、I/Oボードが標準化されているのはblogに書いて情報共有したりする時にほんの少しだけ意味がある気がする。
基盤に乗っているのがATmega128+クリスタル16MHz+FT232BM(USBのIC)というのは、入手製と性能のバランスが結構いいと思う。この仕様のまま2年ぐらい現役でいけるんじゃないか?