ข่าว
ข่าว
ความรู้เบื้องต้นเกี่ยวกับ Embedded Systems (1) - MicroPython คืออะไร
2022-03-08 1223

เมื่อ Python กลายเป็นภาษาการเขียนโปรแกรมที่โดดเด่น MicroPython ก็ได้รับความนิยมมากขึ้นเรื่อยๆ ในพื้นที่ระบบฝังตัว โดยเฉพาะในโมดูล Pico ที่ใช้ไมโครคอนโทรลเลอร์ ESP32 และ RP2040 ยอดนิยมที่เพิ่งเปิดตัวโดย Raspberry PI Foundation

ในฐานะแบนนอนที่ไม่สามารถเขียนโค้ดได้สักบรรทัด ฉันรู้สึกมีข้อจำกัดอย่างมากในช่วงเวลาส่วนใหญ่ และสัญญาว่าจะหาเวลาที่ดีในการเรียนรู้ภาษาการเขียนโปรแกรม ฉันอุทิศตนให้กับ MicroPython ในช่วงวันหยุดวันชาติ 7 วัน และตระหนักถึงฟังก์ชันทั้งหมดของอุปกรณ์ต่อพ่วงบนกระดานบนกระดานการเรียนรู้ส่วนขยาย Pico ที่ออกแบบด้วยตัวเอง:

  • แสงแฟนซี - ขาวดำ, RGB สามสี, การรวมกันทุกประเภทสามารถควบคุมได้ด้วยปุ่มและเซ็นเซอร์

  • หน้าจอ OLED แสดงข้อความ รูปภาพ และรูปคลื่น

  • สัญญาณเสียงจะถูกรวบรวมและแสดงบนหน้าจอ OLED ทำให้เกิดการแสดงรูปคลื่นที่ยอดเยี่ยม

  • กำลังเล่น "ฉันและประเทศของฉัน" โดยมีออดอยู่บนกระดาน

  • การย้ายโค้ดของผู้อื่นเพื่อสร้างรูปคลื่นตามอำเภอใจ เช่น การเปลี่ยนรูปคลื่น การเปลี่ยนความถี่ การเปลี่ยนขนาด ฯลฯ



สิ่งที่ทำให้ฉันประทับใจมากที่สุดระหว่าง "การสำรวจ" 7 วันคือความง่ายในการเริ่มต้นใช้งานระบบฝังตัวใน MicroPython - แหล่งข้อมูลโอเพ่นซอร์สที่หลากหลาย รูปแบบการอ้างอิงที่หลากหลาย เช่น หลักสูตรวิดีโอ กรณีข้อความ ฯลฯ

MicroPython เป็นภาษาการเขียนโปรแกรมที่ยอดเยี่ยมจริงๆ - เชิงวัตถุ ยืดหยุ่น เรียบง่าย หรูหรา!

การเรียนรู้ส่วนตัวของฉันได้รับประโยชน์จากการแบ่งปันของผู้อื่น (โอเพ่นซอร์ส) และวิธีที่ดีที่สุดในการถ่ายทอดความรู้คือการแบ่งปันสิ่งที่ฉันได้เรียนรู้และสิ่งที่ฉันได้เรียนรู้ ดังนั้น ฉันวางแผนที่จะเปิดตัวบทช่วยสอนการเขียนโปรแกรมแบบฝัง Micro Python โดยใช้ Pico ซึ่งจะเปิดตัวอย่างเป็นทางการในอีกหนึ่งเดือน แน่นอน, ในช่วงแรกจะมีหลักสูตรสดการออกแบบ PCB 15 หลักสูตร ซึ่งจะนำคุณไปสู่การออกแบบบอร์ดการเรียนรู้ Pico ด้วยตัวเอง ท้ายที่สุดแล้ว ในสภาพแวดล้อมที่สะดวกสบายของบอร์ดพิมพ์ฟรีและการจัดส่งฟรี ทุกคนสามารถออกแบบ PCB เพื่อสร้างแอปพลิเคชันที่น่าสนใจต่างๆ ที่น่าสนใจได้ในอนาคต การเรียนรู้วิธีการออกแบบ PCB ยังเป็นประโยชน์สำหรับวิศวกรระบบสมองกลฝังตัวอีกด้วย

จากนี้ไปจะมีบทความด้านเทคนิคที่เกี่ยวข้องกับหลักสูตรนี้หลายชุด วันนี้เป็นวันแรก:

1. ไมโครไพทอนคืออะไร

MicroPython เป็นล่ามภาษาการเขียนโปรแกรม Python แบบโอเพ่นซอร์สขนาดเล็กที่ทำงานบนบอร์ดพัฒนาแบบฝังขนาดเล็ก ด้วย MicroPython คุณสามารถเขียนโค้ด Python ที่เรียบง่ายและสะอาดตาเพื่อควบคุมฮาร์ดแวร์โดยไม่ต้องใช้ภาษาพื้นฐานที่ซับซ้อน เช่น C หรือ C ++ (Arduino สำหรับการเขียนโปรแกรม)


โลโก้ไมโครไพธอน

ความเรียบง่ายของภาษาการเขียนโปรแกรม Python ทำให้ MicroPython เป็นตัวเลือกในอุดมคติสำหรับผู้เริ่มต้นในการเขียนโปรแกรมและฮาร์ดแวร์ MicroPython มีฟีเจอร์ครบถ้วนมากและรองรับไวยากรณ์ Python ส่วนใหญ่ ดังนั้นแม้แต่ผู้มีประสบการณ์ด้าน Python ก็ยังพบว่าการใช้ MicroPython คุ้นเคยและสนุกสนาน

นอกจากจะใช้งานง่ายแล้ว MicroPython ยังมีคุณสมบัติพิเศษบางประการที่ทำให้แตกต่างจากระบบฝังตัวอื่นๆ:

ใช้ล่ามแบบโต้ตอบ: REPL (อ่าน อ่าน- ประเมินผล- พิมพ์พิมพ์- Loop Loop) - สิ่งนี้ช่วยให้คุณสามารถเชื่อมต่อกับบอร์ดและสั่งให้รันโค้ดโดยไม่ต้องคอมไพล์หรืออัพโหลด - เหมาะสำหรับการเรียนรู้อย่างรวดเร็วและทดลองกับฮาร์ดแวร์!

Rich Software Libraries - เช่นเดียวกับภาษาการเขียนโปรแกรม Python ทั่วไป MicroPython มีไลบรารีจำนวนมากในตัวเพื่อรองรับงานต่างๆ มากมาย ตัวอย่างเช่น ผ่านไลบรารีในตัวของ MicroPython ทำให้ง่ายต่อการแยกวิเคราะห์ข้อมูล JSON จากบริการบนเว็บ ค้นหาข้อความโดยใช้นิพจน์ทั่วไป และแม้แต่ทำการเขียนโปรแกรมซ็อกเก็ตเครือข่าย

ความสามารถในการขยาย - สำหรับผู้ใช้ขั้นสูง MicroPython สามารถขยายได้ด้วยฟังก์ชัน C/C++ ระดับต่ำ ดังนั้นคุณจึงสามารถผสมโค้ด MicroPython ระดับสูงที่ชัดเจนเข้ากับโค้ดระดับต่ำที่เร็วขึ้นได้เมื่อจำเป็น

MicroPython เป็นรูปแบบหนึ่งของภาษา Python 3 เป็นผลงานการผลิตของ Darrien P. George, Ph.D. จากมหาวิทยาลัยเคมบริดจ์ ซึ่งทำงานร่วมกับทีมระดมทุนเพื่อพัฒนาบอร์ดพัฒนาฮาร์ดแวร์ที่ใช้ microPython ชื่อ PyBoard ในปี 2013 MicroPython1.0 ถูกนำเสนอในการประชุม Python ( PyCon) ในปี 2014 ดร.จอร์จยังได้จัดทำเว็บไซต์ Micro Python.org (www.micropython.org) เพื่อรองรับ MicroPython และ Pyboard


โลโก้ MicroPython.Org อย่างเป็นทางการ

MicroPython.Org PyBoard ที่ใช้คอนโทรลเลอร์ STM32


2. MicroPython ทำอะไรได้บ้าง?

MicroPython ได้รับการออกแบบมาเพื่อสร้างโปรแกรมควบคุมระบบแบบฝังอย่างรวดเร็วและมีประสิทธิภาพ ระบบสมองกลฝังตัวสามารถนิยามง่ายๆ ว่าเป็นโครงการใดๆ ที่ต้องใช้ไมโครคอนโทรลเลอร์เพื่อตอบสนองความต้องการทางวิศวกรรม ระบบฝังตัวทั่วไปมักจะใช้เซ็นเซอร์และบางครั้งแอคชูเอเตอร์แบบเครื่องกลไฟฟ้าเพื่อเชื่อมต่อกับไมโครคอนโทรลเลอร์ อาจแนบไปกับอุปกรณ์อินเทอร์เฟซระหว่างมนุษย์กับเครื่องจักรเพื่อการโต้ตอบที่ง่ายดาย แต่เป็นไปโดยอัตโนมัติมากกว่า สำหรับการทำงานแบบสแตนด์อโลนหรือการเข้าถึงระบบคลาวด์จากระยะไกล

เช่นเดียวกับบอร์ด Arduino MicroPython สามารถควบคุมฮาร์ดแวร์และอุปกรณ์ที่เชื่อมต่อได้ คุณสามารถควบคุมไฟกระพริบของพิน GPIO สวิตช์อ่าน และอื่นๆ อีกมากมาย สามารถขับเคลื่อนสัญญาณ PWM ที่สามารถขับเคลื่อนเซิร์ฟเวอร์และ LED; เซนเซอร์อนาล็อกสามารถอ่านและอ่านผ่านตัวแปลงอนาล็อกเป็นดิจิทัลได้ นอกจากนี้ยังง่ายต่อการสื่อสารกับอุปกรณ์ I2C หรือ SPI คุณสามารถค้นหาการรองรับเครือข่ายและ WiFi ได้ในบอร์ดบางรุ่น MicroPython ยังมีไลบรารีสำหรับควบคุมฮาร์ดแวร์อื่นๆ เช่น NeoPixels และแถบ LED, จอแสดงผล OLED ขนาดเล็ก และอื่นๆ สรุปแล้ว MicroPython สามารถทำสิ่งต่างๆ ได้มากมาย!

MicroPython มีข้อจำกัดอะไรบ้าง?

MicroPython มีข้อจำกัดน้อยมาก และเกือบทุกอย่างที่ Arduino สามารถทำได้ก็สามารถทำได้ผ่านบอร์ด MicroPython อย่างไรก็ตาม สิ่งสำคัญคือต้องทราบว่าโค้ด MicroPython นั้นไม่เร็วเท่าที่ควรและอาจต้องใช้หน่วยความจำมากกว่า Arduino ที่คล้ายกันหรือโค้ดระดับต่ำที่ใช้ C/C++ อื่นๆ แม้ว่าโดยปกติแล้วจะไม่สำคัญเนื่องจากความแตกต่างของความเร็วและหน่วยความจำไม่มากพอที่จะ ส่งผลกระทบต่อแอปพลิเคชันส่วนใหญ่ โปรดทราบว่าโค้ดที่ตรงต่อเวลาหรือประสิทธิภาพการทำงานอาจไม่ทำงานใน MicroPython ตัวอย่างเช่น การใช้ซอฟต์แวร์ทั้งหมดเพื่อขับเคลื่อนพิน IO เพื่อใช้โปรโตคอลการสื่อสารแบบอนุกรมความเร็วสูงใน MicroPython อาจไม่ใช่ความคิดที่ดีที่สุด อย่างไรก็ตาม มีวิธีผสม MicroPython และโค้ด C/C++ ระดับต่ำเพื่อให้เราสามารถมีสิ่งที่ดีที่สุดจากทั้งสองโลกได้ - ตรรกะหลักคือโค้ด MicroPython ที่สะอาดตาและเข้าใจง่าย ในขณะที่ส่วนที่มีความสำคัญต่อประสิทธิภาพจะถูกเขียนด้วย รหัสระดับต่ำที่เร็วขึ้น

ภาษา MicroPython ใช้งานภาษาหลัก Python 3 เป็นส่วนใหญ่ แต่ MicroPython ไม่ได้ใช้ไลบรารีมาตรฐาน Python 3 ทั้งหมด Python ขึ้นชื่อในเรื่องการมีไลบรารีมาตรฐานที่กว้างขวาง แต่การพยายามบีบอัดไลบรารี่ขนาดใหญ่ดังกล่าวลงบนบอร์ดขนาดเล็กที่มีหน่วยความจำเพียงกิโลไบต์นั้นเป็นไปไม่ได้ แต่ MicroPython กลับใช้ไลบรารี่มาตรฐาน Python เวอร์ชันเล็กๆ บางเวอร์ชันแทน ซึ่งมอบประสบการณ์การพัฒนาที่ยอดเยี่ยม


Disclaimer: บทความนี้พิมพ์ซ้ำจาก "ป่าอิเล็กทรอนิกส์" บทความนี้เป็นเพียงมุมมองส่วนตัวของผู้เขียนเท่านั้น ไม่ได้เป็นตัวแทนของมุมมองของ Sakwei และอุตสาหกรรม ทำซ้ำและแบ่งปันเท่านั้น สนับสนุนการคุ้มครองสิทธิในทรัพย์สินทางปัญญา โปรดระบุแหล่งที่มาของต้นฉบับ และผู้เขียนหากมีการละเมิดโปรดติดต่อเราเพื่อลบ



whatsapp

สายด่วนบริการ

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950