Kravox!ワイヤレス、モーション、タッチセンシング機器
コンポーネントと消耗品
> |
| × | 2 | |||
| × | 2 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 5 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 3 | ||||
| × | 5 | ||||
| × | 3 | ||||
| × | 3 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> |
| |||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
|
アプリとオンラインサービス
> |
| |||
|
このプロジェクトについて
新しい 楽器の種類
Kravoxは、ルンド大学(スウェーデン)の研究プロジェクトの一環として、デジタル楽器のコントローラーに従来の機械的な楽器の感覚を与えることを目的として作成されました。
これで、Kravoxは誰もがアクセスできるようになり、音楽実験プラットフォームとして機能するようになります。この詳細なチュートリアルは、できるだけ多くの人がこのエキサイティングな新しい楽器を使用できるようにするために作成されました。
Kravoxのプレイ方法
Kravoxのプレイは非常に簡単です。ほうきのような普通の物体で遊んでいると想像してみてください。それを触って空間を移動する方法によって、音の生成方法が制御されます。このビデオでKravoxを再生する方法を見て聞いてください。
<図>
Kravoxとは何ですか?
Kravoxは、クロスプラットフォーム互換のオープンソースデジタル楽器であり、コントローラー、レシーバー、ソフトウェアの3つのコンポーネントで構成されています。
<図>コントローラー/秒
最大3台のワイヤレスコントローラデバイスを接続できます。各コントローラーは、デジタルMPU-6050ジャイロスコープからの方位データと加速度データ、およびArduinoNanoに接続された2つのMPR121タッチセンサーボードからのタッチデータを処理します。コントローラは、nRF24L01無線トランシーバを介してデータを受信デバイスに送信します。
複数のコントローラーを使用する場合は、2番目と3番目のコントローラーに個別のアドレスを割り当てる必要があります。アドレスの割り当ての詳細については、コントローラーコードのDECLARATIONS / NRF24L01セクションの情報を参照してください。
受信者
受信機は、コントローラーから受信したデータを、いくつかのポテンショメーターから収集されたデータとともに、USB経由で接続されたコンピューターに渡します。提供されているレシーバーデバイスコードにより、最大3つのコントローラーとの通信が可能になりますが、調整なしで1つまたは2つだけでも機能します。
ソフトウェア
受信機からのデータは、音声を出力するPure DataVanillaで記述されたプログラムで処理されます。
このチュートリアルで作成する内容–ステップバイステップガイド
<図>
Kravoxの美しさは、その形状、サウンド、演奏方法を調整できることです。これにより、このチュートリアル用に複製しやすいKravoxバージョンを設計する機会が得られました。
(興味がある場合:私のYouTubeチャンネルでは、Kravoxのより大きなバージョンを作成した方法のタイムラプスも見つけることができます)
上記のビデオとこのチュートリアルの両方で、簡単に入手できる電気部品と段ボールから完全に機能するコントローラーとレシーバーを構築するために必要なすべての手順を紹介します。
パート1-コンポーネントとツールの収集
Kravoxコントローラー+レシーバーステーションを構築するには、次のコンポーネントが必要です。
<図>{1x} 50 * 24穴(最小サイズ)Perfboard、{5x} 40ピンメスヘッダー、{5x} 40ピンオスヘッダー、{5x} 10キロオームの電位差計とそれらのノブ、{3x}ブルー5mm標準LED、{3x} 150オーム抵抗、{2x} 10マイクロファラッドコンデンサ、{2x} 100ナノファラッドコンデンサ、{2x} NRF24L01無線トランシーバ、{2x} Arduino nanos、{3x} 220オーム抵抗、{2x} MPR121タッチセンサーボード、{1x} GY-521 MPU 6050デジタルジャイロスコープ、{2x} USB-A-USB-Cケーブル、{1x}幅1 cmの銅テープ4メートル(最小)、{1x}パワーバンク、{2x }多くの色の7メートル(最小)のワイヤと、オプションで{1x} 0、2メートルのø=3mmシュリンクチューブ。
さらに、コンポーネントを組み立てるためのツールが必要です:
<図>その後、空の段ボール箱などもあります:
<図>そして、接着剤、接着剤銃、粘着テープ、1つまたは複数のクランプ、輪ゴムでエンクロージャーを作成します。
<図>
パート2–コントローラーボードの作成
次に、上記の部品からコントローラーの電子機器を段階的に作成する方法を説明します
<図>ケーブルをはんだ付けする場所がわからない場合は、いつでも下の回路図に戻って、作成中の回路基板にarduinoとセンサーボードを取り付けたら、コンポーネントが正しく接続されるかどうかを確認できます。
<図>2.1
最初のステップは、perfboardとメスのピンヘッダーをサイズに合わせてカットし、無線トランシーバーの信頼性を高めるのに役立つ大小のコンデンサーと一緒に組み立てることです。
<図>ユーティリティナイフでパフォーマンスボードをカットします:
<図>メスのピンヘッダーをアハックソーでカットします(テーブルトップから水平にするために本に置きます):
<図>
部品のはんだ付け。隣り合って配置されている2つの長いメスヘッダーの各ピンペアをすでに接続できます。残りのヘッダーについては、少量のはんだで簡単に取り付けるだけで十分です。できれば、回路図によれば、後で接続されないピンが望ましいです。コンデンサをはんだ付けするときは、電解10マイクロファラッドコンデンサ(2つのうち大きい方)の極性に注意してください。片側にはストライプがあり、通常は短い脚もあります。その側はアースに接続する必要があります。小さい方の100ナノファラッドコンデンサは極性がなく、どちらの方法でもはんだ付けできます。
<図>
結果は次のようになります。
<図>2.2
2番目のステップは、2つのLEDを電流制限抵抗ではんだ付けすることです。
<図>LEDの極性に注意してください。LEDの片側は平らになっており、通常は脚も短くなります。その側は、ステップ2.3でアースに接続する必要があります。反対側では、シアン色のケーブルでジャックに接続します。ジャックには、後でArduinoピンD3を接続したときに配置されます。
<図>2.3
次に、すべての赤と青の電源ケーブルを追加します。赤は3.3ボルト用、青はアース(GND)用です
<図>結果は次のようになります。
<図>2.4
4番目のステップでは、すでにボード上で少し混雑しています。 3つのセンサーボードは、I2Cプロトコル(集積回路間)を介して通信します。つまり、それらはすべて同じ2つのArduinoピンに接続できるため、それらとArduinoピンA4およびA5の間に黄色と緑色のケーブルをはんだ付けします。また、ジャイロスコープの割り込みピン接続用の白いケーブルを追加します。
<図>これが行われると、ボードは次のようになります。
<図>2.5
無線トランシーバーは、I2Cよりも多くの接続を必要とする代わりにSPIプロトコル(シリアルペリフェラルインターフェイス)を介して通信するため、黒、灰色、茶色、紫色、オレンジ色のケーブルを追加します。
<図>
これがあなたが得るものです:
<図>2.6
次に、コンポーネントを準備します。
<図>オスピンヘッダーが事前にはんだ付けされていない場合は、はんだ付けとは別に、タッチセンサーボードに特に注意してください。中国の安価なモデルでは、アドレスピンがアースに配線されており、間にプルダウン抵抗がないため、ボードの下部にあるこの接続を万能ナイフで物理的に切断する必要があります。 ADDが書かれている場所の隣にある2つのはんだパッドの間を切り取ります。後でパッド間に接続が残っていないことを確認するためにマルチメーターを使用することをお勧めします:
<図>すべてのコンポーネントにピンヘッダーがはんだ付けされ、タッチセンサーボードが準備できたら、Arduino Nano、ジャイロスコープ、2つのタッチセンサーボード、および無線トランシーバーをコントローラーボードに接続できます。
<図>(多分)完成したコントローラーボード:
<図>2.7
再確認した後、すべてが正しく配線されている場合、次のステップは、提供されたKravox-Controllerコード(添付ファイルを参照)をArduino nanoにアップロードすることですが、その前に、ジャイロスコープのライブラリをインストールする必要があります。タッチセンサーボードと無線トランシーバー。 Arduinoライブラリを初めて使用する場合は、ここでそれらをインストールする方法を確認してください。
- MPU-6050ジャイロスコープには、JeffRowbergによるライブラリ「I2Cdev.h」と「MPU6050_6Axis_MotionApps20.h」が必要です。これらはここからダウンロードできます。
- MPR121タッチセンサーボードには、BareConductiveの「MPR121.h」ライブラリが必要です。このライブラリはここにあります。ライブラリには少なくとも2つのバージョンがあります。 Adafruitが開発したバージョンではなく、BareConductiveが開発したバージョンをインストールしてください。
- NRF24L01無線トランシーバーボードには、TMRh20によるライブラリ「nRF24L01.h」および「RF24.h」が必要です。これらはここからダウンロードできます。注意:同じ名前のライブラリには、少なくとも2つのバージョンがあります。 maniacbugによるものではなく、TMRh20によって開発されたものをインストールしてください。
ライブラリがインストールされるとすぐに、Kravox-Controllerコードをアップロードできます。すでに確認したい場合は、コントローラーが機能しているかどうかを、シリアルモニターを介してタッチセンサーとジャイロスコープからデータを出力させることができます。そのためには、コメントを外す必要があります アップロードする前の受信者コードの最後のセクション:
<図>コードの先頭(/ *)と末尾(* /)のコメントマークを削除して、コードを次のようにします。
<図>そのバリエーションのコードをアップロードした後、シリアルモニターを開き、115200のボーレート(データ転送速度)に設定します。これで、コントローラーボードを動かしてピンに触れると変化するセンサーからのデータを確認できるはずです。 0から11までのラベルが付いたMPR121ボードの数。
何も機能しない場合、またはゼロしか得られない場合は、配線を注意深く確認し、上の回路図と比較してください。シリアルモニターからおかしな出力が表示された場合は、正しいボーレートに設定されているかどうかを確認してください。
2.8
コントローラボードを、使用するパワーバンクに接続します。
<図>ボード(より正確にはパワーバンク)がしばらくしても自動的にオフにならない場合は、コントローラーボードが完成し、パート3に進むことができます。それ以外の場合は、手順2.9を実行します
2.9
原則としてコントローラーボードは完成していますが、一部のパワーバンクは、エネルギー消費量が非常に少ないため、コントローラーボードに接続すると数秒後に自動的にオフになります。
ダーティフィックスとして、Arduinoの5VピンとGNDピンの間に3つの220オーム抵抗を並列に追加することができます。これらの抵抗器は追加のエネルギーを放散し、それらを熱に変換するため、コントローラーはパワーバンクがオンのままになるのに十分な量を消費します。心配しないでください。小さなパワーバンクでも、充電せずに何日もノンストップで動作します
Arduino Nanoを取り外し、次のように抵抗器にはんだ付けします。
<図>したがって、ボードは次のようになります。
<図>コンポーネントを再接続すると、(間違いなく)完成したコントローラーボードは次のようになります。
<図><図>
パート3–レシーバーボードの作成
チュートリアルのこの部分では、レシーバーボードの作成方法を説明します。プロセスは、コントローラーボードの作成と非常によく似ています
<図>
特定のケーブルをどこに接続するかを確認したい場合は、次の回路図を参照してください。
<図>3.1
最初のステップは、パフォーマンスボードとメスのピンヘッダーをサイズに合わせてカットし、無線トランシーバーの信頼性を高めるのに役立つ大小のコンデンサーと一緒に組み立てることです。一番下のメスのピンヘッダーは意図的に必要以上に長く残されているため、後でArduinoグラニュラーシンセのような他のプロジェクトに使用できる可能性があります。詳細については、このステップをステップ2.1と比較できます
<図>
ステップ3.1の最後のボードの写真:
<図>3.2
次に、すべての赤と青の電源ケーブルを追加します。赤は3.3ボルト用、青はアース(GND)用です
<図>
次のようになります。
<図>3.3
SPI通信用ケーブルのはんだ付け:
<図><図>
<図>
3.4
コンポーネントの取り付け:
<図><図>
レシーバーボードはこれで完成ですが、添付ファイルからArduino NanoにKravox-Receiverコードをアップロードする前に、まずレシーバーのインターフェイスを作成する必要があります
パート4–レシーバーインターフェイスの作成
チュートリアルのこの部分では、4つのポテンショメータとレシーバー用のLEDを備えたインターフェースを作成する方法を示します。インターフェイスは次のように配線されています:
<図>そして、次のようにレシーバーボードに接続されます:
<図>
このように進めます:最初に8本のケーブルのケーブルストランドを取り、そのうちの5本をポテンショメータの中央のピンにはんだ付けします。混乱しないように、できれば同じ色を使用してください:
<図>次に、2 * 17穴幅のパーフボードと17ピンのオスピンヘッダーをサイズに合わせてカットします
<図>ケーブルとピンヘッダーをボードに取り付けます。上の回路図に注意して、ケーブルが正しい場所に接続されていることを確認してください
<図>次に、すべてのポテンショメータの片側を青いアース接続ケーブルで接続します(おそらく、私よりも少し長いケーブルを使用します)。また、電流制限150オーム抵抗器を備えた青色LEDを追加します。もう一度LEDの極性に注意してください(ステップ2.2と比較してください)
<図>次に、すべてのポテンショメータの反対側を緑色の5V接続ケーブルで接続します(おそらく、私より少し長いケーブルを使用します)。
<図>完成したインターフェースは次のようになります...
<図>...そして次のようにレシーバーボードに接続できます:
<図>これで、KravoxレシーバーコードをレシーバーのArduinoNanoにアップロードすることもできます。
それが機能していてコントローラーからデータを受信しているかどうかを確認したい場合は、アップロードする前にコードを少し調整する必要があります。デフォルトでは、Receiverは純粋なデータで解釈できる形式でデータを出力しますが、シリアルモニターに有用な情報を表示しません。ただし、次の行にコメント(//前に追加)することで、コード内のこの動作を変更できます。
#define WRITE_AS_BYTES
次の行のコメントを外します(//前を削除します):
// #define PRINT_VIA_SERIAL_MONITOR
だからあなたはこれを回します:
<図>その中に:
<図>変更されたコードをアップロードすると、このビデオで示すように、コントローラーと4つのポテンショメーターからのデータをシリアルモニターで確認できるようになります。
パート5–コントローラーインターフェイス+エンクロージャーの作成
受信機と同様に、コントローラーにもインターフェイスがあります。これは、銅テープから作成するタッチインターフェイスです。
<図>
次のようにコントローラボードに接続されます:
<図>タッチインターフェイスをコントローラーのエンクロージャーに直接接続したいので、エンクロージャーを作成する(非導電性の)材料がすでに手元にあるはずです。ラップフィルムとビニール袋が入った空の箱を使用しました:
<図>タッチ電極を取り付けたい場所にマークを付けて、コントローラーインターフェイスの作成を開始します。互いに接触したり重なったりしてはならないことに注意してください:
<図>次に、24個の銅電極を適切なサイズにカットします...
<図>...そしてそれらをエンクロージャーに取り付けます:
<図>これでプラグを作成できます。そのために、2 * 24穴幅のperfboardと24ピンのオスヘッダーをサイズに合わせてカットし、24本のケーブルをはんだ付けします。中央のケーブルは少なくとも10cmの長さである必要があります。外側に、電極の幅と各ケーブルの間隔を追加します。たとえば、幅1 cmの銅テープを使用し、電極間に3 mmを残した場合、ケーブルの長さは10 / 11.3 / 12.6 / 13.9 / 15.2 ...
のように1.3cm長くなります。 <図>ケーブルのもう一方の端を次のように電極にはんだ付けします。
<図>銅の表面を非導電性の粘着テープで覆って、インターフェースを仕上げます。
<図>次に、インターフェースをボックスに折りたたんで接着します:
<図>前の手順で作成したボックスに小さいボックスを接着します。後でパワーバンクが含まれます:
<図>コントローラボードの背面を、残った段ボールまたはその他の少し厚い非導電性材料で覆います。
<図>LED用の穴を切り取り、LEDとパワーバンク(写真の黄色いオブジェクト)を所定の位置に接着します。コントローラの電源をオン/オフする方法であるため、USBケーブルを差し込んだり取り外したりできるようにパワーバンクを配置してください。また、タッチインターフェイスをコントローラボードに接続し、ボックスに入れます。ほとんどの場合、あまり動かないので、接着する必要はありません。
<図>2つのボックスの接合部でUSB-A-USB-Cケーブルを切り取り、それを引っ張ってArduino Nanoに接続します:
<図>これでコントローラーが完成しました!
<図>いくつかの輪ゴムで閉じることができます。後でタッチがないときにセンサーがタッチを認識するのに問題がある場合は、タッチセンシティブエンクロージャーとボードおよび曲がりくねったケーブルの間にラップフィルムなどの非導電性材料を入れてみてください。また、エンクロージャーのタッチセンシティブ部分が手などに触れない場合は、必ずパワーバンクを接続してください。詳細については、パート7を参照してください。
<図>
パート6–レシーバーエンクロージャーの作成
パート6では、レシーバー用のエンクロージャーも作成します。別の段ボール箱(以前はBluetoothトランシーバーが入っていたものを選択しましたが、フィッティングですか?)とポテンショメーター用のノブが必要になります
<図>まず、LEDのポテンショメータ用にいくつかの円形の穴を切り取ります。また、USBケーブルをArduinoNanoに接続する場所を切り取ります
<図>受信機ボードを接着します。ArduinoNanoのUSB-Cジャックが、前の手順でケーブル接続用に切り取った穴に合っていることを確認してください。
<図>次に、LEDを接着し、すべてのポテンショメータをねじ込みます。それらを入れる順序は上の回路図と同じです:
<図>これで、ノブを取り付けるだけで済みます。...
<図>...そして受信機が完成しました!
<図>
パート7–レシーバーを純粋なデータに接続する
すべてのハードウェアが完成したので、それを使って音楽を再生します。そのためには、ハードウェアを接続できるソフトウェアが必要です。 Kravoxの場合、そのソフトウェアはPure Data Vanillaであり、ここから無料でダウンロードできます
Pure Dataをコンピューターにインストールした後、それを起動し、添付ファイルからKravox.pdファイルを開きます。コンピュータのdrumsamplesフォルダと同じ場所に保存する必要があることに注意してください。保存しないと、PureDataはサンプルを見つけることができません
Kravox.pdソフトウェアインターフェイスが開いたらすぐに、青い情報ボックスを探し、ボックスにリストされている4つのいわゆる外部をインストールします。それらのインストールは簡単です。PureDataメニューの「ヘルプ」をクリックし、「インターネット上で追加のオブジェクトを検索」を選択し(言い回しが少し異なる場合があります)、「comport」、「zexy」、「freeverb」、「arraysize」を検索します。 「1つずつ最新バージョンをインストールしてください。これで、comport、repack、freeverb、arraysizeというラベルの付いた4つのオブジェクトは、次の図のように輪郭がしっかりしているはずです。ただし、そのためにPureDataを再起動する必要があるかもしれません
<図>必要な外付けをインストールした後、USB経由でレシーバーボックスを接続できます。パート4のコードを変更してArduinoシリアルモニターでレシーバーを使用する場合は、最初にこの変更を元に戻し、Arduinoシリアルモニターを接続して閉じる前に元のコードをレシーバーのArduino Nanoにアップロードする必要があります。これにより、レシーバーは忙しくなりません。話しかける。
次に、PureDataのログ/情報ウィンドウを見てください。急速に更新されるデータストリームが表示された場合、それは純粋なデータがすでに受信者を検出していることを意味しますが、代わりに次のような赤いメッセージが1秒おきに更新される可能性があります。
<図>赤いメッセージは少し異なる場合がありますが、結果は同じです。PureDataはまだレシーバーへの接続に成功していません。これは、どのUSBポートをリッスンするかをプログラムに通知する必要があるためです。ただし、USBポートは少し面白いことがあります。2014macbookProでは、Pure Dataは、レシーバーをどちらに接続しても、両方のUSBポートをシリアルポート3として認識します。ミラノでは、シリアルポート6として接続する必要のあるUSBポートが1つしかないLenovo Yoga PadでKravoxを使用し、最近、シリアルポートとしてアドレス指定したい2つのUSBポートを備えた別のWindowsノートブックにインストールしました。 8と9 ...ですから、私のアドバイスは、どの番号がUSBポートで機能するかを試すことです。そのために、Kravox.pdインターフェイスの一部として簡単なダイアログを作成しました。このダイアログでは、数字が機能するまでクリックするだけです。 [利用可能なポートを表示する]ボタンと[接続されているUSBデバイスを表示する]ボタンを試すこともできます–時々ですが、それほど頻繁ではありませんが、有用な情報も提供します。ただし、情報ウィンドウに応答が表示されるまでにはしばらく時間がかかります。
<図>情報ウィンドウに次のような高速に更新されるデータストリームが表示されると、正しいポート番号が見つかり、接続が確立されていることがわかります。
<図>これまでのところとても良いです! [保存]をクリックすると、PureDataは次に自動的に開いたときにこのポートへの接続を試みます。
ただし、コントローラーをオンにする必要があります。手順2.7でKravoxコントローラーコードの最後のセクションのコメントを解除してコントローラーをシリアルモニターに接続した場合は、元のバージョンを今すぐ再度アップロードする必要があります。
コントローラボードをパワーバンクに接続します。これを行うときは、ボードの周りのタッチインターフェイスエンクロージャーを閉じ、エンクロージャーのタッチセンシティブ部分が手や他のものに触れないようにする必要があります。タッチセンサーは電源を入れたときに環境を感知し、手つかずの状態
おめでとうございます–これで完了です!
Kravoxを楽しんでください!
コード
ArduinoおよびPureDataのKravoxコード
このリンクから、KravoxコントローラーとKravoxレシーバーのArduinoコード、Pure DataのKravox.pdファイル、および機器に必要なドラムサンプルを含むZipファイルをダウンロードできます。ファイルの使用方法については、チュートリアルを参照してください。https://github.com/timkrahmer/Kravox 回路図
製造プロセス