注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
6.1 フルーツピアノ¶
ピアノを弾いてみたいけど手が出ない、あるいはDIYでフルーツピアノを楽しみたいと思ったことはありませんか? そんなあなたにぴったりのプロジェクトです!
ESP32ボードにいくつかのタッチセンサーを取り付けるだけで、お気に入りの曲を演奏し、銀行を壊さずにピアノの演奏体験を楽しむことができます。
必要な部品
このプロジェクトには、以下のコンポーネントが必要です。
全てのキットを一つに買うのは非常に便利です。こちらがリンクです:
名前 |
このキットのアイテム |
リンク |
---|---|---|
ESP32 Starter Kit |
320+ |
以下のリンクから個別に購入することもできます。
コンポーネントの紹介 |
購入リンク |
---|---|
タッチピンについて
ESP32マイクロコントローラーには内蔵のタッチセンサー機能があり、ボード上の特定のピンをタッチ感度のある入力として使用できます。タッチセンサーは、人体の電気的特性によって引き起こされるタッチピン上の静電容量の変化を測定することで動作します。
ESP32のタッチセンサーの主な特徴は以下の通りです:
タッチピンの数
ESP32には、ボードによって最大10個のタッチピンがあります。タッチピンは通常、「T」に続く数字でラベル付けされます。
GPIO4: TOUCH0
GPIO0:TOUCH1
GPIO2: TOUCH2
GPIO15: TOUCH3
GPIO13: TOUCH4
GPIO12: TOUCH5
GPIO14: TOUCH6
GPIO27: TOUCH7
GPIO33: TOUCH8
GPIO32: TOUCH9
注釈
GPIO0ピンとGPIO2ピンは、それぞれESP32にブートストラッピングとファームウェアのフラッシングに使用されます。これらのピンはオンボードのLEDとボタンにも接続されています。そのため、これらのピンを他の目的で使用することは通常お勧めできません。なぜなら、ボードの通常の操作に干渉する可能性があるからです。
感度
ESP32のタッチセンサーは非常に敏感で、小さな静電容量の変化も検出できます。感度はソフトウェア設定で調整することができます。
ESD保護
ESP32のタッチピンには内蔵のESD(静電気放電)保護機能があり、静電気からボードを保護するのに役立ちます。
マルチタッチ
ESP32のタッチセンサーはマルチタッチをサポートしており、同時に複数のタッチイベントを検出できます。
回路図
このプロジェクトのアイデアは、タッチセンサーを使用してユーザーが特定のピンに触れたときを検出することです。 各タッチピンは特定の音符に関連付けられており、ユーザーがピンに触れると、 対応する音符がパッシブブザーで鳴ります。 これにより、ピアノ演奏の体験を手軽でお手頃な方法で楽しむことができます。
配線図
このプロジェクトでは、ESP32 WROOM 32Eを拡張ボードから取り外し、その後ブレッドボードに挿入する必要があります。これは、拡張ボード上の一部のピンが抵抗に接続されており、ピンの容量に影響を与えるためです。
コード
注釈
esp32-starter-kit-main\c\codes\6.1_fruit_piano
のパスの下にあるファイル6.1_fruit_piano.ino
を直接開くことができます。または、このコードをArduino IDEにコピーしてください。
これらのESP32のピンにフルーツを接続できます: 4, 15, 13, 12, 14, 27, 33, 32。
スクリプトが実行されると、これらのフルーツに触れると、ド、レ、ミ、ファ、ソ、ラ、シ、ド(C5)の音が鳴ります。
どのように動作するのか?
touchRead(uint8_t pin);
この関数はタッチセンサーのデータを取得します。各タッチセンサーには、充放電サイクルの数を数えるカウンターがあります。 パッドが 触れられた 場合、相当する静電容量が大きくなるため、カウンター内の値が変わります。 データの変化によって、パッドが触れられたかどうかが決まります。
pin
TOUCH値を読み取るGPIOピン
この関数は0から4095の値を返し、値が低いほど強いタッチ入力を示します。
注釈
threshold
は異なるフルーツの導電性に基づいて調整する必要があります。
最初にスクリプトを実行して、シェルによって印刷される値を確認できます。
0: 60
1: 62
2: 71
3: 74
4: 73
5: 78
6: 80
7: 82
12、14、27番のピンにあるフルーツに触れた後、印刷される値は以下の通りです。そのため、 threshold
を30に設定しました。これは、30未満の値が検出されたときに触れたと見なされ、ブザーが異なる音符を発することを意味します。
0: 60
1: 62
2: 71
3: 9
4: 12
5: 14
6: 75
7: 78