さて、Arduinoを使った手抜きテストの結果、オーディオ出力を利用したサーボの制御が何とかできそうです。きちんとやるにはArduinoのアナログ入力に適合するように、オーディオ出力を整流して平滑化し、0~5Vの直流にする必要があります。
すぐ思いつくのは、入力バッファ兼用のオペアンプで増幅してからダイオードで整流し、CR平滑回路を入れる方法です。
サーボ制御のシステム部分は安いArduino互換機を使ってもよいですが、全体をシンプルにまとめたいのでAVRマイコンにArduinoブートローダを書き込んで作ることにします。
まずはブレッドボードで試作です。手持ちの部品からオペアンプにはLM358、プロセッサにはATmega32を使ってArduino互換回路を組みます。
Scratchで音を出し続け、PCのボリュームで音量を変えるとサーボ角が変わるのがわかります。
ただLM358はフルスイングのオペアンプではないので、出力が3Vぐらいで頭打ちになります。ATmega32のアナログ入力の上限の5Vまで使い切りたいので、フルスイングのオペアンプであるNJU7062Dに変更しました。
ArduinoのMap関数でアナログ入力値とサーボ角をマッピングしているため、入力の大きさに直線的にサーボ角が変わります。