
2026/03/01 9:26
**Raspberry Pi Picoを用いたAMラジオ送信機** * **目的** Raspberry Pi Pico のオンボード DAC と GPIO を利用して、低電力の AM 送信機を構築する。 * **主要コンポーネント** * Raspberry Pi Pico * 外部クリスタルオシレータ(例:10 MHz)または PLL による搬送波発生装置 * 音声波形を整形するローパスフィルタ * アンテナ結合用のマッチングネットワーク(コンデンサ+インダクタ) * (必要に応じて)出力電力を高めるための前段増幅器とバイアストイ * **回路概要** 1. DAC が音声を表す 0–3.3 V のアナログ信号を出力。 2. RC ローパスフィルタに通して高周波調和成分を除去。 3. フィルタリングされた音声が、クリスタルオシレータまたは PLL によって生成される搬送波を変調。 4. バイアストイを介し搬送波をマッチングネットワーク経由でアンテナへ注入。 * **ソフトウェアスケッチ(C/C++ / MicroPython)** ```c // 擬似コード:DAC を初期化、搬送波周波数設定、音声サンプル出力 init_dac(); set_carrier_frequency(1000000); // 1 MHz 搬送波 while (true) { sample = read_audio_buffer(); // 例:ADC から取得または事前に録音した配列 dac_write(sample); delay_us(audio_sample_interval); } ``` * **安全性・法規制の留意点** * 無免許 AM 放送に対する規制電力を超えないよう、送信パワーは十分に低く抑える。 * アンテナ長とインピーダンスマッチングを確認し、過剰な反射が起きないよう注意。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
改良版要約
Raspberry Pi ボードは低消費電力の無線送信機として利用できます。フルサイズの Raspberry Pi では、GPIO ピンを約100 MHz のソフトウェアクロックに接続すると、FM レシーバーが検出するオーディオレートのスクエア波が生成されます。この方法は、300 MHz、500 MHz 等の弱い高調波も発生させるため、標準 FM ラジオでも聞こえることがあります。Pi Pico はネイティブな FM ハードウェアを持ちませんが、PIO(Programmable I/O)によりシステムクロックレートで独立した命令セットを実行できます。簡単な PIO プログラムはピンを ON/OFF で切り替え、システムクロックの半分の周波数でスクエア波を作ります。Pico を約200 MHz にオーバークロックすると、同様の搬送波周波数が得られます。しかし、ソフトウェアによる正確な周波数制御は Pico では非実用的であり、クリーンな FM 伝送は不可能です。
一方、Pico は PIO を使って低周波搬送波(≈1 kHz)を安定して生成できます。スクエア波は PCM オーディオの周波数変調には有効ですが、振幅変調には適さないため、ON/OFF のみしか提供しません。AM を符号化するには、一方のピンが 1 kHz のスクエア波を連続で出力しつつ、メインプログラムがオーディオレート(例:440 Hz の A4)でこの搬送波をオン・オフします。著者は LLM に支援されて、1 kHz AM 搬送波上に「Shave and a Haircut」の旋律を送信するコードを書きました。この信号は単純な AM ラジオで意図した音声波形として受信されました。
これらの安価で低消費電力の送信機は、FM/AM ハードウェア全体が不要なホビイスト、教育者、あるいはシンプルな IoT プロジェクトに役立つ可能性があります。
本文
必須の法的表記:
低出力または短寿命のラジオ波を発信すること—たとえそれがあなたの管轄区域で許可されていなくても、規制対象になる可能性があります。
数年前、人々は Raspberry Pi ボードが専用の無線フロントエンド(アンテナとして機能する単一ジャンパワイヤを除く)なしに偶然 FM ラジオ送信機として動作できることを発見しました。GPIO ピンを約 100 MHz のソフトウェア制御クロックに接続すると、音声が変調されます。その結果得られる低出力 FM 送信機はきれいな正弦波の代わりに方形波を発生させ、300 MHz、500 MHz 等の弱い高調波を放射しますが、基本的な FM ラジオであれば音声を受信できます。私は同様の実現を、はるかに低出力の Raspberry Pi Pico マイクロコントローラでも行えるかどうか疑問に思いました。
Pico は通常の Pi ボードが持つ FM 送信機能を備えていませんが、PIO(Programmable I/O)というユニークな機能があります。PIO は CPU から独立した最小限の命令セットで構成されるプログラムをシステムクロックレートで実行します。「ピン ON、ピン OFF」という単純なプログラムでも、システムクロックの半周波数に相当する方形波を生成できます。Pico を約 200 MHz にオーバークロックすれば似たような搬送波周波数が得られますが、ソフトウェアで正確な周波数を制御することは非実用的であり、きれいな FM は不可能です。
しかし、Pico では典型的な AM ラジオ帯(約 1 kHz)内でより良い制御が可能です。方形波は PCM 音声の周波数変調に適しており(不要な高調波を無視)、振幅変調には最適ではありません。振幅の変化ではなく ON/OFF の 1 ビットエンベロープしか表せないためです。「.wav」ファイル全体を送信することはできませんが、オンオフキーイング(OOK)で単一音声周波数を同時に伝送できます。これはシンプルなレトロゲームのサウンドには最適です!
LLM の支援を受けて、1 kHz 搬送波上で Shave and A Haircut のメロディーを発信するコードを書きました。以下は音声を拾う AM ラジオの基本例です(動画はブラウザサポートが必要です)。
[ビデオは省略 – ブラウザサポート必須]
1 つのピンは PIO を使って一定の 1 kHz 方形波を生成します。メインプログラムは、その PIO 出力を所望の周波数で ON/OFF 切り替えます。たとえば A4(440 Hz)を出す場合、1 kHz 搬送波を毎秒 440 回トグルします。この方法で受信機には 440 Hz の方形波音が届きます。これを繰り返し実行すると Shave and A Haircut のメロディーがループ再生されます。