การอ่านและเขียนไฟล์ SD Card

สวัสดีครับ วันนี้ผมจะมาพูดเรื่องการใช้งาน CorgiDude บอร์ด กับการใช้งาน อ่านและเขียนไฟล์ใน SD Card ติดมานะครับ การใช้งานการอ่านก่อนเลยนะครับ

การใช้งาน SD Card นั้นต้องใส่ SD Card ก่อนนะครับ เมื่อทำการต่อเสร็จแล้ว

ต่อไปมาดูโปรแกรม ตัวอย่าง

การอ่าน SD card ก่อนเลยนะครับ การอ่าน SD card นั้นผมจะมาสอนอยู่ 2 อย่างครับอย่างที่่ 1 อ่านรูปจาก SD card อย่างที่่ เป็นการอ่านไฟล์ txt เรามาเริ่มอ่านรูปจาก SD card ก่อนเลยครับ ก่อนอื่นก็เตรียมรูปผมแนะนำให้เป็นไฟล์ jpg นะครับนำไปใส่ใน SD card ไว้ได้เลยครับ หลังจากที่เราได้เอารูปใส่ใน SD card แล้วให้เราจำชื่อไฟล์รูปของเราด้วยนะครับเพื่อเอาไปใช้งานตอนไหน script เราจะได้นำชื่อรูปใส่ในคำสั่งอ่านรูปครับ

img = image.Image("/sd/33.jpg")

จากคำสั่งข้างบน อ่านรูปชื่อ 33.jpg ใน SD นะครับ

import sensor, image, time,lcd
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)
lcd.init(type=2, freq=20000000, color=lcd.BLACK)
clock = time.clock()
while(True):
    clock.tick()
    #img = sensor.snapshot()
    img = image.Image("/sd/33.jpg")
    lcd.display(img)
    print(clock.fps())

สิ่งที่สำคัญ รูปไม่ควรใหญ่กว่าจอ นะครับ ถ้าใหญ่ได้แต่ต้องรีขนาด และถ้าใหญ่เกินแรมจะไม่พอนะครับ ต่อไปมาดูตัวอย่างการอ่านไฟล์ TXT ต่อกันเลยนะครับ นำไฟล์ .txt ที่เราจะอ่านไปใว้ใน SD ครับ ไฟล์ของผมชื่อ test.txt โปรแกรมตัวอย่างครับ

import sensor, image, time,lcd
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)
lcd.init(type=2, freq=20000000, color=lcd.BLACK)
clock = time.clock()
f=open('/sd/test.txt','r')
labels=f.read()
f.close()
img = image.Image()
img.draw_string(0, 0, labels, scale=1)
lcd.display(img)

ต่อไปมาดูวิธีการบันทึกรูปลงใน SD กันครับ

a = img.save("/sd/test.jpg")
import sensor, image, time,lcd
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)
lcd.init(type=2, freq=20000000, color=lcd.BLACK)
clock = time.clock()
mun = 0
while(True):
    clock.tick()
    img = sensor.snapshot()
    #img = image.Image("/sd/33.jpg")
    mun = mun+1
    img.save("/sd/"+str(mun)+".jpg")
    lcd.display(img)
    print(clock.fps())

โปรแกรมตัวนี้บันทึกรูปไปเรื่อยๆๆโดยผมเปลียนชื่อครับ

ต่อไปผมจะมาให้ตัวอย่าโปรแกรมเขียนไฟล์ .csv นะครับ อันดับแรไปสร้างไฟล์ .csv ใน SD ก่อนครับตั้งชื้ออะไรก็ได้ครับ ยิ่งสั่นยิ่งดีครับ ของผม เป็น test.csv แล้วกันครับ

import os
import time
f = open('/sd/test.csv', 'a')
deta =0
deta2 =0
deta3 =0
while True:
    deta = deta+1
    deta2 = deta2+2
    deta3 = deta3+3
    f.write(str(deta)+","+str(deta2)+","+str(deta3)+"\n")
    f.flush()
    time.sleep(1)