[TH] The MaixPy’s lcd class.

บทความนี้กล่าวถึงการใช้โมดูล TFT-LCD ของบอร์ด Sipeed M1W dock suit ผ่านทางคลาส lcd (MaixPy’s lcd class) ที่มีมากับ MaixPy ซึ่งเป็นโมดูลที่ทำให้ผู้เขียนโปรแกรมสามารถใช้งานโดยประสิทธิภาพของการทำงานของคลาสนั้นมีความเร็วสูง

ภาพที่ 1 จอแสดงผลของ Sipeed M1W dock Suit
Read More

[TH] ปรับแต่งไลบรารี st7735 blue-tab/red-tab 0.96 นิ้ว

บทความนี้เป็นการปรับปรุงไฟล์ไลบรารี st7735 สำหรับ Micropythonโดย Billy Cheung (เข้าถึงเมื่อ 2021-09-07) ที่เผยแพร่บน github ซึ่งเป็นไลบรารีที่ปรับปรุงมาจาก Guy Caver จนรองรับ ST7735s โดยไลบรารีที่ต้องใช้งานประกอบด้วย st7735.py และ sysfont.py Guy Carver ใช้งานกับ esp8266 และ esp32 เพื่อให้ความเร็วในการแสดงผลที่ดีขึ้นโดยอาศัยหลักการสร้างบัฟเฟอร์ของการแสดงผลสำหรับเก็บข้อมูลพิกเซลและเพิ่มเติมคำสั่งสำหรับส่งข้อมูลจากบัฟเฟอร์ไปยังโมดูล TFT ผ่านบัสแบบ SPI

ภาพที่ 1 บอร์ด dCore-miniML ที่ติดตั้งโมดูลแสดงผล ST7735 0.96 นิ้ว
Read More

[TH] เกมวิ่งเก็บธงในเขาวงกต

บทความนี้เป็นตัวอย่างการเขียนเกมขยับตัวละครให้เดินไปในเขาวงกตเพื่อเก็บธงที่ถูกสุ่มตำแหน่ง ดังภาพที่ 1 ซึ่งตัวละครจะเดินในช่องที่กำหนดไม่สามารถทะลุกำแพงได้ โดยมีเสียงร้องเตือนเมื่อพยายามเดินไปในตำแหน่งที่ไม่สามารถไปได้ และเมื่อเดินไปทิศใดจะเปลี่ยนภาพของตัวละครให้หันไปทางทิศนั้น นอกจากนี้กำหนดให้การกดปุ่ม A ให้เป็นการสุ่มตำแหน่งของธงใหม่ การกดปุ่ม B ให้ทำการสุ่มตำแหน่งของผู้เล่น และถ้ากดปุ่ม D ให้ออกจากโปรแกรม โดยบอร์fสำหรับใช้งานยังคงเป็น dCoreML4M เช่นเดิม มาเริ่มกันครับ

ภาพที่ 1 ตัวอย่างเกมของบทความนี้
Read More

[TH] The dCore-espWST

บทความนี้แนะนำการใช้ esp8266 เพื่ออ่านอุณหภูมิความชื้นจากเซ็นเซอร์ DHT11 ค่าแรงดันจากเซ็นเซอร์ LDR รับค่าจากสวิตช์ และแสดงผลผ่านทาง OLED ด้วยภาษาไพธอนของ MicroPython โดยคุณสมบัตินี้เป็นบอร์ด dCore-espWST ที่พวกเราใช้งาน (ซึ่งบทความก่อนหน้านี้เราก็ใช้ตัว dCore-esp32WST ที่มีการออกแบบเหมือนกันแต่ใช้ esp32 แต่โค้ดโปรแกรมยังคงใช้กับบอร์ดรุ่นได้ด้วยเช่นกัน) และเป็นบอร์ดสำหรับใช้ในการเรียนการสอนวิชา IoT โดยโครงสร้างต้นแบบของบอร์ดเป็นดังภาพที่ 1 ซึ่งปกติจะใช้กับชุดจ่ายไฟจากระบบแบตเตอรีพร้อมวงจรชาร์จจากแผงโซลาเซลล์

ภาพที่ 1 ต้นแบบของบอร์ด dCore-espWST
Read More

[TH] เกม 15-Puzzle

บทความนี้เป็นตัวอย่างเกม 15-Puzzle โดยใช้บอร์ด ml4m ที่มีผลลัพธ์ของหน้าจอดังภาพที่ 1 ซึ่งเป็นเกมที่ทำให้ผู้เล่นได้ฝึกทักษะการคิดแบบมีกลยุทธ์มีการมองเกมล่วงหน้าเพื่อวางแผนการเลื่อนตัวเลข นอกจากนี้เกม 15-puzzle นอกจากอยู่ในรูปแบบของตัวเลขแล้วยังสามารถเปลี่ยนแปลงจากตัวเลขให้เป็นภาพ คือ เปลี่ยนเป็นภาพ 1 ภาพและแบ่งออกเป็น 16 ส่วน แล้วให้ผู้เล่นทำการเลื่อนภาพเพื่อต่อให้เหมือนกับต้นฉบับ นอกจากนี้ในตัวอย่างมีการใช้บัซเซอร์ในการสร้างเสียงบี๊บโดยใช้ DAC ขนาด 8 บิตของไมโครคอนโทรลเลอร์ esp32 พร้อมทั้งการเขียนโปรแกรมเลือกใช้ภาษาไพธอนบน MicroPython เช่นเคย

ภาพที่ 1 ตัวอย่างการสุ่มค่าในตาราง 4×4
Read More

[TH] ESP32-ML4M กับเกม Tic-Tac-Toe ภาคจบ

จากบทความเกม Tic-Tac-Toe หรือเกมโอเอ็กซ์ที่เล่นกับคอมพิวเตอร์ (esp32) ผ่านทางคอนโซลของโปรแกรมเทอร์มินอลซึ่งไม่สะดวก คราวนี้มาเรียนรู้การใช้วงจรต่อพ่วงของ esp32 ของบอร์ด ML4M (ภาพที่ 1) ว่ามีวงจร I/O อย่างไรบ้าง และตัวอย่างเกม Tic-Tac-Toe ที่เล่นผ่านอุปกรณ์เป็นอย่างไร ซึ่งในโค้ดมีการทำงานกับโมดูลจอยสติก และสวิตช์แบบสัมผัส

ภาพที่ 1 บอร์ด ml4m บอร์ดทดสอบเกม Tic-Tac-Toe
Read More

[TH] เกม Tic-Tac-Toe

บทความนี้เป็นเก็บตกตัวอย่างเกมโอเอ็กซ์หรือ Tic-Tac-Toe ที่ทางทีมเราใช้ในการสอนวิชาพัฒนาเกมด้วยภาษาต่าง ๆ ตามความเหมาะสมกับกลุ่มผู้เรียน แต่ส่วนใหญ่จะใช้ภาษาไพธอนในการนำสอนเนื่องจากอธิบายและเขียนไปด้วยได้สะดวกกว่าภาษาอื่น ประกอบกับอยากให้มองเห็นแนวทางการนำไปใช้กับแพลตฟอร์มอื่น ๆ บ้าง ทางพวกเราจึงนำตัวอย่างมาใช้กับ MicroPython ของบอร์ดที่เราตั้งชื่อกันว่า ml4m ซึ่งมีที่มาจากบอร์ดนี้ติดตั้ง TensorFlow Lite บน ESP32 แบบ ROM 4MB โดยบอร์ดมีหน้าตาดังภาพที่ 1

ภาพที่ 1 บอร์ด ml4m บอร์ดทดสอบเกม Tic-Tac-Toe
Read More

[TH] แถบแสดงค่าอุณหภูมิและความชื้น

บทความนี้เป็นตัวอย่างโปรแกรมสำหรับกรณีที่ต้องการแสดงแถบแสดงค่าอุณหภูมิและความชื้นดังภาพที่ 1 ด้วย MicroPython กับบอร์ด esp32 ที่ติดตั้ง OLED จะเขียนอย่างไร โดยอุปกรณ์ในการทดลองครั้งนี้ใช้ DHT22 เป็นอุปกรณ์วัดความชื้นและอุณหภูมิ โดยบอร์ดเชื่อมต่อกับบัส I2C เพื่อสื่อสารกับ OLED ผ่านทางขา GPIO4 และ GPIO5 สำหรับทำหน้าที่ SCL และ SDA ตามลำดับ พร้อมกันนี้ได้ต่อขาสัญญาณของ DHT22 เข้ากับขา GPIO15 เพื่อใช้สื่อสารกันระหว่างเซ็นเซอร์กับไมโครคอนโทรเลอร์

ภาพที่ 1 ตัวอย่างผลัพธ์ของการแสดงแถบแสดงค่าอุณหภูมิและความชื้น
Read More

[TH] Queue Data Structure

บทความนี้แนะนำการใช้คลาส list ใน Micropython มาประยุกต์เป็นโครงสร้างข้อมูลคิวที่มีจำนวนสมาชิกจำกัด และทำงานตามหลักการ FIFO (First-In-First-Out) ซึ่งสามารถนำไปประยุกต์ใช้ได้หลากหลาย เช่น ใช้เป็นที่เก็บข้อมูลและเมื่อข้อมูลมีเต็มแล้วแต่ต้องการนำข้อมูลใหม่ใส่เข้าไป ดังนั้น จึงต้องนำข้อมูลเก่าอันดับที่ 1 ที่ใส่เข้ามาออกไป ซึ่งตรงกับหลักการของ FIFO เป็นต้น โดยตัวอย่างในบทความนี้ใช้บอร์ด dCore-miniML (ในภาพที่ 1) อ่านข้อมูลอุณหภูมิของชิพมาเก็บไว้ในโครงสร้างแบบคิวและแสดงผลออกมาในลักษณะของกราฟแท่ง และไมโครไพธอนที่นำมาใช้เป็นเฟิร์มแวร์รุ่น 1.16 (2021-06-23) สำหรับ ESP Module (SPIRAM)

ภาพที่ 1 ตัวอย่างการวาดกราฟด้วยข้อมูลที่เก็บในโครงสร้างข้อมูลแบบคิว
Read More

[EN] ESP32 : Display of rotation squares with application ulab.

This article uses the ESP32 to rotate squares using the ulab library and to display the results of the calculations on the ST7735s LCD graphics module as written in the previous article. The example of the program consists of rotating a square in a clockwise direction and rotating multiple squares in opposite directions

(Video 1 An example of the performance with the display speed adjusted.)
Read More