简单地说,我有一个由声音触发的麦克风。然后录制5秒钟的声音,大约60kb。然后将该文件作为“ A.WAV”写入SD卡。这是我需要帮助的地方。
我想通过USB将这个A.WAV文件发送到我的Raspberry PI。我了解您可以将ARDUINO MEGA(通过USB)连接到PI,然后PI读取串行端口(/dev/cu.us/usbmodem14101)
我在脑海中想的是“原始数据”,然后由PI将其“重建”为“新”(A.WAV),除了PI中。本质上,我是将A.WAV分解为原始数据,然后将其发送给PI,以便将其“重建”回A.WAV,以便我进行操作。
免责声明: 我无法在PI上全部完成操作,因此我想同时使用它们,请让我知道,可以通过串行端口将文件保存为原始数据以使其“重建”
如果有办法,我们可以将整个文件通过串行端口推送,我也将为此感到高兴!
谢谢
#include <SoftwareSerial.h>
//SD CARD SYSTEM
#include <SPI.h>
#include <SD.h>
// set up variables using the SD utility library functions:
Sd2Card card;
SdVolume volume;
SdFile root;
File myFile;
String number = "";
void setup()
{
//Intialize SD Card System
Serial.print("Initializing SD card...");
if (!SD.begin(53)) {
Serial.println("initialization failed!");
while (1);
}
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.print("\nInitializing SD card...");
if (!card.init(SPI_HALF_SPEED, chipSelect)) {
Serial.println("initialization failed. Things to check:");
Serial.println("* is a card inserted?");
Serial.println("* is your wiring correct?");
Serial.println("* did you change the chipSelect pin to match your shield or module?");
while (1);
} else {
Serial.println("Wiring is correct and a card is present.");
}
// print the type of card
Serial.print("Card type: ");
switch (card.type()) {
case SD_CARD_TYPE_SD1:
Serial.println("SD1");
break;
case SD_CARD_TYPE_SD2:
Serial.println("SD2");
break;
case SD_CARD_TYPE_SDHC:
Serial.println("SDHC");
break;
default:
Serial.println("Unknown");
}
if (SD.exists("a.WAV"))
{
Serial.println("Found File!");
} else {
Serial.println("Missing File!");
}
myFile = SD.open("a.WAV");
if (myFile) {
while (myFile.available()) {
number.concat(myFile.read());
number = (myFile.read());
Serial.write(myFile.read());
}
Serial.println(myFile, HEX);
//close the file:
myFile.close();
}
}
void loop()
{
}
预期: 在PI Storage上重建A.WAV。
实际: A.WAV被读取为原始数据,不知道如何将其转换为python可以重建回MP3的格式