ワイヤレス・マリオネット

NT京都2014で展示したワイヤレス・マリオネット(糸なし操り人形)の乙女回路ソースコードを公開します。まあ、そんなたいそうなもんではないです…

コントローラのプログラム 〜からまった糸を断ち切る力〜

3軸加速度センサADXL362は、SPIインターフェースで内部のレジスタに読み書きします。低水準のレジスタアクセス関数として、読み出しにADXL362_read関数、書き込みにADXL362_write関数を用意しました。最初にsetup()でADXL_init関数を呼んで初期化します。初期化では、ソフトリセットを行い、動作モードを測定モードに設定します。
loop()ではADXL362_readAcc関数で3軸加速度を読み出します。3軸の加速度データレジスタはアドレスが連続しているのでバースト読み出しをしています。重力加速度以外の加速度は無視できるものとし、加速度をa=(ax,ay,az)とすると、左右・前後の傾きはそれぞれ、θx = atan ax/az, θy = atan ay/az で求められます。

ロボットのプログラム 〜からくり人形の瞳のその奥〜

今回の変更は、コントローラのデータ形式に合わせて受信データの解釈を修正したのみです。