Raspberry Pi และ Arduinoเป็นบอร์ดโอเพ่นซอร์สที่ได้รับความนิยมมากที่สุดใน Electronics Community พวกเขาจะไม่เป็นที่นิยมในหมู่วิศวกรอิเล็กทรอนิกส์ แต่ยังอยู่ในหมู่นักเรียนในโรงเรียนและมือสมัครเล่นเพราะของความสะดวกสบายและความเรียบง่ายแม้แต่บางคนก็เพิ่งเริ่มชื่นชอบเครื่องใช้ไฟฟ้าเพราะ Raspberry Pi และ Arduino บอร์ดเหล่านี้มีพลังที่ยิ่งใหญ่และสามารถสร้างโปรเจ็กต์ Hi-Fi ที่ซับซ้อนและซับซ้อนได้ในขั้นตอนง่ายๆไม่กี่ขั้นตอนและการเขียนโปรแกรมเพียงเล็กน้อย
เราได้สร้าง Arduino Projects และ Tutorials ไว้มากมายตั้งแต่แบบง่าย ๆ ไปจนถึงแบบที่ซับซ้อน นอกจากนี้เรายังได้สร้าง Series of Raspberry Pi Tutorials ซึ่งทุกคนสามารถเริ่มเรียนรู้ตั้งแต่ "เริ่มต้น" นี่เป็นผลงานเล็ก ๆ น้อย ๆ ต่อชุมชนอิเล็กทรอนิกส์จากฝั่งของเราและพอร์ทัลนี้ได้พิสูจน์ตัวเองว่าเป็นแหล่งเรียนรู้ที่ยอดเยี่ยมสำหรับอุปกรณ์อิเล็กทรอนิกส์ ดังนั้นวันนี้เราจะนำทั้งสองบอร์ดที่ดีร่วมกันโดยการเชื่อม Arduino กับราสเบอร์รี่ Pi
ในการกวดวิชานี้เราจะสร้างการสื่อสารแบบอนุกรมระหว่างราสเบอร์รี่ Pi และ Arduino Uno PI มีพิน GPIO เพียง 26 พินและไม่มีช่อง ADC ดังนั้นเมื่อเราทำโปรเจ็กต์เช่นเครื่องพิมพ์ 3 มิติ PI จะไม่สามารถโต้ตอบทั้งหมดเพียงอย่างเดียวได้ ดังนั้นเราจึงต้องการพินเอาต์พุตและฟังก์ชันเพิ่มเติมสำหรับการเพิ่มฟังก์ชันเพิ่มเติมให้กับ PI เราจึงสร้างการสื่อสารระหว่าง PI และ UNO ด้วยเหตุนี้เราจึงสามารถใช้ฟังก์ชันทั้งหมดของ UNO ได้เหมือนกับฟังก์ชัน PI
Arduinoเป็นแพลตฟอร์มขนาดใหญ่สำหรับการพัฒนาโครงการโดยมีบอร์ดมากมายเช่น Arduino Uno, Arduino Pro mini, Arduino Due เป็นต้นซึ่งเป็นบอร์ดที่ใช้คอนโทรลเลอร์ ATMEGA ที่ออกแบบมาสำหรับวิศวกรอิเล็กทรอนิกส์และนักทำงานอดิเรก แม้ว่าจะมีบอร์ดจำนวนมากบนแพลตฟอร์ม Arduino แต่ Arduino Uno ก็ได้รับความชื่นชมมากมายเพื่อความสะดวกในการทำโครงการ สภาพแวดล้อมการพัฒนาโปรแกรมที่ใช้ Arduino เป็นวิธีที่ง่ายในการเขียนโปรแกรมเมื่อเปรียบเทียบกับโปรแกรมอื่น ๆ
ส่วนประกอบที่ต้องการ:
ที่นี่เราจะใช้ ราสเบอร์รี่ Pi 2 รุ่น B กับ Raspbian Jessie OS และ Arduino Uno ข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์ขั้นพื้นฐานทั้งหมดเกี่ยวกับ Raspberry Pi มีการกล่าวถึงก่อนหน้านี้คุณสามารถค้นหาได้ในบทนำ Raspberry Pi นอกเหนือจากที่เราต้องการ:
- หมุดเชื่อมต่อ
- 220Ωหรือ1KΩตัวต้านทาน (2 ชิ้น)
- LED
- ปุ่ม
คำอธิบายวงจร:
ดังแสดงในแผนภาพวงจรด้านบนเราจะเชื่อมต่อ UNO เข้ากับพอร์ต PI USBโดยใช้สาย USB มีพอร์ต USB สี่พอร์ตสำหรับ PI; คุณสามารถเชื่อมต่อกับคนใดคนหนึ่งได้ ปุ่มเชื่อมต่อเพื่อเริ่มการสื่อสารแบบอนุกรมและไฟ LED (กะพริบ) เพื่อระบุว่ากำลังส่งข้อมูล
คำอธิบายการทำงานและการเขียนโปรแกรม:
ส่วน Arduino Uno:
ก่อนอื่นมาตั้งโปรแกรม UNO
เชื่อมต่อ UNO กับพีซีก่อนจากนั้นจึงเขียนโปรแกรม (ส่วนตรวจสอบรหัสด้านล่าง) ในซอฟต์แวร์ Arduino IDE และอัปโหลดโปรแกรมไปยัง UNO จากนั้นถอด UNO ออกจาก PC แนบ UNO เข้ากับ PI หลังจากตั้งโปรแกรมแล้วเชื่อมต่อ LED และปุ่มเข้ากับ UNO ดังแสดงในแผนภาพวงจร
ตอนนี้โปรแกรมที่นี่เริ่มต้นการสื่อสารแบบอนุกรมของ UNO เมื่อเรากดปุ่มที่แนบมากับ UNO UNO จะส่งอักขระสองสามตัวไปยัง PI แบบอนุกรมผ่านพอร์ต USB ไฟ LED ที่ติดกับ PI จะกะพริบเพื่อระบุตัวอักษรที่กำลังส่ง
ส่วน Raspberry Pi:
หลังจากนั้นเราต้องเขียนโปรแกรมสำหรับ PI (ส่วนตรวจสอบรหัสด้านล่าง) เพื่อรับข้อมูลนี้ที่ส่งโดย UNO เพื่อที่เราจะต้องเข้าใจคำสั่งบางอย่างที่ระบุไว้ด้านล่าง
เรากำลังจะนำเข้าไฟล์อนุกรมจากไลบรารีฟังก์ชั่นนี้ช่วยให้เราสามารถส่งหรือรับข้อมูลแบบอนุกรมหรือโดยพอร์ต USB
นำเข้าอนุกรม
ตอนนี้เราจำเป็นต้องระบุพอร์ตอุปกรณ์และอัตราบิตสำหรับ PI เพื่อรับข้อมูลจาก UNO โดยไม่มีข้อผิดพลาดใด ๆ คำสั่งด้านล่างระบุว่าเรากำลังเปิดใช้งานการสื่อสารแบบอนุกรม 9600 บิตต่อวินาทีบนพอร์ต ACM0
ser = อนุกรมอนุกรม ('/ dev / ttyACM0', 9600)
หากต้องการค้นหาพอร์ตที่ UNO ต่ออยู่ให้ไปที่เทอร์มินัลของ PI แล้วเข้าไปที่
ls / dev / tty *
คุณจะมีรายชื่ออุปกรณ์ที่เชื่อมต่อทั้งหมดบน PI ตอนนี้เชื่อมต่อ Arduino Uno กับ Raspberry Pi ด้วยสาย USB แล้วป้อนคำสั่งอีกครั้ง คุณสามารถระบุพอร์ตที่แนบ UNO ได้อย่างง่ายดายจากรายการที่แสดง
คำสั่งด้านล่างนี้ใช้เป็นลูปตลอดไปโดยคำสั่งนี้คำสั่งภายในลูปนี้จะดำเนินการอย่างต่อเนื่อง
ในขณะที่ 1:
หลังจากได้รับข้อมูลตามลำดับเราจะแสดงอักขระบนหน้าจอของ PI
พิมพ์ (ser.readline ())
หลังจากกดปุ่มที่แนบมากับ UNO แล้วเราจะเห็นตัวอักษรถูกพิมพ์บนหน้าจอ PI ดังนั้นเราได้สร้างพื้นฐานการสื่อสารจับมือกันระหว่างราสเบอร์รี่ Pi และ Arduino