CircuitPython vs MicroPython : ความเหมือนที่แตกต่าง

หลายท่านสอบถามเข้ามาว่า CircuitPython และ MicroPython เหมือนหรือแตกต่างกันอย่างไร เพราะ CircuitPython ก็เป็นภาษา Python เหมือนกันกับ MicroPython ใช้เครื่องมือ IDE ก็เหมือนกัน และยังทำงานบน Embedded System เหมือนกันด้วย วันนี้เลยถือโอกาสมาอธิบายเพิ่มเติมสักหน่อย CircuitPython พัฒนามาจาก MicroPython ที่เน้นให้การใช้งาน Python สำหรับงาน Embedded System ทำได้ง่ายขึ้น เนื่องจากมีชุดคำสั่งที่กระชับเข้าใจง่ายมากกว่า MicroPython CircuitPython เหมาะสำหรับคนที่เริ่มศึกษา Python เนื่องจาก CircuitPython พัฒนาโดย Adafruit ทำให้ฮาร์ดแวร์ที่รองรับส่วนใหญ่เป็นฮาร์ดแวร์ที่ผลิดโดย Adafruit เป็นหลัก

CircuitPython รองรับชิป Atmel SAMD21 หรือที่เราเรียกว่า M0 และยังมีรุ่นที่รองรับ ESP8266 ด้วย สำหรับ developer board ในประเทศไทย บอร์ด Chili สามารถพัฒนาโปรแกรมด้วย CircuitPython ได้เช่นกัน

สักษณะการทำงาน

  • CircuitPython มีลำดับการทำงานของไฟล์อย่างชัดเจน ที่ให้เราสามารถแยกไฟล์ออกมาเป็นไฟล์ต่างๆ ได้
  • ไฟล์ boot.py หรือ settings.py จะทำงานครั้งแรกครั้งเดียวเมื่อพอร์ด USB เริ่มทำงาน
  • code.py หรือ main.py จะทำงานทุกครั้งที่ reload จนกระทั่งจบการทำงาน จากนั้น vm และ hardware จะเริ่มต้นการทำงานใหม่ ทำให้คุณไม่สามารถตรวจสอบสถานะของ code.py ได้จาก REPL
  • หลังจาก code.py ทำงานเสร็จ จึงจะสามารถใช้งาน REPL ได้

API สำหรับเรียกใช้งาน

CircuitPython มี API สำหรับ hardware ทั่วๆ ไป เช่น audioio, analogio, busio, digitalio, pulseio, touchio, microcontroller, board, bitbangio ไม่มี machine API ใน Atmel SAMD21

ถ้าคุณเพิ่งเริ่มต้นสามารถเริ่มต้นศึกษาได้ทั้ง 2 ภาษา แต่ CircuitPython ออกแบบมาให้ง่ายสำหรับผู้เริ่มต้น ง่ายทั้งในการเรียนรู้เบื้องต้นและง่ายในการถ่ายทอดความรู้ด้วยเช่นกัน หากต้องเรียน CircuitPython เพิ่มเติมสามารถศึกษาได้ที่ CitcuitPython Overview หรือ CircuitPython Essentials สำหรับ MicroPython ศึกษาเพิ่มเติมได้ที่ MicroPython Document