Raspberry Pi Picoに、micro SDカードリーダ(DM3AT-SF-PEJM5)を接続して、データを読み書きできるようになりました。各種センサと組み合わせればデータロガーが作れると思います。
使用する電子部品
本稿で使用する部品はラズパイピコと秋月電子通商のマイクロSDカードスロットDIP化キット(AE-MICRO-SD-DIP)のみです。このキットは、ヒロセ電機のmicroSDカードスロット(DM3AT-SF-PEJM5)を2.54ミリピッチの基板に挿せるようにキット化したものです。
電子部品 | 個数 | 備考 |
![]() | 1個 | Raspberry Pi Pico |
![]() | 1個 | AE-MICRO-SD-DIP 秋月電子通商で売っているmicro-SDカードリーターです。 なおmicro-SDカード自体は別途準備して下さい。 |
配線図
配線図は以下の通りです。
Picoのpin番号 | Picoのpin内容 | AE-MICRO-SD-DIPのpin番号 | AE-MICRO-SD-DIPのpin内容 |
22 | SPI0 CSn(チップセレクタ) | 2 | CD/DAT3 |
25 | SPI0 TX(MOSI) | 3 | CMD |
36 | 3V3(OUT) | 4 | VDD |
24 | SPI0 SCK(CLK) | 5 | CLK |
28 | GND | 6 | VSS |
21 | SPI0 RX(MISO) | 7 | DAT0 |

ちなみに上記のfritzingのAE-MICRO-SD-DIP(DM3AT-SF-PEJM5)のパーツは現物を見ながら自分で描いてみました。折角なので公開します。
MicroPythonのコード
SDカードリーダの制御(フォルダとファイルの作成&削除、書き込み&読み込み)するコードは以下の通りです。ところで、sdcard.pyというコードをインポートしていますが、githubに同じ名前のファイルが幾つかあり、動くものを探すのに少し苦労しました。リンクを貼っておきます。
from machine import Pin,SPI
import os, sdcard
spi = SPI(0,sck=Pin(18), mosi=Pin(19), miso=Pin(16))
sd = sdcard.SDCard(spi, Pin(17))
#SDカードをマウント
os.mount(sd, '/sd')
#SDカード内を表示
print(os.listdir('/sd'))
#フォルダを作成
os.mkdir('/sd/test')
#ファイルを書き込み用に開く(無ければ新規作成)
fp = open('/sd/test/test.txt', 'w')
#ファイルに書き込み
fp.write('test')
#ファイルを閉じる
fp.close()
#ファイルを読み取り用に開く
fp = open('/sd/test/test.txt', 'r')
#ファイルから読み出し
print(fp.read())
#ファイルを閉じる
fp.close()
#ファイルを削除
os.remove('/sd/test/test.txt')
#カレントディレクトリを変更
os.chdir('../')
#フォルダを削除
os.rmdir('/sd/test')
#SDカード内を表示
print(os.listdir('/sd'))
コメント