gpt4 book ai didi

audio - 使用来自arduino的串行信息在Processing中播放音频

转载 作者:行者123 更新时间:2023-12-02 23:43:06 26 4
gpt4 key购买 nike

我正在创建一个程序,该程序从超声传感器/ arduino获取串行信息,并将其发送到处理程序,该程序将播放crickets.mp3或growl.mp3,具体取决于输入的值。

如果值<10,则crickets.mp3应该可以播放
如果值> 10,则应该播放growl.mp3

照原样,该代码将播放growl.mp3,但不会播放crickets.mp3

import processing.serial.*;
import ddf.minim.*;
Minim minim;
AudioPlayer player, player2;

Serial myPort; // Create object from Serial class
String dataFromArduino; // Data received from the serial port
String convertedDataFromArduino;

boolean soundactivated = false;
boolean sound2activated = false;

void setup() {
size(640, 480);

minim = new Minim(this);
player = minim.loadFile("crickets.mp3");
player2 = minim.loadFile("growl.mp3");

printArray(Serial.list());
String portName = Serial.list()[4]; //change the 0 to a 1 or 2 etc. to match your port
myPort = new Serial(this, portName, 9600);
}

void draw() {
player.pause();
dataFromArduino = myPort.readStringUntil('\n'); // read it and store it in message

if (dataFromArduino != null) {
convertedDataFromArduino = trim(dataFromArduino);
println(convertedDataFromArduino);


//Music calls
if (int(convertedDataFromArduino) < 10 && (soundactivated == false)) {

player.loop();
println("crickets");
soundactivated = true;
sound2activated = false;
} else if (int(convertedDataFromArduino) >= 11 && (sound2activated == false)) {

player2.loop();
println("growl");
sound2activated = true;
soundactivated = false;
}

//loop();
}
}

最佳答案

您遗漏了很多细节,因此很难以特定的方式回答,但我将尝试从一般意义上回答:

现在该开始调试代码了。

您需要弄清楚代码在做什么。您可以使用调试器(一次只一步一行地浏览代码),也可以使用println()语句来完成此操作,或者简单地自己用纸和铅笔来遍历代码。

您应该做的第一件事是确保这些声音文件有效,拼写正确(检查大小写)并位于您认为正确的位置。创建一个小的示例程序,无需任何Arduino代码即可简单地播放声音。

接下来,您需要准确了解Arduino的功能。您已经在打印出convertedDataFromArduino的值了。那值多少钱?如果它总是小于10,那么您需要弄清楚正在发生什么。如果您希望它大于10,则可以将其排除为可疑对象。

最后,您应该看一下if语句。他们都在您期望的时候都输入了吗?您期望这些打印语句是否被触发?如果该值大于或等于10但小于11,会发生什么?

如果仍然无法正常运行,则可以考虑创建一系列较小的程序。创建一个小程序,只是播放没有任何Arduino代码的声音。创建另一个小程序,只是打印出来自Arduino的值,而不会播放任何声音。使它们工作完美,并且仅在它们分开工作时才尝试将它们组合在一起。如果您遇到困难,可以将一个更具体的问题与MCVE一起发布,我们将从那里开始。祝好运。

关于audio - 使用来自arduino的串行信息在Processing中播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35595457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com