RaspberryPi ZeroとPico間のシリアル通信(UART)

概要

RaspberryPi Zero とRaspberryPi Pico間でGPIOを介してUART通信を行う。

外観

回路

  • Zeroの8番ピン(GP14)を、Picoの7番ピン(GP5)に
  • Zeroの10番ピン(GP15)を、Picoの6番ピン(GP4)に
  • Zeroの14番ピン(GND)を、Picoの8番ピン(GND)に

RaspberryPi Zero設定

$ sudo raspi-config

→「3 Interface Options」を選択
→「P6 Serial Port」を選択
→「Would you lik alogin shell to be accessible over serial?」には、”いいえ”を選択
→「Would you like the serial port hardware to be enabled?」には、”はい”を選択
→再起動

プログラム

Pico→Zero

Pico(MicroPython)

import utime
from machine import UART, Pin

uart1 = UART(1, 115200, tx=Pin(4), rx=Pin(5))

while True:
    uart1.write(b'Hello Zero! Im Pico.')
    utime.sleep(1)

Zero(Python)

ser = serial.Serial('/dev/serial0', 115200, timeout=2)
a = ser.read(1)
while ser.in_waiting:
    a += ser.read(1)
print(a.decode('utf-8'))
ser.close()

Zero→Pico

Zero(Python)

import serial
ser = serial.Serial('/dev/serial0', 115200)
ser.write(b'Hello Pico! Im Zero.')
ser.close()

Pico(MicroPython)

import utime
from machine import UART, Pin

uart1 = UART(1, 115200, tx=Pin(4), rx=Pin(5))

while True:
    rxData = bytes()
    while uart1.any() > 0:
        rxData += uart1.read(1)
    if len(rxData) > 0:
        print(rxData.decode('utf-8'))
    utime.sleep(1)

詳細

RaspberryPi ZeroとPicoのシリアル通信(UART)
https://tiblab.net/blog/2021/08/raspberrypi-zero-pico-serial/

ページトップへ