Thiết bị mô phỏng 1 dây


10

Những gì tôi muốn làm là biến IC ATTiny trở thành nô lệ trên xe buýt 1 dây, với S / N và danh sách lệnh riêng cho các chức năng cụ thể của nó.

Những gì tôi muốn biết là nếu tôi có thể sử dụng thư viện một dây từ trang web arduino để gửi dữ liệu như một nô lệ.

Ví dụ: bạn có thể có một nô lệ trong một phòng có nhiều loại cảm biến sẽ báo cáo cho chủ về thông tin được yêu cầu hoặc chủ có thể bảo nó điều khiển thứ gì đó như rèm.

Câu hỏi Tôi có phải giám sát tuyến xe buýt và trả lời yêu cầu từ chủ và cũng xem xét cách thức một cảm biến bình thường sẽ gửi dữ liệu? Tần số nào tôi nên chạy nô lệ tại để có được chức năng tốt nhất?

Tôi sẽ không sử dụng sức mạnh ký sinh, như một lưu ý.



@Gerben - Tôi đã tìm thấy điều đó trước khi tìm kiếm. Lướt qua nó. Nhưng tôi lo ngại vì có một số lỗi, mặc dù đã được giải quyết, tôi không biết độ tin cậy. Ngoài ra, tìm kiếm thiết kế kẻ thù bằng cách sử dụng nô lệ tùy chỉnh dường như không phải là một điều phổ biến, do đó câu hỏi ở trên.
RSM

Có vẻ như thư viện hỗ trợ nó. Đây là một thư viện dành riêng cho nó tôi nghĩ. Tốc độ dường như khoảng 15kbps. Tôi nghĩ tốc độ CPU không thực sự quan trọng, nhưng điều đó phụ thuộc vào thư viện. Nếu nó không chạy bằng pin, chỉ cần chạy ở tốc độ 8 MHz hoặc 16 MHz, và nó sẽ ổn.
Gerben

@Gerben Tôi sẽ kiểm tra thư viện để xem nó chạy như thế nào. Một điều tôi vẫn không nhận được là tại sao nó lại không phổ biến đối với một số thứ không sử dụng nô lệ một dây?
RSM

@RSM Bạn nên kiểm tra thư viện này github.com/MarkusLange/OneWireSlave
Ryu_hayabusa

Câu trả lời:


3

Theo như tôi biết, thư viện 1 dây mà bạn liên kết trong câu hỏi của mình chỉ cho phép hoạt động như một chủ, không phải là nô lệ.

Tôi vừa phát hành một thư viện để biến bo mạch Arduino thành nô lệ 1 dây, tại đây: https://github.com/neuoy/OneWireArduinoSlave (chỉnh sửa: chuyển đến đây https://gitea.youb.fr/youen/OneWireArduinoSlave ). Tôi sử dụng nó trong hệ thống tự động hóa nhà tùy chỉnh của mình và nó hoạt động hoàn hảo trong thiết lập của tôi (máy chủ 1 dây, DS9490R, được kết nối với máy tính xách tay qua USB và cũng cung cấp năng lượng cho Arduino, đó là Arduino Uno). Thư viện xử lý các chi tiết cấp thấp: khớp rom, gửi và nhận byte (điều này thực sự khá khó để lấy đúng, chủ yếu là không thể nếu không có bộ phân tích logic). Phần còn lại là tùy thuộc vào bạn.

Nó hoàn toàn được thực hiện với các ngắt, tất cả các giao tiếp được thực hiện ở chế độ nền, bạn có thể thực thi mã khác như bình thường, song song và được thông báo bằng các cuộc gọi lại khi nhận được byte, v.v. Gửi byte cho chủ cũng không đồng bộ.

Tôi cũng biết ít nhất một thư viện khác tồn tại, https://github.com/MarkusLange/OneWireSlave , như đã nhận xét ở trên bởi Ryu_hayabusa. Nó không hoạt động với tôi (không biết là do thiết lập phần cứng của tôi hay vì lý do khác), nhưng nó chắc chắn hoạt động cho người khác, vì vậy cũng đáng để thử. Có vẻ như thư viện này không được triển khai với các ngắt, vì vậy chương trình của bạn bị chặn trong khi chờ hoạt động chính (điều này hoàn toàn chấp nhận được trong rất nhiều tình huống).


Kho lưu trữ dường như đã chuyển sang gitea.youb.fr/youen/OneWireArduinoSlave
Jonas Berlin

1
@JonasBerlin Thật vậy, tôi đã chuyển kho lưu trữ (chỉ cần chỉnh sửa câu trả lời để phản ánh điều đó). Tôi để lại liên kết cũ như một bản sao lưu chỉ trong trường hợp và như một tài liệu tham khảo để tìm những người khác giả mạo trên GitHub.
youen

Có nên sao chép các vấn đề?
Jonas Berlin
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.