Loopian::QUBIT

Created Date: 2025-07-29/ updated date: 2025-09-14
Owner & Collaborators
License
Summary
Loopian::QUBITは、円環状に並べたセンサーの上を撫でることで音を奏でる楽器です。 PC上で動作するLoopian::APPとMIDI接続することで、PCの音源で音を鳴らすことができます。ORBITをより小型化し、持ち運びできる大きさにしました。

Materials

    Tools

      Blueprints

        Making

        • Loopian::QUBITは、Loopian::ORBITの小型版として構想されました。
          ORBITは大型のため、専用のスタンドの上でのみ使用できますが、QUBITは直径が半分以下の30cm。より気軽にLoopianデバイスを楽しめます。
          以下に、Loopian::QUBITの特徴を挙げます。
          • 直径30cmのリング状の楽器。持ち運びも可能ですし、持ちながらの演奏も可能です。
          • これまでかなり長い間、CypressのCY8CMBR3110を使用してきました。この静電センサは非常に精度も信頼性も高かったのですが、一つの接点あたりOn/Offしか取っていませんでした。アナログ値を取ろうとしたのですが、基本的にデバッグ用でしか提供されておらず、読み込み時間がかかるため断念。
            今回は、AtmelのQTouchシリーズであるAT42QT1070というチップを使用します。サイプレスに比べ機能や精度は劣るものの、アナログ値がすぐに取れるため、今回このチップを試してみることにしました。
          • Loopianは、これまで誰でもピアノを弾けた気分になる楽器というコンセプトで製作してきました。
            Loopian::QUBITは、アナログ値を取ることができるので、このコンセプト以外にももう少し新しい表現にもトライしてみようと思っています。
        • 以下の主要な電子部品、機構部品を入手します。(SMDのコンデンサ、抵抗などは省略)
        • 以下の3種類の電子基板を設計および製造、そして部品のハンダ付けします。
          • 図のようにKiCadにて、LED Boardを設計・製造します。6つのNeoPixelを繋げ、5Vで駆動するための端子を備えます。
          • NeoPixelと0.1μのコンデンサを、リフロー炉を使ってハンダ付けします。
          • 図のようにKiCadにて、Sensor Boardを設計します。
            AT42QTを使って、6つの静電センサと繋げます。電圧は3.3Vです。
          • 図のようにKiCadにて、Connector Boardを設計します。I2Cを分配するTCA9544Aを使用して、4箇所のSensor BoardのI2Cと接続しています。
          • Connector Boardは、TCA9544Aが搭載されたもの(以下9544Board)と搭載しないもの(以下Non9544Board)、二種類製作します。
            9544Boardは、9544と0.1μのコンデンサ、4.7kの抵抗をR1-R8に、それぞれ手ハンダした上で、JP3,5,7,9の1-2を導通、JP4,6,8,10を導通させます。
            Non9544Boardは、JP3,5,7,9の2-3を導通させます。
            下の「Connector Board JP接続表」も参照してみてください。
          • 全体のセンサーの値を読み取り、NeoPixelを点灯させ、MIDIを送信するためにSeeed XIAOをマイコンボードとして使用します。これを搭載するためのMCU Boardを設計、製作します。
            これは全体で一つのみ作ります。
          • MCU Boardに部品を手ハンダしていきます。
            DCJack, 三端子レギュレータ、および周辺のデバイス、さらに、Seeed XIAO, OLED, tact Switchなどを取り付けます。
          • PLA黒のフィラメントでこのデータをプリントします。8つ必要です。
          • 透明のPETGのフィラメントでこのデータをプリントします。8つ必要です。
            PETGで印刷する際は、フィラメントをセットする際の温度を250℃にします。
            印刷する際、インフィルのパターンをConcentricに設定し、サポート材を有効にします。
        • 6つの透明電極を使った静電センサと、6つのNeoPixelをひとつの部品にしたSensor Unitを製作します。本デバイスのタッチとLED光の動作を決定する重要な部品ですので、取り付ける前に動作チェックをしながら慎重に進めていきます。
          • Sensor Boardをouter sensor holderにM2×6mmの皿ネジで取り付けます。
            余っているリード線の先端を曲げ、そこにハンダを盛って透明電極との接点を作り、そのリード線のもう片方の端を、outer sensor holder の6箇所の小さな穴を通して、Sensor Boardにハンダ付けします。
          • NeoPixelを取り付けたLED Boardの裏面の端子にケーブルをハンダ付けします。
            J1: 5v(赤), J2: Ground(黒), J3: signal input(白), J4: signal output(緑)
            signalの白と緑はAWG30の細い線を使います。
            LED Boardの配線をinner sensor holderの二つの穴に通し、inner sensor holderとLED Boardを接着します。
            Groundのケーブルは17mmくらいで切断し、先端の被覆を剥いておきます。
          • innerの裏側の6つの穴に四角ナットを入れ、ケーブルを穴に通しながらouterの中に配置します。outerの両側にある穴から、M3×8mmの非金属の皿ネジで6箇所仮のネジ止めをします。

          • 透明電極の切り出す線が描いてあるファイルをプリントアウトし、透明電極をプリントした紙の上に貼ります。線に合わせて、透明電極をカッターで切り出します。
            その後、切り出した透明電極を真ん中で折り、innerとouterの間に挟み込みます。電極の太い方をouterの外周側に、細い方を内周側に6枚差していきます。
            電極を折った場所が同じ位置になるように調整して、innerとouterを留めているネジを強く締め込み、電極を固定します。
          • 各透明センサーが正常に電極と繋がっているか、テスターを使ってチェックします。
            必要に応じてリード線による接点の調整を行います。
          • innerにはんだ付けしたGND(黒)を Sensor BoardのJ2端子にハンダ付けし、さらに同じJ2端子にもう一本のGNDケーブルをハンダ付けします。
            また、Sensor Boardの以下の端子にケーブルをハンダ付けします。
            J1: 3.3V(赤)、J4: SCL(黄)、J3: SDA(青)
            30AWGの細い線を使います。
            GNDと、3.3Vは近接しているので、ハックルーで絶縁しておいたほうが良いでしょう。
        • 6つの接点と6つのNeoPixelが正常に動作するかをチェックします。
          • bedの突起にバネをとりつけ、センサー側のケーブルをバネの内側にある穴に通していきます。青黄緑白をひとまとめに、赤黒をひとまとめにして穴に通します。
          • PETGで印刷したTubeを、センサーを押さえ込むようにbedに取り付け、両横のネジ穴から透明のネジ(3×10皿)で固定します。
          • ケーブルをマイコンと接続して、動作チェックします。
            赤: 5V
            赤: 3.3V
            黒: GND
            白: NeoPixel
            黄: I2C SCL
            青: I2C SDA
            動作チェック時は、constants.h の #define TEST_MODE のコメントを外してビルドし、マイコンに書き込んでおきます。
        • 黒でプリントしたbedを連結し、図のようにConnector Boardを配線していきます。なお、この図は上から見た図であり、裏側から基板を見た場合、方向が逆になることに注意してください。
          • 3×10mmの黒タッピングネジで、3Dプリントした部品のbed同士を両横からネジ止めしていきます。8個ねじ止めすると円になります。
          • 上側の両内側に窪みがあるので、そこに四角ナットを挿入していきます。
            窪みにはあらかじめ接着剤を塗っておき、挿入する四角ナットが落ちないようにしておきます。
          • Connector Boardをネジ止めします。
            Connector Boardは、9544BoardNon9544Boardの2種類があります。この2種類の基板が交互になるように配置します。
            導通しないワッシャーを入れて3×8mmのタッピングネジでねじ止めした後、隣り合うConnector Boardの両端にある端子をリード線でハンダ付けし、電気的に繋げます。ただし、7枚目の9544Boardと8枚目のNon9655Boardの7pin,8pin、それから8枚目と1枚目の9544Boardは、7pin,8pin は繋ぎません。
          • 裏側から見て、基板の順番は右回りとなります。
            1. 4つの9544Boardのうち、右回りに(JP1,2): off,off -> on,off -> off,on -> on,on となるように配置します。
            2. 9544Board/Non9544Boardともに、JP13は基本的に繋ぎます。8枚目は繋がず、あとで端子の片方をMPUBoardと繋ぐことになります。
          • Connector BoardのJP Swを文章で書くとややこしいので、表にまとめてみました。
        • Sensor Unitと、tube、bedを組み立てます。
          • まずbedの突起に5×10mmのバネを挿しておきます。それから、Sensor Unitのケーブルを、bedの穴に通しながら、Sensor Unitをbedのバネの上に置いていきます。
          • センサーを真上から均等に押さえ込むように、PETGで印刷したtubeを bedに押さえ付け、両横のネジ穴から透明のネジ(3×10皿)で固定します。
          • 穴から出ているSensor Unitのケーブルを、近くの端子にはんだ付けします。
            まず、ストリッパーで皮膜が取れる程度に、ケーブルを2cmくらいに切断します。
            それから4本のケーブルは左回りに、緑、白、黄、青の順に、3本のケーブルは左回りに5v赤、3.3v赤、黒の順にはんだ付けします。
          • 最後に動作チェックします。
            constants.h の MAX_KAMABOKO_NUM の値は、最終的には 16となります。
            もし半周分まで作ったなら8にします。90度分なら4にして、動作チェックします。
        • MCU Board BoxとQUBIT本体を配線します。
          いずれ、MCU Board Boxは本体と一体化する予定ですが、今回はこのように分離してケーブルで繋ぐことにしました。
          • ファームウェアはここにあります
            以下にファームウェアの特徴などを記しておきます。
            • Arduino-pico(Raspberry Pi Pico/RP2040/RP2350 by Earle F.Philhower,III) をインストール。ボードは"Seeed XIAO RP2350"を選択
              USBはAdafruit_TinyUSBを選択

              ライブラリは
              Adafruit_TinyUSB
              RPI_PICO_TimerInterrupt
              Adafruit_SSD1331
              MIDI Library
            • Whiteも含む4食分のNeoPixelのシリアル出力は、RP2350のPIO機能を使って、プログマラブルなハードウェアにて実現しており、その分、プログラム処理が軽量になっているはずです。
          Add Card Order

          References

            Usages

            • 接続方法

              電源スイッチがないので、ACアダプタとUSBケーブルを接続しただけで動作を始めます。どちらから繋いでも良いですが、先にACアダプタをつなげる方が良いかもしれません。

            Project comments