MicroPython จอแสดงผล ตอนที่ 1 (i2c LCD)

Sittipong Jansorn
Jul 22, 2017 · 3 min read

MicroPython เราได้ทำความรู้จักการใช้ในในส่วนของ Input/Output ไปแล้ว และได้ทำการติดตั้ง AMPY พร้อที่จะใช้งานเพราะว่าต้องมีการ upload file script ที่ะต้องใช้งานเพราะในส่วนการแสดงผล character lcd นั้น MicroPython ไม่มี buildin driver ให้เราใช้งานเราจะต้องเขียน script drviver กันขึ้นมาเอง แต่ในที่นี้ไม่ต้องเขียนเพราะได้เตรียม file script ไว้ให้เรียบร้อยแล้ว สามารถโหลด esp8266_i2c_lcd.py และ
lcd_api.py มาเก็บไว้ที่เครื่องกันก่อน

หลังจากโหลดท้งสอง file มาเรียบร้อยแล้วเราต้องทำการ upload ทั้งสอง file ไปเก็บไว้ใน file system ของบอร์ดโดยให้เราเปิด command line ขึ้นมาเพื่อเช็คดูว่าใน file system ของบอร์ดเรามีอะไรอยู่บ้างด้วยคำสั่ง ampy -p {COMPORT} ls

COMPORT คือ Port ที่ใช้ติดต่อกับบอร์ดของแต่ละท่านอาจจะไม่เหมือนกัน

ampy -p COM11 ls

ls

อย่างน้อยที่สุดจะต้องมี file boot.py เพราะจะเป็น script ที่ถูกเรียกใช้งานเป็นอันดับแรกเมื่อระบบเริ่มทำงาน ส่วน webrepl_cfg.py ได้จากการที่เราเปิดใช้งาน WebRepl มาถึงตอนนี้แสดงว่าเราพร้อมที่จะทำการ upload file ต่าง ๆ ไปยังบอร์ดได้แล้ว

การ upload file ไปยังบอร์ดใช้คำสั่ง

ampy -p {COMPORT} put {SOURCE_FILE} {DESTINATION_FILE}

SOURCE_FILE คือ file ที่เราต้องการ upload ไปยังบอร์ด
DESTINATION_FILE คือ ชื่อ file ปลายทาง ถ้าไมใส่ชื่อ file ปลายทางจะใช้เป็นช่อเดียวกับ file ต้นทาง

เตรียม file ที่ต้องการ upload

source file

upload file esp8266_i2c_lcd.py

ampy -p COM11 put esp8266_i2c_lcd.py

esp8266_i2c_lcd.py

หลังจากกด enter จะใช้เวลา upload พอประมาณถ้าทำสำเร็จจะไม่มีการแสดง error ใด ๆ

upload file lcd_api.py

ampy -p COM11 put lcd_api.py

lcd_api.py

หลังจาก upload ทั้งสอง file เรียบร้อยแล้วก็ทำการตรวจสอบว่าในระบบ file system ของบอร์ดมี file ทั้งสองอยู่จริง ๆ

ampy -p COM11 ls

เป็นอันเรียบร้อยโรงเรียน MicroPython ต่อไปเราจะมาทำการทดสอบ file script ทั้งสองด้วยการเขียนโปรแกรมติดต่อกับ character lcd

character lcd ที่เราจะใช้จะเป็นแบบ i2c 16 ตัวอักษร 2 แถว ก่อนที่จะใช้งาน i2c ได้นั้นเราต้องทำการ import module i2c ที่อยู่ใน package machine เข้ามาเสียก่อน

from machine import I2C

import module Pin

from machine import Pin

กำหนดขาที่ใช้เชื่อมต่อกับระบบบัส I2C โดยให้ SCL = GPIO2, SDA = GPIO0

scl = Pin(2)
sda = Pin(0)

สร้าง object I2C โดยใช้ชื่อตัวแปรเป็น i2c

i2c = I2C(scl=scl, sda=sda, freq=100000)

i2c

ทำการต่ออปกรณ์เข้ากับบอร์ดและทดสอบว่าใช้งานได้หรือไม โดยจะทำการแสกนอุปกร์ที่อู่บนบัส

i2c.scan()

จะ return ค่าออกมาเป็น address ของอุปกรณ์ในรูปแบบของ array ในที่นี้ 39 = 0x27 เป็น address ของ i2c Lcd

import module I2cLcd ที่อยู่ใน package esp8266_i2c_lcd

from esp8266_i2c_lcd import I2cLcd

สร้าง object I2cLcd โดยใช้ชื่อตัวแปรเป็น lcd

lcd = I2cLcd(i2c, 0x27, 2, 16)

lcd

ล้าหน้าจอ

lcd.clear()

แสดงผลโดยใช้คำสั่ง putstr()

lcd.putstr(“ESP8266\nMicroPython”)

จะทำการแสดงผลเป็นแบบ 2 แถว ซึ่งตัดแถวโดยใช้เครื่องหมาย \n

putstr

กำหนดการแสดงผลด้วยการย้าย cursor

lcd.clear()
lcd.move_to(3, 0)
lcd.putstr(“ESP8266”)
lcd.move_to(3, 1)
lcd.putstr(“MicroPython”)

เพียงเท่านี้เราก็สามารถทำการแสดงผลด้วยการใช้ 12c Lcd ได้แล้วด้วย code Python

    Sittipong Jansorn

    Written by

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade