Raspberry Piと独自ソフトでサーボモーター制御——音と連動して表情を変えるパペットを自作
2024/05/30 06:30
Raspberry Piやサーボモーターを使用して顔のパーツの動きを制御するパペットの自作プロジェクトをRaspberry Pi公式ブログが紹介した。
パペットの名前は「Mr. Bechele」で、このプロジェクトでは腹話術人形や動物ロボットのような動くモデルをプログラミングせずに作成でき、音声出力と同時にサーボモーターが動作する。
技術サービス業界で長年働いてきたMakerのRolf Jethon氏は、母親の80歳(当時)の誕生日パーティーで何か披露しようと考えてこのパペットを作ることを思いついた。父親の誕生日パーティーでは自作の片手使いパペットを使って腹話術をしたがうまくできなかったので、あらかじめ設定したとおり自分に話しかけてきて表情も自動で変わるパペットを作ることにしたという。何度かの改良を経て、現在のバージョンは3.0だ。
ごく初期に作成したバージョンでは、デオドラントスティックから取り外したボールを目玉部分に使用していたが、その後のバージョンの目玉部分は3Dプリントしている。顔のパーツは3Dモデリングツール「Rhinoceros(Rhino)」で設計して3Dプリントしており、3Dプリント用STLファイルはThingiverseでオープンソースライセンスの下で公開されている。
Raspberry Piを採用した決め手は、オーディオ出力、外部ハードウェアを制御するGPIOを備えていることに加え、パペットの頭部に収まるぐらいコンパクトであることだ。
苦労した点は複数のサーボモーターを駆動することで、24個のサーボモーター「SG90」を制御するため、Arduinoプロジェクトでよく使用される、PCA9685搭載16チャンネルPWMコントローラーを採用している。
以前のバージョンでは既存のPerlライブラリーを使用していたが、読み込みが非常に遅くインストールするための前提条件も厳しかったため、最新バージョンではPerlで独自のドライバーソフトを作成して対応した。その結果、デフォルトで最大64個のサーボモーターを制御できるようになり、設定を変更すれば65個以上のサーボモーター制御も可能とのことだ。
Jethon氏はこのプロジェクトについて、Bechele用に開発したソフトウェアがメインであり、その応用分野は広いとしている。複数のサーボモーターを音声と同期して動かす必要がある場合、このソフトウェアは適しているという。