วิธีการเชื่อมต่อสอง Arduino โดยไม่ต้องป้องกัน?


14

ฉันกำลังวางแผนระบบ Arduino ที่ประกอบด้วยบอร์ด Arduino หลายตัว ระยะห่างสูงสุดระหว่างกระดานประมาณ 50 เมตร ฉันต้องการส่งข้อมูลพื้นฐานระหว่างสิ่งเหล่านี้เช่นสตริงสั้นหรือจำนวนเต็ม ฉันรู้ว่าฉันสามารถส่งข้อมูลผ่านสายเคเบิลอีเธอร์เน็ตได้ แต่ต้องใช้แผงกั้นอีเธอร์เน็ตหรือบอร์ด Arduino Ethernet ที่เพิ่มค่าใช้จ่ายเป็นสองเท่า มีงบประมาณต่ำหรือไม่ที่ฉันสามารถเชื่อมต่อบอร์ดโดยใช้เฉพาะบอร์ดพื้นฐานที่สุด (เช่น Uno) และส่วนประกอบอื่น ๆ แต่ไม่ได้เป็นเกราะป้องกันแบบสมบูรณ์หรือไม่?


หากงบประมาณไม่เป็นปัญหาคุณสามารถใช้บลูทู ธ หรือชิป xbee พวกเขาไม่ได้เลวร้าย แต่จะทำงานทั้งหมด ~ $ 60 ในขณะที่คุณจะต้อง 2.
Steven10172

@ Steven10172 อุปกรณ์บลูทู ธ นั้นมีประโยชน์ แต่ดูเหมือนว่า OP ต้องการโซลูชันราคาถูกที่ไม่มีโล่ (อาจมีรายละเอียดต่ำ)
ผู้ไม่ประสงค์ออกนามเพนกวิน

3
ตรวจสอบให้แน่ใจว่าเชื่อมต่อบริเวณนั้นถ้าสื่อกลางในการถ่ายโอนของคุณเป็นไฟฟ้า
เพนกวินไม่ระบุชื่อ

คำตอบ:


9

สำหรับการสื่อสารทางไกลสายดูที่RS-485

เนื่องจากใช้เส้นสมดุลที่แตกต่างเหนือคู่บิด (เช่น RS-422) จึงสามารถขยายระยะทางที่ค่อนข้างใหญ่ (สูงถึง 4,000 ฟุต (1,200 เมตร)) กฎของหัวแม่มือคือความเร็วในบิต / วินาทีคูณด้วยความยาวเป็นเมตรไม่ควรเกิน 108 ดังนั้นสายเคเบิล 50 เมตรไม่ควรส่งสัญญาณเร็วกว่า 2 Mbit / s

คุณสามารถใช้ชิป MAX485 มันค่อนข้างง่ายที่จะทำงานด้วย แต่ก็มีห้องสมุดที่ดีเช่นกัน:

https://github.com/Protoneer/RS485-Arduino-Library


เขาไม่สามารถตัดสายไฟใน RS-485 หรือคล้ายกันและใช้สายอนุกรมเพื่อประหยัดเงินได้หรือ baud 9600 นั้นทำงานไม่เร็วเกือบ 2 MBPS มีบางสิ่งที่พิเศษเกี่ยวกับโปรโตคอล / แรงดันไฟฟ้า / ฯลฯ ที่ทำให้เหมาะสำหรับระยะทางไกล? มันอาจประหยัดเงิน ...
Anonymous Penguin

มันเป็นสัญญาณที่แตกต่างส่งผ่านคู่บิด ลดเสียงรบกวน en.wikipedia.org/wiki/Differential_signaling
sachleen

หน้านี้เป็นแหล่งข้อมูลที่ยอดเยี่ยมสำหรับ RS485 พร้อม Arduino gammon.com.au/forum/?id=11428
DaveP

7

มีสองประเภทที่ฉันสามารถนึกถึงเพื่อจำแนกคุณสมบัติการสื่อสารของบอร์ด Arduino:

ระหว่าง 2 อุปกรณ์:

  • อนุกรม: ใช้งานง่ายและต้องการเพียง 2 ดาต้าไลน์
  • OneWire: ใช้ยากและช้าลง แต่ใช้สายข้อมูลเพียงเส้นเดียว

ระหว่างอุปกรณ์มากกว่า 2 เครื่อง

  • I2C: คุณสามารถมีได้สูงสุด 128 อุปกรณ์บนเครือข่ายที่สามารถระบุตำแหน่งได้ แต่ต้องใช้อุปกรณ์หลักใช้สายข้อมูล 2 เส้น นี่คือสิ่งที่รู้ว่าเป็นลวด
  • SPI: ใช้งานยาก แต่การเลือกอุปกรณ์ทำได้ง่ายและรวดเร็ว ใช้สายข้อมูลจำนวนมาก (3 + จำนวนอุปกรณ์)
  • OneWire: การใช้การเรียกใช้ oneWire ยิ่งช้ากว่า oneWire ปกติยังคงเป็นเพียงสายข้อมูลเดียว
  • SoftwareSerial: คุณสามารถมีอุปกรณ์หลายเครื่องเชื่อมต่อกันด้วยสายอนุกรมที่แตกต่างกัน แต่ช้ากว่า
  • CAN: ใช้ได้เฉพาะในวันครบกำหนดและที่อยู่

มีวิธีการอื่น ๆ ที่ใช้ได้ แต่รายการเหล่านี้ต้องใช้ฮาร์ดแวร์ภายนอกขั้นต่ำเท่านั้น

สำหรับการจัดอันดับระยะทางดูhttp://forum.arduino.cc/index.php?topic=82937.0และhttp://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/serial-distance.html

อัตราข้อมูลเหล่านี้ถูกควบคุมโดยตรงในอนุกรมและสามารถปรับแต่งในอื่น ๆ อีกมากมาย


5

Freakduino ทำให้บอร์ด Arduino บางตัวมีไร้สายในตัว ระยะไกลไร้สายของพวกเขาคือ 900 MHz และช่วงที่สั้นกว่าของพวกเขาคือ 2.4GHz ฉันคิดว่าพวกเขาเป็นวิทยุ XBee จริงๆและสำหรับการเขียนโปรแกรมคุณจะใช้ห้องสมุดที่เรียกว่า chibiArduino ซึ่งมีอยู่ (และจัดทำเอกสาร) บนเว็บไซต์ Freakduino เมื่อสื่อสารแบบไร้สายกับวิทยุอื่นคุณสามารถใช้ Broadcast หรือระบุวิทยุโดยใช้ ID ซึ่งเป็นค่าที่คุณต้องตั้งค่าใน EEPROM ของ Freakduino

ถ่ายโดยตรงจากเว็บไซต์ Freakduino:

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

วิทยุ 900 MHz นี้เป็นของโปรดของฉัน ฉันใช้มันตลอดเวลาเพราะ 900 MHz ให้ช่วงที่ดีกว่ามากเมื่อเทียบกับ 2.4 GHz วิทยุสามารถส่งกำลังส่งสูงถึง 10 mW ซึ่งสามารถรับช่วงที่น่าประหลาดใจ ด้วยสายตาที่มองเห็นเพียงไม่กี่ร้อยเมตรก็ไม่น่าแปลกใจ หากต้องการช่วงเพิ่มเติมโหมดการมอดูเลตยังสามารถเปลี่ยนจาก OQPSK เป็น BPSK สิ่งนี้ส่งผลให้อยู่ในช่วงเพิ่มเติมที่ค่าใช้จ่ายของอัตราข้อมูลโดยสูงสุดไปจาก 250 kbps ถึง 40 kbps ในโหมดมาตรฐาน


0

อย่างที่คุณบอกว่าอีเธอร์เน็ตชิลด์นั้นแพง แต่คุณไม่จำเป็นต้องใช้ชิลด์ ตรวจสอบenc28j60สำหรับเครือข่ายแบบใช้สายหรือESP8266หากคุณต้องการไร้สาย ทั้งคู่อยู่ที่ประมาณ $ 4USD ฉันกำลังใช้ ESP8266 ตอนนี้และมีอุปกรณ์ 8 เครื่องคุยกันและ Raspberry Pi มันเป็นชิปตัวน้อยที่ยอดเยี่ยมจริงๆ! ฉันไม่สามารถพูดกับ ENC28j60 เป็นการส่วนตัวได้เนื่องจากพวกเขายังคงนั่งอยู่ในแพ็คเกจบนโต๊ะของฉัน


0

คุณสามารถใช้บอร์ดฝ่าวงล้อมอีเธอร์เน็ต ($ 2 ที่ Sparkfun) สิ่งนี้ช่วยให้คุณใช้สายเคเบิลอีเทอร์เน็ต แต่คุณไม่จำเป็นต้องใช้โปรโตคอล TCP / IP แบบเต็ม แต่คุณสามารถเชื่อมต่อหมุดข้อมูลกับบอร์ดฝ่าวงล้อมใช้อีเธอร์เน็ตเพื่อเชื่อมต่อสายเคเบิลเหล่านั้นแล้วใช้สายอนุกรม ฉันใช้มันค่อนข้างน้อยในการวางเซ็นเซอร์ลวดหนึ่งเส้นเพิ่มเติมจาก Arduino สำหรับการเชื่อมต่อที่แข็งแกร่ง แต่ราคาถูก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.