V2とV3の違い

基本はController Boardを無くし、Connection Boardと一体化。

Control Boardの廃止

以下の理由でControl Boardを廃止する
  • Control Boardが無くなることで組み立てが容易になり、時間短縮になる
  • これ見よがしについている割には、使い方が一般客にとっては分からない
  • 出っ張っているので、円になっている構造を毀損してしまう
  • Seeed XIAOを使うことで小型化可能

マイコンプログラムの修正

  • Seeed XIAO対応

V3 Control-Connection Board

V3では、Controller Boardを廃し、Connection Boardと一体化させる。そのBoardを製作する。以下ではV2の差分分について紹介する。

回路図作成

マイコンボードの変更
信号は3.3vベース
LED基板は5vベース
以前は、USBを繋いだだけでも動作はしたが、今回は3.3v系しか動かないので、全体を動かすには先にACアダプターで5v供給のための電源を入れておく必要がある。

マイコンボードをRP2350に

以下のマイコンボードに変更
Seeed XIAO RP2350

I2Cバス電圧変換用IC

I2Cバス電圧変換用IC を購入

マイコンプログラムの変更

赤い丸で示した①は、書き込み時に押すSeeed XIAOのスイッチです。

チェックサムの計算

これまで、テーブルを書き込む際、テーブルに入れるチェックサムをWindowsの専用アプリ(EZ-click)で計算させていました。これが自由にデータを作る際の足枷になっていたため、別途チェックサム計算プログラムを作成しました。

LED端子の変更(NeoPixel)

User LED: GPIO25
RGB LED(NeoPixel): GPIO22
RGB LED Power(NeoPixel): GPIO23

プログラム上は GPIO25 を LED3 として追加
RP2350で、NeoPixelが動作するよう修正。初期化時に真っ白く光り、通常では以下のように光る
  1. 緑は指ひとつ
  2. 青は指二つ以上
  3. 赤は10秒以上付きっぱなしのスイッチがある

I2C変更

Wire -> Wire1 に
setSDA(6), setSCL(7) に端子を変更

GPIO/AD関係

White LED Enable: D10
LED_ERR : (20) -> no connect
Joy Stick Sw: D7

付きっぱなしのスイッチを10秒でオフ

タッチセンサの誤動作でスイッチが付きっぱなしになることがある。その対応は以前もされていたようだが、うまく動いていなかった。
コードを整備しながら、うまく動くように修正。

8×8LED表示仕様の変更

  • 触った場所の数字を表示しないようにした
  • Touch AboveをTouch Me! ↓ ↓ ↓ に変更
  • Joystickの表示も行わないようにした

白色LED光量を上げる

触っていない時の白色LED光量を上げる

マルチコアで、USB MIDIを別コア処理

これまで2コア目を使っていなかったが、USB MIDI処理を別コアに分離。ときどき起こるハングアップ対策として、負荷分散してみた。