> For the complete documentation index, see [llms.txt](https://think-embedded.gitbook.io/micropython/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://think-embedded.gitbook.io/micropython/master.md).

# Programming with MicroPython

## **ไมโครไพธอน (MicroPython)**

จัดทำและเผยแพร่เป็นวิทยาทาน โดย เรวัต ศิริโภคาภิรมย์

โดยทั่วไปแล้วในการเขียนโปรแกรมสำหรับไมโครคอนโทรลเลอร์ เรามักจะใช้ภาษาคอมพิวเตอร์ อย่างเช่น **C/C++** ซึ่งก็ถือว่าเป็นภาษาคอมพิวเตอร์ระดับสูง (**High-Level Programming Language**) แต่ถ้าจะใช้ภาษาอื่นในประเภท **Scripting Languages** ยกตัวอย่างเช่น **Python 3** จะเป็นไปได้หรือไม่ **?**&#x20;

ไมโครไพธอนเป็นซอฟต์แวร์ประเภท **Open Source** ทำหน้าที่เป็นเฟิร์มแวร์ (**Firmware**) สำหรับบอร์ดไมโครคอนโทรลเลอร์ ช่วยให้เราสามารถเขียนและรันโค้ดไพธอนได้ และสำหรับผู้ที่มีพื้นฐานภาษาไพธอนมาบ้างแล้ว การเลือกใช้ไมโครไพธอนก็อาจช่วยให้การเรียนรู้เกี่ยวกับการเขียนโปรแกรมและใช้งานไมโครคอนโทรลเลอร์สำหรับผู้เริ่มต้นทำได้ง่ายขึ้น เมื่อเปรียบเทียบกับการใช้งานภาษา **C/C++**&#x20;

![MicroPython Logo (Image Source: Wiki)](/files/-MIJ9CDkN6ezv5XBDKUC)

ภาษาไมโครไพธอน สามารถนำไปใช้สอนในชั้นเรียนได้หลายช่วงอายุของผู้เรียน ตั้งแต่ในโรงเรียนจนถึงระดับมหาวิทยาลัย แต่ในประเด็นความยากง่ายของเนื้อหาและกิจกรรมการเรียนรู้ที่เกี่ยวข้องนั้น ก็จะต้องมีการเลือกหรือปรับให้เหมาะกับระดับชั้นของผู้เรียน &#x20;

ประวัติความเป็นมาของไมโครไพธอน นั้นเริ่มต้นโดย [**Damien P. George**](https://dpgeorge.net/) \[[**LinkedIn Profile**](https://au.linkedin.com/in/damien-george-a3345010a)] ซึ่งเป็นนักฟิสิกส์ชาวออสเตรเลีย มีความคิดริเริ่มที่จะเขียนโปรแกรมไมโครคอนโทรลเลอร์ โดยใช้ภาษา **Python** ขณะที่ทำงานเป็น **Post-Doctoral Fellow** และทำวิจัยด้านอนุภาคพลังงานสูงในมหาวิทยาลัย **Cambridge** ประเทศอังกฤษ (**UK**)  &#x20;

ในช่วงเวลาที่เรียนในระดับป.ตรี เขาได้มีโอกาสได้ร่วมทีม [**RobotCup**](http://www.robocup.org/) แข่งขันหุ่นยนต์เตะฟุตบอล ([**Robot Soccer League**](http://www.robocup.org/leagues/18)) จึงมีประสบการณ์ด้านฮาร์ดแวร์ อิเล็กทรอนิกส์ และเขียนโปรแกรมด้านสมองกลฝังตัว

เขาได้เลือกใช้ **Python 3** และพัฒนาโปรแกรมหรือเฟิร์มแวร์ เช่น **Python Run-Time Interpreter** สำหรับไมโครคอนโทรลเลอร์ 32 บิต และสร้างบอร์ด [**PyBoard**](https://store.micropython.org/product/PYBv1.1) และระดมทุนใน [**Kickstarter**](https://www.kickstarter.com/projects/214379695/micro-python-python-for-microcontrollers) ในช่วงปี ค.ศ. **2013-2014** ได้ผู้เข้าร่วมและสนับสนุนราว 2,000 ราย (**1,931 backers**) และระดมทุนเงินสูงเกือบ £100,000 ซึ่งเป็นจุดเริ่มต้นของ **MicroPython** มีการเผยแพร่ซอฟต์แวร์ โดยใช้ลิขสิทธิ์ **MIT License**

ต่อมาในปีค.ศ. **2015** องค์กรที่มีชื่อว่า [**European Space Agency (ESA)**](https://www.esa.int/) ของสหภาพยุโรป ได้ให้การสนับสนุนโครงการ **MicroPython** อีกด้วย และในช่วงเวลาใกล้เคียงกัน **British Broadcasting Corporation (BBC)** ในประเทศอังกฤษ ได้พัฒนาบอร์ด [**Micro:bit**](http://microbit.org/) (ไมโครบิต) และไมโครไพธอนได้ถูกนำมาปรับให้ใช้งานได้กับบอร์ดดังกล่าว&#x20;

ความสำเร็จของไมโครไพธอน ได้ดึงดูดความสนใจของ **Limor "Ladyada"** ผู้ก่อตั้งบริษัท [**Adafruit Industries**](https://adafruit.com/) ในสหรัฐอเมริกา ทางบริษัทได้พัฒนาไลบรารีสำหรับอุปกรณ์ หรือโมดูลฮาร์ดแวร์เสริมหลายรูปแบบ (โดยส่วนใหญ่ก็เป็นฮาร์ดแวร์ต่าง ๆ ที่ทางบริษัทได้ผลิตและจำหน่าย) เพื่อรองรับการใช้งานไมโครไพธอน รวมถึงการพัฒนาบอร์ดไมโครคอนโทรลเลอร์ที่นำมาใช้ได้กับไมโครไพธอน เช่น บอร์ด [**Circuit Playground Express**](https://www.adafruit.com/product/3333) (**SAMD21**) และต่อได้มาพัฒนา [**CircuitPython**](https://circuitpython.readthedocs.io/) ต่อยอดมาจากไมโครไพธอน

บอร์ดที่ใช้ชิปหรือโมดูล [**ESP8266**](https://www.espressif.com/en/products/hardware/esp8266ex/overview) และ [**ESP32**](https://www.espressif.com/en/products/hardware/esp32/overview) ของบริษัท **Espressif Systems** ซึ่งมีความสามารถในการเชื่อมต่อ **Wi-Fi** มีราคาไม่แพง และนำไปใช้งานด้าน **IoT** ก็สามารถนำมาใช้งานร่วมกับไมโครไพธอนได้เช่นกัน ในปัจจุบันขณะที่เขียนบทความนี้ จะเห็นได้ว่า มีฮาร์ดแวร์หลายรูปแบบที่สามารถนำมาใช้ได้กับไมโครไพธอน

\
**ข้อสังเกตเกี่ยวกับ MicroPython**

* ทำให้สามารถเขียนโค้ด **Python 3** เพื่อเข้าถึงและใช้งานฮาร์ดแวร์ภายในไมโครคอนโทรลเลอร์ได้ง่าย เช่น **GPIO, Timer, SPI, I2C, UART, ADC, DAC, Wi-Fi** เป็นต้น
* เนื่องจากมีข้อจำกัดเรื่องหน่วยความจำ จึงมีการสร้างไลบรารีใหม่จำนวนหนึ่ง (เรียกโดยรวมว่า [**MicroPython Libraries**](https://docs.micropython.org/en/latest/library/index.html#python-standard-libraries-and-micro-libraries)) ซึ่งโดยปรกติแล้ว จะมีให้ใช้ได้เหมือนกรณีของ [**Python 3 Standard Libraries**](https://docs.python.org/3/) แต่อาจมีฟังก์ชันไม่ครบ จึงมีการตั้งชื่อให้เริ่มต้นด้วยตัวอักษร 'u' เช่น [**utime**](https://docs.micropython.org/en/latest/library/utime.html), [**usys**](https://docs.micropython.org/en/latest/library/usys.html)**,** [**uos**](https://docs.micropython.org/en/latest/library/uos.html)**,** [**ustruct**](https://docs.micropython.org/en/latest/library/ustruct.html) เป็นต้น เพื่อให้สังเกตเห็นความแตกต่าง แต่ทางผู้พัฒนาก็ได้พยายาม นำไลบรารีหรือโมดูลต่าง ๆ ของ [**CPython**](https://github.com/python/cpython) มาปรับให้สามารถใช้กับไมโครไพอนได้ สามารถดูรายการของไลบรารีที่ใช้ได้จาก [**Micropython-Lib**](https://github.com/micropython/micropython-lib)
* สามารถสื่อสารกับไมโครไพธอนได้แบบ **interactive** หรือที่เรียกว่า **REPL** **(Read, Eval, Print, Loop)** ผ่านพอร์ต **USB-to-Serial** หรือ **USB-CDC**
* ในกรณีที่ใช้ชิป **Wi-Fi SoC** เช่น **ESP8266** หรือ **ESP32** ก็สามารถใช้ **REPL (WebREPL)** แบบไร้สายผ่าน **Wi-Fi** ได้&#x20;

## การเลือกใช้บอร์ดไมโครคอนโทรลเลอร์สำหรับ MicroPython

สำหรับผู้ที่สนใจจะลองใช้หรือเขียนโค้ดไมโครไพธอน ร่วมกับบอร์ดไมโครคอนโทรลเลอร์ ในปัจจุบัน มีไมโครคอนโทรลเลอร์ให้เลือกใช้ได้หลายตระกูล (32 บิต) อาจลองพิจารณาดูตัวเลือกเหล่านี้&#x20;

* บอร์ดไมโครคอนโทรลเลอร์ **STM32** ซึ่งมีหลายรุ่น แต่แนะนำให้ใช้ **STM32F4 (ARM Cortex-M4F), STM32L4, STM32F7**  อาจเป็นบอร์ดที่ทางผู้พัฒนา **MicroPython** ผลิตขาย หรืออาจเป็นบอร์ดอื่น เช่น **STM32 Nucleo** เป็นต้น&#x20;
  * บอร์ด [**PyBoard**](https://store.micropython.org/product/PYBv1.1) ใช้ชิป **STM32F405 (ARM Cortex-M4F, 168 MHz, 1,024 KB Flash ROM, 192 KB SRAM)** ซึ่งถือว่าเป็นชิปไมโครคอนโทรลเลอร์ 32 บิต ที่มีประสิทธิภาพสูง บอร์ดมีขนาดเล็ก แต่รูปแบบของบอร์ดไม่เหมาะกับการใช้งานบนเบรดบอร์ด
  * บอร์ด [**PyBoard D-Series**](https://store.micropython.org/category/pyboard%20D-series) เป็นรุ่นถัดจาก **PyBoard** และใช้ตัวประมวลผล **STM32F7** ซึ่งมีความเร็วในการประมวลผลในระดับที่สูงกว่า **STM32F4**&#x20;
* บอร์ดไมโครคอนโทรลเลอร์ [**ESP8266**](https://www.espressif.com/en/products/socs/esp8266) หรือ [**ESP32**](https://www.espressif.com/en/products/socs/esp32) ของบริษัท [**Espressif**](https://www.espressif.com/) ซึ่งมีข้อดีคือ สามารถเชื่อมต่อผ่าน **Wi-Fi** ได้ ไปยังอินเทอร์เน็ต จึงเหมาะสำหรับการประยุกต์ใช้งานด้าน **IoT** ในปัจจุบันก็มีบอร์ดหลายรูปแบบให้เลือกใช้งานและราคาแตกต่างกันไป&#x20;
  * [**NodeMCU DevKit**](https://github.com/nodemcu/nodemcu-devkit-v1.0)
  * **Adafruit Feather HUZZAH ESP8266**
  * **Sparkfun ESP32 Thing**
  * **WeMos D1 mini, WeMos LOLIN D32**
  * **WROOM-32 DEVKIT V4**
  * **PyCom WiPy**
* บอร์ด [**BBC Micro:bit**](https://microbit.org/get-started/user-guide/overview/) **v1** ซึ่งใช้ตัวประมวลผล **nRF51822 (ARM Cortex-M0, 16MHz, 256 KB Flash, 16KB SRAM)** และสามารถสื่อสารไร้สายด้วย **Bluetooth 4.0** ได้ และอาจจะเหมาะสำหรับผู้เรียนที่มีประสบการณ์หรือเริ่มต้นใช้งานบอร์ดนี้มาก่อน เช่น การเขียนโปรแกรมโดยการต่อบล็อกและใช้ [**Microsoft MakeCode for Micro:bit**](https://makecode.microbit.org/) เป็นต้น
* บอร์ด [**Adafruit’s Circuit Playground Express**](https://www.adafruit.com/product/3333) มีลักษณะเป็นทรงกลม มีขา **I/O pins** อยู่รอบ ใช้ตัวประมวลผล [**ATSAMD21G18**](https://www.microchip.com/wwwproducts/ATSAMD21G18) **(ARM Cortex-M0, 48 MHz, 256KB Flash, 32 KB SRAM, 2MB external SPI Flash)**

**ข้อสังเกต:** ในปัจจุบันก็มีบอร์ดหรือโมดูล **ESP32** ให้เลือกใช้ได้หลายรูปแบบ แต่ก็สามารถจำแนกได้เป็นสองกลุ่ม (เรียกว่า **non-psRAM** กับ **psRAM-enabled)** ซึ่งขึ้นอยู่กับว่า มีการเพิ่มชิป **psRAM (pseudo-static RAM)** ภายนอกหรือไม่ มีความจุตั้งแต่ **4MB** หรือ **8MB** เป็นต้น บอร์ด **ESP32** ที่มี **psRAM** ก็มักจะมีราคาสูงกว่าบอร์ดที่ไม่มี แต่ก็เหมาะสำหรับนำมาใช้กับไมโครไพธอน ทำให้มีหน่วยความจำเพิ่มขึ้น สำหรับสร้าง **Stack/Heap** ได้ขนาดใหญ่ขึ้น เช่น การเก็บข้อมูลในอาร์เรย์ได้มากขึ้น เป็นต้น

เมื่อเลือกบอร์ดไมโครคอนโทรลเลอร์แล้ว จะต้องเลือกไฟล์ **.bin / .hex** ที่เป็นเฟิร์มแวร์สำหรับไมโครไพธอน ให้ตรงกับบอร์ดที่เลือกใช้ (ให้ไปยังหน้าเว็บสำหรับดาวน์โหลดไฟล์ [**MicroPython Firmware**](https://micropython.org/download/) เช่น สำหรับ [**ESP32**](https://micropython.org/download/esp32/), [**ESP8266**](https://micropython.org/download/esp8266/), [**STM32**](https://micropython.org/download/stm32/)**)** และจะต้องทำขั้นตอนติดตั้งลงในหน่วยความจำ **Flash** ของไมโครคอนโทรลเลอร์ (ซึ่งมีขั้นตอนและวิธีการที่แตกต่างกันไป ขึ้นอยู่กับฮาร์ดแวร์ที่นำมาใช้งาน) หรือ เราอาจจะดาวน์โหลด **Source Code** มาจาก [**Github**](https://github.com/micropython/micropython) แล้วทำขั้นตอน **Build** เองก็ได้เช่นกัน

## การเลือกใช้ Editor สำหรับ MicroPython

ตัวอย่างซอฟต์แวร์ประเภท **Open Source** ที่เราสามารถนำมาใช้เขียนโค้ดไมโครไพธอน  และเชื่อมต่อกับบอร์ดไมโครคอนโทรลเลอร์ที่ได้ติดตั้งเฟิร์มแวร์แล้ว ได้แก่

* [**Thonny IDE**](https://thonny.org/) **(Windows, Mac OS X, Linux)**
* [**Mu Editor**](https://codewith.mu/en/download) **(Windows, Mac OS X, Linux)**
* [**uPyCraft IDE**](https://github.com/DFRobot/uPyCraft) **(Windows, Mac OS X, Linux)**
* [**VSCode**](https://code.visualstudio.com/) **+ Extensions for MicroPython (e.g.** [**PyMakr**](https://marketplace.visualstudio.com/items?itemName=pycom.Pymakr)**)**

ถ้าเปิดพอร์ต **Serial** (**Virtual COM port**) เชื่อมต่อกับพอร์ต **USB** ของบอร์ดไมโครคอนโทรลเลอร์ที่ได้ติดตั้งเฟิร์มแวร์สำหรับไมโครไพธอนไว้แล้ว จะเป็นการเชื่อมต่อกับส่วนที่เรียกว่า **REPL** (เหมือน **Python Interactive Shell**) รอให้ผู้ใช้พิมพ์คำสั่งสำหรับไมโครไพธอน

หลักการทำงานของ **REPL** (**Read–Eval–Print Loop)** มีดังนี้&#x20;

1. **R**ead the user input (Python code)
2. **E**valuate Python code
3. **P**rint any results (e.g., output texts or error messages)
4. **L**oop back to step 1

**Python IDE** ที่รองรับการใช้งานสำหรับไมโครไพธอน เช่น **Thonny IDE** นอกจากมีส่วนที่เชื่อมต่อกับ **REPL** ได้แล้ว ยังสามารถทำคำสั่ง เพื่อรันหรืออัปโหลดโค้ด **.py** และบันทึกเป็นไฟล์ลงใน **Flash Storage** ของ **MicroPython Device** ได้ด้วย

![Thonny IDE + MicroPython for ESP32 Demo](/files/-MIJ-I8dzcLVJHWCALwU)

ถ้าจะใช้โปรแกรมแบบ **Command Line** ก็มีตัวเลือก เช่น [**micropy-cli**](https://github.com/BradenM/micropy-cli) ซึ่งได้ใช้ภาษา **Python 3** ในการพัฒนา และสามารถใช้ร่วมกับ **VS Code** ได้ด้วย

![MicroPython-ESP32 Demo for Interfacing M5Stack with Rigol Oscilloscope](/files/-MIJ6QadaqPRkfOdvJN_)

## การเขียนโค้ดไมโครไพธอนสำหรับ ESP32: กรณีตัวอย่าง

ผู้เขียนได้เคยลองใช้งานไมโครไพธอนร่วมกับบอร์ดไมโครคอนโทรลเลอร์ **ESP32** (โมดูล **M5Stack Core**) เช่น การเขียนโปรแกรมเพื่อควบคุมและใช้งานอุปกรณ์เครื่องมือวัด **Rigol Digital Oscilloscope** รุ่น **DS2000A Series** ที่เชื่อมต่อผ่าน **LAN (Ethernet Port)** และติดต่อสื่อสารกับบอร์ด **ESP32** ผ่านทาง **Wi-Fi** ในระบบเครือข่ายเดียวกัน&#x20;

ในกรณีตัวอย่างนี้แสดงให้เห็นว่า เราสามารถเขียนโค้ดไมโครไพธอน เพื่อส่งคำสั่งประเภท **SCPI (Standard Commands for Programmable Instruments**) ไปยังอุปกรณ์เครื่องมือวัดที่อยู่ห่างออกไปในระบบเครือข่าย (โดยใช้คำสั่งของไมโครไพธอนสำหรับการเปิดใช้งาน **TCP Socket**)&#x20;

คำสั่ง **SCPI** ที่ถูกส่งไปนั้น จะถูกใช้เพื่อตั้งค่าการใช้งานอุปกรณ์ และอ่านข้อมูลที่ได้จากการวัดสัญญาณ (เช่น หนึ่งช่องสัญญาณ) แล้วส่งกลับมายัง **ESP32** และแสดงผลเป็นรูปกราฟของสัญญาณบนจอภาพ **Graphic LCD** ของโมดูล **M5Stack Core** เป็นต้น

การเขียนโค้ดไมโครไพธอนสำหรับการสื่อสารกับอุปกรณ์เครื่องมือวัดดังกล่าว ผ่านทาง **Wi-Fi** แม้จะมีความแตกต่างจากการเขียนโค้ด **Python** สำหรับคอมพิวเตอร์ที่ใช้ **Windows** หรือ **Linux** อยู่บ้าง แต่ก็ไม่มากนัก มีเพียงบางส่วนเท่านั้น เช่น การตั้งค่าเพื่อเปิดการใช้งานของ **Wi-Fi** ของ **ESP32** และข้อจำกัดของหน่วยความจำ (**SRAM**) สำหรับการทำงานของโค้ด

![MicroPython-ESP32: Interfacing M5Stack with Rigol Oscilloscope](/files/-MIJ6cjMODUGq-0WU9Bs)

## **การเขียนโค้ดไมโครไพธอนสำหรับไมโครบิต**

ในกรณีที่ใช้บอร์ดไมโครบิต ซึ่งเป็นตัวอย่างหนึ่งของบอร์ดไมโครคอนโทรลเลอร์ที่ได้รับความนิยม และมีการนำมาใช้สอนโค้ดดิ้งสำหรับเด็กและเยาวชนในโรงเรียนต่าง ๆ ทั่วโลก เราก็มีตัวเลือกซอฟต์แวร์ เช่น [**Python Code Editor**](https://python.microbit.org/v/beta) แบบออนไลน์ ไว้ให้ใช้งานได้ฟรี และทำงานบนหน้าเว็บเบราว์เซอร์ หรือจะใช้ [**EduBlocks Editor**](https://edublocks.org/) แบบออนไลน์ได้เช่นกัน

การใช้งานแบบออนไลน์มีข้อดีคือ ไม่ต้องติดตั้งซอฟต์แวร์ในเครื่องคอมพิวเตอร์ของผู้ใช้ และใช้เพียงโปรแกรมเว็บเบราว์เซอร์ เช่น **Google Chrome** ถ้าเชื่อมต่อคอมพิวเตอร์กับบอร์ดไมโครบิตผ่านทางพอร์ต **USB** ([**WebUSB**](https://microbit.org/get-started/user-guide/web-usb/)) ก็สามารถรันโค้ดโดยใช้บอร์ดไมโครบิตเพื่อทดสอบการทำงานได้จริง

ผู้ที่สนใจสามารถศึกษาชุดคำสั่งหรือ **API** ได้จาก "[**Micro:bit MicroPython Documentation**](https://microbit-micropython.readthedocs.io/en/latest/)" แต่มีข้อสังเกตอยู่ว่า ไมโครไพธอนสำหรับแต่ละไมโครคอนโทรลเลอร์ที่เป็นเป้าหมาย (**Target Device**) อาจมีคำสั่งหรือ **API** ไม่เหมือนกันในรายละเอียด โดยเฉพาะอย่างยิ่งที่เกี่ยวข้องกับฮาร์ดแวร์ส่วนต่าง ๆ ทั้งภายในไมโครคอนโทรลเลอร์และภายนอก

![รูปภาพ: Online Python Editor for Micro:bit](/files/-MII_PKeYYr_0wl0qM5c)

![รูปภาพ: Thonny IDE (MicroPython - BBC Micro:bit)](/files/-MIqn013JgI3HeQmdJnC)

![รูปภาพ: EduBlocks Editor for BBC Micro:bit (Blocks View)](/files/-MIJ3ofSYzPWzj9_J98s)

ในกรณีที่ใช้ **VS Code** เป็น **IDE** และถ้าได้ติดตั้ง **Extension** อย่างเช่น **Device Simulator Express (**[**Source Code Repository**](https://github.com/microsoft/vscode-python-devicesimulator)**)** ก็สามารถจำลองการทำงานของโค้ดและตรวจสอบความถูกต้องในการทำงานสำหรับบอร์ดไมโครบิตได้&#x20;

**Device Simulator Express** เกิดจากกิจกรรมของผู้เข้าร่วม **Microsoft Garage Project** ในช่วงปีค.ศ. 2019 และช่วยในการเขียนโค้ด **CircuitPython** สามารถจำลองการทำงานของโค้ดเสมือนจริงได้ แม้ว่าอาจมีข้อจำกัดอยู่บ้าง รองรับการใช้งานบอร์ด **Adafruit Circuit Express** และ **Adafruit CLUE** แต่ก็สามารถใช้กับ **BBC Micro:bit** ได้เช่นกัน สามารถอัปโหลดโค้ดไปยังบอร์ดทดลองได้ด้วย

จุดเด่นของ **Device Simulator Express** คือ ความสามารถในการรันโค้ดไมโครไพธอนโดยใช้ **Built-in Simulator** ได้ ดังนั้นจึงทดสอบโค้ดได้ โดยยังไม่จำเป็นต้องมีบอร์ดไมโครบิต

![รูปภาพ: Device Simulator Express Extension in VS Code IDE](/files/-MIIzW7gMCAtHjjn98cE)

![รูปภาพ: MicroPython Simulator for BBC Micro:bit](/files/-MIIzkJZvZOl6ug4iCe6)

## **กล่าวสรุป**&#x20;

ในมุมมองของผู้เขียน การเรียนรู้และฝึกเขียนโค้ดด้วยภาษาไพธอน (**Python**) จะเป็นตัวช่วยให้ผู้เรียนได้ทำความเข้าใจและฝึกทักษะทั้งด้านซอฟต์แวร์และฮาร์ดแวร์ในรูปแบบต่าง ๆ อย่างเช่น ไมโครไพธอนสำหรับไมโครคอนโทรลเลอร์ ซึ่งเป็นอีกตัวเลือกหนึ่งที่น่าสนใจ อาจช่วยให้ง่ายขึ้นในการเริ่มต้นการเขียนโปรแกรมไมโครคอนโทรลเลอร์สำหรับผู้ที่สนใจ โดยใช้ภาษา **Python** แทนการใช้ภาษา **C/C++**  และช่วยให้การพัฒนาระบบสมองกลฝังตัว ทำได้เร็วและง่ายขึ้น&#x20;

{% hint style="info" %}
**เผยแพร่ภายใต้ลิขสิทธิ์**\
**Attribution-ShareAlike 4.0 International (**[**CC BY-SA 4.0**](https://creativecommons.org/licenses/by-sa/4.0/)**)**
{% endhint %}
