Страница 5 из 5
Re: Ардуино и ключи.
Добавлено: Вт сен 09, 2025 10:35:41
roman.com
а как там в Спектруме ?
давно у меня был ZX Spectrum... ещё в молодости...
я уже не помню...
попробуем нажужжать двухтоналкой... синусом... 2 кГц и 4 кГц...
не... не получается.
резонанс и добротность мешает.
Итого:
"Манчестер-II" не подходит.
ЧМ (FSK) не подходит.
АМ (OOK) не подходит.
фазо-частотная модуляция не подходит.
...
...
...
думаем...

Re: Ардуино и ключи.
Добавлено: Вт сен 09, 2025 11:17:58
HardWareMan
[uquote="roman.com",url="/forum/viewtopic.php?p=4744957#p4744957"]попробуем нажужжать двухтоналкой... синусом... 2 кГц и 4 кГц...[/uquote]
Спектрум жужжит 1к-2к. Сместись ниже, не обязательно вверх лезть же.
Добавлено after 1 minute 26 seconds:
А, хотя стоп, у тебя добротность выше 4к поднимается - ну нажжужи 4к-8к. Или можно попробовать не кратное но различимое: 4к-6к. Ну или попробовать спуститься 3к-6к.
Re: Ардуино и ключи.
Добавлено: Вт сен 09, 2025 20:23:03
roman.com
[uquote="roman.com",url="/forum/viewtopic.php?p=4744957#p4744957"]думаем...[/uquote]
подумали... ))
двухтоналка используется в линиях связи с шумами... для надежного определения 0 и 1.
но у нас нет шумов. значит можно использовать однотоналку))
а кодировать будем... ну например паузами.
замечательно))
по-моему мы уже близко к цели.
собственно ничего нового мы не придумали... аналогично работает ИК пульт.
правда скорость маленькая получается... но зато просто и надёжно (в теории).

Re: Ардуино и ключи.
Добавлено: Вт сен 09, 2025 20:46:51
HardWareMan
Можно паковать несколько бит в одну посылку. Я знаю метод, где байт передаётся за 2 мырга (+1 обязательный первый мырг). При этом есть базовый контроль правильности. Что не мешает наложить ещё и расширенный, хоть с ECC.
Re: Ардуино и ключи.
Добавлено: Вт сен 09, 2025 23:11:14
roman.com
не знаю где байт передаётся за 2 мырга ))
это уже пошло уплотнение...
есть разные варианты уплотнения... простейший штрих код называется...))
меняются не только паузы но длительности импульсов...
причём есть 4 градации...
итого: меняя пауза и длительность можно получить плотность передаваемой информации (или как она там называется) 4 х 4 = 16 бит на герц.
Есть только одна проблема... Все эти уплотнения работают только в идеальных условиях... т.е. на линиях без шумов... точнее с высоким отношением сигнал / шум.
А нашу "линию связи" трудно назвать идеальной))

Re: Ардуино и ключи.
Добавлено: Ср сен 10, 2025 09:54:28
roman.com
далее...
в ходе экспериментов выясняются разные подробности... не связанные с резонансом и переходными процессами...
оказывается в телефоне типа Андроид при прослушивании громкой "музыки" при первом включении уровень сигнала в динамике возрастает плавно (линейно)... с задержкой до нескольких секунд...
не знаю с чем это связано... но видимо это сделано для защиты слухового аппарата пользователей... при прослушивании громкой "музыки" ))
спасибо конечно разработчикам Андроид за заботу))
но нам для декодирования надо (желательно) чтобы уровень сигнала имел постоянный уровень начиная с первой "ноты"))
в ПК аналогичный случай... но там уровень сигнала возрастает быстрей...
видимо разработчики ПК не такие заботливые))
теперь надо думать как с этим бороться.

Re: Ардуино и ключи.
Добавлено: Ср сен 10, 2025 14:38:01
Energizer-A
АРУ вроде так должен работать..
в древности тоже была преамбула длинного тона - этим все решалось
Re: Ардуино и ключи.
Добавлено: Ср сен 10, 2025 18:13:07
roman.com
откуда там АРУ... нет там АРУ... всё цифруется напрямую.
сделали преамбулу длинного тона...
теперь всё хорошо))

Re: Ардуино и ключи.
Добавлено: Чт сен 11, 2025 16:27:17
roman.com
далее...
а как принимать и декодировать будем ?
[uquote="roman.com",url="/forum/viewtopic.php?p=4745087#p4745087"]есть разные варианты уплотнения...[/uquote]
сейчас ардуино использует уплотнения...
фазо-частотная модуляция... у которой в скорость в два раза больше по сравнению с "Манчестер-II"...
но всё это работает по проводам... в идеальных условиях))
ну раз у нас телефон работает аналогично ИК пульту... то можно использовать туже технологию что и для ИК пульта.))
т.е. сделать всё на прерываниях...
но у нас схема работает не по проводам... поэтому возможно лучше использовать цифровку сигнала... с фильтрами...
тут надо подумать...
Спойлер
Код: Выделить всё
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////Modem:
var TX_Modem_st = 0; // счёт байт
var TX_Modem_Mask = 0; // маска
function TX_Modem(){
//44100, 16 бит, моно.
//int 8000...ffff | 0000...7fff
//-младший
//-старший
//заголовок: 64 байт (Base64) //882000 байт / 2 = 441000 семпл = (10c)
var W = "UklGRnR1DQBXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YVB1DQAAAAAA";
//пауза: 235200 байт (Base64) //235200(2c)
for (xTX=0; xTX<235200; xTX++) {
W += "A";
};//xTX++
//преамбула: 7350 байт (Base64) //44100 * 2 / 6 семпл = 7350(2c)
for (xTX=0; xTX<7350; xTX++) {
///////////////////////// 00 7f: "+" //12 байт / 2 = 6 семпл
//6 семпл
//00...7f
/////////////////////////
//4 - 36 00100100
//10 - 91 01011011
//14 - 127 01111111
//14 - 127 01111111
//10 - 91 01011011
//4 - 36 00100100
/////////////////////////
//000000
//000010 //4 - 36 00100100
//010000
//000000
W += "A";
W += "C";
W += "Q";
W += "A";
//010110 //10 - 91 01011011
//110000
//000001 //14 - 127 01111111
//111111
W += "W";
W += "w";
W += "B";
W += "/";
//000000
//000111 //14 - 127 01111111
//111100
//000000
W += "A";
W += "H";
W += "8";
W += "A";
//010110 //10 - 91 01011011
//110000
//000000 //4 - 36 00100100
//100100
W += "W";
W += "w";
W += "A";
W += "k";
///////////////////////// 00 80: "-" //12 байт / 2 = 6 семпл
//6 семпл
//80...ff
/////////////////////////
//4 - 91 11011011
//10 - 36 10100100
//14 - 0 10000000
//14 - 0 10000000
//10 - 36 10100100
//4 - 91 11011011
/////////////////////////
//000000
//001101 //4 - 91 11011011
//101100
//000000
W += "A";
W += "Z";
W += "s";
W += "A";
//101001 //10 - 36 10100100
//000000
//000010 //14 - 0 10000000
//000000
W += "p";
W += "A";
W += "C";
W += "A";
//000000
//001000 //14 - 0 10000000
//000000
//000000
W += "A";
W += "I";
W += "A";
W += "A";
//101001 //10 - 36 10100100
//000000
//000011 //4 - 91 11011011
//011011
W += "p";
W += "A";
W += "D";
W += "b";
/////////////////////////
};//xTX++
//Data:
for (TX_Modem_st=0; TX_Modem_st<48; TX_Modem_st++) {
/////////////////////////
TX_Modem_Mask=0x01;
do {
for (xTX=0; xTX<256; xTX++) {
W += "A"; //000000
};//xTX++
if ( TX_int[TX_Modem_st] & TX_Modem_Mask ) {
for (xTX=0; xTX<256; xTX++) {
W += "A"; //000000
};//xTX++
};
for (xTX=0; xTX<8; xTX++) {
///////////////////////// 00 7f: "+" //12 байт / 2 = 6 семпл
//6 семпл
//00...7f
/////////////////////////
//4 - 36 00100100
//10 - 91 01011011
//14 - 127 01111111
//14 - 127 01111111
//10 - 91 01011011
//4 - 36 00100100
/////////////////////////
//000000
//000010 //4 - 36 00100100
//010000
//000000
W += "A";
W += "C";
W += "Q";
W += "A";
//010110 //10 - 91 01011011
//110000
//000001 //14 - 127 01111111
//111111
W += "W";
W += "w";
W += "B";
W += "/";
//000000
//000111 //14 - 127 01111111
//111100
//000000
W += "A";
W += "H";
W += "8";
W += "A";
//010110 //10 - 91 01011011
//110000
//000000 //4 - 36 00100100
//100100
W += "W";
W += "w";
W += "A";
W += "k";
///////////////////////// 00 80: "-" //12 байт / 2 = 6 семпл
//6 семпл
//80...ff
/////////////////////////
//4 - 91 11011011
//10 - 36 10100100
//14 - 0 10000000
//14 - 0 10000000
//10 - 36 10100100
//4 - 91 11011011
/////////////////////////
//000000
//001101 //4 - 91 11011011
//101100
//000000
W += "A";
W += "Z";
W += "s";
W += "A";
//101001 //10 - 36 10100100
//000000
//000010 //14 - 0 10000000
//000000
W += "p";
W += "A";
W += "C";
W += "A";
//000000
//001000 //14 - 0 10000000
//000000
//000000
W += "A";
W += "I";
W += "A";
W += "A";
//101001 //10 - 36 10100100
//000000
//000011 //4 - 91 11011011
//011011
W += "p";
W += "A";
W += "D";
W += "b";
/////////////////////////
};//xTX++
/////////////////////////
TX_Modem_Mask = (TX_Modem_Mask<<1);
TX_Modem_Mask = TX_Modem_Mask & 0xFF;
/////////////////////////
}
while (TX_Modem_Mask);
/////////////////////////
};//TX_Modem_st
//синхропауза: 3675 байт (Base64) //44100 * 2 / 6 семпл = 3675(1c)
for (xTX=0; xTX<3675; xTX++) {
///////////////////////// 00 7f: "+" //12 байт / 2 = 6 семпл
//6 семпл
//00...7f
/////////////////////////
//4 - 36 00100100
//10 - 91 01011011
//14 - 127 01111111
//14 - 127 01111111
//10 - 91 01011011
//4 - 36 00100100
/////////////////////////
//000000
//000010 //4 - 36 00100100
//010000
//000000
W += "A";
W += "C";
W += "Q";
W += "A";
//010110 //10 - 91 01011011
//110000
//000001 //14 - 127 01111111
//111111
W += "W";
W += "w";
W += "B";
W += "/";
//000000
//000111 //14 - 127 01111111
//111100
//000000
W += "A";
W += "H";
W += "8";
W += "A";
//010110 //10 - 91 01011011
//110000
//000000 //4 - 36 00100100
//100100
W += "W";
W += "w";
W += "A";
W += "k";
///////////////////////// 00 80: "-" //12 байт / 2 = 6 семпл
//6 семпл
//80...ff
/////////////////////////
//4 - 91 11011011
//10 - 36 10100100
//14 - 0 10000000
//14 - 0 10000000
//10 - 36 10100100
//4 - 91 11011011
/////////////////////////
//000000
//001101 //4 - 91 11011011
//101100
//000000
W += "A";
W += "Z";
W += "s";
W += "A";
//101001 //10 - 36 10100100
//000000
//000010 //14 - 0 10000000
//000000
W += "p";
W += "A";
W += "C";
W += "A";
//000000
//001000 //14 - 0 10000000
//000000
//000000
W += "A";
W += "I";
W += "A";
W += "A";
//101001 //10 - 36 10100100
//000000
//000011 //4 - 91 11011011
//011011
W += "p";
W += "A";
W += "D";
W += "b";
/////////////////////////
};//xTX++
var audio = new Audio("data:audio/wav;base64," + W);
//var audio = new Audio("123.wav"); //D:\123.wav
audio.play(); // пуск
//audio.load(); // стоп
//audio.paused ? audio.play() : audio.pause();// пуск/пауза
//audio.volume += 0.1; // громкость звука + 10%
//audio.volume -= 0.1; // громкость звука - 10%
};
////////////////////////////////////////////////////////////////////////////////
хотя в идеале надо типа что-то беспроводное...
Добавлено after 6 hours 16 minutes 46 seconds:
намотать катушку на задней крышке телефона))

Re: Ардуино и ключи.
Добавлено: Чт сен 11, 2025 19:18:01
HardWareMan
Не, ну ежели речь зашла за NFC, то это же родное для ардуины вообще. И данные сразу в цифре бегут. А чтобы не перехватили - диффи-хафман + ДЕС/АЕС вам в помощь.

Re: Ардуино и ключи.
Добавлено: Чт сен 11, 2025 21:30:14
roman.com
а что у нас с radiokot.ru ? проблемы с сертификатом ? ))
1.
если бы у нас был диффи-хафман + ДЕС то мы бы не заморачивались... и передавали ключи по интернету.
2.
для NFC не нужен диффи-хафман + ДЕС... NFC сам по себе безопасен.
3.
в старом телефоне нет NFC... выше писал.
4.
даже если бы даже в телефоне был NFC... я не знаю как к нему подключиться из браузера.
5.
ещё выше предлагали использовать флешку...
подобное делали в другой теме... абсолютно криптостойкую систему на одноразовых блокнотах ))
в нашем случае это уже перебор))
6.
ещё выше предлагали использовать провода...
7.
если использовать провода... тогда можно сразу подключить программатор ... )) заодно и прошивку обновить можно...
только программу запустить...
Zflasher...
https://www.radiokot.ru/forum/viewtopic ... m162626645

Re: Ардуино и ключи.
Добавлено: Ср сен 17, 2025 00:05:16
roman.com