%dll arduino %ver 3.5 %date 2016/07/01 %author onitama %url http://hsp.tv/ %note arduino.asをインクルードすること。 %type ユーザー定義命令 %group 拡張入出力制御命令 %port Win %index arduino_init arduino通信の初期化 %prm port, baud port=0〜(0) : COMポート番号 baud=0〜(0) : 通信ボーレート %inst USBを経由したarduinoデバイスとのシリアル通信を初期化します。 初期化の結果が、システム変数statに反映されます。 statが0の場合は、初期化が正常に終了したことを示します。 それ以外の場合は、エラーが発生しています。エラーが発生した場合は、変数arduino_errorにエラーメッセージが格納されます。 arduino.asがサポートする命令を使用する際には、最初に必ずarduino_initを呼び出して下さい。 arduino_init命令には、COMポート番号とボーレートのパラメーターを正しく指定する必要があります。 Arduino IDEで通信を行なっているCOMポート番号、及びfirmataで使用しているボーレート(通常は57600)を適切に記述してください。 %href arduino_bye arduino_exec %index arduino_bye arduino通信の終了 %prm %inst arduinoデバイスとのシリアルポートの解放を行ない通信を終了します。 %href arduino_init arduino_exec %index arduino_exec arduino受信処理の実行 %prm %inst USBを経由したarduinoデバイスとの受信処理を実行します。 結果が、システム変数statに反映されます。statが0の場合は、初期化が正常に終了したことを示します。 それ以外の場合は、エラーが発生しています。エラーが発生した場合は、変数arduino_errorにエラーメッセージが格納されます。 arduino_exec命令は、シリアル通信を監視して、arduinoからのメッセージを適切に処理します。 アプリケーションの動作中は、一定時間ごとに実行するようにしてください。 %sample arduino_exec if stat { ; エラーがあれば終了 dialog arduino_error end } %href arduino_init arduino_bye %index delay 時間待ち %prm ms ms=0〜(0) : 実行を待つ時間(ミリ秒単位) %inst 指定された時間、スクリプトの実行を停止させます。 内部的には、await命令と変わりありません。 arduino IDEで用意されているdelay関数と互換で使用することができます。 %href await arduino_init %index pinmode ピンのモード設定 %prm pin, outmode pin=0〜(0) : デジタルピン番号 outmode=0〜(0) : 設定されるモード(MODE_*) %inst arduinoのデジタルピンを指定したモードに設定します。 たとえば、「pinmode 9, MODE_OUTPUT」は、9番のピンをデジタル出力に設定します。 pinmode命令は、firmataで規定されたいくつかのモードを指定することができます。 以下のモードがマクロとして定義されています。 ^p モード名 内容 -------------------------------- MODE_INPUT デジタル入力 MODE_OUTPUT デジタル出力 MODE_ANALOG アナログ出力 MODE_PWM PWM制御(出力) MODE_SERVO サーボ制御(出力) ^p 適切にモード設定を行なった後は、指定されたピンでの入出力が可能になります。 %href digitalWrite analogWrite digitalRead analogRead %index digitalWrite デジタルデータの出力 %prm pin, value pin=0〜(0) : デジタルピン番号 value=0〜(0) : 出力する値 %inst pinで指定されたピンに、valueで設定された値を出力します。 出力される値は、0(OFF)、か1(ON)のどちらかになります。「D_LOW」(OFF)、か「D_HIGH」(ON)のマクロを指定することも可能です。 %href analogWrite %index analogWrite アナログデータの出力 %prm pin, value pin=0〜(0) : デジタルピン番号 value=0〜(0) : 出力する値 %inst pinで指定されたピンに、valueで設定された値を出力します。 出力される値は、0(最小)から255(最大)の範囲となります。「D_LOW」(0)、か「D_HIGH」(255)のマクロを指定することも可能です。 %href digitalWrite %index digitalRead デジタルデータの読み出し %prm (pin) pin=0〜(0) : デジタルピン番号 %inst pinで指定されたピンの内容を取得します。 取得される値は、0(OFF)、か255(ON)のどちらかになります。「D_LOW」(OFF)、か「D_HIGH」(ON)のマクロにより比較することも可能です。 %href analogRead digitalReport %index analogRead アナログデータの読み出し %prm (analogpin) analogpin=0〜(0) : アナログピン番号 %inst pinで指定されたアナログピンの内容を取得します。 取得される値は、0(最小)、か1023(最大)の範囲になります。「A_LOW」(最小)、か「A_HIGH」(最大)のマクロにより比較することも可能です。 ^p digitalReport 0, 1 ; アナログポート0を読み出す設定 value=analogRead(0) ; 実際の値を読み出す ^p 初期化の後に、analogReport命令を使って指定されたポートの読み出しを開始する必要があるので注意してください。 また、analogInterval命令によりアナログポート読み出しの周期を設定することも可能です。 %href analogReport analogInterval digitalRead %index analogReport アナログデータの読み出し設定 %prm analogpin, sw analogpin=0〜(0) : アナログピン番号 sw=0〜(0) : 読み出し設定(0=OFF,1=ON) %inst 指定されたアナログピンの読み出しON/OFFを制御します。 analogRead命令による読み出しの設定を行なう場合は、必ず読み出し設定をONにする必要があります。(デフォルトはOFFに設定されています) 読み出し設定がONの時は、analogInterval命令により設定された周期でアナログピンの値が更新されます。 %href analogRead analogInterval %index digitalReport デジタルデータの読み出し設定 %prm port, sw port=0〜(0) : デジタルポート番号 sw=0〜(0) : 読み出し設定(0=OFF,1=ON) %inst 指定されたデジタルピンの読み出しON/OFFを制御します。 読み出し設定がONの時は、デジタルピンの変更を取得可能になります。 (デフォルトはONに設定されていますので、通常は特に設定する必要ありません) digitalRead命令による読み出しの設定を行なう場合は、必ず読み出し設定がONになっている必要があります。 %href digitalRead %index analogInterval アナログデータの読み出し間隔設定 %prm analogpin, ms analogpin=0〜(0) : アナログピン番号 ms=0〜(0) : 読み出し間隔(ミリ秒単位) %inst 指定されたアナログピンの読み出し間隔をミリ秒単位で設定します。 %href analogRead analogReport