Micropython Coding

MicroPython
ภาพรวม
MicroPython มีโมดูลในตัวที่ออกแบบมาให้คล้ายกับ Python Standard Library (เช่น os, time)
และยังมีโมดูลเฉพาะของ MicroPython เอง (เช่น bluetooth, machine)
- โมดูลจาก Python มาตรฐาน มักมีเพียง บางฟังก์ชัน ที่เทียบเท่าใน Python จริง
- บางโมดูลอาจมี ฟีเจอร์เพิ่มเติม ที่เป็นเฉพาะของ MicroPython (เช่น
array,os) - เนื่องจากข้อจำกัดของทรัพยากรหรือเวอร์ชันเฟิร์มแวร์ บางพอร์ต/เฟิร์มแวร์ อาจไม่รองรับฟังก์ชันทั้งหมด
Libraries
ไลบรารีเฉพาะของ OpenMV Cam
- pyb – ฟังก์ชันที่เกี่ยวข้องกับบอร์ด
- cpufreq – การควบคุมความถี่ของ CPU
- sensor – โมดูลกล้อง (Camera Sensor)
- buzzer – ไดรเวอร์ควบคุมเสียง Buzzer
- image – การประมวลผลภาพ (Machine Vision)
- rpc – ไลบรารีสำหรับ Remote Procedure Call (RPC)
- ml – โมดูล Machine Learning
- rtsp – ไลบรารี RTSP (Real-Time Streaming Protocol)
- audio – โมดูลสำหรับการประมวลผลเสียง
- omv – ข้อมูลของ OpenMV Cam
- display – ไดรเวอร์แสดงผล (Display Driver)
- mjpeg – การบันทึกวิดีโอแบบ MJPEG
- imu – เซ็นเซอร์ IMU (ตรวจจับความเร่ง/ทิศทาง/การหมุน)
แนะนำส่วนต่างของ Editor

ส่วนประกอบหลักของ OpenMV IDE
จากภาพหน้าจอก่อนหน้านี้ พื้นที่สำคัญที่ถูกระบุไว้ ได้แก่:
- Code Editor – พื้นที่สำหรับเขียน/แก้ไขโค้ด
- Terminal Window – หน้าต่างเทอร์มินัลสำหรับแสดงผลข้อความ
- Image Preview – หน้าต่างตัวอย่างภาพจากกล้อง
- Image Histogram – กราฟฮิสโตแกรมของภาพ
ปุ่มที่มุมซ้ายล่างของหน้าจอ
- ปุ่มสำหรับ เชื่อมต่อกับกล้อง OpenMV
- ปุ่มสำหรับ รันสคริปต์ (Run Script) ที่เปิดอยู่ใน IDE
หมายเหตุ
เมื่อเปิด OpenMV IDE ขึ้นมาเป็นครั้งแรก
ระบบจะโหลดสคริปต์ตัวอย่าง hello_world.py โดยอัตโนมัติ
Lab 01: Blink LED
- เปิด โปรแกรม OpenMV
-
สร้าง File ใหม่ชื่อ lab_python01.py

| lab_python01.py for Workshop6 | |
|---|---|
Screen: Run lab_python01.py

Screen: Output lab_python01.py

Lab 02: button input
Lab 3 การจัดการหน่วยความจำ (Memory Management) และ การสำรวจโมดูลใน MicroPython
คำอธิบาย MicroPython Module และ Garbage Collector
1. import micropython
- โมดูล
micropythonใช้สำหรับเข้าถึงฟังก์ชันภายในของ MicroPython - ใช้ตรวจสอบ/ควบคุมการทำงานระดับล่าง เช่น memory info, การ optimize
2. import gc
gc= Garbage Collector- ทำหน้าที่จัดการหน่วยความจำอัตโนมัติ (คล้าย Python ปกติ)
- ใน MicroPython อุปกรณ์มี RAM จำกัด จึงควบคุม
gcสำคัญมาก
3. print(dir(micropython))
- ใช้
dir()เพื่อดูรายชื่อฟังก์ชัน/แอตทริบิวต์ทั้งหมดที่อยู่ในโมดูลmicropython - ตัวอย่างฟังก์ชันสำคัญ:
micropython.alloc_emergency_exception_buf()→ จัด buffer สำรองสำหรับ exceptionmicropython.mem_info()→ ดูสถานะ memory
4. print(dir(gc))
- ใช้
dir()เพื่อดูฟังก์ชันของgc - ตัวอย่างฟังก์ชันสำคัญ:
gc.collect()→ เก็บกวาดหน่วยความจำที่ไม่ได้ใช้งานgc.mem_alloc()→ ตรวจสอบ RAM ที่ถูกใช้gc.mem_free()→ ตรวจสอบ RAM ที่เหลืออยู่
5. micropython.mem_info(True)
- แสดงข้อมูลเชิงลึกของหน่วยความจำ
- ถ้าใส่
Trueจะได้รายละเอียดมากขึ้น เช่น การแบ่ง heap, stack
6. gc.collect()
- บังคับให้ Garbage Collector เคลียร์หน่วยความจำที่ไม่ใช้งาน
- มีประโยชน์มากบนบอร์ดที่มี RAM น้อย เพื่อป้องกัน Out-of-Memory
7. gc.mem_alloc() / gc.mem_free()
gc.mem_alloc()→ จำนวน byte ของ RAM ที่ถูกใช้แล้วgc.mem_free()→ จำนวน byte ของ RAM ที่ยังว่าง- ใช้ตรวจสอบว่าโปรแกรมเราใช้ RAM ไปเท่าไร เหมาะกับการ optimize
8. help('modules')
- แสดงรายชื่อโมดูลทั้งหมดที่สามารถ
importได้ - ขึ้นอยู่กับว่า firmware/บอร์ดรองรับอะไรบ้าง
- ตัวอย่างโมดูลที่พบบ่อย:
os,time,machine,network,bluetooth,sensor,imageฯลฯ