我使用带有arduino的msgeq7芯片来分离所有连接在面包板上的音频插孔的音频。我的代码显示了7个不同的频率,每个频率的值都是“响度”。那个频闪了。我想知道是否有人知道如何使用arduino中的这些数据来创建c#中的图形光谱?没有什么太复杂的只是一个7x6网格,底部有绿点,顶部附近有红点,上下有助于可视化响度。有人帮吗?
答案 0 :(得分:1)
我不知道c#但你可以继续处理基于java构建的https://processing.org/处理,但很容易掌握。您可以使用处理与Arduino建立串行连接并在它们之间发送数据,然后在您认为合适的情况下渲染处理中的数据。
示例Arduino代码:
void setup() {
Serial.begin(9600);
Serial.setTimeout(20);
delay(100);
}
void loop() {
//send data over serial port
Serial.println("Hello World");
delay(50);
}
处理代码:
import processing.serial.*;
Serial myPort;
String val;
void setup() {
smooth();
size(300, 350);
//you may have to mess around with the value in brackets to get the right on.
//Try printling out all values in Serial.list() and find your Arduino port name
String portName = Serial.list()[3];
println(portName);
myPort = new Serial(this, portName, 9600);
myPort.bufferUntil('\n');
}
void draw(){
//draw stuff
}
void serialEvent( Serial myPort) {
//put the incoming data into a String -
//the '\n' is our end delimiter indicating the end of a complete packet
val = myPort.readStringUntil('\n');
//make sure our data isn't empty before continuing
if (val != null) {
//trim whitespace and formatting characters (like carriage return)
val = trim(val);
println(val);
}
}
希望这会让你开始。大部分信息来自Sparkfun Arduino处理教程https://learn.sparkfun.com/tutorials/connecting-arduino-to-processing 如果你还有其他问题,请看看它。