Некоторое время назад несколько парней выяснили, что они могут передавать FM-сигналы, используя порты GPIO Raspberry Pi, а другой человек понял, что он может использовать RasPi для управления своим оборудованием домашней автоматизации:
http://www.skagmo.com/page.php?p=projects/22_pihat
Это файл, который контролирует радио для этого:
https://github.com/s7mx1/pihat/blob/master/radio.c
Теперь я хотел бы перенести это на язык, с которым мне было бы легче экспериментировать, например на Go или Python. Однако мне не совсем понятно, как это делается.
Скагмо использует гармоники для генерации частоты 433 МГц. Скажем, вы хотите только частоту 100 МГц, для простоты, как вы это генерируете? Насколько я понимаю, это как-то связано с часами GPIO (или, может быть, SPI? Я не уверен).
Из того, что я вижу в файле, он устанавливает три бита в некотором регистре выбора функций GPIO, затем инициализирует часы структурой, а затем устанавливает бит всякий раз, когда он хочет передать высокий или низкий уровень.
Это в несущей волне? Где это волна - носитель?
Я также обнаружил этот скрипт на Python, который утверждает, что делает то же самое , но я не уверен, использует ли он собственный передатчик или же человек подключил внешний к RasPi.
По сути, я был бы очень признателен за объяснение или краткую справку о том, как именно это работает, и если Python / Go достаточно быстр для передачи сигналов, которые могут имитировать мой пульт в гараже (кажется, с ASK-модуляцией), или если у меня есть сделать это в C.
источник