การใช้งาน Micropython
เนื้อหา
Micropython คือ
ประวัติของ MicroPython เริ่มต้นโดย Damien P. George (http://dpgeorge.net/) ซึ่งเป็นนักฟิกส์ชาวออสเตรเลีย มีความคิดที่จะเขียนโปรแกรมไมโครคอนโทรลเลอร์โดยใช้ภาษา Python ขณะที่ทำงานเป็น Post-Doctoral Fellow และทำวิจัยด้านอนุภาคพลังงานสูง ในมหาวิทยาลัย Cambridge ประเทศอังกฤษ (UK) ตอนเรียนระดับป.ตรี เขามีโอกาสได้ร่วมทีม RobotCup แข่งขันหุ่นยนต์เตะฟุตบอล (Robot Soccer League) จึงมีประสบการณ์ด้านฮาร์ดแวร์ อิเล็กทรอนิกส์ และเขียนโปรแกรมด้านสมองกลฝังตัว
เขาจึงเริ่มพัฒนาคอมไพเลอร์ (Compiler) เพื่อแปลงโค้ด Python 3.x Script (.py) ให้เป็นโปรแกรมหรือเฟิร์มแวร์ที่ทำงานได้โดยใช้ไมโครคอนโทรลเลอร์ และสร้างบอร์ด PyBoard และระดมทุนใน Kickstarter ในช่วงปี ค.ศ. 2013-2014 ได้ผู้มาสนับสนุนราว 2,000 ราย (1,931 backers) และได้ระดมทุนเงินสูงเกือบ £100,000 ซึ่งเป็นจุดเริ่มต้นของ MicroPython และเผยแพร่ซอฟต์แวร์ โดยใช้ลิขสิทธิ์ MIT license
ต่อมาในปีค.ศ. 2015 องค์กร European Space Agency (ESA) ของสหภาพยุโรป ได้สนับสนุน MicroPython อีกด้วย และในช่วงเวลาใกล้เคียงกัน British Broadcasting Corporation (BBC) ในประเทศอังกฤษ ได้พัฒนาบอร์ด Micro:bit เขาจึงได้นำ MicroPython มาปรับให้ใช้งานได้สำหรับบอร์ดดังกล่าว
ความสำเร็จของ MicroPython ได้ดึงดูดความสนใจของ Limor "Ladyada" ผู้ก่อตั้งบริษัท Adafruit Industries ในสหรัฐอเมริกา ทางบริษัทได้พัฒนาไลบรารีมารองรับการใช้งาน MicroPython สำหรับฮาร์ดแวร์ต่าง ๆ ที่ทางบริษัทจำหน่าย รวมถึงพัฒนาบอร์ดสำหรับ MicroPython เช่น บอร์ด Circuit Playground Express และต่อได้มาพัฒนา CircuitPython ต่อยอดมาจาก MicroPython
บอร์ดที่ใช้ชิปหรือโมดูล ESP8266 และ ESP32 ของบริษัท Espressif Systems ซึ่งมีความสามารถในการเชื่อมต่อ Wi-Fi และนำไปใช้งานด้าน IoT ก็สามารถใช้งานร่วมกับ MicroPython ได้แล้ว ในปัจจุบันขณะที่เขียนบทความนี้ จะเห็นได้ว่า มีฮาร์ดแวร์หลายแบบที่สามารถนำมาใช้ได้กับ MicroPython
ข้อสังเกตเกี่ยวกับ MicroPython
- สามารถ "รัน" โดยตรงกับไมโครคอนโทรลเลอร์ได้ ไม่เหมือนการทำงานของ Python 3 ที่ใช้งานสำหรับคอมพิวเตอร์โดยทั่วไป ซึ่งต้องมีระบบปฏิบัติการ (Operating System: OS)
- เข้าถึงฮาร์ดแวร์ เช่น GPIO, SPI, I2C, Wi-Fi ได้
- เนื่องจากมีข้อจำกัดเรื่องหน่วยความจำ จึงเลือกได้มีการนำไลบรารีจำนวนหนึ่งเท่านั้นมาใช้งาน และสามารถดูรายการของไลบรารีที่ใช้ได้จาก https://github.com/micropython/micropython-lib
- สื่อสารกับ MicroPython firmware ได้แบบ interactive หรือที่เรียกว่า REPL (Read, Eval, Print, Loop) ผ่านพอร์ต USB-to-Serial
เพิ่มเติม:
นอกเหนือจาก MicroPython สำหรับไมโครคอนโทรลเลอร์แล้ว ยังมีตัวเลือกอื่นอีกที่น่าสนใจ เช่น Zerynth (Viper) สามารถนำมาใช้ได้กับ ESP8266/ESP32 และบอร์ดไมโครคอนโทรลเลอร์อื่น ๆ อีกหลายบอร์ด