Salut les geektimes.
Récemment, j'avais besoin d'un émetteur radio de faible puissance pour des expériences à domicile. Il n'y avait rien de convenable à portée de main, puis je me suis souvenu de la méthode décrite il y a quelques années sur les sites de radio amateur - pour utiliser le Raspberry Pi directement comme émetteur. La méthode n'est pas nouvelle et est connue depuis plusieurs années, mais il semble qu'elle n'ait jamais été décrite comme des geektimes (ou j'ai mal regardé), et une enquête auprès d'amis a montré que personne ne connaît cette méthode de transmission.
Corrigez ce moment.

Tester son fonctionnement est sous cat.
Principe
Les ordinateurs modernes fonctionnent à des fréquences d'horloge très élevées, et tout générateur est en fait un émetteur de faible puissance. En modifiant par programme la fréquence du multiplicateur d'horloge PLLD sur le Raspberry Pi, vous pouvez directement transmettre un signal radio à partir de la jambe du microprocesseur. La méthode a été testée pour la première fois
en 2013 , après quoi le concept a été développé, et maintenant plusieurs projets peuvent être trouvés sur Github: vous pouvez transférer différents types de signaux, AM, FM, CW, SSB, WSPR, DCF77, et même des images à balayage lent (SSTV). Vous pouvez même transférer Stereo FM avec RDS, même dans certains programmes, il y a un support pour USB Audio, qui vous permet d'utiliser le Raspberry Pi comme
bug et comme microphone radio.
Bien sûr, la puissance de sortie est faible et est d'environ 10 mW. Mais néanmoins, cela fonctionne. Et à la note paranoïaque: oui, un ordinateur moderne peut hypothétiquement transmettre un signal radio directement depuis la carte. Certes, la portée n'est pas élevée et un tel signal ne dépassera pas la pièce suivante. Néanmoins, en tant que méthode hypothétique de fuite d'informations, une telle méthode a lieu.
Comment cela fonctionne, commençons les tests.
Test
En tant que sujet de test, Raspberry Pi3 a été pris et le programme
rpitx a été
installé . Au lieu d'une antenne, un morceau de fil de la maquette a été placé sur le GPIO18.
La photoComme vous pouvez le voir, rien de plus :)

En tant qu'analyseur de spectre, le SDRPlay SDRPlay v2 a été utilisé. Il a également vérifié si la fréquence testée était libre, s'il y avait des signaux ou des négociations.
1. Mode VFO
Dans ce mode, un signal simple est transmis à la fréquence indiquée:
sudo ./rpitx -m VFO -f 235000000
L'activation de l '«émetteur» prend quelques secondes, après quoi un pic
à environ la fréquence indiquée est visible sur l'écran SDR.

Comme vous pouvez le voir, en plus du pic central, il y en a, hélas, de nombreux latéraux. L'essentiel est que, comme tout microprocesseur, le Raspberry Pi transmet en temps réel un
signal rectangulaire . Ce qui a un tas d'harmoniques, et au lieu d'une seule fréquence, tout un tas d'ordures vole dans l'air à toutes les fréquences multiples. Sur le SDR, vous pouvez voir que les interférences de la transmission "volent" à travers le spectre, jusqu'à gigahertz.
Avec une puissance de 10mW, ce n'est pas un problème, mais
une observation importante en découle: le désir de connecter un amplificateur de puissance au Raspberry Pi serait une mauvaise idée. Ou vous devez utiliser le filtre passe-bas, qui coupera les fréquences plus élevées, mais dans ce cas, toute l'essence de la simplicité de l'idée est perdue.
2. Mode FM étroit
Le même programme peut transférer un fichier wav en mode FM étroit, qui peut être utilisé, par exemple, pour écouter des stations de radio portables.
Créez d'abord un fichier de données - convertissez le fichier en données IQ:
./pifm sampleaudio.wav out.fm
Nous commençons le transfert:
sudo ./rpitx -m RF -i out.fm -f 235000000
Mais comme je n'ai pas essayé, le son n'a pas fonctionné, seuls les «sticks» sur le spectre. Soit le programme ne prend pas en charge Raspberry Pi 3, soit il contient une autre erreur.
3. Mode WFM
Pour transmettre une radio FM à part entière, il existe un programme PiFmRds, qui peut être téléchargé à
partir de guthub . Contrairement à la version précédente, le programme utilise une broche différente, GPIO4, donc "l'antenne" a dû être réorganisée.
Exécutez le programme à partir de la ligne de commande:
sudo ./pi_fm_rds -audio sound.wav -freq 87.0
Ça marche ... mais le son est très haut et grinçant, en fréquence supérieure à 2 fois, comme dans les personnages du dessin animé Disney. Par la méthode de piquer scientifique, je sélectionne le paramètre ppm (correction), la ligne de commande s'est révélée comme ceci:
sudo ./pi_fm_rds -audio sound.wav -freq 87.0 -ppm -320000
Il s'est avéré que la fréquence de transmission a également baissé de près de mégahertz, et le spectre est deux fois plus large que celui d'une station normale normale:

La qualité sonore est similaire à celle d'un combiné, mais en principe, elle est assez lisible. Étonnamment, la portée s'est avérée assez bonne, dans tout l'appartement, le signal a été capté en toute confiance sur un récepteur FM ordinaire. Et ce, d'ailleurs, sur une antenne totalement incohérente dont l'efficacité est extrêmement faible. Soit dit en passant, en utilisant une méthode spéciale de transmission WSPR à bande étroite et des antennes accordées, avec 10 mW de puissance, la radio
amateur a réussi à transmettre un signal
à une distance pouvant atteindre 2000 km .
Conclusions
La méthode de transfert est plutôt intéressante, comme la preuve de concept. Il n'était pas possible d'obtenir une bonne qualité sonore, et il y avait quelque chose d'incompréhensible avec les fréquences, l'écart était très fort. Mais le fait que seule une méthode logicielle, sans aucun "matériel" externe, il soit possible de transmettre des signaux sous n'importe quelle forme de modulation, avec une fréquence allant jusqu'à 500 MHz, est assez intéressant. Eh bien, dans la pratique, si vous avez besoin d'un générateur simple et de faible puissance, cette méthode peut être utile.
Pour ceux qui veulent répéter l'expérience, quelques conseils:
- N'utilisez pas d'antennes court-circuitées - un court-circuit dans la broche endommagera le Raspberry Pi. Un simple morceau de fil, dans le meilleur des cas, une antenne dipôle, suffit, la longueur de la "moustache" peut être calculée dans n'importe quelle calculatrice en ligne.
- N'utilisez pas d'amplificateur de puissance - le signal contient trop de bruit et interférera avec d'autres services.
Si vous le souhaitez, vous pouvez également trouver de nombreux didacticiels vidéo avec une démonstration sur youtube, par exemple
celui-ci .
Toutes les expériences réussies.