HoneycombBellとは?

HoneycombBellの紹介です。
使い方はUsageを参照してください。

六角形の光るタッチ型鍵盤

HoneycombBellは、六角形のハニカム型が連なった、タッチ型の鍵盤です。静電センサを使っており、六角形の中心に触れるだけで、簡単に音を出すことができます。また触った六角形が音程に割り当てられた色で光ります。


上下左右に拡張可能

六角形の連なりは、上下左右に拡がっており、この楽器の音程も二次元的に拡がります。音程は、右上に移動すると半音上がり、右下に移動すると全音上がります。そして、真横に移動すると単3度上がります。

二種類のBoard

USB端子がついているボードを Master Board と呼びます。
それ以外のボードを Normal Board と呼びます。

Master Boardへの部品取り付け

以下では、Master Boardへの各部品のハンダ付けの方法を説明します。

基板発注

Master Board を基板製造サービスに発注します。この基板には「HoneycombBell 22S」と書かれています。

表面実装部品をリフロー

裏側の表面実装部品(ATmega32U4, CY8CMBRなど)をリフローでハンダ付けします。

写真はトースターを改造したリフロー炉でハンダ付けした様子です。

ピンヘッダ、端子類のハンダ付け

J19のRXに1×3のL型ピンヘッダを、
C17に100μFのコンデンサ、Q1に2SJ681を、D14/D15に1S4をハンダ付けします。
それから、DCジャックをハンダ付けします。
J14の8つの端子は、1-8のみをショートさせます。

フルカラーLEDを付ける前に、一度プログラムの書き込みをしておいた方が良いかもしれません。

LEDのハンダ付け

12個のWS2813(フルカラーLED)をハンダ付けします。
WS2813は事前に接着剤でハンダ付けする位置に止めておきます。

フラックスを塗るとハンダ付けしやすくなります。
あとはクリーナーでフラックスを除去し、基板をきれいにします。

また、D2, D17にLEDをハンダ付けします。丸い穴がアノード、四角の穴がカソードです。

Master Boardファームの書き込み

Master BoardのマイコンはATmega32U4になります。このマイコンに、ブートローダとMaster用のファームを書き込みます。
ファームを書き込むために、専用の書き込み機を用意します。写真の書き込み機は、Pro Microに書き込み機用のファームを書き、SPI端子を引き出して基板のコネクタに接続できるように製作したものです。

Arduino IDEの設定

Arduino IDEに「Adafruit NeoPixel」「MsTimer2」「MIDI Library」のLibraryをインストールします。

ブートローダの書き込み

基板を作って最初にATmega32U4にファームを書き込む時は、まずブートを書き込みます。

書き込み時のツールメニューの設定は、
「ボード:"Arduino Leonardo"」
「書込装置:"Arduino as ISP(ATmega32U4)"」
としてください。
その後、ツールメニューの「ブートローダを書き込む」を選ぶと書き込みが始まります。

ファームウェアを用意

ファームウェアはここからダウンロードした上で、Arduino IDEでロードしておいてください。

なお、各ボードの最初の起動時に、タッチセンサー用のチップCY8CMBR3110に対して、静電センサのセッティング値を書き込んであげる必要があります。
そのため、ボードにプログラムを書き込む作業がやや煩雑になりますので、注意してください。(詳細は以下の手順にて)

ファームの書き込み

デバッグ、動作確認用に、I2C端子(J15)にAdafruitの8*8 LED Matrixを接続します。
次に、J23端子にピンを立てて、書き込み確認用のLEDを、ピン側がアノードになるように接続します。

また最初にファームを書き込む際、configuration.h のSETUP_MODE を 1にしておきます。
さらに #define HONEY_COMB_BELL の行をコメントを外し、有効にします。
上の「ファームの書き込み」の手順に従い、最新ファームを書き込みます。書き込み直後、8*8LED Matrixには「3」が表示されます。これは3つの静電センサがまだ設定されていないことを表します。

タッチセンサの設定1

Cypress CY8CMBR3110チップに対して、本製品用の設定を書き込みます。二つチップがあるので2回行います。

まず、JP1にハンダを盛って導通させます。
ここでUSBを接続し電源を入れると、U2への設定書き込みが行われます。他のICはエラーになるので、エラーLEDがしばらく点灯した後、3回点滅します。
その時、8*8LED Matrixには、「2」が表示されるはずです。

タッチセンサの設定2

次に、JP2にハンダを盛って再度電源を投入。
この時点でエラーは無くなるので、書き込み後、エラーLEDは3回点滅し、8*8LED Matrixの表示は「0」になります。

ここまで正常に終了したら、configuration.h の SETUP_MODE を 0にして、再びファームを書き込みます。

JP23に立てたピンを外したら基板完成。

Master Boardにフレームを取り付ける

これまで作った電子回路 Master Board に、3Dプリントしたフレームを取り付けます。

フレームの3Dプリント

この3Dプリント用データをプリントします。
比較的精度の高いプリントをしたいので、積層ピッチは細かめのほうが良いでしょう。また、ラフトをつけた方が、ソリが無くなり安定した出力が得られます。

Main Boardとネジ止め

3Dプリントしたフレームの6箇所の四角い穴に、四角ナットを嵌め込みます。もし緩くてすぐ外れそうであれば、接着剤などで外れないようにしておきます。また、一度、3×8mmネジでこのナットをネジ止めしておきます。各ブロックを組み合わせたり足を取り付ける際、このネジを外すことになります。

Main Boardと基板を組み合わせ、電子基板用のスペーサーを基板の3箇所の穴からねじ込み、基板とフレームを固定します。また、このスペーサーは同時に全体を支える足になります。

Normal Boardへの部品の取り付け

基板発注

22S用の Normal Board のデータを送り、基板製造サービスに発注します。

表面実装部品をリフロー

裏側の表面実装部品(ATmega328P, CY8CMBRなど)をリフローでハンダ付けします。

22SのNormal Boardでは、R11, R12, R13, R14 の位置が変わり、今までのステンシルでリフローできなくなってしまったので、この4つの抵抗のみ手ハンダします。

LEDのハンダ付け

ここはMaster Boardと全く同じです。

ピンヘッダ、端子類のハンダ付け

J19のRXに1×3のL型ピンヘッダを、
また、J18のTXに、ピンヘッダに接続できる3ピンのジャンパワイヤ(15cm程度)を、ハンダ付けします。

フレームの取り付け

同じくMaster Boardと同じです。
Normal Board 用の3Dプリンタ用フレームデータはこちら

Normal Boardファーム書き込み

Normal BoardのマイコンはATmega328Pになります。このマイコンに、ブートローダとNormal用のファームを書き込みます。
ファームを書き込むために、専用の書き込み機を用意します。書き込み機は、Arduino Unoに書き込み機用のファームを書き、SPI端子を引き出して基板のコネクタに接続できるように製作したものを使います。

ブートローダの書き込み

書き込み時のツールメニューの設定は、
「ボード:"Arduino Uno"」
「書込装置:"Arduino as ISP"」
としてください。
その後、ツールメニューの「ブートローダを書き込む」を選ぶと書き込みが始まります。

ファームウェアの書き込み

ファームウェアはここからダウンロードダウンロードしてください。

なお、Master Boardと同様に最初の起動時に、タッチセンサー用のチップCY8CMBR3110に対して、静電センサのセッティング値を書き込んであげる必要があります。
そのため、ボードにプログラムを書き込む作業は、Master Boardと同じです。なお、J14のジャンパピンはbasic2setの場合、何も設定する必要はありません。

Touch Windowの製作

一つのボードあたり12個のTouch Windowを製作します。
ただし、Master BoardのUSB/DCジャック部のTouch Windowは電極をつける必要はありません。

アクリル板を切り出す

レーザーカッターで乳半色のアクリル板を切り出します。
レーザーカッターのデータはこちら(24枚分+ジョイント)。

銅箔テープを切る

銅箔テープを8mm×8mmのサイズに切り出します。
その後、正方形の角を1mmほど斜めにカットします。

銅箔テープを貼る

このテープをレーザーカットしたアクリル板(TouchWindow)の中央に貼ります。

TouchWindowの中央には5mm×5mmの穴が開いているので、銅箔テープのこの穴の3辺にかかっている部分をカットし、残り一辺のところで銅箔テープを裏側に向けて織り込んで、アクリル板に貼り付けます。

ポリウレタン線をハンダ付けする

ポリウレタン線を20mmの長さに切り、ハンダを使って両端の皮膜を取ります。
このポリウレタン線の片方の端を、TouchWindowの裏側に回り込んだ銅箔テープにハンダ付けします。

Touch Windowの取り付け


フレームにTouch Windowを嵌める

Touch Windowにハンダ付けしたポリウレタン線を基板の穴に通しながら、3Dプリントしたフレームに、Touch Windowを一つずつ嵌めていきます。
ユルユルな場合は接着剤で止めますが、基本的には上から力を入れて嵌めるだけにしておいたほうが、あとあと修理もやりやすいです。
硬くて嵌らないときは、嵌まるようになるまでアクリルをやすりで削ってサイズを調整しましょう。

ポリウレタン線を基板にハンダ付け

基板の穴に通しておいたポリウレタン線を基板とハンダ付けします。
コテ先にハンダを盛り、基板の穴に4、5秒くらい抑えつけると、ポリウレタン線の皮膜が剥がれます。本当に剥がれて導通したかは、テスターでチェックしておきましょう。
導通が確認できたら、余分なポリウレタン線をニッパーで切り取ります。

動作チェックとシール貼り

最後に、動作チェックを行ったあと、Touch Windowにシールを貼れば完成です。

動作チェック

USBケーブルを繋げて動作チェックしてみます。

Touch Windowにシールを貼る

別途、制作した六角形のシールを銅箔テープの上に貼ります。シールの色は図の通りです。

発注した際のシールのデータは以下です。
赤シール
白シール
灰シール
黒シール

各ブロックの接続

Master BoardとNormal Boardを接続します。
ここでは、一つのMaster Boardと一つのNormal Boardを接続し、二つのボードを組み立てます。

MasterとNormalをネジ止め

Master BoardとNormal Boardを左右に組み合わせて、アクリル板から切り出したジョイントを上にあて、4箇所ネジ止めします。
ネジは3×10mmを使用します。

配線を接続

Normal Boardのワイヤを Master Board のRX端子に接続します。接続が逆にならないように注意してください。
またワイヤは、無用なトラブルを避けるため、テープで固定しておきます。