通过USB将Arduino的SD卡WAV文件传输到PI(Arduino USB> PI USB)

时间:2019-04-16 19:02:01

标签: arduino raspberry-pi serial-port wav file-transfer

简单地说,我有一个由声音触发的麦克风。然后录制5秒钟的声音,大约60kb。然后将该文件作为“ A.WAV”写入SD卡。这是我需要帮助的地方。

在SD卡上创建WAV之后,以下代码开始

我想通过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的格式

0 个答案:

没有答案