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

ỨNG DỤNG LA BÀN SỐ TRONG ĐIỀU KHIỂN XE ROBOT THEO PHƯƠNG LẬP TRÌNH ĐƯỢC

45 88 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 45
Dung lượng 2,08 MB

Nội dung

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN 1.1 GIỚI THIỆU ĐỀ TÀI Tổng quan về la bàn Từ thời xa xưa, sự ra đời của la bàn từ đã đóng vai trò rất quan trọng trong cuộc sống con người. La bàn từ hoạt động dựa trên việc xác định phương hướng so với từ trường trái đất và được ứng dụng nhiều trong các hoạt động đi biển, vào rừng, sa mạc,... Cho đến ngày nay, la bàn từ là một vật quan trọng không thể thiếu trong lĩnh vực hàng hải, có tác dụng dùng để chỉ hướng đi và xác định vị trí của tàu trên biển dựa trên nguyên lý cảm nhận hướng từ trường trái đất so với hướng của tàu. Hướng đi chính xác của tàu phụ thuộc vào độ chính xác của thiết bị, tức là phụ thuộc vào loại la bàn và nguyên lý hoạt động của la bàn. Hình 1.1: Ảnh minh họa la bàn từ Người ta xem trái đất là một nam châm khổng lồ được bao bọc bởi các đường sức từ nối liền giữa hai cực, độ lớn của nó giao động trong khoảng 25.000-65.000 nT, trong đó: + Cực Bắc địa từ nằm gần cực Bắc địa lý lại là cực Nam (S) của từ trường trái đất (hay thanh nam châm trái đất) + Cực Nam địa từ nằm gần cực Nam địa lý lại là cực Bắc (N) của từ trường trái đất (hay thanh nam châm trái đất) Lý do chọn đề tài Nhận thấy được tầm quan trọng của la bàn trong cuộc sống nói chung và trong việc định hướng nói riêng, nên em quyết định chọn đề tài: “Ứng ụng la bàn số trong điều khiển xe robot theo phương lập trình được” để thực hiện nghiên cứu trong đồ án này với mong muốn nâng cao kiến thức và học hỏi được nhiều kinh nghiệm. 1.2 MỤC TIÊU Thiết kế và thi công Xe robot chạy theo phương lập trình được sử dụng cảm biến là bàn số. Thiết kế một “Bộ định hướng” nhỏ gọn, chạy độc lập với “Bộ điều khiển lái”. “Bộ định hướng” và “Bộ điều khiển lái” được kết nối với nhau theo chuẩn GROVE. 1.3 GIỚI HẠN Bộ định hướng được thiết kế sử dụng các module tích hợp có sẵn, dữ liệu được hiển thị trên led 7 thanh 4 số và led đơn RGB. Chỉ sử 1 nhấn để thực hiện quá trình cài đặt hướng. Bộ điều khiển lái sử dụng nguồn Pin 9v và chỉ sử dụng 1 nút nhấn điều khiển trạng thái RUN/STOP. Sử dụng 2 bộ nguồn độc lập để cấp cho mạch và động cơ.

z TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN - ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP  BÁO CÁO MÔN HỌC ĐỒ ÁN ĐIỆN TỬ ĐỀ TÀI: ỨNG DỤNG LA BÀN SỐ TRONG ĐIỀU KHIỂN XE ROBOT THEO PHƯƠNG LẬP TRÌNH ĐƯỢC GVHD: ThS NGUYỄN THANH BÌNH SVTH: NGUYỄN NGỌC NHIỆM MSSV: 16141218 TP.Hồ Chí Minh, ngày 08 tháng 01 năm 2020 Sinh Viên Thực Hiện Nguyễn Ngọc Nhiệm 16141218 Điểm: Nhận xét giáo viên ……………………………………………………………………………………… .………………………………………………………………………………… … … .……………………………………………………………………………………… …………………………………………………………………………………….… ………………………………………………………………………………….…… ……………………………………………………………………………….……… …………………………………………………………………………….………… ………………………………………………………………………….…………… ……………………………………………………………………….……………… …………………………………………………………………….………………… ………………………………………………………………… Chữ ký giáo viên LỜI CAM ĐOAN Đề tài em tự thực dựa vào số tài liệu tham khảo không chép từ tài liệu hay cơng trình có trước Nếu có chép em hồn tồn chịu trách nhiệm Em xin chân thành cảm MỤC LỤC DANH MỤC HÌNH VẼ Chương GIỚI THIỆU TỔNG QUAN 1.1 GIỚI THIỆU ĐỀ TÀI 1.2 MỤC TIÊU 1.3 GIỚI HẠN Chương THIẾT KẾ SƠ ĐỒ KHỐI 2.1 GIỚI THIỆU 2.2 KHẢO SÁT SƠ ĐỒ KHỐI 2.2.1 KHỐI NGUỒN 2.2.2 KHỐI DIRECTION CONTROLLER 2.2.3 KHỐI DRIVE CONTROLLER 16 Chương 23 THI CÔNG MẠCH 23 3.1 THIẾT KẾ PHẦN CỨNG 23 3.1.1 BỘ DIRECTION CONTROLLER 23 3.1.1.1 Thiết kế sơ đồ nguyên lý 23 3.1.1.2 Thiết kế PCB 24 3.1.1.3 Thi công kiểm tra 24 3.1.2 BỘ DRIVE CONTROLLER 25 3.1.2.1 Thiết kế sơ đồ nguyên lý 25 3.1.2.2 Lắp ráp kiểm tra 26 3.1.3 NGUYÊN LÝ HOẠT ĐỘNG 28 3.2 VIẾT CHƯƠNG TRÌNH 30 3.2.1 GIỚI THIỆU PHẦN MỀM LẬP TRÌNH 30 3.2.2 BỘ DIRECTION CONTROLLER 32 3.2.2.1 Lưu đồ giải thuật 32 3.2.2.2 Chương trình 32 3.2.3 BỘ DRIVE CONTROLLER 35 3.2.3.1 Lưu đồ giải thuật 35 3.2.3.2 Chương trình 35 Chương 39 KẾT QUẢ THỰC HIỆN VÀ HƯỚNG PHÁT TRIỂN 39 4.1 KẾT QUẢ THỰC HIỆN 39 4.2 HƯỚNG PHÁT TRIỂN 40 TỔNG KẾT 41 TÀI LIỆU THAM KHẢO 42 DANH MỤC HÌNH VẼ Hình 1.1: Ảnh minh họa la bàn từ Hình 2.1: Sơ đồ khối Hình 2.1: Ảnh minh họa Pin 9v Panasonic Hình 2.2: Ảnh minh họa pin Lion 18650 Hình 2.3: Ảnh minh họa module cảm biến GY-511 LSM303DLHC Hình 2.4: Sơ đồ nguyên lý module GY-511 11 Hình 2.5: Ảnh minh họa Arduino Nano 11 Hình 2.6: Sơ đồ chân Hình ảnh thực tế led đoạn anode Chung 13 Hình 2.7: Các số thập phân hiển thị tương ứng led 14 Hình 2.8: Ảnh minh họa led số anode 14 Hình 2.9: Ảnh minh họa led RGB Anode chung Cathode chung 15 Hình 2.10: Ảnh minh họa nút nhấn tròn 15 Hình 2.11: Ảnh minh họa vi điều khiển Atmega 328 16 Hình 2.12: Ảnh minh họa arduino Uno 17 Hình 2.13: Ảnh minh họa Module L298N 19 Hình 2.14: Sơ đồ nguyên lý Module 20 Hình 2.15: Ảnh minh họa nút nhấn 12x12x6mm 21 Hình 2.16: Ảnh minh họa động giảm tốc V1 có gắn bánh xe 22 Hình 3.1: Sơ đồ nguyên lý khối Direction Controller 23 Hình 3.2: Sơ đồ layout Bộ Direction Controller 24 Hình 3.3: Ảnh mặt trước mạch sau hồn thành thi cơng 24 Hình 3.4: Ảnh mặt sau mạch sau hồn thành thi cơng 25 Hình 3.5: Sơ đồ nguyên lý khối Drive Controller 25 Hình 3.6: Ảnh minh họa khung xe bánh mica tầng 26 Hình 3.7: Ảnh minh họa khung xe bánh mica tầng sau lắp ráp 27 Hình 3.8: Ảnh điều khiển lái sau lắp ráp 27 Hình 3.9: Sơ đồ nguyên lý toàn mạch 28 Hình 3.10: Giao diện phần mềm lập trình Arduino IDE 30 Hình 3.11: Lưu đồ giải thuật định hướng 32 Hình 3.12: Lưu đồ giải thuật điều khiển lái 35 Hình 4.1 Xe robot sau hồn thành lắp ráp 39 Hình 4.2 Xe robot sau hồn thành lắp ráp 40 CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN 1.1 GIỚI THIỆU ĐỀ TÀI Tổng quan la bàn Từ thời xa xưa, đời la bàn từ đóng vai trò quan trọng sống người La bàn từ hoạt động dựa việc xác định phương hướng so với từ trường trái đất ứng dụng nhiều hoạt động biển, vào rừng, sa mạc, Cho đến ngày nay, la bàn từ vật quan trọng thiếu lĩnh vực hàng hải, có tác dụng dùng để hướng xác định vị trí tàu biển dựa nguyên lý cảm nhận hướng từ trường trái đất so với hướng tàu Hướng xác tàu phụ thuộc vào độ xác thiết bị, tức phụ thuộc vào loại la bàn nguyên lý hoạt động la bàn Hình 1.1: Ảnh minh họa la bàn từ Người ta xem trái đất nam châm khổng lồ bao bọc đường sức từ nối liền hai cực, độ lớn giao động khoảng 25.000-65.000 nT, đó: + Cực Bắc địa từ nằm gần cực Bắc địa lý lại cực Nam (S) từ trường trái đất (hay nam châm trái đất) + Cực Nam địa từ nằm gần cực Nam địa lý lại cực Bắc (N) từ trường trái đất (hay nam châm trái đất) Lý chọn đề tài Nhận thấy tầm quan trọng la bàn sống nói chung việc định hướng nói riêng, nên em định chọn đề tài: “Ứng ụng la bàn số điều khiển xe robot theo phương lập trình được” để thực nghiên cứu đồ án với mong muốn nâng cao kiến thức học hỏi nhiều kinh nghiệm 1.2 MỤC TIÊU Thiết kế thi công Xe robot chạy theo phương lập trình sử dụng cảm biến bàn số Thiết kế “Bộ định hướng” nhỏ gọn, chạy độc lập với “Bộ điều khiển lái” “Bộ định hướng” “Bộ điều khiển lái” kết nối với theo chuẩn GROVE 1.3 GIỚI HẠN Bộ định hướng thiết kế sử dụng module tích hợp có sẵn, liệu hiển thị led số led đơn RGB Chỉ sử nhấn để thực trình cài đặt hướng Bộ điều khiển lái sử dụng nguồn Pin 9v sử dụng nút nhấn điều khiển trạng thái RUN/STOP Sử dụng nguồn độc lập để cấp cho mạch động CHƯƠNG 2: THIẾT KẾ SƠ ĐỒ KHỐI 2.1 GIỚI THIỆU Chương giới thiệu, khảo sát khối đề tài Giới thiệu tổng quan chức thành phần có khối 2.2 KHẢO SÁT SƠ ĐỒ KHỐI Hình 2.1: Sơ đồ khối Chức khối:  Khối nguồn : có chức cấp nguồn cho toàn mạch hoạt động  Khối Direction Controller : có vai trò lấy liệu từ cảm biến la bàn số, xử lí liệu giao tiếp với khối Drive Controller thông qua chuẩn UART  Khối Driver Controller: Nhận liệu từ khối Direction Controller, xử lý liệu để điều khiển motor để xe chạy thẳng, rẻ trái, rẻ phải,… 2.2.1 KHỐI NGUỒN  Pin 9V Panasonic Hi-Top Chức năng: cấp nguồn cho arduino Uno định hướng 3.1.3 NGUYÊN LÝ HOẠT ĐỘNG  Sơ đồ nguyên lý toàn mạch Hình 3.9: Sơ đồ ngun lý tồn mạch  Ngun lý hoạt động Nút RS có chức cài đặt trạng thái RUN/STOP cho xe Nút SET có chức cài đặt góc để xe chạy Mặc định góc cài đặt 0.00 Giá trị offset hiển thị led Offset = Real_value – Set Ban đầu vừa cấp điện, cảm biến la bàn số gia tốc thực đo góc từ mơi trường xung quanh sau đưa liệu vào arduino nano để thực xử lý Tiếp theo arduino nano gửi liệu offset sau xử lý đến Arduino Uno thông qua giao tiếp UART 28 Arduino UNO sau nhận liệu thực xử lý xử liệu để điều khiển xe chạy thẳng, dừng, trái, phải cho xe di chuyển theo hướng mà ta SET Khi ta nhấn nút SET, góc cài đặt cập nhật theo góc mà muốn Khi ta nhấn RS, xe thực chuyển động dừng 29 3.2 VIẾT CHƯƠNG TRÌNH 3.2.1 GIỚI THIỆU PHẦN MỀM LẬP TRÌNH  Phần mềm hổ trợ lập trình Arduino IDE Arduino mơi trường phát triển tích hợp mã nguồn mở, cho phép người dùng dễ dàng viết code tải lên bo mạch Mơi trường phát triển viết Java dựa ngơn ngữ lập trình xử lý phần mềm mã nguồn mở khác Phần mềm sử dụng với bo mạch Arduino Arduino môi trường phát triển tích hợp đa tảng, làm việc với điều khiển Arduino để viết, biên dịch tải code lên bo mạch Phần mềm cung cấp hỗ trợ cho loạt bo mạch Arduino Arduino Uno, Nano, Mega, Esplora, Ethernet, Fio, Pro hay Pro Mini LilyPad Arduino Hình 3.10: Giao diện phần mềm lập trình Arduino IDE 30 Ngơn ngữ phổ quát cho Arduino C C++, phần mềm phù hợp cho lập trình viên quen thuộc với ngơn ngữ Các tính làm bật cú pháp, thụt đầu dòng tự động, làm cho trở thành thay đại cho IDE khác Bọc bên giao diện đồ họa xếp hợp lý, Arduino sở hữu chức để thu hút nhà phát triển Arduino, mở đường đến đầu thành công thơng qua mơ-đun gỡ lỗi Tất tính lưu trữ bên vài nút bấm, menu, giúp dễ dàng hiểu điều hướng, đặc biệt với lập trình viên chun nghiệp Ngồi ra, việc tích hợp sưu tập ví dụ mẫu giúp cho người lần đầu tiếp xúc với Arduino làm quen nắm bắt ứng dụng nhanh Để kết nối bo mạch Arduino với máy tính, phải cài đặt driver cần thiết cho máy tính, bạn Sau đó, lựa chọn mơ hình để làm việc nhờ sử dụng menu Tools ứng dụng bắt đầu viết chương trình Chương trình bao gồm mảng thư viện phong phú EEPROM, Firmata, GSM, Servo, TFT, WiFi, 31 3.2.2 BỘ DIRECTION CONTROLLER 3.2.2.1 Lưu đồ giải thuật Hình 3.11: Lưu đồ giải thuật định hướng 3.2.2.2 Chương trình #include ; #include LSM303 compass; #include "SevSeg.h" SevSeg sevseg; int inputcd(int chan); byte btn_set = 13; byte blue_led = 11; byte red_led = 12; int dl; float heading,offset,offset_send; bool red = 0; 32 long real_val,val,set=0; int i; char myString[32]; void setup() { byte numDigits = 4; byte digitPins[] = { A1, A2, A3,2}; byte segmentPins[] = {10, 3, 5, 7, 8, 9, 4, 6}; bool resistorsOnSegments = true; // 'false' means resistors are on digit pins byte hardwareConfig = COMMON_ANODE; // See README.md for options bool updateWithDelays = false; // Default 'false' is Recommended bool leadingZeros = false; // Use 'true' if you'd like to keep the leading zeros bool disableDecPoint = false; // Use 'true' if your decimal point doesn't exist or isn't connected sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments, updateWithDelays, leadingZeros, disableDecPoint); sevseg.setBrightness(90); Wire.begin(); Serial.begin(9600); pinMode(btn_set,INPUT_PULLUP); pinMode(blue_led,OUTPUT); pinMode(red_led,OUTPUT); compass.init(); compass.enableDefault(); compass.m_min = (LSM303::vector){-420, -525, -360}; compass.m_max = (LSM303::vector){+400, +449, +529}; } void loop() { compass.read(); heading = compass.heading((LSM303::vector) { if (inputcd(btn_set)==0) { set = long(heading*100); red = 1; } static unsigned long timer = millis(); if (millis() - timer >= 100) { timer += 100 ; real_val = long(heading*100); if (real_val >= set) val = real_val - set; else val = set - real_val; offset_send = (float(real_val - set))*0.01; offset = (float(val))*0.01; // send data 33 0, -1, }); dtostrf(offset, 0, 1, myString); Serial.write(''); Serial.write('\0'); i=0; sevseg.setNumber(offset, 1); // led rgb if (real_val < set) { digitalWrite(blue_led,LOW); digitalWrite(red_led,HIGH); } else { digitalWrite(blue_led,HIGH); digitalWrite(red_led,HIGH); } if ((red == 1) && (dl = -3)&&(offset 3) xoay_trai(); } } // chong doi cho nut nhan int inputcd(int chan) { if(digitalRead(chan)==0) { delay(20); if(digitalRead(chan)==0) { while (digitalRead(chan)==0); return 0; } } return 1; } //nhan du lieu void nhandulieu() { static boolean recvInProgress = false; static byte i = 0; char start_ch = ''; char val; while (Serial.available() > && newData == false) { val = Serial.read(); if (recvInProgress == true) { if (val != end_ch) { receivedChars[i] = val; i++; if (i >= numChars) { i = numChars - 1; } } else { receivedChars[i] = '\0'; recvInProgress = false; i = 0; newData = true; 37 } } else if (val == start_ch) { recvInProgress = true; } } } 38 CHƯƠNG 4: KẾT QUẢ THỰC HIỆN VÀ HƯỚNG PHÁT TRIỂN 4.1 KẾT QUẢ THỰC HIỆN Giá trị cảm biến la bàn số có phần chênh lệch so với thực tế ảnh hưởng nhiều yếu tố như: sai số q trình tính tốn, nhiễu từ trường tác động mắc chung thiết bị với nhau, chương trình chưa tối ưu … Hình 4.1 Xe robot sau hồn thành lắp ráp Nhìn chung, định hướng thực đo góc tương đối xác ổn định Dữ liệu đưa sang điều khiển lái theo chuẩn GROVE nên kinh hoạt sử dụng định hướng cho thiết bị khác 39 Hình 4.2 Xe robot sau hoàn thành lắp ráp Bộ điều khiển lái hoạt động tương đối xác, với yêu cầu đặt ban đầu 4.2 HƯỚNG PHÁT TRIỂN Cải thiện độ xác giá trị góc định hướng Tối ưu code để điều khiển lái xác định vị trí hướng cài đặt xác Nghiên cứu thiết kế điều khiển thu thập giữ liệu xe robot từ xa Thiết kế sạc nguồn cho xe, lắp đặt trực tiếp xe với vị trí thuận lợi 40 CHƯƠNG 5: TỔNG KẾT Trong trình thực đồ án với đề tài “ Ứng dụng la bàn số điều khiển xe robot theo phương lập trình được”em tiếp cận, tìm hiểu thực bo mạch Arduino Uno Arduino Nano, cảm biến thiết bị hỗ trợ khác Bên cạnh đó, em học hỏi tích lũy khối lượng kiến thức định ngơn ngữ lập trình Arduino, cách kết nối Arduino với thiết bị ngoại vi Ba phần trọng tâm mà nhóm chúng em tìm hiểu phát triển thành cơng là: - Thiết kế định hướng chạy độc lập với kết tương đối xác - Giao tiếp hai module Arduino với thông qua chuẩn giao tiếp UART - Thiết kế mơ hình xe robot nhỏ, gọn hoạt động tương đối ổn định EM hi vọng kết mà em tìm hiểu góp phần làm nên tài liệu có ích cho bạn sinh viên khác nghiên cứu ứng dụng liên quan đến la bàn số 41 TÀI LIỆU THAM KHẢO [1] GY-51 LSM303DLH la bàn số Arduino +Processing https://vidieukhien.xyz/2014/11/17/gy-51-lsm303dlh-la-ban-so-arduino-processing/ [2] Sử dụng la bàn điện từ tìm đường cho Robot http://mayin3d.xyz/vi/news/Ky-thuat-in-3D/Su-dung-la-ban-dien-tu-tim-duong-dicho-Robot-186/ [3] Truyền số kiểu long, int, float giao tiếp Serial (UART) http://arduino.vn/tutorial/1471-truyen-cac-so-kieu-long-int-float-trong-giao-tiepserial-uart [4] Cách dùng Module điều khiển động L298N - cầu H để điều khiển động DC http://arduino.vn/bai-viet/893-cach-dung-module-dieu-khien-dong-co-l298n-cau-hde-dieu-khien-dong-co-dc [5] Tổng quan cách sử dụng Module LED đoạn http://arduino.vn/result/1369-tong-quan-ve-cach-su-dung-module-4-led-7-doanphan-1 [6] Cảm Biến La Bàn Số Và Gia Tốc GY-511 LSM303DLHC https://hshop.vn/products/cam-bien-la-ban-so-va-gia-toc-gy-511-lsm303dlhc 42

Ngày đăng: 23/04/2020, 08:56

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w