Làm thế nào để kết nối hai Arduino mà không có lá chắn?


14

Tôi đang lên kế hoạch cho một hệ thống Arduino bao gồm một số bảng Arduino. Khoảng cách tối đa giữa các bảng là khoảng 50 mét. Tôi muốn gửi dữ liệu cơ bản giữa chúng, như các chuỗi ngắn hoặc số nguyên. Tôi biết tôi có thể gửi dữ liệu qua cáp ethernet nhưng điều đó đòi hỏi phải có lá chắn ethernet hoặc bo mạch Ethernet Arduino làm tăng gấp đôi chi phí. Có cách nào ngân sách thấp để tôi có thể kết nối các bảng chỉ bằng cách sử dụng các bảng cơ bản nhất (như Uno) và một số thành phần khác nhưng không phải là một lá chắn đầy đủ?


Nếu ngân sách không phải là vấn đề, bạn có thể sử dụng chip bluetooth hoặc xbee. Chúng không quá tệ, nhưng sẽ chạy tổng cộng ~ 60 đô la vì bạn sẽ cần 2.
Steven10172

@ Steven10172 Thiết bị Bluetooth rất tiện dụng, nhưng có vẻ như OP muốn một giải pháp rẻ tiền mà không cần lá chắn (có thể cấu hình thấp?)
Chim cánh cụt ẩn danh

3
Đảm bảo kết nối các căn cứ nếu phương tiện chuyển tiền của bạn là điện !!!
Chim cánh cụt vô danh

Câu trả lời:


9

Để liên lạc có dây đường dài, hãy xem RS-485 .

Vì nó sử dụng một đường cân bằng vi sai so với cặp xoắn (như RS-422), nó có thể kéo dài khoảng cách tương đối lớn (lên tới 4.000 feet (1.200 m)). Một nguyên tắc nhỏ là tốc độ tính bằng bit / s nhân với chiều dài tính bằng mét không được vượt quá 108. Do đó, cáp 50 mét không được phát tín hiệu nhanh hơn 2 Mbit / s

Bạn có thể sử dụng chip MAX485. Nó khá dễ để làm việc nhưng cũng có một thư viện tốt:

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


Anh ta không thể lột dây trong RS-485 hoặc tương tự và chỉ sử dụng nó cho nối tiếp để tiết kiệm tiền? 9600 baud không chạy nhanh gần 2 MBPS. Có điều gì đặc biệt về giao thức / điện áp / vv. Điều đó làm cho nó phù hợp cho khoảng cách xa? Nó có thể tiết kiệm một số tiền ...
Chim cánh cụt ẩn danh

Đó là một tín hiệu khác biệt được gửi qua một cặp xoắn. Giảm tiếng ồn. vi.wikipedia.org/wiki/Differential_signaling
sachleen

Trang này là một nguồn tài nguyên tuyệt vời trên RS485 với Arduino gammon.com.au/forum/?id=11428
DaveP

7

Có hai loại tôi có thể nghĩ ra để phân loại các tính năng bắt đầu của các bo mạch Arduino:

Giữa 2 thiết bị:

  • Nối tiếp: Dễ sử dụng và chỉ cần 2 dòng dữ liệu.
  • OneWire: Khó sử dụng và chậm hơn, nhưng chỉ sử dụng một dòng dữ liệu

Giữa hơn 2 thiết bị

  • I2C: Bạn có thể có tối đa 128 thiết bị trên mạng, có thể định địa chỉ riêng lẻ, nhưng yêu cầu thiết bị chính, sử dụng 2 dòng dữ liệu. Điều này cũng được gọi là Dây.
  • SPI: khó sử dụng, nhưng lựa chọn thiết bị rất nhanh và dễ dàng. sử dụng nhiều dòng dữ liệu (3 + num thiết bị)
  • OneWire: sử dụng địa chỉ oneWire thậm chí còn chậm hơn OneWire thông thường, vẫn chỉ có một dòng dữ liệu
  • SoftwareSerial: Bạn có thể có một số thiết bị được kết nối bởi các dòng Nối tiếp khác nhau, nhưng nó chậm hơn.
  • CAN: chỉ khả dụng khi đến hạn và có thể đánh địa chỉ

Có các phương pháp khác có sẵn, nhưng những phương pháp được liệt kê này chỉ yêu cầu tối thiểu phần cứng bên ngoài.

Để biết xếp hạng khoảng cách, hãy xem http://forum.arduino.cc/index.php?topic=82937.0http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/serial-distance.html

Các tốc độ dữ liệu này được điều khiển trực tiếp trong Nối tiếp và có thể được điều chỉnh ở nhiều mức khác.


5

Freakduino làm cho một số bo mạch Arduino được tích hợp không dây. Mạng không dây tầm xa của họ là 900 MHz và phạm vi ngắn hơn là 2,4 GHz. Tôi nghĩ rằng chúng thực sự là radio XBee và để lập trình, bạn sẽ sử dụng một thư viện có tên là chibiArduino, có sẵn (và được ghi lại) trên trang web Freakduino. Khi giao tiếp không dây với một đài phát thanh khác, bạn có thể sử dụng Phát sóng hoặc chỉ định một đài phát thanh bằng ID đó là giá trị bạn cần đặt trong EEPROM của Freakduino.

Lấy trực tiếp từ trang Freakduino:

Việc bổ sung một đài phát thanh không dây tích hợp dựa trên giao thức IEEE 802.15.4 (cùng giao thức vô tuyến với XBee) cho phép điều khiển không dây các thiết bị hoặc thu thập dữ liệu cảm biến không dây. Mạch pin tùy chọn đã được thêm vào để nó có thể hoạt động như một nút không dây thực sự mà không cần bất kỳ dây cáp điện bên ngoài nào. Bảng mạch cũng được thiết kế để phù hợp với vỏ bọc chắc chắn để thiết kế có thể được vận chuyển an toàn hoặc triển khai trong một kịch bản sử dụng thực tế mà không lo làm hỏng mạch điện.

Đài phát thanh 900 MHz này là một yêu thích cá nhân của tôi. Tôi sử dụng nó mọi lúc vì 900 MHz cung cấp phạm vi tốt hơn nhiều so với 2,4 GHz. Đài có thể phát ra công suất phát lên tới 10 mW, có thể thu được phạm vi đáng ngạc nhiên. Với đường ngắm trực tiếp, vài trăm mét sẽ không gây ngạc nhiên. Nếu cần thêm phạm vi, chế độ điều chế cũng có thể được thay đổi từ OQPSK sang BPSK. Điều này dẫn đến phạm vi bổ sung với chi phí tốc độ dữ liệu, với mức tối đa từ 250 kbps đến 40 kbps ở chế độ tiêu chuẩn.


0

Như bạn đã nói, khiên Ethernet rất đắt, nhưng bạn không phải sử dụng khiên. Kiểm tra enc28j60 để biết mạng có dây hoặc ESP8266 nếu bạn thích không dây. Cả hai đều khoảng $ 4USD. Tôi hiện đang sử dụng ESP8266 và có khoảng 8 thiết bị nói chuyện với nhau và Raspberry Pi. Nó là một con chip nhỏ thực sự tuyệt vời! Tôi không thể nói chuyện riêng với ENC28j60, vì họ vẫn đang ngồi trong gói trên bàn của tôi.


0

Bạn có thể sử dụng bảng đột phá Ethernet ($ 2 tại Sparkfun). Điều này cho phép bạn sử dụng cáp Ethernet nhưng bạn không phải sử dụng giao thức TCP / IP đầy đủ, thay vào đó bạn có thể kết nối các chân dữ liệu với bảng ngắt, sử dụng Ethernet để kết nối chúng và sau đó nói chuyện với chúng bằng cách sử dụng nối tiếp. Tôi sử dụng điều này khá nhiều để đặt một cảm biến dây xa hơn từ Arduino để có kết nối mạnh mẽ nhưng rẻ tiền.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.