2018年9月14日金曜日

Nucleo DCO 作戦検討 その2



パラメーター

2  6  956.50    0.000   30039   0.200:  4  3  119.26    -0.005  28422   0.200:  0  4  236.41    -0.023  47531   0.200:  0.257   1
2  6  953.49    0.000   30087   0.200:  4  3  118.65    -0.009  28342   0.200:  0  4  234.68    -0.031  47403   0.200:  0.257   1
2  6  955.64    0.000   30007   0.200:  4  3  119.09    -0.006  28310   0.200:  0  4  235.73    -0.027  47403   0.267:  0.257   1
2  6  954.14    0.000   30151   0.200:  4  3  118.79    -0.008  28486   0.200:  0  4  235.71    -0.024  47483   0.200:  0.257   1
2  6  956.07    0.000   30039   0.200:  4  3  119.17    -0.006  28438   0.200:  0  4  238.76    -0.002  47323   0.200:  0.257   1
2  6  955.64    0.000   30071   0.200:  4  3  118.97    -0.008  28406   0.200:  0  4  235.61    -0.028  47339   0.200:  0.258   1

ハードウェアでやったこと


外部ADCではなくて、NucleoF767ZIの内蔵ADCを使うためにPOTパネルを作って操作しやすくしました。

ソフトウェアでやったこと


ファームウェア(mbed-cli)
https://github.com/ryood/Nucleo_DCO/tree/master/mbed/Nucleo_DCO_Test12

周波数レンジ


プッシュスイッチで、オシレーターごとに1オクターブ音程をずらせるようにしました。

デチューン


OSC2とOSC3は、MasterとなるOSC1に対して±1オクターブ可変するようにしました。±1オクターブ可変するために、疑似指数カーブで対応しています。


マスター・レベル


波形がクリップした場合も、デジタルならではの過激な歪が出るので、歪ませる/歪ませないを選択できるようにマスター・レベルを調節できるようにしました。


ピン割り込みのチャタリング対策をTickerからTimeoutに変更

mbedではTimeoutクラスは内部でTickerクラスのオブジェクトを持っているようなので、Timeoutにした方がいいのか悪いのかわかりません。

OLEDの表示項目


I2C接続の128x32のSSD1306 OLEDで実験していますが、表示域が少なくて一覧性が確保できません。

AliExpressで発注した128x64のOLEDは関空水没のせいか届きません。同じ日に発注したものは届いたのですが、タイミングが悪かったのか。

ここで一句

「中華製、忘れた頃に、届いてる」

ToDo:


POTの読み取り値がふらつくので、補間してみる。

波形切り替え、周波数レンジ切り替えは、プッシュスイッチでも役目は果たせますが、ロータリーエンコーダならもっと操作性が良くなるのではないかと妄想。


0 件のコメント:

コメントを投稿