【2025年新登場 iPad専用ペン】 タッチペン iPad ペン タブレット USB-C充電式 急速充電 スタイラスペン 超高感度 極細 傾き感知/誤作動防止/磁気吸着機能対応 15分間充電 8時間使用可能 2018年以降iPad/iPad Pro/iPad air/iPad mini対応 三つ交換用ペン先
¥1,990 (2025年4月27日 13:05 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)
Raspberry Pi Picoを使った工作用のノート
Raspberry Pi Picoファミリーについて
Picoは2021年1月リリースの第一世代、2024年8月リリースの第二世代がある。
ラズベリーパイ財団からはFlash ROM等を搭載したマイコンボードとしてPico1やPico2がリリースされているが、チップ単品も購入することが出来るため、オリジナルのハードウェアにPicoのチップを搭載することも出来る。
チップ単体のスペック
チップ単体のスペックは以下の通り。
Name | Pico1 | Pico2 |
---|---|---|
世代 | 第一世代 | 第二世代 |
リリース | 2022.1 | 2024.8 |
チップ | RP2040 | RP2350 |
コア | Dual ARM Cortex-M0+ 133MHz | Dual Cortex-M33 150MHzとDual Hazard3 RISC-V 150MHzを搭載(同時使用不可) |
SRAM | 264kB | 520KB |
外付けFlashROM | 16MBまで対応 | 16MBまで対応 |
GPIO数 | 30ピン(内アナログ入力は4ピン) | 30ピン(内アナログ入力は4ピン) |
UART | 2 | 2 |
SPI | 2 | 2 |
I2C | 2 | 2 |
PWM | 16 | 24 |
USB | 1(ホストとデバイスに対応) | 1(ホストとデバイスに対応) |
PIO | 8 | 12 |
※内蔵Flashの有無やGPIO数、アナログ入力数が異なるデバイスファミリーも存在するので詳細は下記データシートを参照。
RP2040 https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf
RP2350 https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.pdf
※第二世代はセキュアブート等のセキュリティ機能も搭載している。
マイコンボードのスペック
主要なマイコンボードのスペックを記載する。
Pico1
オフィシャルからはRaspberry Pi Pico、Pico H、Pico W、Pico WHの4種類がリリースされている。
Name | Pico | Pico H | Pico W | Pico WH |
---|---|---|---|---|
チップ | RP2040 | RP2040 | RP2040 | RP2040 |
SRAM | 256KB | 256KB | 256KB | 256KB |
ROM | 2MB | 2MB | 2MB | 2MB |
GPIO数 | 26 | 26 | 26 | 26 |
ADC | 3 | 3 | 3 | 3 |
UART | 2 | 2 | 2 | 2 |
SPI | 2 | 2 | 2 | 2 |
I2C | 2 | 2 | 2 | 2 |
PWM | 16 | 16 | 16 | 16 |
PIO | 8 | 8 | 8 | 8 |
WiFi | 未対応 | 未対応 | 802.11n | 802.11n |
Bluetooth | 未対応 | 未対応 | Bluetooth5.2 Classic/LE | Bluetooth5.2 Classic/LE |
ピンヘッダー | 未取付 | ハンダ済み | 未取付 | ハンダ済み |
ペリフェラルのピンアサイン
各ペリフェラル毎に使用可能なピンが決まっている。ペリフェラル毎のピンアサインを記載する。
SPI
Name | GPIO |
---|---|
SPI0 RX | GP0,4,16,20 |
SPI0 CSn | GP1,5,17,21 |
SPI0 SCK | GP2,6,18,22 |
SPI0 TX | GP3,7,19,23 |
SPI1 RX | GP8,12,24,28 |
SPI1 CSn | GP9,13,25,29 |
SPI1 SCK | GP10,14,26 |
SPI1 TX | GP11,15,27 |
Pico2
オフィシャルからはRaspberry Pi Pico2、Pico2 Wの2種類がリリースされている。
Name | Pico2 | Pico2 W |
---|---|---|
チップ | RP2350 | RP2350 |
SRAM | 520KB | 520KB |
ROM | 4MB | 4MB |
GPIO数 | 26 | 26 |
ADC | 3 | 3 |
UART | 2 | 2 |
SPI | 2 | 2 |
I2C | 2 | 2 |
PWM | 24 | 24 |
PIO | 8 | 8 |
WiFi | 未対応 | 802.11n |
Bluetooth | 未対応 | Bluetooth5.2 Classic/LE |
ピンヘッダー | 未取付 | 未取付 |
購入したボード
購入したボードのノート
RP2040-Zero
ブレッドボードで使いやすいボードを探してAliexpressで購入。
左右9ピンで、下に5ピン出ている。下のヘッダーをつけるとブレッドボードに刺さらないので、左右だけつけて使用。
コネクタ:USB Type-C
スイッチ:BOOT, RESET
RGB LED(WS2812):1個
GPIO:20ピン+9パッド
ブレッドボードの接続構成
ブレッドボードで回路を作った際のノート
RP2040-ZeroとLCD, SD Card Slotを接続
LCD ST7735S 128*160 4-Wire SPI, VCC 3.3V-5V, Logic 3.3V, SD Card slot 4-Wire SPI
ピンアウト
Pico | LCD | SD Card Slot |
---|---|---|
5V | – | – |
GND | GND | – |
3.3V | VCC,LED | – |
GP29 | – | |
GP28 | CS | – |
GP27 | RESET | – |
GP26 | A0(DC) | – |
GP15(SPI1 TX) | SDA | – |
GP14(SPI1 SCK) | SCK | – |
GP0 | – | |
GP1 | – | |
GP2 | – | |
GP3 | – | |
GP4(SPI0 RX) | SD_MISO | |
GP5(SPI0 CS) | SD_CS | |
GP6(SPI0 SCK) | SD_SCK | |
GP7(SPI0 TX) | SD_MOSI | |
GP8 | – |
標準の開発環境としては、Raspberry Pi Pico C/C++ SDKとRaspberry Pi Pico Python SDKの2種類をリリースしている。Python SDKはMicroPythonというマイクロコントローラ向けに作成されたPython3相当のソフトウェアをポーティングしたものとなっている。
オフィシャル以外の開発環境として、MicroPythonから派生したCircuitPython、Arduino IDE、rustなどが存在する。
Name | C/C++ SDK | Python SDK(MicroPython) | CircuitPython | Arduino IDE | Rust |
---|---|---|---|---|---|
開発言語 | C/C++ | Python | Python | C/C++ | Rust |
開発元 | オフィシャル | オフィシャル | Adafruit | OSS | OSS |
特徴 | オフィシャルサポート。Picoの機能を深く使える。 | オフィシャルサポート。Picoの機能をPicoの機能を深く使える。 | Adafruit社のオフィシャル環境。同社販売のデバイスを中心に多くの機能に対応している | Arduioのスケッチが動く | Rustで開発出来る |
Debug Probe対応 | ○ | – | – | ○ | ○ |
C/C++ https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf
C/C++ https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf
MicroPython https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf
MicroPython https://docs.micropython.org/en/latest/rp2/quickref.html
CircuitPython https://circuitpython.org/board/raspberry_pi_pico/
REPLを使う
USBケーブルで接続してPythonのコードをコマンド実行することが出来る。
手順
- 下記ページより該当するPicoのMicroPython UF2ファイルをダウンロードする。
https://www.raspberrypi.com/documentation/microcontrollers/micropython.html - PCとPicoをUSBケーブルで接続する。
- PicoがUSBドライブ(RPI-RP2)として見えたら、ダウンロードしたUF2ファイルをコピーする。
※USBドライブが見えない場合は、BOOTボタンを押しながらRESETボタンを押して試す。 - コピーが完了したらPicoをリセットする。
- TeraTermなどのシリアルターミナルからPicoに接続するとREPLが使える。
>>> import os
>>> os.uname()
(sysname='rp2', nodename='rp2', release='1.24.1', version='v1.24.1 on 2024-11-2)
RGB LED(WS2812)を使う
RP2040-Zeroに搭載されているRGB LEDを使う。
RP2040-ZeroではWS2812というRGB LEDが搭載されており、WS2812の信号入力ピンDINがPicoのGP16に接続されている。
MicroPythonは標準でWS2812に対応したNeoPixelというライブラリが含まれているため、このライブラリを使用してLEDをコントロールすることが出来る。
マニュアル:https://docs.micropython.org/en/latest/library/neopixel.html
ライブラリを読み込み初期化後、赤、緑、青の順番にRGB LEDを点灯させる。
NeoPixelメソッドは、ポート(GP16)とRGBのLEDの数(1つ)を設定している。
NeoPixelはインスタンスがLED数分の配列になっており、配列にRGBの値(0-255)をタプル形式(R,G,B)でセットし、writeメソッドを実行することでRGB LEDに色を設定することが出来る。
>>> import neopixe
>>> p = machine.Pin.board.GP16
>>> n = neopixel.NeoPixel(p, 1)
>>> n[0] = (255,0,0)
>>> n.write()
>>> n[0] = (0,255,0)
>>> n.write()
>>> n[0] = (0,0,255)
>>> n.write()
REPLを使う
USBケーブルで接続してPythonのコードをコマンド実行することが出来る。
手順
- 下記ページより該当するボードのダウンロードページに行き、ダウンロードボタンを押してMicroPython UF2ファイルをダウンロードする。
https://circuitpython.org/downloads - PCとPicoをUSBケーブルで接続する。
- PicoがUSBドライブ(RPI-RP2)として見えたら、ダウンロードしたUF2ファイルをコピーする。
※USBドライブが見えない場合は、BOOTボタンを押しながらRESETボタンを押して試す。 - コピーが完了したらPicoをリセットする。
- TeraTermなどのシリアルターミナルからPicoに接続するとREPLが使える。
Auto-reload is on. Simply save files over USB to run them or enter REPL to disa.
Press any key to enter the REPL. Use CTRL-D to reload.
0;🐍REPL | 9.2.7
Adafruit CircuitPython 9.2.7 on 2025-04-01; Waveshare RP2040-Zero with rp2040
>>> import os
>>> os.uname()
(sysname='rp2040', nodename='rp2040', release='9.2.7', version='9.2.7 on 2025-0)
Pico https://circuitpython.org/board/raspberry_pi_pico/
Pico W https://circuitpython.org/board/raspberry_pi_pico_w/
Pico2 https://circuitpython.org/board/raspberry_pi_pico2/
Pico2 W https://circuitpython.org/board/raspberry_pi_pico2_w/
RP2040-Zero https://circuitpython.org/board/waveshare_rp2040_zero/
トラブルシューティング
CIRCUITPYファルダのファイルが書けなくなった場合
ファイル書き込み途中にリセットボタンを押すなどの理由でファイルシステムが破損する場合があり、
その場合はCIRCUITPYフォルダを初期化することで治る場合がある。
手順
- REPLに接続する。
- 初期化コードを入力して初期化を実行する。
import storage
storage.erase_filesystem()
Code Editorを使う
CircuitPythonはCircuitPythonのWebサイト上で、Code Editorという開発環境を提供している。
Code EditorはUSB(対応ボードの場合はWiFi、Bluetoothも可能)でPicoに接続し、プログラミングや実行することが出来る。
- PCとPicoをUSBケーブルで接続する。
- Code Editorを開く。
https://code.circuitpython.org/ - WiFi, Bluetooth, USBから接続するインタフェースを選択。(ここではUSBを選択)
- Connect to Deviceをクリックすると、PCが認識しているシリアルポートの一覧が表示される。
- Picoが接続されているポートを選択する。
- Select USB Host Folderをクリックし、PCが認識しているCIRCUITPYのファルダを選択する。
- Code Editor上でコードの変更やREPLが使用できる。
拡張ライブラリ(バンドル)について
CircuitPythonでは標準の環境に含まれない機能をライブラリバンドル(以下バンドル)という形で提供しおり、必要な機能のバンドルファイルをCIRCUITPYフォルダの下のライブラリフォルダにコピーすることで機能を追加することが出来るようになっている。
バンドルは以下のサイトよりダウンロードする。
バンドルはCircuitPythonのメジャーバージョン毎に配布されており、9.x.x系だと「Bundle for Version 9.x」を10.x.x系だと「Bundle for Version 10.x」をダウンロードして使用する。今回は9.2.7を使っているので「Bundle for Version 9.x」を使用した。
ダウンロードしてZIPファイルを展開すると以下のフォルダが含まれている。
examples:各種サンプルコードが入っている。
lib:各種ライブラリが入っている。
requirements:各種ライブラリが依存するライブラリの情報が入っている。
バンドルの使い方
Adafruit binascii Libraryを使う場合の例。
ドキュメント https://docs.circuitpython.org/projects/binascii/en/stable/index.html
- Picoを起動してCIRCUITPYフォルダを開く。
- バンドルのlibフォルダにあるadafruit_binascii.mpyをCIRCUITPYの下のlibフォルダにコピーする。
- ライブラリが使用できるようになったので、REPLから使用してみる。
>>> from adafruit_binascii import hexlify, unhexlify
>>> hexlify(b'123')
b'313233'
>>> unhexlify(b'313233')
b'123'
LCDを使用する際は、Displayioライブラリが提供するディスプレイシステムを使用する。
ディスプレイシステムはI2C、SPI、パラレルインタフェースを提供するディスプレイバス、ディスプレイバスを使用して各種LCDコントローラ向けのアクセス機能を提供するディスプレイドライバを組み合わせて使用する。
Displayioライブラリ自体は簡単なグラフィック描画機能しか搭載していないので、テキストなどの表示を行う場合はDisplayioに対応したグラフィックライブラリを組み合わせて使用する。
下記に各ライブラリ間の接続図を記載する。
例としてSPIインタフェースを使用するST7735Sコントローラを使用したLCDでテキスト表示を行う場合は以下のような組み合わせで使用する。
LCD関係の各種ライブラリ
LCDを使用するための各種ライブラリ。必要に応じて組み合わせて使用する。内蔵はCircuitPythonにあらかじめ入っているもの、バンドルはバンドルとして提供されているのでファイル名に記載のファイルをlibフォルダにコピーする必要がある。
LCDコントローラ ST7735R、ST7735Sを使用する
ここではLCDコントローラとしてST7735Rや、ST7735Sが使われているLCDを使って表示を行う。
ハードウェアはRP2040-ZeroとLCDを接続を使用。
ST735RやST7735Sを使用する場合は、バンドルに含まれるAdafruit ST7735R Libraryを使用する。
ドキュメント https://docs.circuitpython.org/projects/st7735r/en/stable/index.html
使用手順
- バンドルに含まれるadafruit_st7735r.mpyをPicoにコピーする。
※ST7735Bはadafruit_st7735.mpyを使用するので間違えないように注意。 - REPLから使用してみる。
- 下記コードを入力すると、LCDにもREPLの出力が表示される。
import board, busio
import displayio
import fourwire
from adafruit_st7735r import ST7735R
spi = busio.SPI(clock=board.GP14, MOSI=board.GP15)
displayio.release_displays()
display_bus = fourwire.FourWire(spi, command=board.GP26, chip_select=board.GP28, reset=board.GP27)
display = ST7735R(display_bus, width=160, height=128, rotation=270, bgr=True)
スクリーンショットを保存する
LCDに表示された内容をファイルに保存するには、adafruit_bitmapsaverライブラリを使用する。
リファレンス https://docs.circuitpython.org/projects/bitmapsaver/en/latest/api.html
スクリーンショット保存手順
- バンドルに含まれるlibフォルダの下のadafruit_bitmapsaver.mpyファイルをCIRCUITPY/libフォルダにコピーする。
- 内蔵ストレージを読み書き可能なモードにするため、CIRCUITPY/boot.py(無ければ新規作成する)に下記のコードを記載してリセットする。
import storage
storage.remount("https://zenn.dev/", False)
- スクリーンショット取得時は下記のようにadafruit_bitmapsaverライブラリ
のsave_pixelsメソッドを使用する。
from adafruit_bitmapsaver import save_pixels
save_pixels("/1.bmp", display)
- 保存が完了したら、Picoをリセットする。
- CIRCUITフォルダ下に保存した1.bmpがある。※LCDを回転して使用している場合は回転前の状態で保存されるので、PC側で回転する必要がある。
サンプルコード
import board, busio
import displayio
import fourwire
from adafruit_st7735r import ST7735R
spi = busio.SPI(clock=board.GP14, MOSI=board.GP15)
displayio.release_displays()
display_bus = fourwire.FourWire(spi, command=board.GP26, chip_select=board.GP28, reset=board.GP27)
display = ST7735R(display_bus, width=160, height=128, rotation=270, bgr=True)
from adafruit_bitmapsaver import save_pixels
save_pixels("/1.bmp", display)
テキストを表示する
テキストの表示にはadafruit_display_textライブラリを使用する。本ライブラリは内蔵フォントやフォントファイル使用して様々なデザインのフォントを表示することができる。
ライブラリ使用手順
- バンドルに含まれるlibフォルダの下のadafruit_display_textフォルダをCIRCUITPY/libフォルダにコピーする。
ラベルによる表示
label.Labelクラスを使用してテキスト表示を行う。
Labelクラスは初期化時にフォントや表示するテキストなどをパラメータとして指定する。
ここではCicuitPythonに内蔵されているterminalioフォントを使用してテキストを表示する。
import board, busio
import displayio
import fourwire
from adafruit_st7735r import ST7735R
spi = busio.SPI(clock=board.GP14, MOSI=board.GP15)
displayio.release_displays()
display_bus = fourwire.FourWire(spi, command=board.GP26, chip_select=board.GP28, reset=board.GP27)
display = ST7735R(display_bus, width=160, height=128, rotation=270, bgr=True)
import terminalio
from adafruit_display_text import label
main_group = displayio.Group()
display.root_group = main_group
text1 = label.Label(terminalio.FONT, text="ABC", x=10, y=10)
text2 = label.Label(terminalio.FONT, text="1234",color=0xFF0000, x=10, y=20)
main_group.append(text1)
main_group.append(text2)
ビットマップラベルによる表示
bitmap_label.Labelクラスを使用してテキスト表示を行う。ラベルによる表示と似ているが、ビットマップラベルのほうがメモリ使用量を抑えることが出来る。
import board, busio
import displayio
import fourwire
from adafruit_st7735r import ST7735R
spi = busio.SPI(clock=board.GP14, MOSI=board.GP15)
displayio.release_displays()
display_bus = fourwire.FourWire(spi, command=board.GP26, chip_select=board.GP28, reset=board.GP27)
display = ST7735R(display_bus, width=160, height=128, rotation=270, bgr=True)
import terminalio
from adafruit_display_text import bitmap_label
main_group = displayio.Group()
display.root_group = main_group
text1 = bitmap_label.Label(terminalio.FONT, text="ABC", x=10, y=10)
text2 = bitmap_label.Label(terminalio.FONT, text="1234",color=0xFF0000, x=10, y=20)
main_group.append(text1)
main_group.append(text2)
テキストスクロール
scrolling_label.ScrollingLabelクラスを使用してテキスト表示のスクロールを行う。
ScrollingLabelクラスは初期化時に表示する文字数や、スクロールアニメーションの時間を指定する。
また、スクロール動作を行うためにupdateメソッドを定期的に呼び出す必要がある。
import board, busio
import displayio
import fourwire
from adafruit_st7735r import ST7735R
spi = busio.SPI(clock=board.GP14, MOSI=board.GP15)
displayio.release_displays()
display_bus = fourwire.FourWire(spi, command=board.GP26, chip_select=board.GP28, reset=board.GP27)
display = ST7735R(display_bus, width=160, height=128, rotation=270, bgr=True)
import terminalio
from adafruit_display_text.scrolling_label import ScrollingLabel
main_group = displayio.Group()
display.root_group = main_group
text1 = ScrollingLabel(terminalio.FONT, text="ABCD1234", x=10, y=10, max_characters=4, animate_time=0.3)
main_group.append(text1)
while True:
text1.update()
アウトラインラベルによる表示
OutlinedLabelクラスを使用して縁取りされたテキストの表示を行う。
OutlinedLabelクラスは初期化時に縁取りの色(outline_color)や太さ(outline_size)などをパラメータとして指定する。
import board, busio
import displayio
import fourwire
from adafruit_st7735r import ST7735R
spi = busio.SPI(clock=board.GP14, MOSI=board.GP15)
displayio.release_displays()
display_bus = fourwire.FourWire(spi, command=board.GP26, chip_select=board.GP28, reset=board.GP27)
display = ST7735R(display_bus, width=160, height=128, rotation=270, bgr=True)
import terminalio
from adafruit_display_text import outlined_label
main_group = displayio.Group()
display.root_group = main_group
text1 = outlined_label.OutlinedLabel(terminalio.FONT, text="ABC", x=10, y=50, color=0xFF00FF, outline_color=0x00FF00, outline_size=1, scale=3)
main_group.append(text1)
テキストボックスによる表示
TextBoxクラスを使用して横幅を超える文字数のテキストをセットした場合に自動的に改行して表示を行う。また、プロパティのalignに左寄せ(TextBox.ALIGN_LEFT)、センター(TextBox.ALIGN_CENTER)、右寄せ(TextBox.ALIGN_RIGHT)を指定することが出来る。
import board, busio
import displayio
import fourwire
from adafruit_st7735r import ST7735R
spi = busio.SPI(clock=board.GP14, MOSI=board.GP15)
displayio.release_displays()
display_bus = fourwire.FourWire(spi, command=board.GP26, chip_select=board.GP28, reset=board.GP27)
display = ST7735R(display_bus, width=160, height=128, rotation=270, bgr=True)
import terminalio
from adafruit_display_text.text_box import TextBox
main_group = displayio.Group()
display.root_group = main_group
text1 = TextBox(terminalio.FONT, text="ABCDEFGHIJK0123456789", width=50, height=TextBox.DYNAMIC_HEIGHT, align=TextBox.ALIGN_CENTER, x=50, y=10)
main_group.append(text1)
BDFフォントの表示
adafruit_bitmap_fontライブラリを使用することで、BDFフォントファイルをロードして様々なフォントを表示することが出来る。
ライブラリ使用手順
- バンドルに含まれるlibフォルダの下のadafruit_bitmap_fontフォルダをCIRCUITPY/libフォルダにコピーする。
- BDFファイルをCIRCUITPYにコピーする。※サイズが大きいと容量が足りずにコピーに失敗する。
- 下記のコードでフォントを読み込む。
from adafruit_bitmap_font import bitmap_font
font = bitmap_font.load_font("fontfile.bdf")
- テキスト表示時に読み込んだフォントを指定する。
text1 = label.Label(font, text="0123456789", x=10, y=10)
ここでは7セグフォントを表示するために、keshikan/DSEGというフォントを利用した例を記載。
配布されているフォントはTrueType形式(.ttf)なので、BDF形式に変換する。
Linuxの場合はotf2bdfツールが使用できる。
$ otf2bdf DSEG7Classic-Bold.ttf -o dseg7.bdf
変換したdseg7.bdfをCITCUITPYフォルダにコピーする。
下記のようにdseg7.bdfを読み込んで使用する。
import board, busio
import displayio
import fourwire
from adafruit_st7735r import ST7735R
spi = busio.SPI(clock=board.GP14, MOSI=board.GP15)
displayio.release_displays()
display_bus = fourwire.FourWire(spi, command=board.GP26, chip_select=board.GP28, reset=board.GP27)
display = ST7735R(display_bus, width=160, height=128, rotation=270, bgr=True)
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font
font = bitmap_font.load_font("dseg7.bdf")
main_group = displayio.Group()
display.root_group = main_group
text1 = label.Label(font, text="0123456789", x=10, y=10)
main_group.append(text1)
SD Cardを使用する(Circuit Python)
SD Cardには複数の接続方式があり、接続方式により読み書きの速度が変わる。
Circuit PythonのPico向けは現状SPI Bus Modeのみの対応となっている。
接続方式 | モジュール | Picoの対応 |
---|---|---|
SPI Bus Mode | sdcardio | 対応 |
1bit SD Bus Mode | sdioio | 未対応 |
4bit SD Bus Mode | sdioio | 未対応 |
import board, busio
import sdcardio
import storage
spi = busio.SPI(clock=board.GP6, MOSI=board.GP7, MISO=board.GP4)
sd = sdcardio.SDCard(spi, board.GP5)
vfs = storage.VfsFat(sd)
storage.mount(vfs, '/sd')
各種ファイル操作
>>> import os
>>> os.listdir('/sd')
[]
>>> os.mkdir("/sd/test")
>>> os.listdir('/sd')
['test']
>>> with open("/sd/test/test.txt", "w") as f:
f.write("test 1234")
>>> os.listdir('/sd/test')
['test.txt']
>>> with open('/sd/test/test.txt', 'r') as f:
f.read()
'test 1234'
>>> os.remove('/sd/test/test.txt')
>>> os.rmdir('/sd/test')
>>> os.listdir('/sd')
[]
ToDo
7セグLEDを使う
音を出す
Picoで音を出す場合、内蔵のPWM機能を使用する方法と、I2S機能を使用する方法がある。
PWMはパルス信号を出力するモジュールで、外付けの抵抗とコンデンサでアナログ信号に変換する事で音を出すことが出来る。
I2Sはオーディオ用の通信規格で、I2Sに対応したオーディオコーデックICを接続することで高音質な音を出すことが出来る。
circuit pythonではどちらの方式にも対応しており、それぞれのスペックは以下となる。
信号再生
サイン波などの信号を再生する
PWM
I2S
WAVファイルの再生
MP3再生
PWM
SDカードからMP3再生