การเขียนโปรแกรม Arduino ด้วย Python เปิดโลกแห่งความเป็นไปได้สำหรับผู้ที่หลงใหลเกี่ยวกับอิเล็กทรอนิกส์และการพัฒนาซอฟต์แวร์ การรวมเครื่องมือทั้งสองนี้เข้าด้วยกันทำให้คุณสามารถรวมความสามารถรอบด้านของ Arduino ในฐานะไมโครคอนโทรลเลอร์เข้ากับพลังและความเรียบง่ายของ Python เพื่อสร้างโปรเจ็กต์เชิงนวัตกรรม ในบทความนี้ คุณจะได้เรียนรู้วิธีเชื่อมโยงโลกทั้งสองและเจาะลึกขั้นตอนสำคัญเพื่อเริ่มพัฒนาแอปพลิเคชันของคุณเองโดยใช้เทคโนโลยีเหล่านี้
แพลตฟอร์มฮาร์ดแวร์ซึ่งเป็นแพลตฟอร์มของ hardware libreเป็นที่รู้จักในด้านความสะดวกในการใช้งานและการปรับตัวในขณะเดียวกัน หลามซึ่งเป็นภาษาการเขียนโปรแกรมระดับสูง โดดเด่นด้วยความเรียบง่ายและมีประสิทธิภาพ แม้ว่าโดยปกติ Arduino จะถูกตั้งโปรแกรมในภาษาของตัวเองโดยใช้ C++ แต่ก็สามารถสื่อสารกับ Arduino ได้โดยใช้ Python ต้องขอบคุณไลบรารีเช่น พีซีเรียลซึ่งทำให้สามารถสื่อสารผ่านพอร์ตอนุกรมได้ ที่นี่เราจะสำรวจวิธีการบูรณาการนี้อย่างละเอียดตั้งแต่หลักการพื้นฐานไปจนถึงตัวอย่างเชิงปฏิบัติขั้นสูง
ข้อกำหนดในการเริ่มต้น
ก่อนที่จะเริ่มเขียนโปรแกรม Arduino ด้วย Python สิ่งสำคัญคือต้องตรวจสอบให้แน่ใจว่าคุณมีเครื่องมือและการกำหนดค่าที่จำเป็น:
- บอร์ด Arduino: แบบอย่าง Arduino UNO,นาโนหรือเมก้าเหมาะมากสำหรับโครงการประเภทนี้
- เคเบิล USB: จำเป็นในการเชื่อมต่อบอร์ด Arduino เข้ากับคอมพิวเตอร์
- ติดตั้งหลามแล้ว: คุณสามารถดาวน์โหลด Python เวอร์ชันล่าสุดได้จากเว็บไซต์อย่างเป็นทางการ
- ติดตั้งไลบรารี PySerial: ไลบรารีนี้มีความสำคัญอย่างยิ่งต่อการสร้างการสื่อสารระหว่าง Arduino และ Python ติดตั้งโดยการรันคำสั่ง
pip install pyserial
.
การกำหนดค่าพื้นฐานบน Arduino
ขั้นตอนแรกในการเชื่อมต่อ Arduino กับ Python คือการกำหนดค่า ร่าง จากอาดูโน่ รหัสนี้ซึ่งเขียนใน Arduino IDE จะช่วยให้บอร์ดสามารถรับและประมวลผลข้อมูลที่ Python ส่งไปได้ ตัวอย่างเช่น โปรแกรมต่อไปนี้อนุญาตให้คุณเปิดและปิด LED บนพิน 13 ขึ้นอยู่กับข้อมูลที่ได้รับ:
การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); pinMode(13, เอาท์พุต); } void loop() { ถ้า (Serial.available() > 0) { ข้อมูลถ่าน = Serial.read(); ถ้า (ข้อมูล == '1') { digitalWrite (13, สูง); } อื่น ๆ ถ้า (ข้อมูล == '0') { digitalWrite (13, LOW); -
รหัสนี้สร้างการสื่อสารผ่านพอร์ตอนุกรมที่ความเร็ว 9600 บอด และรอรับอักขระ '1' o '0' เพื่อเปิดหรือปิด LED ในตัว
การเชื่อมต่อกับหลาม
เมื่อกำหนดค่า Arduino แล้ว ก็ถึงเวลาเขียนโปรแกรม Python ที่สร้างการเชื่อมต่อกับบอร์ดและส่งคำสั่ง ด้านล่างนี้เป็นตัวอย่างง่ายๆในการใช้ไลบรารี พีซีเรียล:
เวลานำเข้าอนุกรม # การกำหนดค่าพอร์ตอนุกรม Arduino = serial.Serial('COM3', 9600) time.sleep(2) # รอเพื่อรักษาเสถียรภาพการเชื่อมต่อ # ส่งคำสั่ง arduino.write(b'1') พิมพ์("LED on " ) time.sleep(2) arduino.write(b'0') พิมพ์("ปิดไฟ LED") arduino.close()
สคริปต์นี้เปิดพอร์ตอนุกรมส่งคำสั่ง '1' เพื่อเปิด LED ให้รอสองวินาทีแล้วส่ง '0' เพื่อปิดมัน อย่าลืมปรับพอร์ต COM ตามระบบปฏิบัติการและการเชื่อมต่อของบอร์ดของคุณ
การระบุพอร์ตอนุกรม
เพื่อให้ Arduino และ Python สื่อสารได้อย่างถูกต้อง การระบุพอร์ตอนุกรมที่ Arduino เชื่อมต่ออยู่ถือเป็นสิ่งสำคัญ ใน Windowsคุณสามารถตรวจสอบได้จาก Device Manager ในระบบ ลินุกซ์ o MacOSใช้คำสั่ง ls /dev/
ในเทอร์มินัลเพื่อค้นหาสิ่งที่คล้ายกัน /dev/ttyUSB0.
ตัวอย่างขั้นสูง: การอ่านเซ็นเซอร์
การใช้งานการสื่อสารระหว่าง Arduino และ Python ในทางปฏิบัติอีกอย่างหนึ่งก็คือการอ่านข้อมูลจากเซ็นเซอร์ที่เชื่อมต่อกับ Arduino และแสดงผลแบบเรียลไทม์ใน Python ตัวอย่างเช่น สำหรับก เซ็นเซอร์อุณหภูมิ:
รหัสอาร์ดูโน่:
อินท์เซนเซอร์พิน = A0; การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); } void loop () { int sensorValue = analogRead (sensorPin); Serial.println(ค่าเซ็นเซอร์); ล่าช้า (1000); -
รหัสหลาม:
นำเข้าเวลานำเข้าแบบอนุกรม arduino = serial.Serial('COM3', 9600) time.sleep(2) ในขณะที่ True: sensor_data = arduino.readline().decode('utf-8').strip() print(f"Value เซ็นเซอร์: {sensor_data}")
ตัวอย่างนี้รับค่าเซ็นเซอร์บน Arduino และพิมพ์ไปยังคอนโซล Python ทำให้สามารถตรวจสอบข้อมูลแบบเรียลไทม์
ขยายความเป็นไปได้ด้วยการมองเห็นแบบประดิษฐ์
หากคุณต้องการยกระดับโปรเจ็กต์ของคุณไปอีกระดับ คุณสามารถรวม Python และ Arduino สำหรับงานการพัฒนาได้ วิสัยทัศน์เทียม โดยใช้ OpenCV ตัวอย่างเช่น ระบบที่ตรวจจับได้ว่ามีคนสวมหน้ากากหรือไม่ และเปิดไฟ LED สีตามผลลัพธ์:
- Un ไฟ LED สีฟ้า แสดงว่าบุคคลนั้นสวมหน้ากาก
- Un ไฟ LED สีแดง มันจะเปิดขึ้นหากตรวจไม่พบหน้ากาก
เมื่อใช้ Mediapipe และ OpenCV คุณสามารถฝึกโมเดลสำหรับการตรวจจับใบหน้าและส่งผลไปยัง Arduino เพื่อขับเคลื่อน LED ตามนั้น
การรวมตัวกันของ Arduino และ Python ปลดล็อกความเป็นไปได้นับไม่ถ้วนสำหรับโครงการสร้างสรรค์และการศึกษา ตั้งแต่งานง่ายๆ เช่น การควบคุม LED ไปจนถึงการใช้งานขั้นสูงด้วยเซ็นเซอร์และวิชันซิสเต็ม เครื่องมือเหล่านี้นำเสนอการผสมผสานที่ลงตัวเพื่อเพิ่มการเรียนรู้ด้านอิเล็กทรอนิกส์และการเขียนโปรแกรมของคุณให้สูงสุด