ゴム板3枚、ドラムスティック
これバシバシ叩くと音がなるイメージ
ドラマーじゃないから楽器屋は恥ずかしい><
##圧電素子
ArduinoでKnock!!
プログラムがブラウザでできるようになっとる
参考
そして、グルーガン攻め
##コード
Piezoelectric.c
// these constants won't change:
const int ledPin = 13; // led connected to digital pin 13
const int knockSensor1 = A0; // the piezo is connected to analog pin 0
const int threshold1 = 10; // threshold value to decide when the detected sound is a knock or not
const int knockSensor2 = A2; // the piezo is connected to analog pin 0
const int threshold2 = 10; // threshold value to decide when the detected sound is a knock or not
const int knockSensor3 = A4; // the piezo is connected to analog pin 0
const int threshold3 = 10; // threshold value to decide when the detected sound is a knock or not
#define BEATTIME 100 //音を出している時間(msec)
#define SPEAKER 12 //スピーカーの出力ピン番号
// these variables will change:
int sensorReading1 = 0; // variable to store the value read from the sensor pin
int sensorReading2 = 0; // variable to store the value read from the sensor pin
int sensorReading3 = 0; // variable to store the value read from the sensor pin
int ledState = LOW; // variable used to store the last LED status, to toggle the light
void setup() {
pinMode(ledPin, OUTPUT); // declare the ledPin as as OUTPUT
Serial.begin(9600); // use the serial port
}
void loop() {
// read the sensor and store it in the variable sensorReading:
sensorReading1 = analogRead(knockSensor1);
sensorReading2 = analogRead(knockSensor2);
sensorReading3 = analogRead(knockSensor3);
// if the sensor reading is greater than the threshold:
if (sensorReading1 >= threshold1) {
// toggle the status of the ledPin:
ledState = !ledState;
// update the LED pin itself:
digitalWrite(ledPin, ledState);
// send the string "Knock!" back to the computer, followed by newline
Serial.println("Knock!");
tone(SPEAKER,330,BEATTIME) ; // ミ
}
// if the sensor reading is greater than the threshold:
if (sensorReading2 >= threshold2) {
// toggle the status of the ledPin:
ledState = !ledState;
// update the LED pin itself:
digitalWrite(ledPin, ledState);
// send the string "Knock!" back to the computer, followed by newline
Serial.println("Knock!");
tone(SPEAKER,300,BEATTIME) ; // ミ
}
// if the sensor reading is greater than the threshold:
if (sensorReading3 >= threshold3) {
// toggle the status of the ledPin:
ledState = !ledState;
// update the LED pin itself:
digitalWrite(ledPin, ledState);
// send the string "Knock!" back to the computer, followed by newline
Serial.println("Knock!");
tone(SPEAKER,100,BEATTIME) ; // ミ
}
delay(40); // delay to avoid overloading the serial port buffer
Serial.println(sensorReading3);
//Serial.println(sensorReading2);
}
##こんな感じ
久々にArduino#Arduino #圧電素子 pic.twitter.com/lWXvb8UNqK
— いまうじ (@imauji) 2017年6月12日
##残りの予定
- MIDI化 hairless
- アプリかなにかでアサインした音出す
- MIDI信号を映像側にも送る
- 精度の向上