Обсуждаем контроллеры компании Atmel.
Ответить

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

Пн сен 04, 2023 11:40:39

и чёй то... WEB сервер с WAV файлами... ))
а работать в браузере вообще небезопасно))
а сервер свой надо иметь))
:tea:

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

Вт сен 05, 2023 18:08:11

что у нас со звуком... ? ))

допиливаем самодельный скайп... для андроида))
комп_андроид.jpg
(164.57 KiB) Скачиваний: 43

уже можно звонить...
звук хороший... лучше чем в заводском скайпе)) потому что у нас нет никаких кодеков... поэтому звук чистый))
:music:
только видео ещё пока нет...
скайп.jpg
(49.21 KiB) Скачиваний: 41

но скоро будет))
:tea:

осталось решить вопрос с NAT... пипец эти NAT...
NAT это зло ! ))
:tea:

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

Ср сен 06, 2023 08:48:07

у меня кстати сервер, на который звуковые файлы идут за NATом.

Добавлено after 3 minutes 30 seconds:
но это дорога в одну сторону. Т.к как сервер имеет белый IP.
Кстати у одного метсного мобильного оператора нашел "дыру". В его сети Пакеты udp идут в обе стороны.
Но если начну что-то мутить сисадмины могут увидеть трафик и прикрыть "лавочку". Вот сижу и думаю стоит ли начинать.

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

Ср сен 06, 2023 12:48:44

olegue писал(а):В его сети Пакеты udp идут в обе стороны.

а что... у других не идут ?))
ну так используй... по полной ))

вообще мобильные операторы дают только Статический IP-адрес... из своей локалки... и вроде бесплатно))
Screenshot_1.jpg
(12.87 KiB) Скачиваний: 41

белый IP не дают... А может уже и дают... но я такого не слышал))
потом надо будет уточнить... пока не нужно.

вообще изначально я разрабатывал систему связи через бесплатный Wi-Fi... которым покрыт весь центр города... есть в каждом фонарном столбе...))
Screenshot_2.jpg
(42.57 KiB) Скачиваний: 37


Добавлено after 56 minutes 42 seconds:
MAC -00:08:22:x:x:x андроид))
интересно что при каждом выходе из спячки андроид подключается к сохраненной Wi-Fi точке...
при этом каждый раз меняет MAC... 00:08:22:x:x:x... чтоб низя было отследить пользователя по MAC...
Screenshot_1.jpg
(28.08 KiB) Скачиваний: 32

причём на компе это делается вручную...
на андроиде это уже настроено с завода...

а сам чип Wi-fi сделан на тайване))
первые три цифры - производитель чипов))
Screenshot_3.jpg
(29.63 KiB) Скачиваний: 31

даже адрес есть))
Screenshot_2.jpg
(32.26 KiB) Скачиваний: 30

всё с вами понятно))
:tea:

как это влияет на связь ?
никак )) ARP с этим справляется прекрасно))
:tea:

Добавлено after 17 minutes 30 seconds:
ну так себе безопасность))
:))
вообще это отдельная большая тема))
:tea:
на самом деле сейчас отслеживают пользователей не по IP, а по всяким "отпечаткам" и активности в сети))

например каждый раз когда ты используешь свой браузер твой браузер передаёт на сервер всю информацию о тебе...
операционная система... тип браузера... ядро... версия... Linux... Android 4.2.2... и т.д.
я уже не говорю про всякие куки))
андроид.jpg
(83.82 KiB) Скачиваний: 38

ты ещё даже не успел подключиться к серверу... а твой андроид тебя уже сдал ! ))
:))
поэтому нормальные люди браузеры не используют))
ну разве только в некритичных приложениях... типа управлялки))
Кораблик_WEB.jpg
(150.1 KiB) Скачиваний: 35

там информация не выходит за пределы локалки))
Screenshot_7.jpg
(233.48 KiB) Скачиваний: 35

:tea:

Добавлено after 10 minutes 26 seconds:
щас все скажут... ну как же ! есть же VPN ! ))
есть... и он тоже работает по юдп... точнее там динамически все переключается...
VPN.jpg
(185.08 KiB) Скачиваний: 28

в этом случае все твои данные хранятся на сервере VPN )) класс))
вообще это отдельная тема...
:tea:

Добавлено after 3 minutes 20 seconds:
у одного метсного мобильного оператора нашел "дыру". В его сети Пакеты udp идут в обе стороны.

это нормально)) так работает заводской скайп...
Screenshot_10.jpg
(129.24 KiB) Скачиваний: 32

но это тоже отдельная большая тема))
:tea:
но вернёмся к нашим железкам...
железо.jpg
(166.55 KiB) Скачиваний: 34

теперь надо организовать коммутацию пакетов... добавить функций всяких... и обмануть NAT ))
:tea:

Добавлено after 1 hour 18 minutes 44 seconds:
к слову... гугл уже 10 лет двигает свой новый протокол... HTTP3... который к слову работает по юдп))
Screenshot_1.jpg
(57.68 KiB) Скачиваний: 32

но пока с переменным успехом))
:tea:

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

Ср сен 06, 2023 13:30:46

olegue писал(а):В его сети Пакеты udp идут в обе стороны.

а что... у других не идут ?))
ну так используй... по полной ))


:tea:


у других не идут и между операторами тоже не идут.
Просто перебирал операторов и смотрел и наткнулся на эту фишку

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

Ср сен 06, 2023 15:40:46

мне мой провайдер завел оптику в дом... поставил медиаконвертер (GPON)... и выделил постоянный белый IP...
и всё бесплатно ! )) :)
зачем мне мобильный оператор ? ))
:tea:

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

Пт сен 08, 2023 09:57:13

далее...
что то не могу придумать логику работы нашего самодельного телефона))
:roll:
пока только добавили второй поток - для управления.
теперь два потока - аудио и управление. типа как в FTP ))
комп_андроид.jpg
(173.43 KiB) Скачиваний: 26

теперь можно разговаривать по телефону и параллельно принимать другие звонки)) звонок работает независимо.
:tea:

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

Чт сен 14, 2023 10:45:24

roman.com писал(а):16 бит * 16000 семплов = 256000 бит/c... по Wi-Fi... полный дуплекс )) и это ещё не предел))

а с этим проблема))
:roll:

в режиме воспроизведения андроид поддерживает
8000,11025,16000,22050,44100
16,8 бит
8)

в режиме записи андроид поддерживает только
8000,11025,16000
16 бит
:?

фигово)) а хотелось не только слушать... но и записывать в высоком качестве))
значит в караоке попеть не получится))

всё зависит от прошивки в телефоне...

прошивка Android 4.4.2 KitKat - в режиме записи андроид поддерживает только
8000,11025,16000
16 бит

поменял прошивку на Android 4.2.2 - теперь в режиме записи андроид поддерживает
8000,11025,16000,22050,44100
16 бит
:tea:

Добавлено after 16 minutes 21 second:
есть же VPN ! ))

через VPN работает отвратительно...
большая потеря пакетов... нормально разговаривать невозможно... всё тормозит...
но изначально связь и не рассчитывалась работать по VPN)) поэтому пофиг))
:tea:

Добавлено after 4 minutes 44 seconds:
мне мой провайдер завел оптику в дом... поставил медиаконвертер (GPON)... и выделил постоянный белый IP...
и всё бесплатно !

бесплатно - знаем где))
мой провайдер решил что фигу вам а статический белый IP ! ))
теперь мой провайдер даёт мне динамический белый IP ! ))
класс))
при каждом передергивании роутера получаем новый IP ! ))
и как теперь связываться с домом... пока не ясно...
:tea:

Добавлено after 33 minutes 8 seconds:
первое что приходит на ум... добавить в программу сканер IP ))
т.к. количество IP у провайдера ограничено... то передрать все IP провайдера и найти свой... не займёт много времени))
159.194.0.2
159.194.0.3
159.194.0.4
...
159.194.255.254
правда там несколько пулов ))
27.24.0.2
27.24.0.3
27.24.0.4
...
27.24.255.254
и т.д. ))
:tea:
пипец... озадачили))
:tea:

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

Вс сен 17, 2023 13:51:23

пишем звук на телефоне... под android ))
всё тоже самое что на компе...
:tea:

добавляем разрешение... AndroidManifest:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...

Создаём файл для записи (в память телефона)...
RandomAccessFile E_raf = new RandomAccessFile("storage/emulated/0/Document/EEPROM.txt", "rw");
...

а вот рекордер на телефоне под android немного отличается...
@SuppressLint("MissingPermission") AudioRecord record = new AudioRecord(TEST_STREAM_TYPE_MIC, TEST_SR_MIC, TEST_CONF_MIC, TEST_FORMAT_MIC, mic_byte_wavt.length);
...

в остальном всё тоже самое что на компе...
всё работает))
:tea:

Добавлено after 46 seconds:
када уже будем писать на Ардуино ?))

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

Вс сен 17, 2023 14:36:29

Здравствуйте

тема такая. Известно ,что udp пакет состоит из заголовка и данных.
Мне нужно передать 4 бита дополнительной информацаии. Вопрос в том как это сделать
Всадить 4 бита при отравки я думаю смогу. Как вашем плейере обработать этот момент.
Я собираюсь использвоать первый 4 бита данных под свою информацию

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

Вс сен 17, 2023 17:11:14

Известно ,что udp пакет состоит из заголовка и данных

Известно))
как устроен udp пакет мы подробно разобрали в другой теме... про радиоуправление))

//unsigned char UDP[]={ // 60
//Destination MAC: // 0...5
//0xff,0xff,0xff,0xff,0xff,0xff,
//Source MAC: // 6...11
//0x00,0x08,0xdc,0x01,0x02,0x03,
//Type:
//0x08,0x00, // 12,13- Type: IP (0x0800)
/////////////////////////////////////////////// Protocol IP: 20 bytes
//0x45, // 14- Version: 4, Header length: 20 bytes
//0x00, // 15- Differentiated Services Field...
//(Total Length = Protocol IP(20) + Protocol UDP(8) + Data(18) = 46)
//0x00,0x2e, // 16,17- Total Length: 46
//0x00,0x00, // 18,19- Identification: 0
//0x00,0x00, // 20,21- Fragment offset: Don't fragment: 0
//0x40, // 22- Time to live: 64
//0x11, // 23- Protocol: UDP (17)
//0x00,0x00, // 24,25- Header checksum IP: // начальное =0
//192,168,0,3, // 26...29- Source IP:
//192,168,0,101, // 30...33- Destination IP:
/////////////////////////////////////////////// Protocol UDP
//0x00,0x50, // 34,35- Source port: 80
//0x00,0x50, // 36,37- Destination port: 80
//(Length = Protocol UDP(8) + Data(18) = 26)
//0x00,0x1a, // 38,39- Length: 26
//0x00,0x00, // 40,41- checksum UDP: // начальное =0
/////////////////////////// 42...59- Padding(18 bytes):
//0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x00, 0x00
//};

:tea:

Добавлено after 3 minutes 10 seconds:
Мне нужно передать 4 бита дополнительной информацаии.

я передаю дополнительно 48 байта в заголовке каждого пакета...
точно так же как Skype передаёт 24 бита (это не точно) в заголовке каждого пакета... (на анализаторе это хорошо видно).
:tea:

Добавлено after 8 minutes 27 seconds:
Как вашем плейере обработать этот момент.

тупо из буфера плеера...
static byte[] mic_byte_wavt = new byte[1420];//1420wavt(микрофон)
переписываем байты в буфер передатчика...
static byte[] TX_byte_wavt = new byte[1472];//1472 Ethernet
вот так...
//16v+32p+1420date+4crc=1472byte//UDP: MAX=1472.
xxTX_wavt = 0;
for (xTX_wavt=48; xTX_wavt<1468; xTX_wavt++) {
TX_int_wavt[xTX_wavt] = mic_byte_wavt[xxTX_wavt]; //byte 0...127|-127...0 > int 0...255
if (TX_int_wavt[xTX_wavt] < 0){TX_int_wavt[xTX_wavt] += 256;}
xxTX_wavt++;
};
затем в начало буфера передатчика добавляем заголовок... считаем... шифруем... и т.д.))
//16v+32p+1420date+4crc=1472byte//UDP: MAX=1472.
...
потом всё это отправляем по сети... Ethernet... Wi-Fi... не важно))
...
DatagramPacket dp_wav = new DatagramPacket(TX_byte_wavt, TX_len_wavt, InetAddress.getByName(TX_IP_wavt),TX_port_wavt);
socket_wav.send(dp_wav); // UDP: MIN=18; MAX=1472.
...
всё))
:tea:

в приёмнике процесс обратный...

принимаем пакет...
...
DatagramPacket reply_wav = new DatagramPacket(RX_byte_wavr, RX_byte_wavr.length);
socket_wav.receive(reply_wav); // UDP: MIN=18; MAX=1472.
...
извлекаем заголовок... считаем... расшифруем... и т.д.))
...
потом тупо из буфера приёмника...
static int [] RX_int_wavr = new int[1472]; //1472 Ethernet
переписываем байты в буфер плеера...
static byte[] din_byte_wavr = new byte[1420];//1420wavr(динамик)
вот так...
//16v+32p+1420date+4crc=1472byte//UDP: MAX=1472.
xxRX_wavr = 0;
for (xRX_wavr=48; xRX_wavr<1468; xRX_wavr++) {
din_byte_wavr[xxRX_wavr] = (byte) RX_int_wavr[xRX_wavr];//int > din(динамик)
xxRX_wavr++; //1420
};
потом передаём плееру...
RX_line.write(din_byte_wavr, 0, din_byte_wavr.length);//1420wav(динамик)
плеер играет...))
:music:
...
всё))
:tea:

Добавлено after 52 minutes 53 seconds:
к слову... в android есть ещё одна интересная библиотека... Android Player.
у Android Player есть встроенный кодер/декодер MP3 ! ))
:)
с его помощью мы можем записывать/читать наш звук в формате MP3.
можем переводить наш WAV > MP3 и наоборот MP3 > WAV.
будем иметь ввиду)) потом поиграемся))
:tea:
а можем даже сделать интернет радио... из android))
:roll:
1-открываем простой плеер на ПК...
плеер.jpg
(25.8 KiB) Скачиваний: 15

2-берём IP адрес и номер порта...
IP.jpg
(66.93 KiB) Скачиваний: 19

3-закидываем IP адрес и номер порта в плеер на ПК... плеер подключается к серверу...
плеер_205_164_62_15_10032.jpg
(193 KiB) Скачиваний: 16

4-при подключении к серверу плеер передаёт обычный GET запрос...

GET / HTTP/1.0
Accept: */*
User-Agent: WINAMP
Icy-MetaData:1
Host: 205.164.62.15:10032
GET запрос.jpg
(170.96 KiB) Скачиваний: 24

5-сервер передаёт плееру обычный HTTP ответ...

HTTP/1.0 200 OK
icy-br: 192
icy-pub: 1
icy-description: 1.FM - Radio Gaia
icy-url: http://1.fm
Instance-id: ab50168940339c8583715106639d847f
Cache-Control: no-cache
Server: AIS Streaming Server 8.6.5
icy-genre: Chill
Expires: Mon, 26 Jul 1997 05:00:00 GMT
icy-metaint: 8192
Pragma: no-cache
icy-name: 1.FM - Radio Gaia
Connection: close
Content-Type: audio/mpeg
HTTP ответ.jpg
(165.5 KiB) Скачиваний: 12

6-и сразу же сервер передаёт плееру MP3 поток...

ff fb b2 64 e7 88 c5 ce 68 d3 53 6f 64 50 77 ca...

Добавлено after 2 minutes 7 seconds:
MP3 поток.jpg
(181.83 KiB) Скачиваний: 17

играет музыка))
:music:

7-подробней...
вначале идёт заголовок (ff)... тип файла(fb)... битрейт... и т.д.
ff fb b2 64 e7 88 c5 ce 68 d3 53 6f 64 50 77 ca...
описание.jpg
(84.05 KiB) Скачиваний: 18

потом сам MP3 поток...

Всё ! ))

аналогично можно сделать на android...

но сначала надо доделать наш мессенджер))
мессенджеры.jpg
(55.15 KiB) Скачиваний: 23

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

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

Вс сен 17, 2023 21:51:08

да, верно проблем особых нет. Ятут и сам уже малость подсуетился с кодом. Спасибо, Роман, всегда выручаете.

Добавлено after 4 hours 39 minutes 11 seconds:
Контрольная сумма (Checksum): Это 16-битное поле, которое используется для обеспечения целостности данных в пакете. Это поле не обязательно и может иметь значение 0, если контрольная сумма не используется.

может это подъвязат что бы в данные не лезт

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

Вс сен 17, 2023 22:49:07

olegue писал(а):Контрольная сумма (Checksum)

ты же сам ответил...
olegue писал(а):Это поле не обязательно и может иметь значение 0

1-должно быть или Контрольная сумма (Checksum) или значение 0.
2-только для IPv4 можно значение 0... для IPv6 должно быть только Контрольная сумма (Checksum).
3-ты не сможешь это использовать это из Java... в Java нет такой функции - менять Контрольная сумма (Checksum)
Если использовать ардуино то можно менять Контрольная сумма (Checksum) ... В ардуино вообще всё можно менять))
:tea:
а чем тебе не нравится заголовок ? все нормальные люди передают заголовки...
:roll:

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

Пн сен 18, 2023 16:39:48

Так вот есть такое, называется, pear to pear соединение, используется в телеграмме если для звонков в том случает если известны ip адреса абонентов то их соединяют таким вот образом а не через сервер.

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

Пн сен 18, 2023 17:09:03

я использую pear to pear соединение... комп <> android
комп_андроид.jpg
(173.43 KiB) Скачиваний: 13

в телеграмме... не знаю)) можно выяснить... по анализатору))
olegue писал(а):если известны ip адреса абонентов то их соединяют таким вот образом а не через сервер.

кто их "соединяет" ? ))

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

Ср сен 20, 2023 10:02:33

может это подъвязат что бы в данные не лезт

там ещё порт есть... его можно крутить как угодно... если что))

продолжаем делать наш типа мессенджер))
Screenshot_1.jpg
(113.05 KiB) Скачиваний: 23

звонить уже можно...
:tea:
ещё бы видео добавить в андроид... для этого есть замечательная библиотека Robot...
только new Robot(); в андроид не работает...
:roll:

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

Чт сен 21, 2023 22:15:26

ещё подкрутили))
Screenshot_1.jpg
(100.37 KiB) Скачиваний: 23

:tea:

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

Пт сен 22, 2023 08:33:09

Подскажите, а на какой страничке можно посмотреть результат для изначального запроса? Т.е. таки допилили код записи в sd-карту или нет, или сразу в Ethernet?

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

Пт сен 22, 2023 14:22:09

задачи записи звука в sd-карту с помощью Ардуино... у меня не стояло))

хотя...
1- я цифровал и воспроизводил звук с помощью Ардуино...
2- я записывал и читал данные в sd-карту с помощью Ардуино...

осталось только совместить эти два устройства... в одно ))
пока руки не доходят...
:tea:

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

Пт сен 22, 2023 17:13:32

Я ищу интересные примеры для своего демо репозитория, коллекцию пополняю. Когда-то делал запись на карту dbf-файла базы данных:

https://github.com/ViacheslavMezentsev/ ... o3-dbftest

Сейчас в железе почему-то этот пример не работает, но я его добью.

Буду отслеживать тему, если появится хоть какой-то прототип, который сможет украсить мою коллекцию.

Добавлено after 19 minutes 54 seconds:
Ещё есть вопрос, как к местному знатоку устройства ethernet в железе.

Во многих современных ПЛК, которые подключаются по Ethernet, есть 2 гнезда, чтобы соединять модули последовательно на одной DIN-рейке. Соединение по Ethernet происходит последовательно, т.е. если в гнездо 1 приходит кабель извне, то из второго гнезда кабель идёт в 1 гнездо второго модуля и так далее.

Если по какой-то причине модуль "отваливается", то пакеты всё равно "проходят" через него (насколько я понял).

Так вот вопрос: для реализации такой архитектуры обязательно иметь внутри ПЛК 3-портовый маршрутизатор (коммутатор) или можно придумать вариант для бедных?
Ответить