Передача WAV-файла SD-карты с Arduino на PI через USB (Arduino USB> PI USB) - PullRequest
0 голосов
/ 16 апреля 2019

Проще говоря, у меня есть микрофон, который срабатывает от звука. Затем он записывает звук в течение 5 секунд, что составляет около 60 КБ. Этот файл затем записывается на SD-карту как «A.WAV». Здесь мне нужна помощь.

Приведенный ниже код начинается ПОСЛЕ создания WAV на SD-карте

Я хотел бы отправить этот файл A.WAV на мой Raspberry PI через USB. Я понимаю, что вы можете подключить 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()
{
}

Ожидаемое : A.WAV перестраивается в хранилище PI.

Фактический: A.WAV читается как необработанные данные, не зная, как преобразовать их в формат, который Python может перестроить обратно в MP3

...