라즈베리파이 피코용 확장 보드를 사용하여 MicroSD 카드 테스트를 해 보았습니다.
제가 가지고 있던 MicroSD 카드 소켓은 아래와 이미지처럼 고정쇠를 연 후 그 안에 MicroSD 카드를 넣고 뚜껑을 닫는 형태입니다.
아래와 같은 식으로 MicroSD 카드를 넣습니다.
간혹 MicroSD 카드의 읽기/쓰기 테스트를 하다 보면 코드 오류 또는 에러에 의해 MicroSD 카드가 깨지는 경우를 몇 번 경험하여 이번 테스트에도 역시나 제가 테스트용으로 사용하는 SanDisk MicroSD 256MB를 사용하여 테스트해 보았습니다.
고정쇠를 닫은 후 앞쪽으로 당겨서 닫아 주면 고정쇠 부분이 걸려서 더 이상 열리지 않습니다.
adafruit circuitpython에서 제공되는 라이브러리 중 adafruit_sdcard.py를 라즈베리파이의 lib 디렉터리에 복사해 넣습니다. 그런 후 아래 소스를 사용하여 MicroSD 카드 테스트를 하였습니다. 소스 내용은 디렉터리 리스트를 보여준 후 테스트 파일을 쓰고 읽기를 한 후 다시 디렉터리 리스트를 보여주는 소스코드입니다.
import os
import busio
import board
import digitalio
import storage
import adafruit_sdcard
def print_directory(path, tabs=0):
for file in os.listdir(path):
stats = os.stat(path + "/" + file)
filesize = stats[6]
isdir = stats[0] & 0x4000
if filesize < 1000:
sizestr = str(filesize) + " bytes"
elif filesize < 1000000:
sizestr = "%0.1f KB" % (filesize / 1000)
else:
sizestr = "%0.1f MB" % (filesize / 1000000)
prettyprintname = ""
for _ in range(tabs):
prettyprintname += " "
prettyprintname += file
if isdir:
prettyprintname += "/"
print("{0:<40} Size: {1:>10}".format(prettyprintname, sizestr))
# recursively print directory contents
if isdir:
print_directory(path + "/" + file, tabs + 1)
SD_CS = board.GP13
# Connect to the card and mount the filesystem.
#sck, mosi, miso
spi = busio.SPI(board.GP10, board.GP11, board.GP12)
cs = digitalio.DigitalInOut(SD_CS)
sdcard = adafruit_sdcard.SDCard(spi, cs)
vfs = storage.VfsFat(sdcard)
storage.mount(vfs, "/sd")
print("Files on filesystem:")
print("====================")
print_directory("/sd")
with open("/sd/test01.txt", "w") as file:
file.write("Hello, SD World!\r\n")
file.write("This is a test\r\n")
file.write("한글 출력 테스트\r\n")
print("====================")
with open("/sd/test01.txt", "r") as file:
data = file.read()
print(data)
print("====================")
print_directory("/sd")
위 소스코드를 실행해 보면 Thonny의 Shell 창에 MicroSD 카드의 파일 리스트와 쓰고 읽은 파일 내용을 보여줍니다.
테스트로 영어와 한글을 Write 해 보았는데 두 개의 언어 모두 정상적으로 잘 읽히고 파일 리스트를 읽어보면 새로 저장된 test01.txt 파일이 추가된 것을 확인할 수 있었습니다.
라즈베리파이 피코에서 MicroSD 카드를 분리하여 윈도우10 PC에서 확인해 보았습니다.
파이선을 사용해서인지 Write한 내용이 UTF-8 형식의 파일로 잘 저장되어 있습니다.
라즈베리파이 피코를 사용하여 기본적인 파일의 read/write 테스트를 해 보았습니다.
파일에서 데이터를 읽어오거나 아니면 주기적으로 로깅 데이터 등을 저장 시 사용하면 좋을 것 같습니다.
'Hardware > Raspberry PI' 카테고리의 다른 글
라즈베리파이4 (4GB) 스타터 키트 구매 (0) | 2022.05.23 |
---|---|
Raspberry Pi Pico 확장 보드 기능 테스트 (0) | 2022.04.20 |
Raspberry Pi Pico (W5100S-EVB-Pico) 확장 보드 제작 (0) | 2022.04.18 |
Raspberry Pi Pico (W5100S-EVB-Pico) HTTP 사용하기 (1) | 2022.04.17 |
Raspberry Pi Pico에서 UART 사용하기 (0) | 2022.04.17 |
댓글