Ардуино - запись звука

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

в коде есть такая строка

Код: Выделить всё

rec.open(NameRecord, O_CREAT | O_TRUNC | O_RDWR); /* Имя нового - записываемого файла на SD-карту. */
в итого на флэшке вижу вот это

1
2
...
10
11
12
....
125
короче непорядок. Хотел бы добавить (вместо часов, экрана, и веб-радио) расширение файла wav и нули спереди цифр

т.е
0001.wav
0002.wav
.....
0354.wav

Что не получается. Начинается это все с этого

Код: Выделить всё

char NameRecord[4]; /* Имя нового - записываемого файла на SD-карту. */
byte RecordNumber; /* Номер записи - храним в EEPROM. в диапазоне 0..255. */
потом идет вот это

Код: Выделить всё

 
void loop() { // THIS RUNS LOTS!

  if (digitalRead(btnStart) == LOW && recPressed == 0) {
    /* Записываем в RecordNumber, значение из ячейки №0 EEPROM, и прибавляем 1. */
RecordNumber = EEPROM.read(0) + 1;
    /* Записываем в ячейку №0 EEPROM, увеличенное значение RecordNumber. */
    EEPROM.write(0, RecordNumber);
    /*  Для конвертации из byte в char / из RecordNumber в NameRecord */
    String str;  //declaring string.
    str = String(RecordNumber); //converting integer into a string.
    str.toCharArray(NameRecord, 4); //passing the value of the string to the character array.
   
неужели нельзя str объявить вначале, зачем его объявлять в цикле loop() ? (непоняточка)
вот эти все конвертации кажутся мне подозрительными, неужели нельзя как-то проще сформировать имя файла?

ну и заканчивается все это здесь

Код: Выделить всё

void writeWavHeader() { // write out original WAV header to file

  recByteSaved = 0;
  // rec.open("rec00000.wav", O_CREAT | O_TRUNC | O_RDWR);
  rec.open(NameRecord, O_CREAT | O_TRUNC | O_RDWR); /* Имя нового - записываемого файла на SD-карту. */
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Ардуино - запись звука

Сообщение roman.com »

Novice user писал(а):а запись сектора должен идти непрерывно?
нет.
писать/читать в сектора можно произвольно.
мы сами выбираем адрес сектора... в какой сектор будем писать/читать...
olegue писал(а):А как влияет на это все тип файловой системы в которую отформатирована флэшка?
мы просто тупо пишем на флешку данные...
после записи данных на флешку файловая система флешки стирается)) точнее мы сами её стираем...
после этого мы не можем подключить флешку к ПК и считать с неё данные... ПК выдаст ошибку )) Проверенно))

а чтобы после наших издевательств мы могли вставить флешку в ПК и прочитать что мы там записали... нам нужно писать на флешку не просто по секторам... а писать согласно файловой системе... FAT32... FAT16... и т.д.)) а для этого надо писать отдельную функцию - работа с файловой системой...

https://cxem.net/mc/mc435.php


но мне и не нужно писать/читать флешки с ПК.)) Поэтому я и не писал функции работа с файловой системой...
а просто писать/читать на флешку картинки и звук... и даже видео... можно и без файловой системы))

я так и сделал))

тупо взял ATmega8 и подключил к ней флешку и Ethernet модуль...
сижу... пишу с ПК на флешку... картинки и звук и видео...
сижу... читаю с флешки на ПК... картинки и звук и видео...
картинки.jpg
(135.68 КБ) 74 скачивания
звук.jpg
(187.65 КБ) 76 скачиваний
видео.jpg
(179.99 КБ) 67 скачиваний
и т.д.
:tea:
Novice user
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

Re: Ардуино - запись звука

Сообщение Novice user »

http://pic.rkniga.ru/shemotehnika/ustro ... f877a.html
вот еще нарыл,читаем значение АЦП и сразу пишем на флешку (в один сектор)
достал из полки платку атмега328+микросд,буду пробовать
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Ардуино - запись звука

Сообщение roman.com »

в моём примере пишем на флешку буфер целиком... сразу по 512 байт

//////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////// TX_microSD:
void TX_microSD(unsigned long x)
{
/////////////////////// crc bufer_microSD[512]:
crc=0xFFFF;
for (b=0;b<510;b=b+2) {
bcrc=bufer_microSD; bcrc=(bcrc<<8)|bufer_microSD[b+1]; fcrc();
};
bufer_microSD[510]=(crc>>8); // crc
bufer_microSD[511]=crc; // crc
///////////////////////////////////////////////
PORTB.0=0; // SS microSD
/////////////////////// запись Data:
tx3=0x58; SPI3(); // 01xx xxxx + Номер команды - CMD24
tx3=(x>>24); SPI3(); // адрес
tx3=(x>>16); SPI3(); // адрес
tx3=(x>>8); SPI3(); // адрес
tx3=x; SPI3(); // адрес
tx3=0x00; SPI3(); // 0000 0000. CRC - 0
// ответ R1: 0000 0000 - команда microSD принята
tx3=0xFF; SPI3(); // задержка 1 байт 0xFF
tx3=0xFF; SPI3(); // STATUS R1 0000 0000
//////////////////////////////////////////////////////////////////////////////// метка:
tx3=0xFE; SPI3(); // 0xFE метка для команды - CMD24
//////////////////////
for (a=0; a<512; a++) {
tx3=bufer_microSD[a]; SPI3(); // bufer > microSD
};
////////////////////
tx3=0x00; SPI3(); // CRC - 0
tx3=0x00; SPI3(); // CRC - 0
/////////////////////////////////////////////////////////// ответ - данные приняты 0xE5:
tx3=0xFF; SPI3(); // SPI пустой
/////////////////////////////////////////////////// ждём окончания записи... OUT = 0xFF:
while ( (x1 != 0xFF) && (tm_microSD != 255) ) {
tx3=0xFF; SPI3(); x1=rx3; // MOSI 0x00 > MOSI 0xFF // -цикл 34...53
tm_microSD++;
};
//////////////
if (tm_microSD == 255) { // таймаут microSD:
error_microSD_EEPROM |= 0b00010000; // 0001 0000 - error microSD_TX
};
tm_microSD = 0; // сброс таймаут tm_microSD.
////////////////////////////////////////////////////////////////
PORTB.0=1; // SS microSD
////////////////////////////////////////////////////////////////////////////////////////
// microSD - ток = 0 mA.


но никто не запрещает читать значение АЦП и сразу писать на флешку )) по одному байту...


//////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////// TX_microSD:
void TX_microSD(unsigned long x)
{
/////////////////////// crc bufer_microSD[512]:
crc=0xFFFF;
for (b=0;b<510;b=b+2) {
bcrc=bufer_microSD; bcrc=(bcrc<<8)|bufer_microSD[b+1]; fcrc();
};
bufer_microSD[510]=(crc>>8); // crc
bufer_microSD[511]=crc; // crc
///////////////////////////////////////////////
PORTB.0=0; // SS microSD
/////////////////////// запись Data:
tx3=0x58; SPI3(); // 01xx xxxx + Номер команды - CMD24
tx3=(x>>24); SPI3(); // адрес
tx3=(x>>16); SPI3(); // адрес
tx3=(x>>8); SPI3(); // адрес
tx3=x; SPI3(); // адрес
tx3=0x00; SPI3(); // 0000 0000. CRC - 0
// ответ R1: 0000 0000 - команда microSD принята
tx3=0xFF; SPI3(); // задержка 1 байт 0xFF
tx3=0xFF; SPI3(); // STATUS R1 0000 0000
//////////////////////////////////////////////////////////////////////////////// метка:
tx3=0xFE; SPI3(); // 0xFE метка для команды - CMD24
//////////////////////
for (a=0; a<512; a++) {
tx3=ADC; SPI3(); // ADC > microSD
};
////////////////////
tx3=0x00; SPI3(); // CRC - 0
tx3=0x00; SPI3(); // CRC - 0
/////////////////////////////////////////////////////////// ответ - данные приняты 0xE5:
tx3=0xFF; SPI3(); // SPI пустой
/////////////////////////////////////////////////// ждём окончания записи... OUT = 0xFF:
while ( (x1 != 0xFF) && (tm_microSD != 255) ) {
tx3=0xFF; SPI3(); x1=rx3; // MOSI 0x00 > MOSI 0xFF // -цикл 34...53
tm_microSD++;
};
//////////////
if (tm_microSD == 255) { // таймаут microSD:
error_microSD_EEPROM |= 0b00010000; // 0001 0000 - error microSD_TX
};
tm_microSD = 0; // сброс таймаут tm_microSD.
////////////////////////////////////////////////////////////////
PORTB.0=1; // SS microSD
////////////////////////////////////////////////////////////////////////////////////////
// microSD - ток = 0 mA.

и т.д. и т.п. ))
:tea:
Novice user
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

Re: Ардуино - запись звука

Сообщение Novice user »

В том то и дело что для диктофона на атмега8 с буфером(=массивом) надо 2 буфера по 512 байт-пока в первый буфер записываем значения АЦП (сигнал с микрофона) второй буфер пишем на флешку,когда заполнится первый буфер пишем значения АЦП во второй буфер,а первый пишем на флешку и так по кругу (я про исходник из 1 поста),но у атмега8 SRAM всего 1 кб,так что такой вариант думаю не получится,вот и подумал-что если данные АЦП писать сразу на флешку,когда сектор заполнится переходим в след сектор-получится?
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Ардуино - запись звука

Сообщение roman.com »

когда сектор заполнится переходим в след сектор...

для этого опять вызываем функцию записи...

while(пока нажата кнопка "запись")
{
//указываем следующий сектор для записи... 0,1,2,3,4,5,6,7...
x++;
//затем вызываем функцию записи
TX_microSD(x);
}
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: Ардуино - запись звука

Сообщение Morroc »

[uquote="Novice user",url="/forum/viewtopic.php?p=4239571#p4239571"]если данные АЦП писать сразу на флешку,когда сектор заполнится переходим в след сектор-получится?[/uquote]
каждый байт что ли ? кроме того, что это изнасилование флэшки (она побайтно не умеет и будет переписывать сектор), так еще и долго

понаберут восьмых мег на 20р дешевле, потом мозг ломают себе и окружающим :))
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

Код: Выделить всё

 String str;  //declaring string.
    //
   str = String(RecordNumber); //converting integer into a string.
   str.concat(".wav");
   
   str.toCharArray(filename, sizeof(filename));
расширение файла добавил, осталось нули спереди пристроить.
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Ардуино - запись звука

Сообщение roman.com »

во первых никто побайтно писать не собирается.)) внимательней читай...
берём байты ADC... ждём пока не накопится у нас 512 байт данных ADC... и только после этого пишем на флешку... сразу 512 байт.

во вторых... всё немного интересней))

как работает флешка ?

судя по описаниям... и показаниям прибора (!)... флешка работает так же как SSD накопитель в ПК ))

1.
у флешки есть своя собственная встроенная энергозависимая память... буфер SRAM на 512 байт.
2.
у флешки есть своя собственная встроенный энергонезависимая память ROM на 4 Гбайт.

Как происходит запись на флешку ?

1.
при записи на флешку все данные сначала записываются в буфер SRAM на 512 байт.
2.
после команды "запись" флешка перезаписывает все данные из буфера SRAM на 512 байт в память ROM на 4 Гбайт.

откуда я это знаю ? ))

потому что только после команды "запись" потребляемый ток подскакивает с ~0 mA до 7 mA.
т.е. флешка потребляет ток только в момент записи данных из буфера SRAM на 512 байт в память ROM на 4 Гбайт.
вот откуда я это знаю))
:)

поэтому мы спокойно можем начала писать данные ADC в буфер SRAM на 512 байт.
а потом, когда буфер SRAM на 512 байт заполнится, флешка по команде перезапишет данные из буфера SRAM на 512 байт в буфер ROM на 4 Гбайт.
:tea:

но тут другая проблема... самая главная))
а сколько время записи флешки ? За сколько флешка по команде перезапишет данные из буфера SRAM на 512 байт в буфер ROM на 4 Гбайт ?
судя по приборам... десятки миллисекунд !!!
это значит что мы должны сидеть и ждать...... пока флешка перезапишет данные из буфера SRAM на 512 байт в буфер ROM на 4 Гбайт... И получается что в это самое время мы не можем ничего писать на флешку... :shock:

вооооотттт.... )))

или всё таки можем ? ))
:))
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Ардуино - запись звука

Сообщение Martian »

ну дык, что-то типа

Код: Выделить всё

while (str.length() < 4)
{
str = "0" + str;
}
перед wav, разумеется.
Последний раз редактировалось Martian Вт май 31, 2022 22:57:10, всего редактировалось 2 раза.
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

[uquote="olegue",url="/forum/viewtopic.php?p=4239422#p4239422"][uquote="Morroc",url="/forum/viewtopic.php?p=4239418#p4239418"]

Код: Выделить всё

else if (digitalRead(btnStart) == HIGH && recPressed == 1 && timer1on == 0) {
timer1 = millis();
timer1on = 1;
}
else if (digitalRead(btnStart) == HIGH && recPressed == 1 && timer1on == 1 && (millis() - timer1) > 2000) {
StopRec();
[/uquote]

да, уж. Действительно, все довольно просто!
увидели что запрошена остановка - запустили таймер
увидели что запрошена остановка и таймер отщелкал 2 сек - запустили остановку

КРУТО![/uquote]

Morroc, есть вопросик. Все отлично, но.... срабатывает только 1 раз. Второй раз, т.е вторая пауза уже не срабатывает.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Ардуино - запись звука

Сообщение Martian »

потому что где-то, наверное, надо timer1on снова обнулить

Добавлено after 1 minute 57 seconds:
наверное, после StopRec()
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

[uquote="Martian",url="/forum/viewtopic.php?p=4239595#p4239595"]ну дык, что-то типа

Код: Выделить всё

while (str.length() < 4)
{
str = "0" + str;
}
перед wav, разумеется.[/uquote]

Код: Выделить всё

   str = String(RecordNumber); //converting integer into a string.
   while (str.length() < 4)
    {
    str = "0" + str;
      }
   str.concat(".wav");
   str.toCharArray(filename, sizeof(filename));
Безупречно! Спасибо!
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Ардуино - запись звука

Сообщение Martian »

первый мой код для ардуино ))
filename размер не забудьте увеличить, он теперь должен быть 8
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

[uquote="Martian",url="/forum/viewtopic.php?p=4239597#p4239597"]потому что где-то, наверное, надо timer1on снова обнулить

Добавлено after 1 minute 57 seconds:
наверное, после StopRec()[/uquote]

Да, сам понимаю, что вот где-то всунуть нужно обнуление.

А почему после StopRec() ? По идее до StopRec() в данном режиме программа не должна доходить.

Добавлено after 1 minute 19 seconds:
[uquote="Martian",url="/forum/viewtopic.php?p=4239607#p4239607"]первый мой код для ардуино ))
filename размер не забудьте увеличить, он теперь должен быть 8[/uquote]

8 - было , "сьелась" последняя буква в расширении поставил 12 из расчета 8+3 плюс точка.

Добавлено after 1 minute 12 seconds:
почему сьелась не стал разбираться. Надо с паузой порешать.

Добавлено after 3 minutes 11 seconds:
в Ардиино Иде отладки нету?
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: Ардуино - запись звука

Сообщение Morroc »

отладки нет, добавили только в новых платах на дорогом проце
[uquote="olegue",url="/forum/viewtopic.php?p=4239596#p4239596"]Morroc, есть вопросик. Все отлично, но.... срабатывает только 1 раз. Второй раз, т.е вторая пауза уже не срабатывает.[/uquote]
я понадеялся, что это ((void (*)())0x0000)(); /* Делаем программную перезагрузку - Arduino */ сработает, оно после StopRec(); должно быть - есть ? не рестартит ?

[uquote="olegue",url="/forum/viewtopic.php?p=4239610#p4239610"]По идее до StopRec() в данном режиме программа не должна доходить.[/uquote]
это когда кнопку отжали, а потом снова нажали раньше 2 сек ? т.е. завершения записи не было ?
тут да, надо добавить еще что то такое

else if (digitalRead(btnStart) == LOW && recPressed == 1 && timer1on == 1) {
timer1on = 0;
}

[uquote="roman.com",url="/forum/viewtopic.php?p=4239594#p4239594"]во первых никто побайтно писать не собирается.)) внимательней читай...
берём байты ADC... ждём пока не накопится у нас 512 байт данных ADC... и только после этого пишем на флешку... сразу 512 байт.[/uquote]
так вроде этого и не хватало в 8й меге, нам же два таких буфера надо, а успеет ли буфер флэшки побафтно принимать и умеет ли SDFat такое я хз, если с нуля все писать, то может и получится
Последний раз редактировалось Morroc Вт май 31, 2022 23:48:47, всего редактировалось 1 раз.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

Morroc писал(а):не рестартит ?
рестартит!, я думал что за светомузыка после оставнова
Morroc писал(а):это когда кнопку отжали, а потом снова нажали раньше 2 сек ? т.е. завершения записи не было ?
нет, завершгения записи не было. И так мно раз может быть
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: Ардуино - запись звука

Сообщение Morroc »

ага, не хватает обработки состояния того, что выше постом, нужно добавить
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

Morroc писал(а):тут да, надо добавить еще что то такое

else if (digitalRead(btnStart) == LOW && recPressed == 1 && timer1on == 1) {
timer1on = 0;
}

Код: Выделить всё

void loop() { // THIS RUNS LOTS!

  if (digitalRead(btnStart) == LOW && recPressed == 0) {
    /* Записываем в RecordNumber, значение из ячейки №0 EEPROM, и прибавляем 1. */
    RecordNumber = EEPROM.read(0) + 1;
    /* Записываем в ячейку №0 EEPROM, увеличенное значение RecordNumber. */
    EEPROM.write(0, RecordNumber);
    /*  Для конвертации из byte в char / из RecordNumber в NameRecord */
   String str;  //declaring string.
    //
   str = String(RecordNumber); //converting integer into a string.
   while (str.length() < 4)
    {
    str = "0" + str;
      }
   str.concat(".wav");
   str.toCharArray(filename, sizeof(filename));
    /*str.toCharArray(NameRecord, 4); //passing the value of the string to the character array.*/
    StartRec(); // launch StartRec method
    timer1on = 0;
  }
  else if (digitalRead(btnStart) == HIGH && recPressed == 1 && timer1on == 0) 
    {
      timer1 = millis();
      timer1on = 1;
    }
    else if (digitalRead(btnStart) == LOW && recPressed == 1 && timer1on == 1) {
    timer1on = 0;  
    }
    
  else if (digitalRead(btnStart) == HIGH && recPressed == 1 && timer1on == 1 && (millis() - timer1) > 2000)
  {
    StopRec(); // launch StopRec method
    /*         Поэтому (Делаем программную перезагрузку). */
    ((void (*)())0x0000)(); /* Делаем программную перезагрузку - Arduino */
  }
 
  if (recByteCount % 1024 == 512 && recPressed == 1) {
    rec.write(buf00, 512);  // save buf01 to card
    recByteSaved += 512;
  }
  if (recByteCount % 1024 == 0 && recPressed == 1) {
    rec.write(buf01, 512);  // save buf02 to card
    recByteSaved += 512;
  }
}
Идеально работает!!!! Плюс нули спереди и wav в конце! Это- Победа!
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Ардуино - запись звука

Сообщение roman.com »

Martian писал(а):первый мой код для ардуино ))
вот так люди попадают в секту свидетелей ардуино ))
:))
Morroc писал(а):нам же два таких буфера надо,
У ATmega8 есть 1024 байт. Нам хватит одного буфера 512 байт ))

зачем нужен буфер ? для буферизации потокового аудио))

так все делают))
например когда вы смотрите видео на Ютуб про своих любимых котят обратите внимание на две полоски снизу...
серая полоска - это буфер аудио/видео потока.
красная полоска - это текущий поток аудио/видео карты ПК.
буферизация.jpg
(38.89 КБ) 65 скачиваний
мы сделаем так же на ATmega8 ))

1. пишем данные ADC в буфер ATmega8 размером 512 байт.
2. когда буфер ATmega8 размером 512 байт заполнится, мы передаём 512 байт в буфер флешки SRAM на 512 байт. И передаём команду записи. Флешка перезаписывает все данные из буфера SRAM на 512 байт в память ROM на 4 Гбайт.
3. а пока флешка перезаписывает все данные из буфера SRAM на 512 байт в память ROM на 4 Гбайт, мы в это время продолжаем писать данные ADC в освободившейся буфер ATmega8 размером 512 байт.

замечательно))
:tea:

Добавлено after 24 minutes:
olegue писал(а): Это- Победа!
ура !))
:beer:
теперь переходим к интересному)) просто писать на флешку... скучно)) будем писать на SSD в ПК ))
сделаем самодельный... Скайп !))

как работает Skype от Microsoft Corporation мы знаем
Skype_Microsoft_Corporation.jpg
(163.29 КБ) 69 скачиваний
сделаем самодельный Skype... от Roman_Corporation ))
Skype_Roman_Corporation.jpg
(186.09 КБ) 64 скачивания
это называется... Импортозамещение по-русски))
:))

звук уже настроили... теперь можно подключать Ардуино к ПК и писать на SSD в ПК ))

но просто писать звук мало... надо ещё писать видео ! )) есть видео камера USB...

блин... не могу понять как подключиться к USB... чтоб получить потоковое видео... от USB камеры...
:(
Ответить

Вернуться в «AVR»