SAXduino

Created Date: 2019-04-13/ updated date: 2019-10-14
    Owner & Collaborators
    License
    Summary
    SAXduinoは、電子吹奏楽器として開発したSAX型のArduinoです。
    Arduino IDEで開発可能な電子基板SAXduino Boardと、MDFと3DプリントによるSAX型の筐体からなります。
    SAXduinoは電池とスピーカを搭載しており、スタンドアロンでの演奏が可能です。また、mi.1の基板を取り付けることで、BLE MIDIのコントローラとして利用することも可能です。
    ちなみに、本インストラクションの想定読者は私です。あとで作り方を忘れないために、書いた記事ですので、やや細かく、また分かりづらい点がありますことをご了承ください。

    Materials

      Tools

        Blueprints

          Making

          • SAXduinoは、電子吹奏楽器として開発したSAX型のArduinoです。以下のような特徴があります。
            • 単4電池2本の電池駆動で、本体にアンプ、スピーカーまで内蔵しているのでスタンドアロンで動作します。
            • SAXduinoの名前の通り、Arduino IDEにてファームウェアの開発が可能です。ATmega328が2個搭載されており、片方がタッチセンサ、気圧センサなどを制御、もう片方がソフトシンセとして機能しています。
          • SAXduino Boardに電子部品を実装します。リフローと手付けの両方行います。
            • ステンシルでクリームハンダを塗り、写真の指示書に従い、部品を載せます。そのあと、リフロー炉でハンダ付けを行います。
              D7/D8/R15/R16はソフトチェック用のLEDなので、必要なければ付けなくてもいいです。
              クロックの1MΩの抵抗も、付けなくても動作するので必要ないです。
            • 基板の裏面のフルカラーLED6個をハンダ付けします。
              WS2813Bを接着剤で一旦仮止めしておくと、スムースにハンダ付け出来ます。
              1. 2箇所の6pinのISP端子をハンダ付けします。
              2. 2箇所の2pinXHコネクタをハンダ付けします。
              3. C13のコンデンサ(100μF電解コンデンサ)をハンダ付けします。
              1. 写真のように気圧センサーの足を折り曲げて、不要な方(センサの突起側)の3つの足を切ります。
              2. 気圧センサーの真ん中のピンを基板とハンダ付けします。
              3. 「MagicFlute Proto14」の基板は電源とGNDの位置が間違っているので、ケーブルを使って、クロスするように気圧センサーの二つのピンと配線します。

              気圧センサーはMIS-2500-015Gを使用します。
          • 二つのATmega328Pへファームウェアを書き込みます。
            U1のATmega328Pはソフトシンセのファームを書き込みます。こちらをシンセ側と呼びことにします。U3のATmega328Pはセンサー処理のファームを書き込みます。また、こちらをセンサ側と呼ぶことにします。
            • Arduino IDEに必要なBoardとLibraryをインストールします。
              Boardは「ATMegaCore」を、Libraryは「Adafruit NeoPixel」「MsTimer2」をインストールします。
              また、書き込み時のツールメニューの設定は、「ボード:ATmega328P」「Clock:External(16MHz)」としてください。
            • 基板を作って最初にATmega328Pにファームを書き込む時は、まずブートを書き込みます。ツールメニューの「ブートローダを書き込む」を選びます。

              センサ側のファームウェアのプログラムはここからダウンロードして、Arduino IDEで読み込みます。
              初めてセンサ側のファームを書き込む場合、configuration.h の FIRMMODE を、WRITE_CNFG_FIRST_TIME_TO_MBR3110 にし、またタッチセンサのセッティングを変えた時は、WRITE_NEW_CNFG_SETTING にします。
              そのあとに、 NORMAL_MODE にして再書き込みします。
          • 静電センサによるタッチスイッチと、3Dプリントによるタッチスイッチフレームと、SAXduino Boardを一体化した部品を製作します。
              1. 銅箔テープ(粘着側も導通するタイプ)を1cm四方程度の任意の形で切ります(写真では円)。この際、銅箔テープのおもて面に事前にマスキングテープなどでお好きな色や模様を付けておくことも可能です(写真では黒いマスキングテープを貼っています)。
              2. 6つの銅箔テープで作った電極を、アクリル板の各六角形の中央に貼り付けます。
              1. タッチセンサを貼ったアクリル板を裏返しにすると、6箇所の四角い穴があるので、そこに同じく粘着側も導通する銅箔テープを4mm四方の正方形に切って、その穴の中で粘着部同士を貼っていきます。
              2. 3,4cmほどに切ったポリウレタン線の片側を、今貼った四角い銅箔テープの上にハンダ付けします。ポリウレタン線は両側とも事前に皮膜を剥がしておいた方がよいでしょう。
              1. 3Dプリントしたタッチスイッチフレームに四角ナットを4箇所使用します。写真の場所に四角ナットを接着します。接着が乾くまでネジでナットを止めておくといいでしょう。
              2. タッチセンサーのアクリル板とタッチスイッチフレームを、真ん中のネジ穴一箇所でネジ止めします。

              1. 基板のタッチスイッチ用の六箇所のスルーホールに、タッチセンサーにハンダ付けしたポリウレタン線を通します。基板のLEDのある面がアクリル板側になります。
              2. タッチセンサーと基板を二箇所、15mmの長さのネジでネジ止めします。
              3. ポリウレタン線と基板をハンダ付けします。
          • SAXduinoの筐体は、MDFによる全体ボディ、3Dプリンタによる吹き口からなります。これに、3Dプリンタによるスピーカーフレーム、そしてタッチスイッチ部を合わせて最後に全体を組み上げるので、その各部品を製作します。

            • レーザーカッターで筐体用に、2.5mm厚MDFをカットします。レーザーカット用のイラレのデータはこちらです。
              カットした部品を以後、以下のように呼びます。
              1. 底板
              2. 上板
              3. 側板
              4. ベル横
              5. ベル上
              6. ベル下

              側板は2枚ありますが、前後対称なので右と左の区別はありません。皿ネジを使う場合、必要に応じてMDFに対してザグリ加工します。
              1. 3Dプリントで製作したスピーカーフレームの6箇所の穴に四角ナットを埋め込みます。ナットが落ちないようテープで穴を塞ぎます。
              2. スピーカーにコネクターをつけたケーブル(7cmほど)をハンダ付けします。
              3. スピーカーをスピーカーフレームに取り付けます。小さな四箇所の突起を、スピーカーのネジ穴に嵌めて、接着剤でスピーカーを貼り付けます。
          • 底板に電池ボックスと電源スイッチ、それから昇圧回路を取り付けます。


            • 演奏時、右手の親指を引っ掛けるための指抑えに、スペーサーを使います。必要なければつけなくても構いません。
              1. 昇圧回路にSAXduino Boardに接続するコネクタのケーブル(10cm程度の長さ)を出力のGNDとVOUTにハンダ付けします。
              2. 電池ボックスのマイナスケーブルを入力のGNDに、スイッチとVINをケーブルで繋げます。
              3. 電池ボックスのプラスケーブルをスイッチに繋げます。
            • 電池ボックスを両面テープで取り付けます。底板の長細い穴から1.5cmくらいのところに貼ります。電池ボックスのケーブルはスイッチ側に向けます。
              スイッチを底板にネジ止めします。
              1. 吹き口の突起と気圧センサ側の突起に、チューブを嵌めます。
              2. 吹き口と側板を4箇所、ネジで結合します。
              3. 空気抜きの突起にチューブを嵌めます。
              1. スピーカーフレームと側板とベル横を4箇所、ネジで結合します。ベル横のネジは10mmの長さが必要です。
              2. 上板を2箇所、ネジで結合します。
              1. ベル上下の板をあらかじめ曲げてクセをつけておきます
              2. ベル横に切り口に接着剤をつけて、ベル上下の板を接着します
              3. ゴムを巻いて、接着剤が乾くまで待ちます
            • 底板に取り付けた配線類をうまく束ね、電池ボックスが本体内部の部品と干渉しないことを確かめます。
              あとは、電池をボックスに入れ、底板を本体に取り付けます。底板のネジを締めれば完成です。
          • 調整するポイントをいくつか挙げておきます。
            • 写真のようにSAXduino Boardには三つのボリュームが付いています。
              RV3はアナログボリュームですので、必要に応じてご利用ください。

              RV1, RV2は音源側のATmega328Pに繋がっており、なんらかの調整を行うことが可能となっています。ファームウェアを改造して、何かに使ってみていただいて構いません。
            • 吹き口からの呼気は二股に分かれ、一つはセンサーに、もう一つはそのままシリコンパイプを通して外気に出されます。
              外気に出ていく息の量が多いほど、空気の抜けが多くなり、気圧は下がり、音量は小さくなります。ある程度呼気の気圧を高めにしておいたほうが、多彩な音楽表現が可能となりますが、息が苦しくなり演奏も大変になります。
              このパイプからの空気の抜け具合を、いろいろな方法を使って試してみてください。
          • QUICCO SOUNDから販売されている mi.1 の基板を用いて、BLE MIDI を送信する機能を追加します。SAXduino Boardはすでに、mi.1 と直接繋がる端子を用意してあるので、ケーブルを繋ぐだけでBLE MIDIが利用できます。

            mi.1をつなげる時は、本工程を「SAXduino Board製作」に挿入してください。
              • BoardのJ12:mi.1のH2
              • BoardのJ11:mi.1のH4
              • BoardのJ13:mi.1のH6
              • BoardのJ14:mi.1のH8


            • 0.2mmのポリウレタン線4本を使って、mi.1とSAXduino Boardにポリウレタン線をハンダ付けして繋げます。
              写真では、Boardの端に垂直になるように mi.1 を配置してみました。
          Add Card Order

          References

            Usages

            • SAXduinoの運指

              1. ①と②でオクターブを指定します。二つ押さえれば一番低いオクターブ、一つ押さえればその一つ上のオクターブ、一つも押さえなければさらにその上のオクターブになります。
              2. ③で半音上げたり下げたりします。半音上がるか下がるかは、④〜⑥で指定する階名によります。
              3. ④〜⑥で「ドレミファソラシド」の音階を指定します。音源はC調(C菅)の楽器なので、そのまま「CDEFGABC」の音が発音します。
            • 音色変更の方法

              1. 何も演奏していない状態で、③にタッチします。
              2. 写真のように全LEDが白っぽく点灯しますので、この状態で、吹き口から一瞬だけ息を軽く吹きます。
              3. タッチを離すと、全LEDが流れるように点滅します。この状態で⑥から②までのタッチスイッチを触れることで音色が変更されます。
            • 電池の交換

              1. 底板の2箇所のネジを外します。
              2. 底板を外し、底板の裏に貼ってある電池ボックスの電池を交換します。
              3. 底板を取り付ける際、まず空気抜きのシリコンパイプを穴に通します。
              4. ケーブルがはみ出ないように、底板を側板にはめ合わせて、ネジで閉めます。
            • ファームウェアの書き込み

              Arduino IDEでファームウェアを改造して、独自のプログラムを書き込むことが可能です。SAXduino Boardには ATmega328P が二つ搭載されており、それぞれにICSP端子が搭載されています。ここに、Arduino Unoなどから、SPIを使ってICSPと接続することでプログラムの書き込みが可能です。

              写真は、二つのICSP端子に書き込み用のケーブルを接続している様子です。

              書き込みをしたいけれど、やり方がよく分からないという方は私宛までお知らせください。

            Project comments