Transfer data from a serial plotter and convert into .wav files
5 次查看(过去 30 天)
显示 更早的评论
Respected All,
I am collecting data from the amplitude serial plotter connecting a MEMS I2S microphone SPH0645 and Arduino MKR WIFI 1010.
/*
This example reads audio data from an Invensense's ICS43432 I2S microphone
breakout board, and prints out the amplitude to the Serial console. The
Serial Plotter built into the Arduino IDE can be used to plot the audio
amplitude data (Tools -> Serial Plotter)
Circuit:
* Arduino/Genuino Zero, MKRZero or MKR1000 board
* ICS43432:
* GND connected GND
* 3.3V connected 3.3V (Zero) or VCC (MKR1000, MKRZero)
* WS connected to pin 0 (Zero) or pin 3 (MKR1000, MKRZero)
* CLK connected to pin 1 (Zero) or pin 2 (MKR1000, MKRZero)
* SD connected to pin 9 (Zero) or pin A6 (MKR1000, MKRZero)
created 23 November 2016
by Sandeep Mistry
*/
#include <ArduinoSound.h>
// create an amplitude analyzer to be used with the I2S input
AmplitudeAnalyzer amplitudeAnalyzer;
void setup() {
// Open serial communications and wait for port to open:
// A baud rate of 115200 is used instead of 9600 for a faster data rate
// on non-native USB ports
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// setup the I2S audio input for 44.1 kHz with 32-bits per sample
if (!AudioInI2S.begin(44100, 32)) {
Serial.println("Failed to initialize I2S input!");
while (1); // do nothing
}
// configure the I2S input as the input for the amplitude analyzer
if (!amplitudeAnalyzer.input(AudioInI2S)) {
Serial.println("Failed to set amplitude analyzer input!");
while (1); // do nothing
}
}
void loop() {
// check if a new analysis is available
if (amplitudeAnalyzer.available()) {
// read the new amplitude
int amplitude = amplitudeAnalyzer.read();
// print out the amplititude to the serial monitor
Serial.println(amplitude);
Serial.write(13);
delay(1);
}
}
I am reading the amplitude serial plotter into Matlab by the procedure described in in the
arduinoObj = serialport("COM4",115200); % My COM4 is MKR1010
configureTerminator(arduinoObj,"CR/LF");
arduinoObj.UserData = struct("Data",[],"Count",1);
configureCallback(arduinoObj,"terminator",@readSineWaveData);
I am able to read data in the User Data Structure.
I am converting to .wav audio file of this data by
audiowrite("filename.wav",data,44100);
I am not able to interpret this data.
My AIM is to record a 10 s audio data using the microphone --> convert it into .wav format --> audio processing in Matlab.
Thanking You,
0 个评论
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Audio I/O and Waveform Generation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!