はじめに
Velxioチュートリアルへようこそ!今日は、Raspberry Pi Pico(RP2040)向けのシリアルエコーテストを構築します。このプロジェクトは、マイクロコントローラでのシリアル通信の仕組みを理解したい初心者に最適です。UARTを介したデータの送受信、LEDを使った視覚的なインジケーターの追加、そしてシンプルなハートビートタイマーの実装方法を学べます。

回路の解説
この回路は驚くほどシンプルです。必要な部品はたった2つだけです:
- Raspberry Pi Pico(頭脳)
- 黄色LED(シリアルアクティビティの視覚的インジケーター)
配線
- 黄色LEDのアノード(A)をPicoのTXピンに接続します。TXピンはシリアル送信に使用されるため、Picoがデータを送信するたびにLEDが点滅します。
- LEDのカソード(C)をGND(Picoの任意のグランドピン)に接続します。
これで完了です!LEDはTXラインに直列に配線されているため、Picoが送信するときに点灯します。これにより、シリアルデータが流れていることを視覚的に確認できます。

コードの解説
コードを見ていきましょう。Velxioエディターを開くと、以下のスケッチが表示されます:
// Raspberry Pi Pico — Serial Echo Test
// Echoes received characters and prints a heartbeat every 2 seconds
void setup() {
Serial.begin(115200);
delay(500);
Serial.println("=== Pico Serial Echo ===");
Serial.println("Type something and press Enter.");
Serial.println();
}
unsigned long lastHeartbeat = 0;
void loop() {
// Echo any incoming characters
while (Serial.available()) {
char c = Serial.read();
Serial.print("Echo: ");
Serial.println(c);
}
// Heartbeat every 2 seconds
if (millis() - lastHeartbeat >= 2000) {
lastHeartbeat = millis();
Serial.print("[Heartbeat] Uptime: ");
Serial.print(millis() / 1000);
Serial.println("s");
}
}
動作の仕組み
setup():シリアル通信を115200ボーで初期化します。短い遅延の後、ウェルカムメッセージを表示します。loop():2つの主要なタスクを実行します:- エコー:シリアルポートにデータが利用可能かどうかを確認します。ある場合、1文字を読み取り、「Echo:」というプレフィックスを付けて返信します。
- ハートビート:2000ミリ秒(2秒)ごとに、システムの稼働時間を秒単位で表示するハートビートメッセージを出力します。
lastHeartbeat変数は、millis()を使用してノンブロッキングなタイミングで、最後にハートビートが出力された時刻を追跡します。
主要な概念
シリアル通信(UART)
UART(Universal Asynchronous Receiver/Transmitter)はシンプルなシリアルプロトコルです。PicoのTXピンはデータを送信し、RXピンはデータを受信します。この例では出力にTXのみを使用していますが、エコー機能は(シリアルモニターを介して)RXも使用します。
millis()を使ったノンブロッキングタイミング
プログラム全体を停止させるdelay()の代わりに、millis()を使用して経過時間をチェックします。これにより、エコーループを継続的に実行しながら、定期的にハートビートを出力できます。
視覚的インジケーターとしてのLED
LEDをTXピンに接続することで、シリアルアクティビティをリアルタイムで視覚化できます。Picoが文字を送信するたびに、LEDが短く点滅します。
よくある落とし穴とデバッグのヒント
- ボーレートの不一致:シリアルモニターが115200ボーに設定されていることを確認してください。文字化けが表示される場合は、ボーレートを確認してください。
- LEDが点滅しない:LEDの極性(アノードをTXに、カソードをGNDに)を確認してください。また、Picoが実際に送信しているかどうか(例:シリアルモニターに何か入力する)も確認してください。
- エコーが返ってこない:PicoのRXピンにデータを送信していることを確認してください。Velxioでは、シリアルモニターがこれを自動的に処理します。
- ハートビートが出力されない:
lastHeartbeatがunsigned longとして宣言されていること、および比較ロジックが正しいことを確認してください。

推奨される拡張機能
基本的なエコーが動作したら、以下の拡張に挑戦してみてください:
- RX LEDの追加:もう1つのLEDをRXピンに接続し、データ受信時に点灯させます。
- コマンド解析:単にエコーするだけでなく、「LED ON」や「LED OFF」のようなコマンドを解釈して外部LEDを制御します。
- 複数のボーレート:シリアルコマンドでボーレートを変更できるようにします。
- コンソールへのログ:受信データをバッファに保存し、要求に応じて出力します。

行動を促す
実際に試してみませんか?Velxioでライブサンプルを開いて、実験を始めましょう:Pico Serial Echo on Velxio。コードを変更したり、LEDの色を変えたり、新しい部品を追加したりできます。楽しいハッキングを!