2017年05月28日

Open.Theremin@Teensy3.2版をライヴに投入する

ラスト3ステージのみだったが、Teensy3.2版のOpen.Thereminを実際に演奏することが出来た。



5月は気温の変動が大きく、元から限界に近かったPitch側のVCOがアウトレンジしてしまった結果、発振周波数の調整に難航することになった。 

途中、センシングが全く行われなくなって往生したが、原因はアンテナ基部のBNC端子を装着したガイシの内部で発生した短絡事故だった。 

IMG_6468.JPG

密閉構造なBNC基台のアンテナを修理することは難しく、急遽ボディー毎在庫していたSMAタイプのアンテナにリプレイスして急場をしのいだが、

IMG_6986.JPG

BNCコネクタのマスを含めたアンテナ長が変わった影響で周波数変動が大きくなってしまった。

IMG_6912.JPG

高い方にシフトした周波数を下げるために、アンテナに鉄製の書類挟みを取り付ける等「マスを増やす」工夫をしてしばらくは急場をしのいでいたが、楽日朝に変動が修正不能な領域に達することになった。 

ライヴ前に作業するのは避けたかったが、最終的にVCOの周波数調整用のコンデンサーを交換して問題を解決した。 リンクした映像は、回路の修正後にチェックを行っている時の記録。

現在開発中の機体でもVCOの周波数調整システムに課題が残っているが、VariCapの採用で拡大した調整域と半導体が持つ周波数変動域とのトレードオフの実態を精査すべきだろう。

IMG_6972.JPG

今回のような使用環境ではVCOの挙動が敏感になっていたために、ボディーアースが必須だった。 電源はLiPo2発を内装した2次電池システムを使用したが、マイクスタンドへの取り付け方法に課題が残っている。
posted by Yasuski at 06:21| open.Theremin

2017年05月26日

Open.Theremin@オーディオDACへの対応について

新設計の基板では遣い易い産業用のDACを導入する予定だが、ADATエンコーダーを搭載しないことを前提に使用を諦めたAudioDacを使ってDacHandlerの動作確認を行うことを思いついた。

WS001040.JPG

もちろん「動かないデバイス」を掛けあわせた結果の不確定要素が増えるので厳密な意味では試験と言えないかもしれないが、遊んでいる基板をダメ元で試すには絶好の機会だろう。

DacHandlerはマイクロコントローラから出力されたバースト信号をレジスタに溜め込んで、オーディオクロックの作法で出力する仕組み。 内部にはカウンタを装備していて、リファレンスクロックからSCKやWCK(ワードクロック)を生成する。

WS000973.JPG

AlesisのADATエンコーダーにSCKは不要だが、DacHandler側にとりあえず出力ピンを確保していたのが正解だった。 DacHandlerからROHMへ出力する信号はDATA01/SCK/WCKの3ラインで、本来ROHMに接続していたラインを断ち切って、代替する端子を接続する。

rhomHandler.png

パターンを起こすとこんな感じになる。

WS001039.JPG

WS001038.JPG

WS001037.JPG

これらの手当を行いつつ、まずは確実に動作が保証されている出口Teensy搭載のDAC0/DAC1から音声出力を試みることになる。

analogWrite(A20,(int)temp3_val);

現状をまとめると、、、

1)オシレーターの発振と差分のセンシングは確認できている。

Screen Shot 2017-05-06 at 12.03.01 PM.png

2)オシレーターのVariCapの駆動を確認。

こちらは、動作確認を行っている時の映像。 純粋な発振器のアナログ動作を測定器でセンシングしている。



3)音声出力は出口が全て塞がれている状態故に確認できず。

といった情況で、少なくとも立ち上がり時の「ピポパ音」が再生されるだけでも、随分と気が休まるのだが。

追記:

検討作業の過程でソフト上のADATへのデータ送信フォーマットをチェックしていたら、24bitデータを加工無しの状態で32bitレジスタに送っているのを発見してしまった。

temp6_val = (((temp2_val - (2048 * vol_mod)) & 0x1ffffff) ^ (0x1000000))

つまり、データフォーマット上は右詰めとなっているのだが、設定上は左詰めのつもりだったのがかなりのマヌケ。

一番簡単な対応策は、ADATエンコーダー側の設定を右詰めに変えるだけで良いのだが、再生ユニットに搭載する予定のAlesis製DACは左詰め仕様。故にこの選択肢は無い。

左詰めへの対応はデータをレジスタに送る前に8bit左にシフトするだけ。

まず、出力レジスタを追加して、、、

uint32_t ADAT01;
uint32_t ADAT02;
uint32_t ADAT03;
uint32_t ADAT04;
uint32_t ADAT05;
uint32_t ADAT06;
uint32_t ADAT07;
// uint32_t ADAT08;

データを左にシフトしたものを格納。

ADAT01 = ((temp7_val << 8));
ADAT02 = ((temp8_val << 8));
ADAT03 = ((temp9_val << 8));
ADAT04 = ((temp10_val << 8));
ADAT05 = ((temp11_val << 8));
ADAT06 = ((temp12_val << 8));
ADAT07 = ((temp5_val << 8));

結果を出力ルーチンに送る。

writeValue03(ADAT01);
writeValue04(ADAT02);
writeValue05(ADAT03);
writeValue06(ADAT04);
writeValue07(ADAR05);
writeValue08(ADAT06);
writeValue09(ADAT07);


逆に、ROHM等のAudio系のDACは8bit右ズラしで送信することになる。

DAC16_L = ((temp5_val >> 8)) & 0xffff;
DAC16_R = ((temp6_val >> 8)) & 0xffff;


いろいろ考えてはいるのだけれど、やたらと穴だらけな計画に反省することしきり。

追記2:

VariCapを制御するルーチンを精査したところ、チューニング・ノブにアクセスが行われていない状態でも一々DACにデータを送り出す仕様を確認した。

これはVariCap関連のコードを追加した際に行った動作確認を優先する簡易な処置がそのまま放置されていたのだが、不要な作業を繰返すことによって遅延が生じるのはいただけない。

取得したデータが過去のものと不一致した時のみ送出ルーティンが反応するように条件分岐を追加しておいた。

tempTuneA_val = (2047 - pot1);
tempTuneB_val = (2047 - pot2);

if (tempTuneA_val != tempTuneA_val_l)
{
temp15_val = (tempTuneA_val & 0xffff) >> 4;
temp13_val = (temp15_val | 0x7000); //adding the MCP config data
// Serial.println(temp15_val);
MCP2A_OUT(temp13_val);
tempTuneA_val_l = tempTuneA_val;
};

if (tempTuneB_val != tempTuneB_val_l)
{
temp16_val = (tempTuneB_val & 0xffff) >> 4; // shift to 12bit full scale
temp14_val = (tempTuneB_val | 0xF000); //adding the MCP config data
// Serial.println(temp16_val);
MCP2B_OUT(temp14_val);
tempTuneB_val_l = tempTuneB_val;
};

posted by Yasuski at 10:32| open.Theremin

ADAT@トラブルポイントの洗い出し・その2

挙動が一部怪しいものの、全チャンネルの送信を確認した。

18423827_1479672428729877_4727965427404270454_n.jpg

音声レベルが極端に低い4/8CHはオペアンプが破壊された可能性が高いが、すでに極性を間違えて一個潰しているのがトホホ。

バッテリー駆動の場合、±12Vのスイッチング電源のグランドが浮いて仕舞って、オペアンプに妙な電圧がかかる危険性を確認。ひとまずAC駆動で実験を継続することにした。

音声の不具合はSMDの実装ミスが原因で、これで全8CHの送信が可能となった。問題は入力ゲインのマッチングだが、エレキギターは6db以上の増幅が必要。テルミンは直接入力でOKだった。 ギター用のポートにはバッファーを追加したい。

入力端子は汎用性を考えて、#1/#2/#3chにモノラルフォン、#4/#5chにミニステレオ、残りの#6/#7/#8chにHirose6pコネクターというラインアップにまとめた。 

完成後、早速ライヴ用の機材として投入することにした。 HFBRによる長距離伝送の実験には失敗したものの、T.C.のADで悩まされていた同期外れの問題が解消されたことが大きな収穫だ。 所謂カタログスペック的に優れたところは無いものの、コンベンショナルなアナログ電源を採用することで、対ノイズ特性を向上させていることも、安定した性能を確保できた原因だろう。

実際に運用してみて感じたのは、ロック外れによる妙なスパイクノイズが無くなったことで、Pacarana/DSPの処理限界からくるパッツン系とは異質な音声の断絶を気にすることなく、クリアな音質で楽器の音声をハンドリングできている。 オーディオクロックの基準発振源にそこそこのクラスの製品を奢った御利益だろう。 

ライヴ終了後に回路を精査したところ、ADATエンコーダーのHFBR回路周りに設計ミスを発見した。 ドライバーの配列を、本来は送信ユニットと並列接続すべきところを

WS001032.JPG

直列接続していたのが問題で、

WS001036.JPG

これでは十分なドライヴ電流を得ることが出来ない。

WS001044.JPG

念のため、配線の変更をパターン化しておいた。
posted by Yasuski at 07:07| ADAT

2017年05月25日

Open.Theremin@アンテナの試作

テルミン用アンテナの試作品2種。 

IMG_6980.JPG

GFRP製ガイシのサイズが異る。

IMG_6981.JPG

ロッドは何れもチタンパイプ。 Pitchアンテナは組み立て式。 パイプは、今まで使っていたものと同ロットにも係わらず内径が0.5ミリも小さく、ハットフランジの固定に手間取ってしまった。 最終的にはルーターで内径を広げて解決。

IMG_6978.JPG

端子はSMA。 アンテナロッドとの接続は、アンテナ側に立てたピンをオスメス変換コネクターで受けている。 固定には耐衝撃性瞬間接着剤を使用。

IMG_6982.JPG

華奢な雰囲気でもネジ止めでガッチリと固定できる。 アンテナのマスが小さいので強度は問題ない。

IMG_6983.JPG

前回試作したBNCコネクタのアンテナは、クリップオンっぽい固定方法が甘く、テルミンには向かなかった。 そのうえ、ケース側の加工が大変と良いとこなし。
posted by Yasuski at 21:05| open.Theremin

2017年05月08日

ADAT@トラブルポイントの洗い出し・その1

昨晩、オーディオクロックが正常に動作していることを確認できたので、ADATエンコーダーチップ周りのクロックを調査した。

image.jpg

まず、ADCからのオーディオデータはソレらしいものが出力されていることを確認。

image.jpg

ワードクロックも問題なく供給されている。

image.jpg

次に、ADATエンコーダーからの出力を観察すると、複雑に変調された波形を確認できた。

image.jpg

試しに、Fireface800に接続してみたところ、、、

image.jpg

何故か問題なく認識された!!

ただ、Fireface側でクロックソースの選択をオートモードにした場合、ロック外れの不具合が頻発したので、ステイブルな運用が行えるかどうかは微妙なところだ。

posted by Yasuski at 14:23| ADAT

Open.ThereminOnTeensy@トラブルポイントの洗い出し・その8

先程からトラブルの発生原因を探るために回路を要素に分解して検討を行っているが、デジタルシステムの大元となるオーディオクロックに関しては、ADAT/Open.Theremin共に問題は無かった。

手持ちの測定器はオシロスコープ機能が怪しく、代わりの判断材料として健在なスペアナで周波数を測定した。まず27MHZに原振動のピークを確認した後、分周した周波数をチェックした。 PLL-ICによるオーディオクロックの切り替えも問題なく行えていた。

気になっていたADATのリセット端子の極性も、アクティヴ・ローで正解。端子も"H"レベルに振れている。 分周に関しても、FPGA/汎用LOGIC共に正常に動作している。

ADATエンコーダーに関しては、経験が無いので動作の確認方法がわからないが、出力端子のスペクトルを観測する方法を試してみるが、多分後段に追加したバッファーあたりに齟齬がありそうな気がする。

Open.Thereminは、実績の無いROHM製DACの接続が怪しいので、コードを単純化した検証機構を製作して、不具合を洗い出す方向で検討している。

ここからは、プログラムの確認の記録。 今回新たに仕込んだオシレーターの読み取り機構は、正常に動作している模様。

Screen Shot 2017-05-07 at 10.48.57 PM.png

オーディオクロックが正常に動作しているために、フラッグも正常に立っている。

VariCapの可変幅が気になっていたが、3VFSの制御電圧で必要十分だった。

Screen Shot 2017-05-07 at 1.31.57 AM.png
posted by Yasuski at 05:47| open.Theremin

2017年05月07日

Open.ThereminOnTeensy@トラブルポイントの洗い出し・その7

Flagの挙動を検討した結果、オーディオクロックが怪しいとの結論に達した。

怪しいといえば、まだ精査していないクロック周りの回路を眺めると、CMOSのクロックソースが3ステート仕様なことに気付く。 購入時にデータシートを探し損なったことを思い出して一般的なルールを検索した結果、端子が"L"でスリープ状態になることが判った。 情けないことに、回路は"L"にプルダウンされている。

端子を”H"レベルに繋ぎ直し、シリアル監視の仕込み無しでテルミンを起動したところ、ヴォリュームと連動する目玉LEDの点滅を確認した。 クロックソースが正常化されたおかげで、少なくともVolumeAnt側は制御データを吐き出せるようになった。

一方、懸案だった電源周りの不具合だが、電圧を落とした結果、発熱は最小に抑えることが出来た。 異常な消費電流は、Teensyが徐々に破壊されていく過程の現象だったかもしれないが、これで放熱の問題を考える必要はなくなった。 ちなみに、2セルの稼働時間は3時間強と、実用上も十分な容量を確保できている。

今晩は、これからADAT送信機を完成させる予定。
posted by Yasuski at 21:57| open.Theremin

Open.ThereminOnTeensy@トラブルポイントの洗い出し・その6

VariCapを使ったチューニング機構の実験を行った。

IMG_6934.JPG

問題の多いFlag判定回路をスキップして、ロータリーエンコーダーが直接DACの制御電圧にアクセス出来るようにプログラムを変更し、アナログ回路の実効性を試した。 

反応のないVolume側のオシレーターは、チップ交換を含めた対策を行ったが、効果はなし。 試しに、Lの断線を検査したところ、なんとSMDの接触面が基板から浮いている不具合を発見。 これが、不良の原因だった。

オシレーターのレンジ調整は、VolumeANTのVariCap側に追加していた10pFを取り除いて解決しているが、差分を詰めるためにリファレンス側オシレーターの時定数を再設定する必要がある。

以上で、アナログ回路の問題はほぼ解消できたが、昨日の事故でTeensy3.6が死亡していることが判った。 

実験の結果、VariCapの使用が今後の選択肢に入ったが、温度安定度など判らないポイントが多いので、今後の実証試験で実用性を試すことになる。

ソフトウエア面は、スイッチ・制御機構は正常に動作してものの、周波数検知回路や音声再生部門の動作確認は未了だ。
posted by Yasuski at 15:51| open.Theremin

Open.ThereminOnTeensy@トラブルポイントの洗い出し・その5

電源が死ぬまでオシレーターの発振をチェックしていたが、Volume側のVariCap駆動オシレーターの発振周波数が他のオシレーターと比較して、異常に低いことを確認。

WS001030.JPG

原因は不明だが、コンデンサーの値が狂っている可能性があるので、怪し気なポイントのチップコンを取り除きつつ、配線をチェックする予定。

他の不安要因として、アンテナを繋いだVariCap駆動オシレーターの波形が汚いことが判明。 こちらも原因は不明だが、パッシヴ系のオシレーターにアンテナを繋いだ場合の波形は綺麗。

VariCap駆動側はリファレンスとして使用することになるだろう。
posted by Yasuski at 03:12| open.Theremin

Open.ThereminOnTeensy@トラブルポイントの洗い出し・その4

Open.Theremin内装の5VのレギュレーターICが3度めのご逝去。

多分放熱が追いつかないのが原因なので、ひとまずは大きすぎるドロップダウン電圧に対処するため、専用電源の低電圧化を行った。

が、これでもアウトな場合はレギュレーターの規格に対して消費電流が大きすぎることになる。

ご逝去とともに、外部入力が直結する現象を観測した。 5V系IC群の全滅はこれが原因。

一方、ADAT送信機用のLiFe二次電池の実装を行った。 現在、これの充電中。 明日は、電源を繋いで、通信試験を行う予定だが、まずは直結できるTOSLINK側で成果を試すことになる。
posted by Yasuski at 03:02| open.Theremin

2017年05月06日

Open.ThereminOnTeensy@トラブルポイントの洗い出し・その3

VolumeFlagの稼働を確認した。

Screen Shot 2017-05-06 at 12.03.01 PM.png

備忘録:

(tempTuneB_val | 0x7000) は、MCP製DAC専用のConfigデータをヘッダーに追加する呪文で、この処理を行わないとDACは正常に動作しない。
posted by Yasuski at 12:07| open.Theremin

Open.ThereminOnTeensy@トラブルポイントの洗い出し・その2

VariCapを駆動するDACに送られるデータ転送の実態を調査するために、シリアル接続を行って該当する箇所の挙動を監視したところ、キャリブレーションのシーケンスに不具合を発見した。

まず、12bitで送らなければならないデータサイズが16bit幅で処理されていた。 流石にこれはお話にならないので、12bitにデータをシフトして解決。 キャリブレーション中は、指定したロータリーエンコーダーのチャンネルでVariCapの値を直接操作することになる。

次に、どうやってもmode2に移行できない問題が発覚しているが、対策は未了。 トリガーとなるVolumeFlagが立たないのがその理由と思われるが、対処法が判らないのでこの件はペンディング中。

VariCapでドライヴしているPitch側のオシレーターは依然として動かないので、ハード側の故障、または配線ミスを疑い始めた。
posted by Yasuski at 02:31| open.Theremin

2017年05月05日

Open.ThereminOnTeensy@トラブルポイントの洗い出し・その1

5V系のデバイスはほぼすべて吹っ飛んだので、これらをすべて撤去してデバッグ作業に入った。

回路チェックの過程で、USB経由でPCのUSBポート周りを吹っ飛ばしかけたので、USB側からの供給を切断しつつ、Teensyに電源を供給するラインにダイオードを挿入する安全装置を追加した。

Teensy3.2では大丈夫っぽかったのが、3.6ではいろいろ作法が違う感じ。

で、シリアルモニター経由で行ったプログラム側の調査で判明したのは、、、、

1)まずBUTポートが設定間違いだったので、これを該当端子に修正。

2)BUTの入力でキャリブレーション・モードに入れない問題は、時定数が長すぎたことによる。 このことからはんめいするのは、何気にオーディオクロックの分周がヤバイ雰囲気なので、後ほどWCKの周波数を計測しなければならない。 現在は暫定で時定数を変更しているが、修正後はとりあえずMODEの切替えが行えるようになった。

3)ロータリーエンコーダーは、何れも問題なく動作している模様。

4)バラクタ制御のVCOはピッチ側が死亡している模様。 稼働しているVolume側もレスポンスが悪く、妙なノイズが乗っていることから、次期モデルではオシレーターの構成を変更する方向に考え始めている。

5)シンプルな回路構成のリファレンス側に関しては、時定数を間違えたのかVolume側がかなり高めの周波数で発振している。 発振回路としては正常で、アンテナを繋いだ場合はVCOとして反応している。

7)DAC周りの動作確認は未了。 単純な発音を行うスケッチを書く方向で検討中。 FPGAの分周回路が怪しいので、これも端子を立ててチェックを行う。

8)同じく、オーディオクロックを含めたデジタル系もこれからチェックを行っていく予定。

9)バラクタをドライヴする専用のスケッチを構築して、発振器のコンディションを正確に見極める必要あり。

10)とにかく、ソフトウエアの構築を含めて、観測ポイントに端子を立てまくることから始めよう。
posted by Yasuski at 19:53| open.Theremin

Open.ThereminOnTeensy@電源周りの不具合

その後、通電実験を行ったが見事に失敗。 怪しい項目が多すぎて収拾がつかない。

まず、電源投入後に謎のシャックリが発生した。 しばらくはスイッチの入力に反応するもののLEDが全点灯したまま固定して外部の入力を受け付けなくなる。 電圧値をチェックしたところ正常値のために問題は判らない。ともするうちに、発生した断線の影響で5V電源周りのタンタルコンが短絡破壊を起こし、5Vの安定化電源ICを道連れに昇天。 部屋に焦げ臭い匂いが立ち込める。

その後、パソコン接続で電源を供給したところ、スイッチ周りだけは無事動作を確認出来た。 

IMG_6915.JPG

が、BUTターミナルの目玉スイッチの挙動が相変わらずオカシイので、こちらも精査が必要となる。

結局、設計時に危惧していた電源周りの問題が発生したということで、3.3Vラインに直接電源を投入する設計がアウトだった。 対策としては、Teensyの48番ピンに5Vラインから供給を行いつつ、ソケットの15・46番ピンを取り除いて3.3Vラインから、Teensyを切離す形で配線を改造することになる。 

card9a_rev1.png

オシレーターの発振について、固定リファレンス側は多分OK。 ただし、離散の度合いが酷いので、調整が必要だ。 一方のバラクタ駆動の方は、Volume側のみ動作を確認したもののPitch側の発振が認められない。 プログラム側の問題も考えられるので、バラクタを駆動して発振周波数を調整する専用のプログラムを書いた方が良いかもしれない。

何れにしても、何処かで凡ミスをかましている可能性が高いので、まずは回路を精査することから始めよう。

posted by Yasuski at 05:50| open.Theremin

2017年05月04日

Open.ThereminOnTeensy@ひとまずハードウエアを完成させる

1号機と外見を比較すると、アンテナ端子がBNCからSMAに小型化されて、デザインがスッキリした。 

IMG_6910.JPG

通電は未了。 

IMG_6905.JPG

フロントパネルのコントローラーの配置は必要最小限の構成にリファインしている。 パネルの材質はアルミだが、ガラスエポキシ製でも良さそうなので、慎重に採寸したものをSeed/Fusionに外注するのもアリ。その場合はタッチパネル等のスイッチング機能をパネルに追加できる。

IMG_6911.JPG

ボディー上面のプッシュスイッチは未実装。

アンテナは基台にネジ止めせず、耐衝撃性瞬間接着剤で固定している。

IMG_6912.JPG

目が詰まったGFRP素材は物凄く硬いので、加工が結構大変だった。 切削用の治具を準備しないと、工作精度に誤差が出てしまうことが判った。

チタンパイプ側は末端に真鍮製のハットフランジを圧入し、そこに銅パイプのスリーブを介してアンテナ端子を取り付けている。 取り付け側はSMAのオスメス変換端子を流用し、アンテナ側の端子を受けている。

取り付けは何れも耐衝撃性瞬間接着剤を使用しているが、経年劣化を考慮して、ネジ止めを行ったほうが良いかもしれない。

今回は端末に打ち込んでいたスタッドをアンテナの分割に使用している。 

IMG_6907.JPG

基台からのアンテナ長を15cm程短縮したので、収納ケースの小型化が可能になった。

IMG_6908.JPG
posted by Yasuski at 22:45| open.Theremin

2017年05月02日

Open.Theremin@ケース側にパーツを取り付ける

試作1号機のようにトップパネルに6pinの楽器出力を取り付けるか迷っていたが、今回は配線を綺麗にまとめられるボディー下側に端子を移動した。  

IMG_6890.JPG 

この試作ヴァージョンは全部盛り仕様なので、HR-25の他にTOSLINKのアウトを実装している。 

WS001028.JPG

こちらも当初はトップパネルへの実装を考えていたが、配線の取り回しを考えてボディー下部に端子を取り付けることになった。

IMG_6895.JPG

アンテナ端子はSMA。 これにGFRP製のカップラーを介してアンテナを接続する。

IMG_6902.JPG

調達先が異なる左右の端子の長さが微妙に違う。短い方の端子でプラグとのクリアランスの問題が発生したので、ケース外側のザグリを深くする必要があった。

IMG_6891.JPG

GFRP製のアンテナ基台は、SMAの中継端子とアンテナ側に固定した細いピンを組み合わせて製作する。

IMG_6900.JPG

光学ユニットの取り付け孔は角孔故に工作はドリル一発で、、、というわけにはいかなかった。ヤスリ掛けに要した時間は30分。

IMG_6897.JPG

中華製のステップドリルはコスパが最強。 アルミ系の、特に柔らかいキャスト素材の工作は、これで十分。

作業の過程で、ADATのFMT0端子をグランド電位に落とす設定ミスが発覚した。これはデータの極性を設定するピンで、現状では左詰めとすべきところが右詰めになっている。 このままではFPGAとの通信が行えないので、該当するADATの端子を浮かせてVCC電位にジャンパー線で再接続することになった。 

発覚している基板設計のミスは殆どがADAT周りなので、拡張機能を追加しなければ、現行デザインの基板をそのまま使用できる。 唯一影響がありそうな失敗はキャリブレーション機能の切り替えを行うBUT端子を設定しているタクトスイッチの配置で、これが微妙にセンターからズレていた。 簡易な対策としてスイッチのリード端子を切り詰めて基板パターンへの表面実装を行い、中央に向けてオフセットを2mm程掛けることで解決しているが、次のヴァージョンでは位置を基板中央寄りに修正している。

例によって、動くかどうかは判らないが、これからの作業が大変になりそうな予感がする。
posted by Yasuski at 22:12| open.Theremin

Open.Theremin@とりあえず通電するも、挙動が怪しい

フロントパネルに基板を実装した。

IMG_6885.JPG

実装後にプログラムを書換える過程で通電することになったが、実装が中途半端なことを差し置いてもLEDの挙動がかなり怪しい。

IMG_6886.JPG

ので、いろいろ失敗している可能性が大きくなってきた。

IMG_6888.JPG

スイッチ系だけを纏めた簡易なプログラムを走らせて、プログラムの挙動と周辺回路を精査しなければならない。
posted by Yasuski at 10:22| open.Theremin

2017年05月01日

Open.Theremin@ロータリーエンコーダーの操作ページを増設する。

実際に、音量コントロールの離散度を制御するための機能を、ロータリーエンコーダーに割り振るために、ページ内に階層を作る作業を行っている。

IMG_6882.JPG

追加するハードウエアはグランド電位に接続したモーメンタリースイッチが一個で、これをプルアップでフローティングした端子に配置する。

現状はRGBロータリーエンコーダーのプッシュスイッチで機能を切り替えているが、単純なLEDのオンオフで表現できるページは8通り。 新たにページを追加する方法はいろいろあるが、今回は別に用意したサブスイッチで機能を切り替えることにした。 スイッチはモーメンタリーで、プルアップされた端子をグランド電位に落とした場合に機能する。

割り振っているのは、VolumeAnt側で段階的に制御しているオシレーター群のオーディオ出力の離散レベルをコントロールする機能で、本来このページに割り振られているVolumeAntのレベル感度設定の裏側となる。

が、端子をPullUp状態でフローティングした時に「シャックリ」が発生した。 オープン状態では、potの表裏両方の状態を読み込んでしまう。 本来は固定されているべきスイッチのステイタスがエンコーダーの操作の影響で変動してしまうのが原因だ。

WS001025.JPG

いろいろと手をつくしてみるが、どうやってもこれを解消できない。 トラブルを回避するには、端子をグランド電位か電源電位に接続するしかない状態で、これはなんか物理的にヤバイ雰囲気である。

翌日、端子を離れた場所のD25に変更することで問題は解決したが、

WS001027.JPG

不具合が発生していた理由は、指定していたD5端子が物理的な破損状態だったためらしい。

実験用の機材は接続の断続や誤配線の影響でダメージを喰らう可能性が高くなるが、今回もそのパターンに陥って無駄な時間を過ごしてしまったようだ。
posted by Yasuski at 13:47| open.Theremin