4. オーディオはPWMを使ってD級アンプとして使う
GamePi13のスピーカーはボリュームがついてないので使えない。
と思っていたが、picocalcの経験で、PWMを使えばちゃんと音が出せるし、数値をいじれば音量も制御できるのがわかってる。
GPIO18がスピーカーにつながってて、PWM1として使える。
となるとGPIOピンの数値を変えるだけで動くかな。
と思ったら、ソースコード中にGPIOのポート番号を数値でハードコーディングしてある。誰だよ!こんなソース書いた奴とレビュー通したやつは!(ブーメラン
それはさておき、改造点が大きく2点。
ポート割り付け変更。
ステレオー>モノラル変換 および 音量調整
ポート割り付け変更は、define値で設定するか、python側で設定するかが悩みどころ。どうせCで組み込む手間かかるんだから、python側で設定する意味も少ないという気もしているが、picocalcとソース共用できた方がメンテの手間は減る。
音量調整は、除算で時間かけたくないので、OUT = (R+L) * a >> k てな感じで乗算してから固定で右シフトという感じ。固定小数点演算ですな。
あとはMP3プレイヤー部分だが、操作部分をクラスとして作る感じかな。操作を検出するクラスで、picocalcならキーボードを読み込んだり、GamePi13ならボタンを検出するとかって感じで。




