MicroPython ESP32 – 01 : โปรแกรมแรก Blink ด้วย Thonny IDE
Thonny เป็น IDE ที่เขียนขึ้นมาเพื่อเป็นเครื่องมือในการศึกษาการเขียนโปรแกรมคอมพิวเตอร์ด้วยภาษา Python โดยมีความสามารถหลายอย่าง เช่น แสดงชื่อตัวแปรและค่าของตัวแปรที่มีอยู่ในระบบ เป็นต้น พัฒนาโดย University of Tartu Institute of Computer Science
โปรแกรมแรกของ การใช้งานไมโครคอนโทรลเลอร์มักจะเป็น Blink ไฟกะพริบ ซึ่งเป็นหนึ่งในโปรแกรมที่ง่ายที่สุดเท่าที่จะเป็นไปได้ในการเขียนภาษาโปรแกรมต่างๆ เพราะฉะนั้นโดยธรรมเนียมปฏิบัติแล้ว มักจะใช้ในการตรวจสอบว่าเขียนภาษาโปรแกรมได้ถูกต้องหรือระบบมีการประมวลผลที่ถูกต้อง และมักถูกใช้เป็นตัวอย่างที่ง่ายที่สุดในการแสดงผลลัพธ์ของการเขียนโปรแกรม
โดยมีขั้นตอนการทำงานดังนี้
1 : อุปกรณ์ที่ใช้
2 : เชื่อมต่อสาย USB ระหว่าง คอมพิวเตอร์ กับ ESP32
3 : ตรวจสอบการเชื่อมต่อ ระหว่าง คอมพิวเตอร์ กับ บอร์ด ESP32
คลิกขวา ที่ Start เลือกไปที่ Device Manager
ไปที่ Ports (COM & LPT) จะพบ Silicon Labs CP210x USB to UART Bridge ในตัวอย่างเป็น (COM8) แสดงว่าคอมพิวเตอร์ของเราสามารถ ติดต่อสื่อสารกับ บอร์ด ESP32 ได้แล้ว
4 : ดาวน์โหลด MicroPython Firmware สำหรับ ESP32
การเขียน firmware ของ MicroPython ลงใน ESP32 รุ่นทั่วๆไป จะทำให้เหลือเนื้อที่อยู่น้อยกว่า 100KB สำหรับให้เขียนโปรแกรม ดังนั้นการเลือกใช้บอร์ดที่มี SPIRAM น่าจะเหมาะสมที่สุด และบอร์ดที่เลือกใช้นั้นเป็นบอร์ด TTGO รุ่น T8 V1.7 ซึ่งมี PSIRAM ให้ใช้ 4MB
ซึ่งในบทความนี้ใช้บอร์ด ESP32 รุ่น TTGO T8 ที่มี WiFi + บลูทูธ และ มาพร้อมแรม PSRAM 4MB ในตัวอย่างจึงเลือกเป็น ESP-IDF v3.x และไฟล์ esp32-idf3-20200902-v1.13.bin
หลังจากนั้นจะได้ไฟล์ชื่อ esp32spiram-idf3-20200902-v1.13.bin ในคอมพิวเตอร์ของคุณ
5 : ติดตั้งโปรแกรม Thonny IDE
Thonny ซึ่งเป็น IDE ขนาดเล็กที่ออกแบบมาเพื่อผู้เริ่มต้นใช้ภาษา Python เป็นทางเลือกที่ไม่ยุ่งยาก พร้อมใช้งานบน Windows, Mac หรือ Linux สามารถดาวน์โหลดไฟล์ติดตั้ง .exe ถ้าใช้ Windows เลือกคลิกที่ Windows ได้จาก http://thonny.org/ โดยไม่จำเป็นต้องติดตั้ง Python มาก่อน
การติดตั้งเหมือนกับโปรแกรมทั่วไป
6 : ติดตั้ง Firmware ภาษา MicroPython บน ESP32
เปิดโปรแกรม Thonny IDE
คลิก Let’s go!
ไปที่ Run -> Select interpreter…
คลิกที่ Drop Down List
เลือก MicroPython (ESP32)
ที่ Port or WebREPL เลือกเป็น Silicon Labs CP210x USB to UART Bridge ในตัวอย่างเป็น (COM8) ตามที่เราตรวจสอบไว้ ในขั้นตอนที่ 3
คลิกที่ install or update firmware
ที่ Port เลือกเป็น Silicon Labs CP210x USB to UART Bridge ในตัวอย่างเป็น (COM8) ตามที่เราตรวจสอบไว้ ในขั้นตอนที่ 3
คลิกที่ Browse…
เลือกไปที่ไฟล์ esp32spiram-idf3-20200902-v1.13.bin ที่เราดาวน์โหลดมา จากขั้นตอนข้อที่ 4 -> Open
คลิก Install
รอกระทั่ง ขึ้น Done! แล้ว คลิก Close เพื่อปิดหน้าต่างลงไป
คลิก OK
ที่ Shell จะแสดง MicroPython เวอร์ชั่นที่เรา BurnFirmware (เขียน MicroPython Firmware ลงในหน่วยความจำของบอร์ด ESP32)
ไปที่ View -> Files
ในหน้าต่าง Files จะมีอยู่ 2 ส่วน คือ
1. ส่วนด้านบน This computer จะเป็นไฟล์ที่อยู่ที่คอมพิวเตอร์ของเรา
2. ส่วนด้านล่าง MicroPython device ซึ่งส่วนนี้จะอยู่ในหน่วยความจำของบอร์ดไมโครคอนโทรลเลอร์บอร์ด ESP32 จะพบ ไฟล์ boot.py ที่โปรแกรม สร้างขึ้นมาให้เราโดยอัตโนมัติ โดยจะทำงานโดยอัตโนมัติเมื่อมีการรีเซตบอร์ด และหลังจากนั้น ถ้ามีไฟล์ชื่อ main.py ก็จะทำงานเป็นลำดับถัดไป
7 : โปรแกรมแรก Blink
โปรแกรมแรก Blink คือ โปรแกรมที่จะทำให้หลอด LED ติด/ดับ ได้ด้วย MicroPython โดยมีเป้าหมายให้ไฟ LED ที่อยู่บนบอร์ด ซึ่งสำหรับบอร์ด TTGO ที่ใช้ จะมี LED สีเขียว ที่ต่ออยู่กับ GPIO21 ให้มันติด/ดับ
สร้างโฟลเดอร์สำหรับเก็บไฟล์โค้ดของเรา โดย คลิกขวาที่ไดร์ฟที่ต้องการ -> New directory…
ในตัวอย่างตั้งชื่อโฟลเดอร์ เป็น Python-code -> OK
โค้ดนี้สาธิตการใช้คำสั่งเพื่อใช้งานขา GPIO เช่น เลือกใช้ขา GPIO21 เป็นเอาต์พุต และกำหนดสถานะ LOW (0) หรือ HIGH (1) สลับกันไป โดยเว้นช่วงเวลาประมาณ 0.5 วินาที การเขียนโปรแกรม MicroPython เพื่อใช้งานขาดิจิทัล I/O ของ ESP32 จะใช้ผ่านคลาส Pin ของแพ็คเกจ machine และในตัวอย่างนี้ได้ใช้ขา GPIO จำนวน 1 ขา เป็นขาดิจิทัล-เอาต์พุต
เขียนโค้ดดังนี้
from machine import Pin
from time import sleep
led = Pin(21, Pin.OUT)
while True:
led.value(not led.value())
sleep(0.5)
เราจะบันทึกไฟล์นี้ ไปยังโฟลเดอร์ที่เราสร้างไว้ก่อนหน้านี้ โดย ไปที่ File -> Save as…
เลือกเป็น This computer
ไปยังโฟลเดอร์ที่เราสร้างไว้ก่อนหน้านี้ ตั้งชื่อไฟล์เป็น main -> Save
ไปที่ไดร์ฟที่เราสร้างโฟลเดอร์ไว้ เลือกไปที่โฟลเดอร์ที่เราสร้าง
ในตัวอย่างนี้ ชื่อ Python-code
จะพบไฟล์ main.py ที่เราบันทึกไฟล์นี้ไว้
คลิกขวาที่ไฟล์ main.py -> Upload to / เพื่ออัพโหลดไฟล์โค้ดนี้ไปยังบอร์ด ESP32
สังเกตที่ MicroPython device จะมีไฟล์ main.py เพิ่มเข้ามา ซึ่งก็คือไฟล์ที่เราอัพโหลดขึ้นไปนั่นเอง
กดที่ปุ่ม RTS 1 ครั้ง เพื่อเริ่มการทำงาน ของ ESP32
ถึงขั้นตอนนี้ถ้าไม่มีอะไรผิดพลาด ไฟ LED สีเขียว ที่บอร์ด ESP32 รุ่น TTGO T8 จะกระพริบ ติด-ดับ แสดงว่าโปรแกรมแรกของ MicroPython ของคุณสำเร็จแล้ว