วิธีการตั้งโปรแกรมและควบคุม Arduino ด้วย Python

วิธีการตั้งโปรแกรมและควบคุม Arduino ด้วย Python

Python ได้ครองโลกแห่งการเข้ารหัสโดยพายุ นอกเหนือจากการเพิ่มขึ้นของภาษาใหม่นี้ ฉากอุปกรณ์อิเล็กทรอนิกส์ DIY ก็เจริญรุ่งเรืองเช่นกัน บอร์ดพัฒนาและคอมพิวเตอร์บอร์ดเดี่ยวจากบริษัทต่างๆ เช่น Arduino และ Raspberry Pi ได้เปลี่ยนวิธีที่ผู้คนสร้างอุปกรณ์อิเล็กทรอนิกส์สำหรับใช้ในบ้าน คงจะดีไม่น้อยถ้าคุณสามารถตั้งโปรแกรม Arduino ด้วย Python ได้?





วิธีเล่นโปเกม่อนบน ios 10

ไม่มีความรู้สึกใดที่ดีไปกว่าการรวมสองสิ่งที่เจ๋งเข้าด้วยกัน น่าเศร้าที่มันเป็นไปไม่ได้ที่จะตั้งโปรแกรม Arduino ด้วย Python โดยตรง เนื่องจากบอร์ดไม่มีตัวเลือกสำหรับการตีความภาษาออนบอร์ด อย่างไรก็ตาม สิ่งที่เป็นไปได้คือการควบคุมโดยตรงผ่าน USB โดยใช้โปรแกรม Python





บทความนี้จะแสดงวิธีการตั้งค่า Arduino UNO (แม้ว่าบอร์ดที่เข้ากันได้กับ Arduino สามารถทำงานได้ที่นี่) เพื่อตั้งโปรแกรมและควบคุมจากบรรทัดคำสั่งโดยใช้โปรแกรม Python บทช่วยสอนนี้เขียนขึ้นสำหรับ Windows 10 แต่ยังใช้ได้กับ Mac และ Linux คุณสามารถใช้เวิร์กโฟลว์นี้เพื่อควบคุม Arduino ได้โดยตรงจาก Raspberry Pi เพื่อประสบการณ์ DIY แบบดับเบิ้ลดาวน์ที่ดีที่สุด





การตั้งค่า Arduino ของคุณสำหรับ Python

สำหรับโครงการวันนี้ เราจะใช้ Arduino Uno ร่วมกับอินเทอร์เฟซ pyFirmata สำหรับ Python คุณสามารถใช้บอร์ดที่เข้ากันได้กับ Arduino เกือบทั้งหมดสำหรับสิ่งนี้ แม้ว่าในขณะที่เขียนเฉพาะ Arduino Uno, Mega, Due และ Nano เท่านั้นที่ได้รับการสนับสนุนโดยอินเทอร์เฟซ pyFfirmata หากคุณเป็นกูรู Python อยู่แล้ว คุณสามารถเพิ่มการสนับสนุนบอร์ดของคุณเองลงใน pyFirmata ได้ อย่าลืมอัปเดต GitHub ของพวกเขาด้วย

หากคุณยังไม่ได้ติดตั้ง ให้ติดตั้ง Arduino IDE หากคุณยังใหม่ต่อโลกของไมโครคอนโทรลเลอร์อย่างสมบูรณ์ คู่มือสำหรับผู้เริ่มต้นใช้งาน Arduino จะช่วยให้คุณได้ทุกอย่างเข้าที่



เชื่อมต่อบอร์ด Arduino ของคุณและเปิด IDE ตรวจสอบให้แน่ใจว่าคุณได้เลือกบอร์ดและพอร์ตที่ถูกต้องใน เครื่องมือ เมนู. โหลด มาตรฐาน Firmata ตัวอย่างร่างและอัปโหลดไปยังบอร์ด สิ่งนี้จะช่วยให้คุณควบคุม Arduino ได้โดยตรงตราบใดที่เชื่อมต่อกับคอมพิวเตอร์ผ่าน USB ให้ภาพสเก็ตช์ที่อัปโหลดไปยังบอร์ดของคุณโดยไม่มีข้อผิดพลาด คุณก็พร้อมที่จะไปต่อ

Python และการควบคุมบรรทัดคำสั่ง

เราจะใช้ Python 3.4 เพื่อควบคุม Arduino ของเรา เนื่องจากโมดูลที่คุณจะติดตั้งระบุว่าเป็นเวอร์ชันล่าสุดที่เข้ากันได้ เวอร์ชันก่อนหน้านี้ควรใช้งานได้ดี และเวอร์ชันที่ใหม่กว่าได้รับการรายงานว่าใช้งานได้ คุณสามารถดาวน์โหลด Python 3.4 สำหรับ Windows 10 ได้จาก Python Software Foundation งาน. หากคุณต้องการใช้งาน Python หลายเวอร์ชัน คำแนะนำเกี่ยวกับสภาพแวดล้อมเสมือนของ Python จะช่วยคุณได้





เมื่อคุณติดตั้ง Python แล้ว เราต้องการเพิ่มลงในตัวแปร PATH ของระบบของคุณ ซึ่งจะทำให้เราสามารถรันโค้ด Python ได้โดยตรงจาก Command Line โดยไม่ต้องอยู่ในไดเร็กทอรีที่ติดตั้ง คุณสามารถทำได้โดยเปิด แผงควบคุม , ค้นหา สิ่งแวดล้อม และคลิกที่ แก้ไขตัวแปรสภาพแวดล้อมของระบบ . ที่ด้านล่างของหน้าต่าง ให้เลือก ตัวแปรสภาพแวดล้อม . นี้จะแสดงหน้าต่างนี้:

ถ้าคุณเห็นแล้ว เส้นทาง ในรายการ คลิกแก้ไข และเพิ่ม .ของคุณ Python และ Python/สคริปต์ ไดเรกทอรี หากคุณไม่มีตัวแปร PATH ให้คลิกใหม่และเพิ่มเข้าไป โปรดทราบว่า Python ได้รับการติดตั้งโดยตรงใน ค: ที่นี่. หากคุณติดตั้งไว้ที่อื่น คุณจะต้องแก้ไขเพื่อให้สอดคล้องกับสิ่งนี้ คลิกตกลงกลับลงมาที่หน้าต่าง และคุณเกือบจะพร้อมที่จะควบคุม Arduino ด้วย Python แล้ว!





จาระบีเมจิก

คุณจะต้องใช้ปริศนาชิ้นสุดท้ายเพื่อให้ Python พูดได้ดีกับ Arduino ของเรา สิ่งนี้มาในรูปแบบของอินเทอร์เฟซ Python ที่เรียกว่า pyFirmata . อินเทอร์เฟซนี้สร้างโดย Tino de Bruijn คือ พร้อมให้ดาวน์โหลด จาก github แม้ว่าคุณจะสามารถติดตั้งได้โดยตรงจากบรรทัดคำสั่งโดยพิมพ์:

pip install pyfirmata

ทุกอย่างเรียบร้อยดีควรติดตั้งและมีลักษณะดังนี้:

หากไม่สำเร็จ ให้ไปที่การเพิ่ม Python ใน the ตัวแปรสภาพแวดล้อม และตรวจสอบให้แน่ใจว่าคุณได้กำหนดเส้นทางที่ถูกต้องไปยังไดเร็กทอรี Python ของคุณ

ทำให้มันเกิดขึ้น

ตอนนี้ทุกอย่างได้รับการตั้งค่าแล้ว และคุณสามารถสร้างโปรแกรม Python สำหรับ Arduino เพื่อทดสอบได้ เปิด IDE ที่คุณเลือก เราจะใช้ คราส วันนี้ แต่คุณสามารถใช้โปรแกรมแก้ไขข้อความ หรือแม้แต่ IDE ในระบบคลาวด์ได้อย่างง่ายดาย

สร้างสคริปต์ใหม่และบันทึกเป็น blink.py . ทำลายประเพณีด้วยโปรแกรมมาตรฐานไฟ LED กะพริบ คุณจะต้องสร้างโปรแกรมซึ่งจะแจ้งให้ผู้ใช้ทราบจำนวนครั้งที่ต้องการให้ไฟ LED กะพริบก่อนดำเนินการ เป็นโปรแกรมสั้นๆ ที่คุณสามารถ ดาวน์โหลดที่นี่ ถ้าคุณต้องการตรงไปตรงมา แต่ขอทำลายมันลง

ประการแรก คุณจะต้องนำเข้าสิ่งที่คุณต้องการจาก pyFirmata โมดูลพร้อมกับ Python . มาตรฐาน เวลา โมดูล.

การเร่งด้วยฮาร์ดแวร์ทำอะไรโครม
from pyfirmata import Arduino, util
import time

ตอนนี้ คุณต้องการตั้งค่าบอร์ด Arduino บทความนี้ถือว่าคุณกำลังใช้ an Arduino uno บอร์ดแม้ว่าจะรองรับบอร์ด Arduino อื่น ๆ อีกหลายตัว อ้างถึง pyFirmata github สำหรับรายละเอียดเกี่ยวกับการสนับสนุนบอร์ด

ตรวจสอบพอร์ต COM ที่คุณใช้ใน Arduino IDE และป้อนลงในรหัสของคุณเป็นตัวแปร กระดาน .

board = Arduino('COM3')

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

loopTimes = input('How many times would you like the LED to blink: ')
print('Blinking ' + loopTimes + ' times.')

ในการทำให้ไฟ LED กะพริบเป็นจำนวนครั้งที่เหมาะสม คุณใช้ a สำหรับวง . ถ้าคุณคือ ใหม่กับ Python , ดูแลด้วยการเยื้อง เหมือนกับภาษาอื่นๆ ที่ช่องว่างเป็นส่วนหนึ่งของไวยากรณ์ โปรดทราบว่าพิน 13 เป็น LED ออนบอร์ดสำหรับ Arduino Uno คุณจะต้องแก้ไขสิ่งนี้หากบอร์ดของคุณแตกต่าง

for x in range(int(loopTimes)):
board.digital[13].write(1)
time.sleep(0.2)
board.digital[13].write(0)
time.sleep(0.2)

คุณจะโยน loopTimes ตัวแปรเป็นจำนวนเต็มที่นี่ เนื่องจากอินพุตจากผู้ใช้จะถูกเก็บไว้เป็นสตริงโดยอัตโนมัติ ในการสาธิตง่ายๆ นี้ เราถือว่าผู้ใช้จะป้อนค่าตัวเลข รายการอื่นๆ เช่น 'eight' จะเกิดข้อผิดพลาด

บันทึกสคริปต์ของคุณและเปิด พร้อมรับคำสั่ง .

ไฟกะพริบและการเปิดเผยอื่นๆ

ทุกอย่างพร้อมแล้ว สิ่งที่คุณต้องทำคือไปยังตำแหน่งที่สคริปต์อยู่และเรียกใช้สคริปต์ ทำได้โดยพิมพ์ cd [เส้นทางไปยังไดเรกทอรีของสคริปต์] แล้วพิมพ์ หลามไฟกระพริบ.py .

เรียบร้อยดี โปรแกรมของคุณจะเริ่มต้นด้วยการหน่วงเวลาเล็กน้อยเมื่อ Arduino เริ่มการทำงาน แจ้งให้คุณป้อนตัวเลข จากนั้นจึงกะพริบหลายครั้งโดยใช้ LED บนบอร์ด

ผลลัพธ์ของโปรแกรมควรมีลักษณะดังนี้:

ทันทีที่คุณกด Enter หลังจากจำนวนการกะพริบที่คุณเลือก Arduino ควรดำเนินการตามคำสั่งของคุณ

จุดเริ่มต้นเล็กๆ

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

ถ้าคุณใช้ a เซิร์ฟเวอร์ลินุกซ์ ที่บ้าน วิธีการสื่อสารกับบอร์ด Arduino นี้สามารถขยายเซิร์ฟเวอร์นั้นไปสู่ระบบ DIY Home Automation ที่ครบครัน ด้วยการรวมสคริปต์ Python ที่ควบคุมไมโครคอนโทรลเลอร์เข้ากับวงจรอัตโนมัติ DIY กล่องเก็บของ NAS ของคุณสามารถใช้ฟังก์ชันที่มีประโยชน์ชุดใหม่ทั้งหมด

วิธีแคปหน้าจอใน snapchat โดยที่คนอื่นไม่รู้

เพื่อให้เป็นประสบการณ์ DIY ที่ดีที่สุด ทำไมไม่ สร้างกล่อง NAS ของคุณเอง และใช้มันเพื่อควบคุมอุปกรณ์ของคุณ? ลองนึกภาพว่าจะเจ๋งแค่ไหนถ้ากดเล่นบนเซิร์ฟเวอร์ Plex ของคุณและให้ไฟดับเองโดยอัตโนมัติ!

คุณควบคุม Arduino โดยใช้ Python แล้วหรือยัง? มีวิธีแก้ไขปัญหาที่น่าทึ่งที่เรายังไม่รู้หรือไม่? แจ้งให้เราทราบในส่วนความคิดเห็นด้านล่าง!

แบ่งปัน แบ่งปัน ทวีต อีเมล 5 เคล็ดลับในการเพิ่มพลังให้เครื่อง VirtualBox Linux ของคุณ

เบื่อกับประสิทธิภาพที่ย่ำแย่ของเวอร์ชวลแมชชีนหรือไม่? นี่คือสิ่งที่คุณควรทำเพื่อเพิ่มประสิทธิภาพ VirtualBox ของคุณ

อ่านต่อไป
หัวข้อที่เกี่ยวข้อง
  • DIY
  • การเขียนโปรแกรม
  • Arduino
  • ระบบอัตโนมัติในบ้าน
  • Python
เกี่ยวกับผู้เขียน เอียน บัคลี่ย์(216 บทความที่ตีพิมพ์)

Ian Buckley เป็นนักข่าวอิสระ นักดนตรี นักแสดง และโปรดิวเซอร์วิดีโอที่อาศัยอยู่ในกรุงเบอร์ลิน ประเทศเยอรมนี เมื่อไม่ได้เขียนหนังสือหรืออยู่บนเวที เขากำลังซ่อมแซมอุปกรณ์อิเล็กทรอนิกส์หรือโค้ด DIY โดยหวังว่าจะเป็นนักวิทยาศาสตร์ที่คลั่งไคล้

เพิ่มเติมจาก Ian Buckley

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก