🐣
Raspbrry pi pico同士でUART(PlatformIO)
1.はじめに
ラズピコにハマったのでとりあえずUARTをしてみようと思ってやりました。備忘録です。
2.環境
・OS: Arch Linux
・Raspberry pi pico
・VSCode + PlatformIO
・bord: pico
・framework: arduino
3.実験
3.1 ラズピコ1つでチェック
通常はマイコン2つのそれぞれのTXとRXを繋いでUARTを行いますが、1つのマイコンのTXとRXを繋いで確認することが可能です。

シリアルモニターはVSCodeのSerial Monitorという拡張機能を用いました。
プログラム
main.cpp
#include<Arduino.h>
void setup () {
Serial.begin(115200);
Serial1.begin(9600);
Serial.println("UART test start");
}
void loop () {
Serial.print("Sent: ");
Serial1.write("Hello, UART") + String(millis());
if (Serial1.available()) {
String s = Serial1.readStringUntil('\n');
Serial.print("Received: ");
Serial.println(s);
}
delay(1000);
}
platformio.ini
[env:pico]
platform = raspberrypi
board = pico
framework = arduino
monitor_speed = 115200
補足
いくつか参考にしようとしたArduino IDEを用いたプログラム全てにsetTX()とsetRX()を用いてTXとRXのピンの指定を行っていましたが、PlatformIOで使用されているArduino.hにsetTX()とsetRX()が含まれていないようでした。そのため、デフォルトのピンがGPIO0とGPIO1なのでその2つを繋ぎます。
結果
Serial Monitorに"Sent: Received: Hello, UART"と表示されました。
3.2 ラズピコ同士を繋いでUART
2つのラズピコを用意し、片方のGPIO0と片方のGPIO1を交差させるように2本の線で繋ぎます。GND同士も繋いでおきます。
プログラムは3.1のものをそれぞれに書き込みます。

結果

4.まとめ
ピコ2つを使ってUARTをすることができました。SPIやCAN等他の通信をしたりこれからピコで沢山遊びたいです。
書き忘れたことがあればまた追記します。
Discussion