感圧センサーで楽器を作ろう

第14回 IoT×プログラミング教育

感圧センサーで楽器を作ります。

感圧センサーの触る位置によって音の高さを変え、音楽を奏でる予定です。

接触位置センサーを使う

感圧センサーにもいろいろあるのですが、今回はたまたま手元にある「SoftPot接触位置センサ100mm」を使います。

押す位置で抵抗が変わるセンサー、つまり押す位置を数値化できるので、楽器制作と相性が抜群と思われます。

 

さっそく回路を組み立てましょう。

ジャンパーワイヤーのオス-メスを持っていれば、接触位置センサーの取り付けは簡単です。

押した位置を音に変えるプログラム

単純です。

接触位置センサーのAnalog入力値(0~1023)を、tone()の第2引数に入れるだけです。

#define PIN 10
int val = 0;

void setup(){ 
 pinMode(PIN, OUTPUT); 
 Serial.begin(9600);
}

void loop(){
 val=analogRead(0);
 Serial.println(val);
 if(val > 10){
  tone(PIN,val,100);
 }
 delay(100);
}

接触位置センサーは、触れてないときAnalog入力値は0となります。

一応、10以下の時は触れてないと判定し、10より大きい場合は音を出すようにしています。

また、音感に自信がない私は、シリアルモニタでAnalog入力値を確認できるようにしています。

基準の「ド」が262となり、この接触位置センサーが100mmなので、だいたい4分の1くらいの25.6mm (100mm × 262 ÷ 1024)の位置が、基準の「ド」なのでしょう。

楽器を演奏してみよう

鍵盤を書けば、もっと楽器らしいですが、まずは試しに演奏します。

・・・。

思惑通り、押す位置によって音の高さは変わりますが、音の高さの調整が難しいです。

「ドレミ」がひけない。

「かえるのうた」すらひけない。

 

子供たちも頑張って演奏(?)してくれました。

これで遊んでいると、音痴になりそうです。

多分、250から270の間は、262(ド)を出すというように、しっかり鍵盤を意識してプログラミングをしなければ、いけなかったのでしょう。

あと、音も安定して流れていないので、その調整も必要そうです。

まだまだ楽器と呼べるものを作るには、道のりが長い気がしました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)