- ข้อกำหนด
- การติดตั้ง PyFirmata ใน Arduino โดยใช้ Raspberry Pi
- คำอธิบายรหัส
- Fading LED บน Arduino โดยใช้ pyFirmata
แม้ว่า Raspberry Pi และ Arduino จะเป็นฮาร์ดแวร์สองตัวที่แตกต่างกันในแง่ของแอปพลิเคชันและโครงสร้าง แต่ทั้งคู่ถือเป็นแพลตฟอร์มฮาร์ดแวร์โอเพ่นซอร์สที่แข่งขันกันสองแพลตฟอร์ม ทั้งคู่มีชุมชนและการสนับสนุนที่เข้มแข็งมาก วันนี้เราจะเปลี่ยนสิ่งต่างๆเล็กน้อยและแสดงให้คุณเห็นว่าเราจะใช้ประโยชน์จากทั้งสองอย่างได้อย่างไร หากคุณมีทั้ง Arduino และราสเบอร์รี่บอร์ดปี่บทความนี้จะแสดงให้คุณเห็นวิธีการใช้ปี่ราสเบอร์รี่และ Python เพื่อควบคุม Arduino
เราจะใช้เฟิร์มแวร์ PyFirmataเพื่อให้คำสั่งกับ Arduino โดยใช้สคริปต์ Raspberry Pi python PyFirmata เป็นชุดโปรแกรม python ที่สร้างไว้ล่วงหน้าซึ่งสามารถติดตั้งใน Arduino เพื่อให้สามารถสื่อสารแบบอนุกรมระหว่างสคริปต์ python บนคอมพิวเตอร์เครื่องใดก็ได้และ Arduino แพคเกจ python นี้สามารถให้การเข้าถึงเพื่ออ่านและเขียนพินใด ๆ บน Arduino ดังนั้นที่นี่เราจะเรียกใช้โปรแกรม python บน Arduino โดยใช้ Raspberry pi
ดังนั้นในการกวดวิชานี้เราจะใช้ประโยชน์จากห้องสมุดนี้และจะใช้ในของเราบอร์ด Arduino ควบคุม Arduino ใช้ Raspberry Pi
ข้อกำหนด
- Raspberry Pi พร้อม Raspbian OS ติดตั้งอยู่
- Arduino Uno หรือบอร์ด Arduino อื่น ๆ
- สาย Arduino USB
- LED
ในบทช่วยสอนนี้ฉันใช้จอภาพภายนอกโดยใช้สาย HDMI เพื่อเชื่อมต่อกับ Raspberry Pi หากคุณไม่มีจอภาพคุณสามารถใช้ไคลเอนต์ SSH (Putty) หรือเซิร์ฟเวอร์ VNC เพื่อเชื่อมต่อกับ Raspberry pi โดยใช้แล็ปท็อปหรือคอมพิวเตอร์ หากคุณพบปัญหาใด ๆ ให้ทำตามการจ้องด้วย Raspberry Pi Guide ของเรา
การติดตั้ง PyFirmata ใน Arduino โดยใช้ Raspberry Pi
ในการอัปโหลดเฟิร์มแวร์ PyFirmata ใน Arduino เราต้องติดตั้ง Arduino IDE ใน Raspberry Pi ทำตามขั้นตอนเหล่านี้เพื่อติดตั้ง:
ขั้นตอนที่ 1: -เชื่อมต่อ Raspberry Pi กับอินเทอร์เน็ต เปิดเทอร์มินัลคำสั่งแล้วพิมพ์คำสั่งต่อไปนี้แล้วกด Enter
sudo apt - get - y ติดตั้ง arduino python - serial mercurial
รอไม่กี่นาทีจะใช้เวลา คำสั่งนี้จะติดตั้ง Arduino IDE ใน Raspberry Pi ของคุณ
ขั้นตอนที่ 2: - ตอนนี้เราจะติดตั้งไฟล์ pyFirmata โดยใช้ github ที่กำหนด:
git clone https://github.com/tino/pyFirmata
จากนั้นรันคำสั่งต่อไปนี้:
cd pyFirmata sudo python setup.py ติดตั้ง
ขั้นตอนที่ 3: - เราได้ติดตั้งไฟล์และการตั้งค่าที่จำเป็นทั้งหมดแล้ว
ตอนนี้เชื่อมต่อบอร์ด Arduino ของคุณกับ Raspberry Pi โดยใช้สาย USB และเปิด Arduino IDE โดยพิมพ์ arduino ในหน้าต่างเทอร์มินัล
ขั้นตอนที่ 4: - จากนั้นพิมพ์คำสั่ง lsusb เพื่อตรวจสอบว่า Arduino เชื่อมต่อกับ raspberry pi ของคุณหรือไม่
ใน Arduino IDE ไปที่เครื่องมือและเลือกบอร์ดและพอร์ตอนุกรมของคุณ
ขั้นตอนที่ 5: - อัปโหลดเฟิร์มแวร์ PyFirmata บน Arduino โดยคลิก ไฟล์ -> ตัวอย่าง -> Firmata -> Standard Firmataจากนั้นคลิกปุ่มอัปโหลด ดังแสดงด้านล่าง.
เราติดตั้งเฟิร์มแวร์ pyFirmata ในบอร์ด Arduino เรียบร้อยแล้ว ตอนนี้เราสามารถควบคุม Arduino ของเราโดยใช้ Raspberry Pi
สำหรับการสาธิตเราจะกระพริบตาและจางหายไฟ LED บน Arduino โดยการเขียนรหัสหลามในราสเบอร์รี่ Pi
คำอธิบายรหัส
สำหรับส่วนการเข้ารหัสคุณควรอ่านเอกสารของ pyFirmata เพื่อความเข้าใจที่ดีขึ้น เราจะใช้ฟังก์ชัน pyFirmata เพื่อเขียนโค้ดของเรา คุณสามารถค้นหาเอกสาร pyFirmata ได้ตามลิงค์
เริ่มเขียนโค้ดกันเลย
เปิดโปรแกรมแก้ไขข้อความที่คุณชื่นชอบในราสเบอร์รี่ Pi และนำเข้าห้องสมุด pyFirmata
นำเข้า pyfirmata
กำหนดพินบน Arduino เพื่อเชื่อมต่อ LED
led_pin = 9
ตอนนี้เราต้องเขียนชื่อพอร์ตอนุกรมที่บอร์ด Arduino เชื่อมต่อโดยใช้ฟังก์ชัน pyfirmata.Arduino ()จากนั้นสร้างอินสแตนซ์โดยกำหนดพอร์ตในตัวแปร บอร์ด
board = pyfirmata.Arduino ("/ dev / ttyACM0") พิมพ์ "Code is running"
ใน ขณะที่ วงให้นำ HIGH ขาและต่ำโดยใช้ board.digital.write () ฟังก์ชั่นและความล่าช้าให้ใช้ board.pass_time () ฟังก์ชั่น
ในขณะที่ True: board.digital.write (0) board.pass_time (1) board.digital.write (1) board.pass_time (1)
รหัสของเราพร้อมแล้วให้บันทึกรหัสนี้โดยใส่ นามสกุล. py ไว้ที่ชื่อไฟล์
เปิด Command Terminal แล้วพิมพ์ python blink.py เพื่อรันโค้ดบนบอร์ด Arduino ตรวจสอบให้แน่ใจว่าบอร์ด Arduino ของคุณเชื่อมต่อกับบอร์ด Raspberry Pi โดยใช้สาย USB
ตอนนี้คุณสามารถเห็นLED กะพริบบนบอร์ด Arduino
รหัสที่สมบูรณ์สำหรับ LED กะพริบโดยใช้ pyFirmataจะได้รับในตอนท้าย
Fading LED บน Arduino โดยใช้ pyFirmata
ตอนนี้เราจะเขียนโค้ดสำหรับการทำให้ LED จางลงเพื่อให้คุณคุ้นเคยกับฟังก์ชัน pyFirmata มากขึ้น รหัสนี้ง่ายเหมือนก่อนหน้านี้ คุณต้องใช้สองอัน สำหรับ ลูปหนึ่งอันเพื่อเพิ่มความสว่างและอื่น ๆ เพื่อลดความสว่าง
ในรหัสนี้เราได้กำหนดไว้หมุดในทางที่แตกต่างกันเช่นนำ = board.get_pin ('d: 9: p')ที่d หมายถึงพินดิจิตอล นี่คือหน้าที่ของไลบรารี pyFirmata อ่านเอกสารสำหรับรายละเอียดเพิ่มเติม
รหัสที่สมบูรณ์สำหรับ Fading LED โดยใช้ pyFirmataจะได้รับในตอนท้าย
ตอนนี้คุณสามารถเพิ่มเซ็นเซอร์เพิ่มเติมให้กับระบบของคุณและทำให้มันเจ๋งขึ้นตรวจสอบโครงการ Arduino อื่น ๆ ของเราและลองสร้างโดยใช้ Raspberry pi และ python script