【Arduino】Raspberry Pi Picoの標準出力


Raspberry Pi Picoの標準出力

Raspberry Pi PicoをArduino IDEで扱う際の標準出力先を調べてみました。

結果的に言うと1,2ピンのUART0です。

スケッチ

そのまま定期的にprintf()で標準出力します。

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:
  static int count = 0; 
  printf("count:%d\n",count++);
  delay(1000);
}

配線

USBシリアルは秋月電子のFT234X 超小型USBシリアル変換モジュールをブレッドボードに挿したRaspberry Pi Picoに両端ロングピンヘッダで繋ぎました。

ちょうど、USBシリアル変換モジュールのピンがRXTXGNDの順なので、そのままRaspberry Pi Picoの1:UART0 TX2:UART RX3:GNDに繋いでます。

動作確認

Tera Termなどのターミナルソフトで、Raspberry Pi Picoからの受信を確認します。

シリアルの設定は、次のとおりです。

受信が確認できました。

Mbed OSのAPIを使ったシリアル出力

ついでにMbed OSのAPIを使ったシリアル出力を確認してみました。

Raspberry Pi PicoのファームウェアはMbed OSをベースに作られています。そのため、Mbed OSのAPIも使用可能です。ついでにMbed OSのシリアルAPIのUnbufferedSerialの使い方を確認します。

スケッチ

mbedという名前空間でMbed OSのAPIが使用できます。
ターミナルソフトからの受信をそのまま返すエコーのスケッチです。

#include "mbed.h"

using namespace mbed;

static UnbufferedSerial serial_port(CONSOLE_TX, CONSOLE_RX);

void on_rx_interrupt() {
    char c;
    if (serial_port.read(&c, 1)) {
        serial_port.write(&c, 1);
    }
}

void setup() {
    serial_port.baud(115200);
    serial_port.format(8,SerialBase::None,1);

    serial_port.attach(&on_rx_interrupt, SerialBase::RxIrq);
}

void loop() {

}

配線

上記と同様です。

動作確認

ターミナルソフトで打つとそのまま打った文字が返ってくることが確認できました。

紹介

Raspberry Pi PicoをArduino IDEで開発するための手順を解説した本の第一弾を出版しました。

マイコンはじめの一歩! Arduino IDEではじめるRaspberry Pi Pico: 1st

目次

本書 について
 本書の利用について
 本書の内容 について
 権利 について
サポートページ
動作環境について
1 はじめに
2 必要なもの
3 Raspberry Pi Picoについて
 3.1 性能
 3.2 プログラミング方法
4 プログラミング環境の準備
 4.1 Arduino IDEのダウンロードとインストール
 4.2 スケッチを書 きこむための準備
  4.2.1 Raspberry Pi Picoの準備
  4.2.2 Arduino IDEの設定
5 Raspberry Pi Pico単体でプログラミング
 5.1 Raspberry Pi Pico上のLED をコントロール
  5.1.1 LEDを点滅させる
  5.1.2 LEDの明るさをコントロール
 5.2 パソコンと通信する
  5.2.1 Raspberry Pi Picoから文字を送る
  5.2.2 Raspberry Pi Picoに指示する
 5.3 USBデバイスにする
  5.3.1 USB キーボードにする
  5.3.2 USBマウスにする
6 補足情報
7 最後に

第二弾予告

第二弾はブレッドボードやGrove Shield for Pi Picoを使って、センサや表示機などを繋げて動作させる方法を解説します。