1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

ROBOT DI CHUYỂN TRONG RÃNH dùng arduino ( có code và mạch in )

25 1K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 6,06 MB

Nội dung

có sơ đồ nguyên lý, sơ đồ khối và lưu đồ giải thuật, mạch in và code đầy đủ cho mạch ROBOT DI CHUYỂN TRONG RÃNH dùng arduino...............................................................................................................................................................

ĐỒ ÁN ROBOT DI CHUYỂN TRONG RÃNH MỤC LỤC DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC BẢNG BIỂU DANH MỤC CÁC TỪ VIẾT TẮT DC Direct Curent IC Itegrated Circuit VCC Voltage Common Collector ĐỒ ÁN ĐỒ ÁN Trang 5/21 CHƯƠNG GIỚI THIỆU CHUNG Trong đồ án lần em xin giới thiệu robot di chuyển rãnh, robot em yêu cầu di chuyển đường vách chắn bên (rãnh) Nguyên lý thiết kế robot: sử dụng sensor đo khoảng cách bên hông xe robot, sau xử lí tín hiệu sensor để điều khiển xe robot di chuyển Trong trình thiết kế em thực phần cứng mô hình xe robot ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 6/21 CHƯƠNG TỔNG QUAN VỀ ROBOT DI CHUYỂN TRONG RÃNH 2.1 CẤU TRÚC Cấu trúc robot gồm: - Hai bánh xe sau nối với hai motor truyền động cho xe Một bánh xe tự phía trước Khối mạch chủ Arduino UNO R3 dùng chíp Atmega328 để tiếp nhận tín hiệu từ cảm biến phát lệnh cho khối mạch Diver L298N điều khiển hoạt 2.2 động xe Hệ thống đo khoảng cách (sensor) gồm cảm biến siêu âm SƠ ĐỒ KHỐI HỆ THỐNG CẢM BIẾN KHỐI XỬ LÍ ĐIỀU KHIỂN ĐỘNG BỘ NGUỒN Hình 2.1 Sơ đồ khối hệ thống Chức khối: - Khối cảm biến: Dùng cảm biến siêu âm đo khỏng cách truyền liệu - thu vào khối mạch xử lí Khối xử lí: Nhận liệu từ cảm biến phát tín hiệu cho khối mạch điều - khiển động L298N điều khiển motor bánh xe Khối điều khiển động cơ: nhận tín hiệu phát từ khối xử lí, điều khiển motor - truyền động Khối nguồn: Sử dụng nguồn pin 12v DC trực tiếp cấp cho toàn hệ thống ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 7/21 2.3 HỆ THỐNG ĐIỀU KHIỂN Board mạch chủ dùng chíp Atmega328 Hình 2.2 Chíp Atmega328 2.4 CẤU TẠO NGUYÊN LÍ HOẠT ĐỘNG CÁC LINH KIỆN 2.4.1 Cảm biến siêu âm (HY - SRF05) Hình 2.3 Cảm biến siêu âm HY-SRF05 Các chân cảm biến: ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 8/21 - VCC : Đây chân cấp nguồn cho cảm biến (nguồn 5V, nguồn - cảm biến xác) Trig : Chân chân phát xung để kích hoạt cảm biến hoạt động Echo: Chân trả tín hiệu xung sóng siêu âm phản xạ lại Đo độ rộng xung ta tính khoảng cách từ cảm biến đến vật - cản OUT: Chân sử dụng để lựa chọn mode hoạt động cảm biến GND: Chân cấp GND cho cảm biến Cảm biến siêu âm gồm phần chính: - Bộ phận phát nhận sóng siêu âm Bộ phận so sánh Mạch phát Mạch ngõ Đo rộng xung với thời gian sóng siêu âm phát từ cảm biến quay trở lại Sóng siêu âm truyền không khí với vận tốc khoảng 343m/s Để đo khoảng cách, ta phát xung ngắn (5 microSeconds - us) từ chân Trig Sau đó, cảm biến tạo xung HIGH chân Echo nhận lại sóng phản xạ pin Khoảng cách đo: - Nhỏ 2cm Lớn 450cm Độ xác đo 0.2cm 2.4.2 Khối mạch ARDUINO UNO R3 ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 9/21 Hình 2.3 Khối mạch Arduino UNO R3 Các thông số Arduino UNO R3: Điện áp hoạt động 5V – DC (chỉ cấp qua cổng USB) Tần số hoạt động 16 MHz Dòng tiêu thụ 30mA Điện áp vào khuyên dùng 7-12V – DC Điện áp vào giới hạn 6-20V – DC Số chân Digital I/O 14 (6 chân PWM) Số chân Analog (độ phân giải 10bit) Dòng tối đa chân I/O 30 mA Dòng tối đa (5V) 500 mA Dòng tối đa (3.3V) 50 mA Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bootloader SRAM KB (ATmega328) EEPROM KB (ATmega328) ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 10/21 Bảng 2.1 Thông số khối mạch Arduino UNO R3 2.4.3 Khối mạch điều khiển động L298N Sử dụng nguồn 12v DC Hình 2.4 Module L298N a IC L298 IC L298 IC tích hợp nguyên khối gồm mạch cầu H bên Với điện áp làm tăng công suất nhỏ động DC loại vừa… b Chức chân Module L298N - chân INPUT: IN1, IN2, IN3, IN4 chân nhận tín hiệu điều khiển - chân OUTUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với chân INPUT) nối với chân 2, 3, 13, 14 L298 Chân OUT1, OUT2 nối với motor1 OUT3, OUT4 nối với motor2 - Hai chân ENA ENB dùng để điều khiển tốc độ động 2.4.4 Động Motor DC Động sử dụng nguồn 12v DC sử dụng giảm tốc ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 11/21 Hình 2.5 Motor 12v DC 2.5 NGUYÊN LÝ HOẠT ĐỘNG CỦA ROBOT Thiết kế robot di chuyển rãnh, mạch tổng quát gồm cảm biến siêu âm tác dụng đo khoảng cách bên đường rãnh dài, sau khoảng cách mà cảm biến đo đưa liệu xử lí trung tâm Bộ xử lí trung tâm khối mạch Arduino UNO R3 nhiệm vụ xử lí liệu cảm biến truyền qua, sau xử lí xong xử lí trung tâm đưa liệu xử lí phát tín hiệu cho khối mạch điều khiển động cuối khối mạch định truyền động bánh xe ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN 2 Trang 12/21 CHƯƠNG LẬP TRÌNH MÔ PHỎNG SENSOR 3.1 LƯU ĐỒ GIẢI THUẬT BẮT ĐẦU RẼ PHẢI RẼ TRÁI KẾT THÚC MO DU LE L29 8N CHẠY TỚI Hình 3.1 Lưu đồ giải thuật ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 13/21 SENSOR Trái > Phải Trái = Phải Trái < Phải Hình 3.2 Lưu đồ sensor xử lí Giải thích lưu đồ: Lưu đồ Hình 3.1 bắt đầu cảm biến đo khoảng cách chờ xử lí hình 3.2, sensor làm việc trường hợp: - 1: Nếu khoảng cách sensor trái lớn khoảng cách sensor phải - xe rẽ trái 2: Nếu khoảng cách sensor trái nhỏ khoảng cách sensor phải - xe rẽ phải 3: Nếu sensor đo khoảng cách xe chạy tới Sau cảm biến đo xong truyền liệu xử lí (Arduino), nhận liệu xong lúc Arduino phát tín hiệu điều khiển cho Module L298N Lúc module L298N thực thi theo tín hiệu mà sensor đo điều khiển motor quay theo yêu cầu 3.2 MÔ PHỎNG 3.2.1 Test cảm biến siêu âm với arduino Hình 3.3 Nối dây test cảm biến với arduino ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 14/21 Hình 3.4 Vật cản bên phía cảm biến bên trái Hiển thị kết đo máy tính phần mềm arduino Hình 3.5 Kết đo vật cản bên cảm biến trái ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 15/21 Hình 3.6 Vật cản bên phía cảm biến phải Hình 3.7 Kết đo vật cản bên cảm biến phải ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 16/21 Hình 3.8 Vật cản bên cảm biến Hình 3.9 Kết đo cảm biến ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 17/21 3.2.2 Test mạch điều khiển động với arduino Sử dụng pin 12v DC cấp nguồn cho mạch điều khiển động Hình 3.10 Bắt đầu test mạch điều khiển động Hình 3.11 Động truyền động nhờ mạch điều khiển ROBOT DI CHUYỂN TRONG RÃNH Motor2 Motor1 ĐỒ ÁN Trang 18/21 CHƯƠNG THỰC THI PHẦN CỨNG 4.1 SƠ ĐỒ THIẾT KẾ PHẦN CỨNG Bánh xe1 Module Hình 4.1 Sơ đồ thiết kế phần cứng Mạch cảm biến siêu âm (Sensor1, Sensor2) tác dụng đo khoảng cách Bánh xe2 bên đường vách chắn bên, cảm biến lấy nguồn từ arduino, sau khoảng cách mà cảm biến đo đưa liệu Module Arduino Module Arduino nhiệm vụ xử lí liệu cảm biến truyền qua, sau xử lí xong đưa liệu xử lí phát tín hiệu cho Module L298N khối mạch nối với motor định truyền động bánh xe 4.2 TEST MÔ HÌNH Cấp nguồn cho mô hình, tiến hành nạp code cho module arduino Dựng vách ngăn bên cho mô hình xe robot vào khoảng vách ngăn ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 19/21 Hình 4.2 Test mô hình xe robot Hình 4.3 Nạp code cho arduino Tiến hành đặt xe robot vào rãnh, trình thực thi mô hình thực tế ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 20/21 CHƯƠNG KẾT LUẬN 5.1 ƯU ĐIỂM NHƯỢC ĐIỂM - Ưu điểm: Mạch robot di chuyển rãnh giúp cho việc mở rộng mô hình kinh doanh lĩnh vực sáng tạo robot - Nhược điểm: Mạch hoạt động PIN nên xảy tình trạng nhanh hết nguồn, giá linh kiện mạch đắt, mạch chạy bền không tránh khỏi lỗi lập trình Tốc độ quay mô hình ảnh hưởng motor 5.2 ỨNG DỤNG HƯỚNG PHÁT TRIỂN Đồ án tập lớn, thử thách lớn sinh viên, với tập lớn giúp cho sinh viên vận dụng cách cụ thể kiến thức mà sinh viên học suốt trình học tập Đây cách học theo phương pháp tự nghiên cứu tìm tòi phát triển tư Thông qua đồ án lần giúp em vận dụng mạch Robot thực tiễn, nhỏ so với loại Robot khác, phát triển cải tiến từ mạch nhỏ Mạch thêm phần điều khiển vào bánh xe trước việc rẽ trái, rẽ phải tốt ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 21/21 TÀI LIỆU THAM KHẢO - arduino.vn mcu.banlinhkien.vn/threads/dieu-khien-dong-co-dc-voi-module-l298- - v1.171/ luanvan.net.vn/luan-van/do-an-thiet-ke-robot-do-line-25788/ arduinovn.info/do-khoang-cach-voi-cam-bien-sieu-am-vaarduino.html ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 22/21 PHỤ LỤC CODE #define trig_trai #define echo_trai #define trig_phai 10 #define echo_phai 11 #define in1 #define in2 #define ena #define in3 #define in4 #define enb Long xung_trai, xung_phai; Float kc_trai, kc_phai; void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode (trig_trai, OUTPUT); pinMode (echo_trai, INPUT); pinMode (trig_phai, OUTPUT); pinMode (echo_phai, INPUT); pinMode (in1, OUTPUT); pinMode (in2, OUTPUT); pinMode (ena, OUTPUT); pinMode (in3, OUTPUT); pinMode (in4, OUTPUT); pinMode (enb, OUTPUT); ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 23/21 } void tien_trai (byte td) { digitalWrite (in1, HIGH); digitalWrite (in2, LOW); analogWrite (enb, td); } void tien_phai (byte td) { digitalWrite (in3, HIGH); digitalWrite (in4, LOW); analogWrite (enb, td); } void lui_trai (byte td) { digitalWrite (in1, LOW); digitalWrite (in2, HIGH); analogWrite (ena, td); } void lui_phai (byte td) { digitalWrite (in3, LOW); digitalWrite(in4, HIGH); analogWrite (enb, td); } void loop() { // put your main code here, to run repeatedly: digitalWrite (trig_trai, HIGH); Delay (1); ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 24/21 digitalWrite (trig_trai, LOW); xung_trai = pulseIn (echo_trai, HIGH); kc_trai = (float) (xung_trai/58.0); digitalWrite (trig_phai, HIGH); Delay (1); digitalWrite (trig_phai, LOW); xung_phai = pulseIn (echo_phai, HIGH); kc_phai = (float) (xung_phai/58.0); Serial.print (kc_trai); Serial.println ("cm"); Serial.print (kc_phai); Serial.println ("cm"); Delay (10); If (kc_trai = kc_phai) { tien_trai (255); tien_phai (255); delay (500); }; If (kc_trai > kc_phai) { tien_trai (50); tien_phai (255); } else ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 25/21 { tien_trai (255); tien_phai (100); Delay (500); }; If (kc_trai = kc_phai >100) { lui_trai (100); lui_phai (100); Delay (500); }; } 6.17% ROBOT DI CHUYỂN TRONG RÃNH ... Serial.begin(960 0); pinMode (trig_trai, OUTPUT); pinMode (echo_trai, INPUT); pinMode (trig_phai, OUTPUT); pinMode (echo_phai, INPUT); pinMode (in1 , OUTPUT); pinMode (in2 , OUTPUT); pinMode (ena, OUTPUT);... pinMode (in3 , OUTPUT); pinMode (in4 , OUTPUT); pinMode (enb, OUTPUT); ROBOT DI CHUYỂN TRONG RÃNH ĐỒ ÁN Trang 23/21 } void tien_trai (byte td) { digitalWrite (in1 , HIGH); digitalWrite (in2 , LOW);... (enb, td); } void tien_phai (byte td) { digitalWrite (in3 , HIGH); digitalWrite (in4 , LOW); analogWrite (enb, td); } void lui_trai (byte td) { digitalWrite (in1 , LOW); digitalWrite (in2 , HIGH);

Ngày đăng: 11/03/2017, 20:48

TỪ KHÓA LIÊN QUAN

w