RPi Pico で circuitpython を使う

最終更新日

RPi Pico で circuitpython を使う。

アイキャッチ画像は、関係ないけど、PicoのリセットスイッチをPimoroniで購入して半田付けした図。

circuitpython 用 BOOT LOADER の取得

DOWNLOAD .UF2 NOW をクリックして、ダウンロード。

2021/05/04 時点では、 6.2.0

以下のuf2 ファイル(USB Flashing Format Data)がとれる。

adafruit-circuitpython-raspberry_pi_pico-en_US-6.2.0.uf2

BOOT LOADER を RPi Pico に install

Pico を Macにつないで、BOOTSEL ボタンを押しながら、RPi Pico をリセット。
自動的にVolume Mount されるので、 .uf2 ファイルをコピー

初期のVolume名は、 RPI-RP2
circuitpython のVolume名は、 CIRCUITPY

Built-in modules

  • _bleio
  • _pixelbuf
  • analogio
  • audiobusio
  • audiocore
  • audiomp3
  • audiopwmio
  • binascii
  • bitbangio
  • bitmaptools
  • bitops
  • board
  • busio
  • countio
  • digitalio
  • displayio
  • errno
  • framebufferio
  • gamepad
  • json
  • math
  • microcontroller
  • msgpack
  • neopixel_write
  • nvm
  • os
  • pulseio
  • pwmio
  • random
  • re
  • rgbmatrix
  • rotaryio
  • rp2pio
  • rtc
  • sdcardio
  • sharpdisplay
  • storage
  • struct
  • supervisor
  • terminalio
  • time
  • touchio
  • ulab
  • usb_hid
  • usb_midi
  • vectorio
  • watchdog

example

circuitpythonのいいところは、adafruitさんがその豊富なマイコン用の周辺機器のドライバを用意してくれてるところ。

さっそく、adafruitの CircuitPython Libraries をdownload する。

2021/05/04時点では、これが最新

adafruit-circuitpython-bundle-6.x-mpy-20210430.zip

ampy で確認

ampy で中身を確認する。

$ ampy -p  /dev/tty.usbmodem14123301 ls
/.Trashes
/.fseventsd
/.metadata_never_index
/boot_out.txt
/code.py
/lib

MicroPythonとは、ttyの名前、ファイル構成も違う。

PRi PicoでOLED液晶 ssd1308 I2Cを使ってみる(micropython編)

PRi PicoでOLED液晶 ssd1308 I2Cを使ってみる(micropython編)

2021.04.14

screen で対話モード実行

python を実行するとよくあるように、serial console経由でPicoを対話モードで制御する。

REPL(read-eval-print-loop) というらしい。

screen の起動

screen command で試す。

$ screen /dev/tty.usbmodem14123301 115200
Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.

Press any key to enter the REPL. Use CTRL-D to reload.

Adafruit CircuitPython 6.2.0 on 2021-04-05; Raspberry Pi Pico with rp2040
>>> print("ok")
ok

Lチカ

続けて、LEDのON/OFF

>>> from board import *
>>> import digitalio
>>> import time
>>>
>>> led = digitalio.DigitalInOut(GP25)
>>> led.direction = digitalio.Direction.OUTPUT
>>>
>>> led.value = True
 (LED点灯)
>>> led.value = False
 (LED消灯)

screen の終了

screen を終了したいときには、以下のcommand

CTRL+a + k

ampy でrun

sample code

test.py

import digitalio
from board import *
import time

led = digitalio.DigitalInOut(GP25)
led.direction = digitalio.Direction.OUTPUT
while True:
    print("on")
    led.value = True
    time.sleep(0.5)
    print("off")
    led.value = False
    time.sleep(1.0)

実行

$ ampy -p /dev/tty.usbmodem14123301 run test.py 
on
off
on
off
on
off
on

printした値が表示されるので、debugに便利。

シェアする