ミント缶で自動運転その6
S88増設
ミント缶IV-R1.6の基板が発注から1か月半を過ぎても届かず、やる事が無くなってしまったのでセンサーディテクタのチャンネルをS88で増設するスケッチを作りました。1台目のセンサーディテクタ基板をマスターモードに設定して2台目以降にLOADとCLK信号を送り、dataInポートから増設基板のセンサーの状態を読み込みます。やるべき事は単純なのに、勘違いから完成までに大幅な労力を強いられました。
増設スケッチ
先ず陥ったのが割り込みで、DSsoftからコマンドを受信したら自動でマスターモードにしたくて、attachInterrupt(...で設定したINTを割り込み禁止にして出力ポートに変更するのですが、ここで必ずフリーズします。これには回避方法が見つからず予めEEPROMで設定する事にしました。
次に混乱したのがsensor_valueからtransfer_valueにコピーする箇所で、S88対応前のsensor_valueをクリアするコードが残っている事に気づくのに手間取りました。
最後の疑問はDSsoftのgetS88()に返す応答です。HEX表記にすべきことに暫く失念していました。接続数2以降の応答がうまくいかず、最大CHは16で十分と勝手に決めて接続数を1のみ限定にしました。接続数2以降は全てオフ表示です。
修正基板
手前の基板が修正後で Arduino nanoの向きを反対にしましたので、S88で接続する時は6芯のフラットケーブルが基板を跨ぐ事になります。配線が込み入るので単純に基板一枚の4チャンネルに限定するのが賢明かもしれません。
最近のコメント