- วัสดุที่ต้องการ:
- การติดตั้ง Python บนคอมพิวเตอร์ของคุณ:
- รับ PySerial ใน Python:
- โปรแกรม Arduino Python แรกของเรา:
- การควบคุม LED ด้วย Python และ Arduino:
Arduinoเป็นแพลตฟอร์มการเรียนรู้ / การพัฒนาที่มีประสิทธิภาพและใช้งานง่ายเสมอเมื่อพูดถึงการพัฒนาฮาร์ดแวร์โอเพนซอร์ส ในโลกสมัยใหม่ปัจจุบันฮาร์ดแวร์ทุกตัวขับเคลื่อนด้วยภาษาโปรแกรมสำหรับวัตถุประสงค์ทั่วไประดับสูงเพื่อให้มีประสิทธิภาพและเป็นมิตรกับผู้ใช้ ภาษาหนึ่งดังกล่าวเป็นงูหลามPython เป็นภาษาการเขียนโปรแกรมระดับสูงที่ตีความเชิงวัตถุด้วยความหมายแบบไดนามิกที่มีโครงสร้างข้อมูลในตัวระดับสูงรวมกับการพิมพ์แบบไดนามิกและการเชื่อมโยงแบบไดนามิกทำให้น่าสนใจมากสำหรับ Rapid Application Development
การรวมพลังของ Arduino และ Pythonจะเปิดประตูสู่ความเป็นไปได้มากมายเนื่องจาก python มีผลผลิตเพิ่มขึ้นพร้อมความสามารถในการโต้ตอบกับแพลตฟอร์มอื่น ๆ เช่น openCV, Matlab เป็นต้นดังนั้นในบทช่วยสอนนี้เราจะเรียนรู้วิธีติดตั้ง python บนคอมพิวเตอร์ของเรา และวิธีการใช้งานร่วมกับ Arduino สำหรับการสลับ LED ออนบอร์ดของ Arduino
เริ่มกันเลย….
วัสดุที่ต้องการ:
- Arduino Uno (หรือบอร์ด Arduino ใด ๆ)
- คอมพิวเตอร์ที่เชื่อมต่ออินเทอร์เน็ต
การติดตั้ง Python บนคอมพิวเตอร์ของคุณ:
เห็นได้ชัดว่าขั้นตอนแรกในบทช่วยสอนนี้คือการติดตั้ง Python บนคอมพิวเตอร์ของเรา ขั้นตอนที่กล่าวถึงด้านล่างนี้ใช้ได้เฉพาะกับผู้ใช้ windows ที่ใช้ระบบปฏิบัติการ 32 บิตหรือ 64 บิต ขั้นตอนการติดตั้งสำหรับ MAC และ Linux แตกต่างกัน
- คลิกที่ 32 บิต Python-2.7.9 และจะติดตั้ง Python IDLE 32 บิตบนคอมพิวเตอร์ของคุณ อย่าดาวน์โหลดเวอร์ชัน 64 บิตหรือเวอร์ชันที่อัปเดตเนื่องจากไม่ได้ให้การสนับสนุนสำหรับ Arduino Libraries ของเรา แม้ว่าคอมพิวเตอร์ของคุณจะทำงานบน 64 บิตคุณก็สามารถใช้ Python แบบ 32 บิตได้
- เปิดไฟล์ exe ที่ดาวน์โหลดมาและทำตามคำแนะนำ อย่าเปลี่ยนไดเร็กทอรีที่จะติดตั้ง python โดยค่าเริ่มต้นจะเป็น C: \ Python27 และปล่อยไว้เช่นนั้น
- ในขณะที่การติดตั้งเกิดขึ้นคุณอาจได้รับคำเตือนจากโปรแกรมป้องกันไวรัส (ถ้ามี) ในกรณีนั้นให้คลิกที่อนุญาต
นั่นคือมัน!, python ถูกติดตั้งบนคอมพิวเตอร์ของเราเรียบร้อยแล้ว คุณสามารถตรวจสอบได้โดยค้นหา“ Python IDLE” ในช่องค้นหาของWindowsแล้วเปิดขึ้นมา
เมื่อเปิดคุณจะได้รับหน้าจอต่อไปนี้ หน้าต่างนี้เรียกว่า Python Shell และเราจะเรียกมันว่า“ Python shell ” ต่อจากนี้
หน้าจอนี้เรียกว่า Python Shell คุณสามารถเขียนโค้ดได้โดยตรงที่นี่และรับผลลัพธ์บนหน้าจอเดียวกันหรือสร้างไฟล์ใหม่และเขียนโปรแกรมที่นั่นและตรวจสอบโปรแกรมที่นี่ ต่อไปเราจะเข้าสู่รายละเอียดของการสร้างโปรแกรม python ในตอนนี้ให้เราตรวจสอบว่า python ทำงานหรือไม่
ทำได้โดยพิมพ์“ พิมพ์ (1 + 1) ” แล้วกด Enter คุณควรเห็นผลการพิมพ์ดังที่แสดงด้านล่าง
รับ PySerial ใน Python:
ขั้นตอนต่อไปคือการติดตั้ง pyserial PySerial เป็นโมดูล Python APIซึ่งใช้ในการอ่านและเขียนข้อมูลอนุกรมไปยัง Arduino หรือไมโครคอนโทรลเลอร์อื่น ๆ
คลิกที่ Pyserial Windows เพื่อดาวน์โหลด PySerial การดาวน์โหลดที่ได้จะเป็นไฟล์ exe ซึ่งสามารถติดตั้งได้โดยตรง อย่าเปลี่ยนการตั้งค่าใด ๆ ในขณะติดตั้ง ปล่อยให้เป็นไดเรกทอรีเริ่มต้นและการตั้งค่าเริ่มต้น
ตอนนี้ให้เราตรวจสอบว่ามีการติดตั้ง PySerial อย่างถูกต้องหรือไม่ ในการดำเนินการนี้ให้เปิด Python Shell อีกครั้งแล้วพิมพ์
อนุกรมนำเข้า หากติดตั้งไลบรารีสำเร็จคุณจะไม่ได้รับข้อความแสดงข้อผิดพลาดใด ๆ ดังที่แสดงในภาพด้านล่าง หากคุณได้รับข้อผิดพลาดให้โพสต์ไว้ในส่วนความคิดเห็นและเราจะพยายามแก้ไข
บทช่วยสอนนี้ถือว่าคุณคุ้นเคยกับ Arduino และมีประสบการณ์ในการอัปโหลดโครงการไปยัง Arduino ดังนั้นให้เราเข้าสู่โปรแกรม Python ของเราโดยตรง หากคุณเป็นมือใหม่กับ Arduino ให้ตรวจสอบโครงการ Arduino ของเราและเริ่มจาก LED กะพริบด้วย Arduino
โปรแกรม Arduino Python แรกของเรา:
ที่กล่าวก่อนหน้านี้เราจะได้รับการควบคุมในตัวบอร์ด Arduino LED โดยใช้สคริปต์ เริ่มต้นด้วยรหัส Arduino
โปรแกรมสำหรับ Arduino:
โปรแกรมที่สมบูรณ์สำหรับการสอน Arduino pythonนี้มีให้ที่ท้ายหน้านี้ อ่านเพิ่มเติมเพื่อทราบวิธีการทำงาน
ภายในฟังก์ชั่น การตั้งค่า เราเริ่มต้นการสื่อสารแบบอนุกรมที่อัตรารับส่งข้อมูล 9600และประกาศว่าเราจะใช้ LED ในตัวเป็นเอาต์พุตและเปิดให้ต่ำในระหว่างการเริ่มโปรแกรม เราได้ส่งข้อความต้อนรับไปยัง python ผ่านการพิมพ์แบบอนุกรมตามที่แสดงด้านล่าง:
การตั้งค่าเป็นโมฆะ () {Serial.begin (9600); // เริ่มต้น Serial COM ที่ 9600 baudrate pinMode (LED_BUILTIN, OUTPUT); // ทำให้ขา LED (13) เป็นเอาต์พุต digitalWrite (LED_BUILTIN, LOW); Serial.println ("สวัสดีฉันคือ Arduino"); }
ภายในฟังก์ชัน ลูป เราจะอ่านข้อมูลใด ๆ ที่เข้ามาตามลำดับและกำหนดค่าให้กับตัวแปร "data" ตอนนี้ขึ้นอยู่กับค่าของตัวแปรนี้ (“ ข้อมูล”) เราจะสลับไฟ LED ในตัวตามที่แสดงด้านล่าง
ห่วงเป็นโมฆะ () {ในขณะที่ (Serial.available ()) {data = Serial.read (); } ถ้า (data == '1') digitalWrite (LED_BUILTIN, HIGH); อื่นถ้า (ข้อมูล == '0') digitalWrite (LED_BUILTIN, LOW); }
โปรแกรมสำหรับ Python:
โปรแกรม python ที่สมบูรณ์สำหรับบทช่วยสอนนี้มีให้ที่ท้ายหน้านี้ อ่านเพิ่มเติมเพื่อทราบวิธีการเขียนและการใช้งานเดียวกัน
- เปิด Python Shell (Python IDLE) แล้วคลิก File-> New
- เพื่อเปิดไฟล์ข้อความใหม่ที่คุณสามารถพิมพ์ลงในโปรแกรมได้
- ก่อนที่เราจะพิมพ์อะไรให้บันทึกไฟล์โดย Ctrl + S พิมพ์ชื่อใดก็ได้แล้วคลิกบันทึก การดำเนินการนี้จะบันทึกไฟล์ในนามสกุล“.py” โดยอัตโนมัติ
- ตอนนี้พิมพ์โปรแกรมหรือวางรหัส python ที่ระบุไว้ที่ท้ายหน้านี้ คำอธิบายเดียวกันได้รับด้านล่างและสุดท้ายเรียกใช้โปรแกรม
ในโปรแกรมของเราเป็นขั้นตอนแรกที่จะนำเข้าห้องสมุดแบบอนุกรมและเวลาไลบรารีอนุกรมตามที่กล่าวไว้ก่อนหน้านี้จะใช้เพื่ออ่านและเขียนข้อมูลอนุกรมและไลบรารีเวลาจะถูกใช้เพื่อสร้างความล่าช้าในโปรแกรม ไลบรารีทั้งสองนี้สามารถนำเข้าในโปรแกรมของเราได้โดยใช้สองบรรทัดต่อไปนี้:
นำเข้าซีเรียล #Serial นำเข้าสำหรับเวลานำเข้าการสื่อสารแบบอนุกรม # จำเป็นต้องใช้ฟังก์ชันหน่วงเวลา
ขั้นตอนต่อไปจะเริ่มต้นวัตถุอนุกรมอนุกรมการใช้ห้องสมุดของเราในโปรแกรมนี้เราได้รับการตั้งชื่อวัตถุอนุกรมของเราเป็น“ArduinoSerial” ในบรรทัดนี้เราต้องพูดถึงชื่อของพอร์ต COM ที่ Arduino ของเราเชื่อมต่อและอัตราการส่งข้อมูลที่ใช้งานได้ดังที่แสดงด้านล่าง
ArduinoSerial = อนุกรมอนุกรม ('com18', 9600)
หมายเหตุ:สำคัญมากที่จะต้องระบุชื่อพอร์ต COM ที่ถูกต้อง สามารถพบได้โดยใช้ตัวจัดการอุปกรณ์บนคอมพิวเตอร์ของคุณ
ทันทีที่เริ่มต้นวัตถุอนุกรมเราควรถือโปรแกรมไว้สองวินาทีเพื่อสร้างการสื่อสารแบบอนุกรม สามารถทำได้โดยใช้บรรทัดด้านล่าง:
เวลานอนหลับ (2)
ตอนนี้เราสามารถอ่านหรือเขียนอะไรก็ได้จาก / ไปยังบอร์ด Arduino ของเรา
บรรทัดต่อไปนี้จะอ่านทุกสิ่งที่มาจาก Arduinoและจะพิมพ์บนหน้าต่างเชลล์
พิมพ์ ArduinoSerial.readline ()
คุณยังสามารถกำหนดค่าให้กับตัวแปรและใช้สำหรับการคำนวณ
บรรทัดต่อไปนี้จะเขียนค่าของพารามิเตอร์เพื่อ Arduinoคณะกรรมการ
ArduinoSerial.write ('1')
บรรทัดนี้จะเขียน '1' ไปยัง Arduino คุณสามารถส่งอะไรก็ได้ตั้งแต่ทศนิยมไปจนถึงสตริงโดยใช้บรรทัดเดียวกัน
ตอนนี้กลับไปที่โปรแกรมของเราภายใน infinite while loop เรามีบรรทัดต่อไปนี้
var = raw_input () # รับอินพุตจากผู้ใช้พิมพ์ "คุณป้อน", var #print อินพุตสำหรับการยืนยัน if (var == '1'): #if ค่าคือ 1 ArduinoSerial.write ('1') #send 1 พิมพ์ ("LED เปิด") time.sleep (1) if (var == '0'): #if ค่าเป็น 0 ArduinoSerial.write ('0') #send 0 พิมพ์ ("LED ปิด") เวลา. นอนหลับ (1)
บรรทัด var = raw_input จะได้รับค่าใด ๆ ที่ถูกพิมพ์ลงในกะลาสคริปต์และกำหนดค่าที่ตัวแปรvar
ต่อมาหากค่าเป็น 1 จะพิมพ์ '1' แบบอนุกรมไปยัง Arduino และหาก 0 จะพิมพ์ '0' แบบอนุกรมไปยัง Arduino รหัสในโปรแกรม Arduino ของเรา (อธิบายไว้ข้างต้น) เราจะสลับ LED ตามค่าที่ได้รับ
เมื่อโปรแกรมเสร็จสมบูรณ์สคริปต์ของคุณควรมีลักษณะดังนี้ด้านล่าง
ตอนนี้คลิกที่ Run -> Run Moduleหรือกด F5 ซึ่งอาจขอให้คุณบันทึกโปรแกรมจากนั้นจะเปิดใช้งาน
การควบคุม LED ด้วย Python และ Arduino:
การทำงานของโครงการนี้ค่อนข้างตรงไปตรงมา อัปโหลดโปรแกรมไปยัง Arduino ของคุณและตรวจสอบว่าเชื่อมต่อกับพอร์ต COM เดียวกันตามที่ระบุไว้ในโปรแกรม python จากนั้นเปิดโปรแกรม Python ตามที่กล่าวไว้ข้างต้น
สิ่งนี้จะเปิดสคริปต์ python shell ดังที่แสดงด้านล่าง หน้าต่างทางด้านซ้ายคือหน้าต่างเชลล์ที่แสดงผลลัพธ์และหน้าต่างทางด้านขวาคือสคริปต์ที่แสดงโปรแกรม
ดังที่คุณเห็นสตริง “ สวัสดี! ฉันคือ Arduino” ที่ ป้อนในโปรแกรม Arduino ได้รับจาก Python และแสดงบนหน้าต่างเชลล์
เมื่อหน้าต่างเชลล์ขอให้ป้อนค่าเราสามารถป้อน 0 หรือ 1 ได้หากเราส่ง 1 LED บนบอร์ด Arduino จะเปิดขึ้นและถ้าเราส่ง 0 LED บนบอร์ด Arduino ของเราจะดับลง แสดงการเชื่อมต่อที่ประสบความสำเร็จระหว่างโปรแกรม Arduino และ Python ของเรา
มีสองโปรแกรมที่ระบุด้านล่างโปรแกรมหนึ่งจะอัปโหลดและเรียกใช้จาก Arduino และที่สองคือเรียกใช้จาก Python Shell ใน Windows
หวังว่าคุณจะเข้าใจโครงการและสามารถทำงานได้ หากไม่เป็นเช่นนั้นโพสต์ปัญหาของคุณในความคิดเห็นด้านล่างเรายินดีที่จะช่วยเหลือคุณ ในโครงการต่อไปเราจะได้เรียนรู้ว่า Python และ Arduino สามารถทำอะไรได้อีกบ้างโดยการสำรวจลึกลงไปในโมดูล python อื่น ๆ เช่น Vpython, gamepython เป็นต้นจนกว่าจะถึงเวลานั้นโปรดติดตาม….