Hace un tiempo, algunos chicos descubrieron que podían transmitir señales de FM usando los puertos GPIO de la Raspberry Pi, y otra persona se dio cuenta de que podía usar la RasPi para controlar su equipo de automatización del hogar:
http://www.skagmo.com/page.php?p=projects/22_pihat
Este es el archivo que controla la radio para esto:
https://github.com/s7mx1/pihat/blob/master/radio.c
Ahora, me gustaría portar esto a un lenguaje que sea más fácil de experimentar con C, como Go o Python. Sin embargo, no tengo muy claro cómo se hace esto.
Skagmo usa los armónicos para generar una frecuencia de 433 MHz. Digamos que solo desea una frecuencia de 100 MHz, por simplicidad, ¿cómo se genera eso? Por lo que entiendo, tiene algo que ver con un reloj GPIO (¿o quizás SPI? No estoy seguro)
Por lo que puedo ver en el archivo, establece tres bits en algún registro de selección de función GPIO, y luego inicializa el reloj con una estructura, y luego establece un bit cada vez que quiere transmitir alto o bajo.
¿Está esto en la onda portadora? ¿Dónde está la onda portadora?
También encontré este script de Python que dice hacer lo mismo , pero no estoy seguro de si usa el transmisor nativo o si la persona conectó uno externo al RasPi.
Básicamente, realmente agradecería una explicación o una breve referencia sobre cómo funciona esto, exactamente, y si Python / Go son lo suficientemente rápidos como para transmitir señales que puedan imitar el control remoto de mi puerta de garaje (aparentemente modulado por ASK), o si tengo hacerlo en C.
fuente