- Các thành phần bắt buộc:
- Mô-đun cảm biến siêu âm:
- Giải thích mạch:
- Làm thế nào nó hoạt động:
- Giải thích lập trình:
Robot là những cỗ máy làm giảm nỗ lực của con người trong các công việc nặng nhọc bằng cách tự động hóa các công việc trong các ngành công nghiệp, nhà máy, bệnh viện, v.v. thực hiện một số lệnh bằng cách sử dụng bộ điều khiển hoặc bộ xử lý. Nhưng hôm nay chúng ta ở đây với Robot tự động di chuyển tự động mà không có bất kỳ sự kiện bên ngoài nào tránh tất cả chướng ngại vật trên đường đi của nó, vâng chúng ta đang nói về Robot tránh chướng ngại vật. Trong dự án này, chúng tôi đã sử dụng Raspberry Pi và trình điều khiển Motor để điều khiển robot và cảm biến siêu âm để phát hiện các đối tượng trên đường đi của Robot.
Trước đây chúng tôi đã đề cập đến nhiều Robot hữu ích, bạn có thể tìm thấy chúng trong phần dự án Robotics của chúng tôi.
Các thành phần bắt buộc:
- Raspberry Pi
- Mô-đun cảm biến siêu âm HC-SR04
- Khung ROBOT hoàn chỉnh với vít
- Động cơ DC
- IC L293D
- Bánh xe
- Bảng bánh mì
- Điện trở (1k)
- Tụ điện (100nF)
- Kết nối dây
- Nguồn điện hoặc Ngân hàng điện
Mô-đun cảm biến siêu âm:
Một Chướng ngại vật avoider Robot là một Robot tự động và nó không cần phải được kiểm soát sử dụng bất kỳ từ xa. Các loại robot tự động này có một số cảm biến 'giác quan thứ sáu' như máy dò vật cản, máy dò âm thanh, máy dò nhiệt hoặc máy dò kim loại. Ở đây chúng tôi đã thực hiện phát hiện chướng ngại vật bằng cách sử dụng tín hiệu siêu âm. Với mục đích này, chúng tôi đã sử dụng Mô-đun cảm biến siêu âm.
Cảm biến siêu âm thường được sử dụng để phát hiện vật thể và xác định khoảng cách của chướng ngại vật từ cảm biến. Đây là một công cụ tuyệt vời để đo khoảng cách mà không cần tiếp xúc vật lý, như Đo mực nước trong bể, đo khoảng cách, rô bốt tránh chướng ngại vật, v.v. Vì vậy, ở đây, chúng tôi đã phát hiện đối tượng và đo khoảng cách bằng cách sử dụng Cảm biến siêu âm và Raspberry Pi.
Cảm biến siêu âm HC-SR04 dùng để đo khoảng cách trong phạm vi từ 2cm-400cm với độ chính xác 3mm. Mô-đun cảm biến bao gồm một máy phát siêu âm, máy thu và mạch điều khiển. Cảm biến siêu âm bao gồm hai mắt hình tròn, trong đó một mắt được sử dụng để truyền sóng siêu âm và mắt còn lại để nhận nó.
Chúng ta có thể tính toán khoảng cách của vật thể dựa trên thời gian sóng siêu âm quay trở lại cảm biến. Vì đã biết thời gian và tốc độ âm thanh nên chúng ta có thể tính quãng đường bằng công thức sau.
- Khoảng cách = (Thời gian x Tốc độ âm thanh trong không khí (343 m / s)) / 2.
Giá trị này được chia cho hai vì sóng truyền về phía trước và phía sau bao phủ cùng một khoảng cách, do đó thời gian đến chướng ngại vật chỉ bằng một nửa tổng thời gian thực hiện.
Vì vậy, chúng tôi đã tính toán khoảng cách (tính bằng cm) từ chướng ngại vật như dưới đây:
pulse_start = time.time () while GPIO.input (ECHO) == 1: # Kiểm tra xem ECHO có phải là HIGH GPIO.output (led, False) xung_end = time.time () xung_duration = xung_end - khoảng cách xung_hút = xung_dầm * 17150 khoảng cách = vòng (khoảng cách, 2) avgDistance = avgDistance + khoảng cách
Trong đó xung_dão là thời gian giữa việc gửi và nhận tín hiệu siêu âm.
Giải thích mạch:
Mạch rất đơn giản cho Robot tránh chướng ngại vật này bằng Raspberry Pi. Một mô-đun Cảm biến siêu âm, được sử dụng để phát hiện vật thể, được kết nối tại chân GPIO 17 và 27 của Raspberry Pi. Một Motor Driver IC L293D được kết nối với Raspberry Pi 3 cho các lái xe động cơ robot. Các chân đầu vào của trình điều khiển động cơ 2, 7, 10 và 15 được kết nối với chân GPIO của Raspberry Pi số 12, 16, 20 và 21 tương ứng. Ở đây chúng tôi đã sử dụng hai động cơ DC để điều khiển rô bốt, trong đó một động cơ được kết nối với chân ra 3 & 6 của IC điều khiển động cơ và một động cơ khác được kết nối tại Chân 11 & 14 của IC điều khiển động cơ.
Làm thế nào nó hoạt động:
Hoạt động của Robot tự hành này rất dễ dàng. Khi Robot được bật nguồn và bắt đầu chạy, Raspberry Pi sẽ đo khoảng cách của các vật thể phía trước nó bằng cách sử dụng Mô-đun cảm biến siêu âm và lưu trữ trong một biến. Sau đó RPi so sánh giá trị này với các giá trị được xác định trước và đưa ra quyết định phù hợp để di chuyển Robot sang trái, phải, tiến hoặc lùi.
Ở đây trong dự án này, chúng tôi đã chọn khoảng cách 15cm để thực hiện bất kỳ quyết định nào của Raspberry Pi. Bây giờ bất cứ khi nào Raspberry Pi cách bất kỳ vật thể nào dưới khoảng cách 15cm thì Raspberry Pi sẽ dừng robot và di chuyển nó trở lại, sau đó quay nó sang trái hoặc phải. Bây giờ trước khi di chuyển nó về phía trước một lần nữa, Raspberry Pi một lần nữa kiểm tra xem có chướng ngại vật nào trong phạm vi khoảng cách 15 cm hay không, nếu có thì lặp lại quá trình trước đó, nếu không thì di chuyển robot về phía trước cho đến khi nó phát hiện lại bất kỳ chướng ngại vật hoặc vật thể nào.
Giải thích lập trình:
Chúng tôi đang sử dụng ngôn ngữ Python ở đây cho Chương trình. Trước khi viết mã, người dùng cần cấu hình Raspberry Pi. Bạn có thể xem các hướng dẫn trước đây của chúng tôi để Bắt đầu với Raspberry Pi và Cài đặt & Định cấu hình Hệ điều hành Raspbian Jessie trong Pi.
Phần lập trình của dự án này đóng một vai trò rất quan trọng để thực hiện tất cả các hoạt động. Trước hết, chúng tôi bao gồm các thư viện bắt buộc, khởi tạo các biến và xác định các chân cho cảm biến siêu âm, động cơ và các thành phần.
nhập RPi.GPIO làm thời gian nhập GPIO # Thư viện thời gian nhập GPIO.setwarnings (Sai) GPIO.setmode (GPIO.BCM) TRIG = 17 ECHO = 27……………..
Sau đó, chúng ta đã tạo một số hàm def forward (), def back (), def left (), def right () để di chuyển robot theo hướng tiến, lùi, trái hoặc phải tương ứng và def stop () để dừng robot, kiểm tra các chức năng trong Mã đưa ra bên dưới.
Sau đó, trong chương trình chính, chúng tôi đã khởi chạy Cảm biến siêu âm và đọc thời gian giữa truyền và nhận tín hiệu và tính toán khoảng cách. Ở đây chúng tôi đã lặp lại quá trình này 5 lần để có độ chính xác tốt hơn. Chúng tôi đã giải thích quá trình tính toán khoảng cách bằng cảm biến siêu âm.
i = 0 avgDistance = 0 for i in range (5): GPIO.output (TRIG, False) time.sleep (0,1) GPIO.output (TRIG, True) time.sleep (0,00001) GPIO.output (TRIG, Sai) while GPIO.input (ECHO) == 0: GPIO.output (led, False) pulse_start = time.time () while GPIO.input (ECHO) == 1: # Kiểm tra xem ECHO có phải là HIGH GPIO.output (led, Sai) pulse_end = time.time () xung_duration = xung_end - khoảng cách bắt đầu bằng xung = xung_dầu * 17150 khoảng cách = vòng (khoảng cách, 2) avgDistance = avgDistance + khoảng cách
Cuối cùng nếu Robot tìm thấy bất kỳ chướng ngại vật nào phía trước thì sau khi nhận được khoảng cách từ chướng ngại vật, chúng tôi đã lập trình cho Robot đi theo các tuyến đường khác.
if avgDistance <15: count = count + 1 stop () time.sleep (1) back () time.sleep (1.5) if (count% 3 == 1) & (flag == 0): right () flag = 1 else: left () flag = 0 time.sleep (1.5) stop () time.sleep (1) else: forward () flag = 0
Mã hoàn chỉnh cho Robot tránh chướng ngại vật Raspberry Pi này được cung cấp bên dưới kèm theo Video minh họa.