Страница 5 из 5

Re: Ардуино и ключи.

Добавлено: Вт сен 09, 2025 10:35:41
roman.com
а как там в Спектруме ?
давно у меня был ZX Spectrum... ещё в молодости...
я уже не помню...
:roll:

попробуем нажужжать двухтоналкой... синусом... 2 кГц и 4 кГц...

Изображение

не... не получается.
резонанс и добротность мешает.
:tea:

Итого:
"Манчестер-II" не подходит.
ЧМ (FSK) не подходит.
АМ (OOK) не подходит.
фазо-частотная модуляция не подходит.
...
...
...
:roll:

думаем...
:tea:

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]
подумали... ))
:tea:
двухтоналка используется в линиях связи с шумами... для надежного определения 0 и 1.
но у нас нет шумов. значит можно использовать однотоналку))

Изображение

а кодировать будем... ну например паузами.

Изображение

замечательно))
по-моему мы уже близко к цели.
:tea:
собственно ничего нового мы не придумали... аналогично работает ИК пульт.

Изображение

правда скорость маленькая получается... но зато просто и надёжно (в теории).
:tea:

Re: Ардуино и ключи.

Добавлено: Вт сен 09, 2025 20:46:51
HardWareMan
Можно паковать несколько бит в одну посылку. Я знаю метод, где байт передаётся за 2 мырга (+1 обязательный первый мырг). При этом есть базовый контроль правильности. Что не мешает наложить ещё и расширенный, хоть с ECC.

Re: Ардуино и ключи.

Добавлено: Вт сен 09, 2025 23:11:14
roman.com
не знаю где байт передаётся за 2 мырга ))
это уже пошло уплотнение...
есть разные варианты уплотнения... простейший штрих код называется...))

Изображение

меняются не только паузы но длительности импульсов...
причём есть 4 градации...
итого: меняя пауза и длительность можно получить плотность передаваемой информации (или как она там называется) 4 х 4 = 16 бит на герц.
:)

Есть только одна проблема... Все эти уплотнения работают только в идеальных условиях... т.е. на линиях без шумов... точнее с высоким отношением сигнал / шум.

А нашу "линию связи" трудно назвать идеальной))

Изображение

:roll:

Re: Ардуино и ключи.

Добавлено: Ср сен 10, 2025 09:54:28
roman.com
далее...
в ходе экспериментов выясняются разные подробности... не связанные с резонансом и переходными процессами...

оказывается в телефоне типа Андроид при прослушивании громкой "музыки" при первом включении уровень сигнала в динамике возрастает плавно (линейно)... с задержкой до нескольких секунд...

Изображение

Изображение

не знаю с чем это связано... но видимо это сделано для защиты слухового аппарата пользователей... при прослушивании громкой "музыки" ))
:music:
спасибо конечно разработчикам Андроид за заботу))
но нам для декодирования надо (желательно) чтобы уровень сигнала имел постоянный уровень начиная с первой "ноты"))
:roll:

в ПК аналогичный случай... но там уровень сигнала возрастает быстрей...

Изображение

видимо разработчики ПК не такие заботливые))
:tea:

теперь надо думать как с этим бороться.
:tea:

Re: Ардуино и ключи.

Добавлено: Ср сен 10, 2025 14:38:01
Energizer-A
АРУ вроде так должен работать..
в древности тоже была преамбула длинного тона - этим все решалось

Re: Ардуино и ключи.

Добавлено: Ср сен 10, 2025 18:13:07
roman.com
откуда там АРУ... нет там АРУ... всё цифруется напрямую.

сделали преамбулу длинного тона...

Изображение

теперь всё хорошо))
:tea:

Re: Ардуино и ключи.

Добавлено: Чт сен 11, 2025 16:27:17
roman.com
далее...
а как принимать и декодировать будем ?
:roll:
[uquote="roman.com",url="/forum/viewtopic.php?p=4745087#p4745087"]есть разные варианты уплотнения...[/uquote]
сейчас ардуино использует уплотнения...
фазо-частотная модуляция... у которой в скорость в два раза больше по сравнению с "Манчестер-II"...

Изображение

Изображение

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

ну раз у нас телефон работает аналогично ИК пульту... то можно использовать туже технологию что и для ИК пульта.))
т.е. сделать всё на прерываниях...

Изображение

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

Изображение

тут надо подумать...
:roll:
Спойлер

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

////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////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%
};
////////////////////////////////////////////////////////////////////////////////
хотя в идеале надо типа что-то беспроводное...

Изображение

:roll:

Добавлено after 6 hours 16 minutes 46 seconds:
намотать катушку на задней крышке телефона))

Изображение

:idea:

Изображение

:))

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.
ещё выше предлагали использовать флешку...

Изображение

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

6.
ещё выше предлагали использовать провода...

Изображение

7.
если использовать провода... тогда можно сразу подключить программатор ... )) заодно и прошивку обновить можно...

Изображение

только программу запустить...

Изображение

Zflasher... https://www.radiokot.ru/forum/viewtopic ... m162626645
:)

Re: Ардуино и ключи.

Добавлено: Ср сен 17, 2025 00:05:16
roman.com
Физический ключ безопасности — вот пожалуй самый безопасный способ...
:roll:

Изображение

Изображение

Изображение
))
да. такое можно сделать на любом МК.
:)