×

面包板空气吉他开源分享

消耗积分:0 | 格式:zip | 大小:0.15 MB | 2022-10-20

分享资料个

描述

该项目从使用超声波传感器检测距离开始。

poYBAGNQlOSAZM_cAAFr458ejqA058.png
 

然后我想到了用两个超声波传感器通过检测两个传感器之间测量距离的变化来判断经过物体的运动方向。

在测试过程中,我用于测试的手波让我想起了吉他弹奏。所以我想用它来做一把空气吉他。我的意思是谁能对空气吉他说不。

通过检测两个传感器之间距离的变化,得到前方物体的运动方向。

 // Clears the trigPin condition
 digitalWrite(trigPin1, LOW);
 delayMicroseconds(2);
 // Sets the trigPin HIGH (ACTIVE) for 10 microseconds
 digitalWrite(trigPin1, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin1, LOW);
 // Reads the echoPin, returns the sound wave travel time in microseconds
 duration1 = pulseIn(echoPin1, HIGH);
 // Clears the trigPin condition
 digitalWrite(trigPin2, LOW);
 delayMicroseconds(2);
 // Sets the trigPin HIGH (ACTIVE) for 10 microseconds
 digitalWrite(trigPin2, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin2, LOW);
 // Reads the echoPin, returns the sound wave travel time in microseconds
 duration2 = pulseIn(echoPin2, HIGH);
 // Calculating the distance
 distance1 = duration1 * 0.034 / 2; // Speed of sound wave divided by 2 (go and back)
 distance2 = duration2 * 0.034 / 2; // Speed of sound wave divided by 2 (go and back)
 d1 = distance1;
 d2 = distance2;
if ((t1 < t2)) { 
 // one direction
}
else if (t2 < t1){
 // another direction
}

完成弹奏作品后。下一步是为我们的空气吉他添加一种发声方式。

通过添加有源蜂鸣器,我们现在可以发出声音。

pYYBAGNQlOuANNskABCC3Ct3WFU816.png
 

从我们的空气吉他中获得不止一种声音。添加了另外三个按钮。理论上,3个按钮可以有7个组合。分别归属于 C4、D4、E4、F4、G4、A4、B4。

if (buttonState1 == 1 && buttonState2 == 0 && buttonState3 == 0) {
 tone(buzzerPin, NOTE_C4);
 }
 else if (buttonState1 == 0 && buttonState2 == 1 && buttonState3 == 0){
 tone(buzzerPin, NOTE_D4);
 }
 else if (buttonState1 == 0 && buttonState2 == 0 && buttonState3 == 1){
 tone(buzzerPin, NOTE_E4);
 } 
 else if (buttonState1 == 1 && buttonState2 == 1 && buttonState3 == 0){
 tone(buzzerPin, NOTE_F4);
 } 
 else if (buttonState1 == 1 && buttonState2 == 0 && buttonState3 == 1){
 tone(buzzerPin, NOTE_G4);
 } 
 else if (buttonState1 == 0 && buttonState2 == 1 && buttonState3 == 1){
 tone(buzzerPin, NOTE_A4);
 } 
 else if (buttonState1 == 1 && buttonState2 == 1 && buttonState3 == 1){
 tone(buzzerPin, NOTE_B4);
 } 

接下来我想添加更多按钮。模拟吉他和弦。使用 6 个激光传感器模拟六根弦。只模拟上下弹奏还是有点笨拙。预计六个激光传感器可以非常精确地检测各个六个弦的相互作用。因此,不仅弹奏,弹奏也可以用于空气吉他。

通过蓝牙连接以使用外部音频也可能是个好主意。和弦不能只用一个蜂鸣器来表达。使用 6 个蜂鸣器可能是创建和弦的一种方式。因为吉他有6根弦。但是蜂鸣器听起来仍然很糟糕,如果需要良好的体验,则需要外部扬声器和声源。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !