Mục lục:
- Bước 1: LÀM PCB
- Bước 2: NHIỀU MISTAKES
- Bước 3: CẢM BIẾN MOUNT
- Bước 4: DÂY CỨNG
- Bước 5: TẢI SONIC SKETCH
- Bước 6: GIAO TIẾP
- Bước 7: ĐÓNG CỬA
Video: PHẢN HỒI LED SONIC: 7 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Xin chào lần nữa, Bạn ghét việc rô bốt của bạn chạy vào mọi thứ? Điều này sẽ khắc phục vấn đề đó. Với 8 cảm biến âm thanh, điều này trông có vẻ phức tạp… nhưng trên thực tế, tôi đã làm điều này rất dễ dàng. Tôi cố gắng đăng các dự án giúp bạn tìm hiểu về Arduino và thể hiện khái niệm 'bên ngoài hộp'. Bài đăng này sẽ giúp bạn hiểu 595 chuyển mạch, pro-minis như một cảm biến có thể lập trình và việc sử dụng hiệu quả phản hồi led thời gian thực. Nếu bạn thích Arduino như một 'sao chép, dán và bổ sung', bạn có thể bỏ qua điều này.
Tôi thích sử dụng những người chuyên nghiệp. Chúng có giá khoảng 2,50 đô la, hoạt động như một công cụ hoàn chỉnh và việc cài đặt các tiêu đề làm cho chúng rất linh hoạt. Được sử dụng như một vi cảm biến, bạn có thể để nó 'làm những gì bạn muốn' thay vì những gì một cảm biến đã mua ra lệnh. Với I2C chỉ sử dụng 2 dây, chúng có thể được buộc lại với nhau trên một đường dây. Vì vậy, chuyển qua MEGA, tôi có thể có 4 minis chạy 4 dòng mã riêng biệt cùng một lúc, chỉ với $ 10,00. Ở đây tôi sử dụng một mini để bật các cảm biến âm thanh qua 595 và hiển thị khoảng cách dẫn theo thời gian thực. Sau đó, chỉ cần chia sẻ 8bits dữ liệu với bo mạch chủ. Điều này giúp giảm tải cho bo mạch mẹ và làm cho mã của cô ấy rất đơn giản.
Có vấn đề với cảm biến âm thanh … không có phản hồi trực quan. Bạn không bao giờ biết liệu cảm biến chỉ là trọng lượng chết hay đang hoạt động! Tôi tin rằng ai đã từng nghĩ ra 'BLINK' thông minh hơn Einstine. Chỉ cần MỘT đèn dẫn và một thế giới thông tin được chuyển tiếp bằng nhấp nháy. Vì vậy, một cảm biến âm thanh cần phản hồi thời gian thực. Ở đây tôi đã sử dụng một dãy đèn led để theo dõi từng cảm biến. Bạn không cần chúng, chỉ cần tạo cảm biến mà không cần đèn led. Nhưng để có đèn led trên PCB là hữu ích.
Bước 1: LÀM PCB
làm cho PCB và cư trú. THẬN TRỌNG… Tôi đã mắc lỗi trên PCB ở các kết nối 4 chân để cắm các cảm biến âm thanh. ECHO và TRIGGER Vcc và đế sẽ cắm vào pcb. Không có đủ chỗ cho các đầu nối nên tôi chỉ làm PCB với các đầu ra. Vì vậy, bạn có thể hàn một đầu nối dây với PCB và cắm vào các cảm biến âm thanh thực tế. Đối với đèn led tôi đặt đèn led màu vàng ở mép trong và màu đỏ ở mép ngoài. điều này giúp bạn nhìn thấy ở khoảng cách xa nếu các cảm biến đang đo chính xác.
Đây là một trong số ít pcb 2 bên mà tôi từng làm. Tôi thà làm 2 ea bên đơn và chạy jumper. Nhưng để có được màn hình led, bạn cần ít nhất một pcb hàng đầu. Tôi đã tách bố cục trong phần tải xuống.
PCB dành cho một máy mini chuyên nghiệp với A4-A5 bên trong tiêu đề cạnh. Dù bằng cách nào, chỉ cần kết nối A4-A5 với Master A4-A5. Đừng quên Vcc và Grounds.
Bước 2: NHIỀU MISTAKES
Bây giờ vì những sai lầm của tôi… tôi đã cố gắng bật tất cả các Trình kích hoạt cùng một lúc (tất cả được gắn với nhau) và loại này hoạt động tốt nhưng một số tương tác đã xảy ra. Vì vậy, bây giờ tất cả ECHOS đi đến vi mô (8) và TRIGGERS được đặt bởi 595. Thêm ba chân (3). Đối với đèn led, ghép kênh sẽ không hoạt động. Bạn cần có thời gian BẬT hoàn toàn cho mỗi đèn led. Điều này có nghĩa là mỗi hàng gồm 7 đèn led phải có 595 của riêng nó. Sau khi bạn cập nhật 595, các đèn led sẽ sáng cho đến bản cập nhật tiếp theo. Trường hợp ghép đèn led chỉ sáng trong phần mười giây đó. Điều này hoạt động tốt trong các độc giả của tôi và nó cần một vi chuyên dụng. Không có thời gian để quét 8 cảm biến âm thanh và đo khoảng cách. Tôi đã thử và nhận được kết quả rất tệ. Ghép kênh các led cũng sẽ có nghĩa là một lưới gồm hàng + cột và điều đó có nghĩa là khoảng hơn 64 điểm cấp dữ liệu trong PCB.
Tôi chỉ sử dụng 7 đầu ra từ 595 vì sự lộn xộn trên PCB. Ở khoảng cách xa, bạn không thể biết được có 7 hay 8 đèn led hay không chỉ là chuyển động của chúng. Bạn có thể bị cám dỗ để buộc tất cả các đèn led vào một điện trở duy nhất và điều này hoạt động, nhưng độ sáng của mảng thay đổi theo số lượng đèn led nhỏ. Vì vậy, một điện trở cho mỗi đèn led là tốt nhất. Tôi chỉ thích 595 nhưng nếu họ chỉ di chuyển các chân Vcc và 0 ra hoặc tạo một ic 18 chân với TẤT CẢ các đầu ra ở cùng một phía… kết nối tất cả tám đầu ra sẽ rất dễ dàng. Nhưng sau đó nó sẽ không được bán với giá dưới 30 xu.
Bước 3: CẢM BIẾN MOUNT
Keo cảm biến âm thanh vào nắp cà phê. giắc cắm đực cần được uốn cong vào trong trên mỗi cảm biến. Điều này hoạt động tốt hơn nếu bạn bẻ cong từng chốt một. Tôi đã sử dụng băng xốp 2 bên chỉ để rung động ít hơn. Các cảm biến của tôi quá gần và chúng cần không gian 1/4 inch để phù hợp với PCB tốt hơn. Tôi đã sử dụng cảm biến âm thanh trước đây và đôi khi một cảm biến không thể đo chính xác và bạn cần ghi nhớ điều này. Vì vậy, không KEO tất cả chúng trong vĩnh viễn.
Nó cũng giúp chạy kiểm tra khoảng cách nhanh trên từng chiếc trước khi bạn sử dụng chúng. Tôi nhận được khoảng một cảm biến có chỉ số kém trong một lô 20. Không tệ với giá tôi đã trả.
Bước 4: DÂY CỨNG
Tôi nghĩ rằng sẽ có chỗ cho các giắc cắm và phích cắm từ PC đến
chân sonic nhưng tôi hết chỗ. Vì vậy, tôi đã cố gắng đấu dây vào đầu pcb và chỉ tạo ra dây echo và dây kích hoạt với giắc cắm cái (8ea). Tôi đã gắn đế 8ea Vcc và 8ea của cảm biến với nhau để điều này chỉ tạo ra 2 kết nối với PCB cho chúng.
Với 8 cảm biến và 8 595, một chiếc máy không hoặc mini chuyên nghiệp KHÔNG THỂ cấp nguồn cho điều này. Phải có một nguồn quy định 5v như một phần của dự án này. Robot của tôi có 7805 @ 1amp đơn giản từ pin. Điều này liên quan đến tất cả Vcc 5v cho tất cả các thiết bị. 7805 giảm khoảng một vôn, vì vậy bạn cần ít nhất 6,5 vôn để cung cấp cho nó. Đó là 2 pin lithium ở 3.3v. Robot của tôi có các nicô cũ từ các gói khoan đã qua sử dụng và 8 ô tô chạy động cơ 12v hộp số điển hình của Trung Quốc trong khung gầm loại xe tăng $ 20.
Bước 5: TẢI SONIC SKETCH
Tải xuống bản phác thảo và cài đặt. Có nhiều cách để nói chuyện với
khác nhưng tôi thích I2c. sự nhầm lẫn là địa chỉ và chủ / nô lệ. Như với hầu hết các cảm biến (hãy nghĩ đến mini thứ 2 như một cảm biến), bạn xác định vị trí của cảm biến và yêu cầu số byte x. điều tương tự ở đây. Trong mini thứ 2, bạn dành ra x lượng byte bạn muốn gửi. Sự nhầm lẫn là tên không quan trọng. Nó chỉ giúp BẠN nhớ nếu bạn chia sẻ tên. Vì vậy, trong bản phác thảo, tôi gửi 8 phép đo khoảng cách âm tính bằng cm là sendR1, sendR2, sendR3, sendR4, sendL1, sendL2, sendL3, sendL4. Master chỉ nhận được 8 byte nếu dữ liệu và bạn có thể gọi các byte đó bất kỳ thứ gì bạn muốn. Tôi đọc chúng là gotR1, gotR2, got….. Thứ tự byte được gửi là như nhau. Vì vậy, byte A, B, C….. đừng nghĩ rằng bằng cách thay đổi tên sẽ cung cấp cho bạn dữ liệu khác nhau. Và cách bắt khác, bạn chỉ có thể nhận dữ liệu được yêu cầu gửi đi. Vì vậy, nếu bạn muốn dữ liệu khác, bạn phải thay đổi CẢ master và slave.
Bước 6: GIAO TIẾP
Bạn có thể bỏ qua điều này nếu bạn biết cách thiết lập 2 Uno để nói chuyện với nhau. Tôi có một số mẩu thông tin ở cuối. Để làm cho nó dễ dàng, tôi sẽ gọi không có trong cơ sở robot M1 và cảm biến âm thanh là S2. Kết nối Vcc, mặt đất, A4, A5 với nhau.
Trong bản phác thảo cho S2, nó bắt đầu bằng #include
Sau đó, tạo 8 byte để gửi. byte R1, byte R2, byte L1, v.v … Uno là một vi 8 bit nên chúng gửi 1byte tại một thời điểm bằng cách sử dụng 'byte' thay vì 'int' là chính xác.
Trong 'setup ()', thêm 'Wire.begin (address)', điều này cho I2c biết đây là thiết bị nào. Địa chỉ thường là bất kỳ số nào bạn thích từ 4 - 200. kích thước của một byte. Ở đây tôi sử dụng số 10. Vì vậy, để nói chuyện với cảm biến S2 này, master phải gọi Wire.requestFrom (10, 8). Đây là địa chỉ 10 và địa chỉ 8 là số byte mong muốn. Cũng trong 'setup ()', hãy thêm Wire.onRequest (isr anyName). Khi M1 gọi yêu cầu, cảm biến S2 sẽ phản ứng với ngắt. Điều này chỉ gọi hàm anyName. Vì vậy, hàm anyName này cần được tạo. Nhìn vào bản phác thảo và xem hàm 'sendThis ()' Đây là nơi các byte thực sự được gửi đến M1. Các byte chỉ đi và KHÔNG phải tên và theo thứ tự được gửi. Đây là nơi bắt đầu kích thước và số lượng dữ liệu cần gửi. Trong định dạng byte dễ dàng này, gửi và nhận phải khớp nhau. Ở đây gửi 8 byte và nhận 8 byte. Một lưu ý ở đây là việc gọi một hàm yêu cầu dấu (). Như delay (), millis (), Serial.print (). Khi sử dụng ISR (quy trình dịch vụ ngắt), việc gọi hàm sẽ giảm dấu (). Vì vậy Wire.onRequest (sendThis) không phải Wire.onRequest (sendThis ()).
Sự nhầm lẫn tôi đã có là chủ / nô lệ. Lúc đầu, tôi nghĩ rằng chủ nhân là chủ. Nhưng trong sketch, bạn có thể chuyển master / slave để yêu cầu từ micro khác hoặc gửi đến micro khác. Miễn là bạn làm theo định dạng cơ bản được nêu ở trên. Hãy nhớ rằng… bạn CHỈ chia sẻ dữ liệu đã được chỉ định.
Hai bít tắt tường. Ngắt isr chỉ ngắt giữa các dòng phác thảo. Nếu bạn bị khóa trong vòng lặp 'while hoặc for', không có gì xảy ra cho đến khi vòng lặp thoát ra. KHÔNG có vấn đề gì lớn vì điều này có thể là vài micro giây và dữ liệu đã cũ.
Vấn đề khác là, 'bên trong' một vi mô có tính toán 100% không có lỗi. Mọi giao tiếp 'bên ngoài' (dây) đều có thể có lỗi. Có nhiều cách để kiểm tra xem dữ liệu được phân phối có bị lỗi và khớp với nguồn hay không. Cách dễ nhất là với tổng kiểm tra. Chỉ cần thêm tổng số byte gửi (giá trị thực) và gửi tổng và ở đầu nhận, hãy thêm tổng và xem chúng có khớp hay không. Nếu chúng khớp, ok hoặc quăng tập dữ liệu đó nếu chúng không khớp. Tất nhiên điều này liên quan đến việc gửi một giá trị số nguyên chứ không phải byte. Vì vậy, bạn chỉ cần chia số nguyên thành byte HI và byte LO và gửi dưới dạng các byte riêng biệt. Sau đó đặt lại với nhau ở đầu thu.
DỄ:
int x = 5696; (bất kỳ giá trị int hợp lệ nào, tối đa là 65k hoặc 32k âm)
byte hi = x >> 8; (22)
byte lo = x; (64)
gửi các byte và kết hợp ở đầu kia….
byte hi = Wire.read ();
byte lo = Wire.read ();
int newx = (hi << 8) + lo; (5696)
Bước 7: ĐÓNG CỬA
Để đóng, cảm biến âm thanh này cung cấp cho bo mạch chủ dữ liệu khoảng cách thô trong thời gian thực. Điều này giải phóng vi mô và làm cho bản phác thảo ít phức tạp hơn nhiều. Bây giờ vi mô có thể đưa ra quyết định tốt để làm chậm, rẽ, dừng hoặc đảo ngược dựa trên dữ liệu tốt thay vì phỏng đoán ngẫu nhiên. Xem bài đăng khác của tôi về IDE bluetooth để tải lên bản phác thảo mà không cần dây và phải kết nối robot của bạn mọi lúc chỉ để thay đổi nhanh bản phác thảo của bạn. Cảm ơn vì đã xem cái này. oldmaninsc.
Đề xuất:
Phản hồi sinh học EMG: 18 bước (có hình ảnh)
Phản hồi sinh học EMG: Thiết lập phản hồi sinh học này sử dụng cảm biến EMG để biểu thị độ căng cơ dưới dạng một chuỗi tiếng bíp và cho phép bạn huấn luyện cơ thể để điều chỉnh độ căng cơ theo ý muốn. Nói tóm lại, bạn càng căng thẳng, thì tiếng bíp càng nhanh và càng thư giãn, thì
Ứng dụng của một nút có thể mở rộng với phản hồi rung: 7 bước (có hình ảnh)
Ứng dụng của nút có thể mở rộng với phản hồi rung: Trong hướng dẫn này, trước tiên chúng tôi sẽ chỉ cho bạn cách sử dụng Arduino Uno để điều khiển động cơ rung thông qua nút mở rộng. Hầu hết các hướng dẫn về nút nhấn đều liên quan đến nút trên breadboard vật lý, trong khi trong hướng dẫn này, nút có
Ngăn chặn bàn tay và bàn chân đẫm mồ hôi với máy bay chiến đấu mồ hôi!: 7 bước (có hình ảnh)
Hãy ngăn chặn bàn tay và bàn chân đầy mồ hôi với Sweat Fighter!: 3/1/19 Cập nhật: Một số người báo cáo bị đau, nguyên nhân là do đảo cực nhanh chóng. Tôi sẽ cập nhật mã để giảm vấn đề đó, nhưng hiện tại bạn nên tạm dừng việc xây dựng điều này
Đồng hồ kỹ thuật số & nhị phân trong 8 chữ số X 7 phân đoạn Màn hình LED: 4 bước (có hình ảnh)
Đồng hồ kỹ thuật số & nhị phân ở 8 chữ số X 7 phân đoạn Màn hình LED: Đây là phiên bản nâng cấp của tôi về Đồng hồ kỹ thuật số & Đồng hồ nhị phân sử dụng Màn hình LED 8 chữ số x 7 đoạn. Tôi muốn cung cấp các tính năng mới cho các thiết bị thông thường, đồng hồ đặc biệt và trong trường hợp này, việc sử dụng màn hình 7 Seg cho Đồng hồ nhị phân là không bình thường và nó
Màn hình hiển thị Ergometer dựa trên Arduino đơn giản với phản hồi khác biệt: 7 bước (có hình ảnh)
Màn hình hiển thị Ergometer dựa trên Arduino đơn giản với phản hồi khác biệt: Tập luyện tim mạch rất nhàm chán, đặc biệt là khi tập thể dục trong nhà. Một số dự án hiện có đang cố gắng giảm bớt điều này bằng cách thực hiện những điều thú vị như ghép công tơ mét với bảng điều khiển trò chơi hoặc thậm chí mô phỏng một chuyến đi xe đạp thực trong VR. Thú vị như họ