プログラム
コーディングは僅か2行の追加。周囲を含めて右欄に示す。
処理の説明
変数RR(のコピーRR_BUF)で受信データ有無を判定し、有ればLEDを消灯しその後点灯する。
斜体で示すOUT命令文がLEDをON/OFFする処理。消灯時間はDELAY文で指定するのが真っ当だろうが、ロボ制御の主ループ(※)にDELAYを入れる気にならず、元々からある処理Bの前後で実行するようにした。
※ラベルを頼りにソース全体を眺めると判り易いかも
因みに、MR-C3024の回路図を参考にCPUボードを見ると、回路図左上のLED(D4、D5)は基板に実装されておらず(右の写真)、D5の代わりにコネクタSL2を介して頭部のLEDが接続する。
結果
リモコン操作に反応してLEDが明滅し、続いてロボがモーションを起こす。うん、なかなかイイ感じ。
おまけ
受信インジケータの観察によれば、ロボ用赤外線リモコンはボタンを押下し続けると約1秒間、ボタンに対応するコマンド信号を連続送信している。
修正履歴(2011/8/23)
当初はOUT命令のポート番号を50とし、事実それで動作確認済だが、ROBONOVAマニュアルのプログラム例(後日発見)が示す52で動作確認したので、52に修正。
|
MAIN:
RR = 0
'-----------------------------
REMGET:
RR = REMOCON(1)
RR_BUF = RR - ID
RR = 0
IF RR_BUF = 0 THEN 'no command gotten
(処理A)
ELSE 'got command
OUT 52, 1 'LED OFF
(処理B)
OUT 52, 0 'LED ON
ENDIF
|