Báo cáo xe điều khiển và xe dò line sử dụng arduino, dò line sử dụng mạch trcr5000, xe điều khiển qua bluetooth và có tay gắp để gắp bóng Báo cáo môn vi điều khiển Ngày nay chúng ta đang sống trong kỷ nguyên của khoa học công nghệ, đặc biệt là công nghệ thông tin. Trong thời đại bùng nổ thông tin và có rất nhiều phương thức truyền đạt thông tin thì phương thức truyền thông tin bằng công nghệ số là nhanh và phổ biến nhất, được nhiều người tiếp cận nhất. Trong những năm gần đây, công nghệ truyền nhận dữ liệu không dây đang có những bước phát triển mạnh mẽ, góp công lớn trong việc phát triển các hệ thống điều khiển, giám sát từ xa, đặc biệt là các hệ thống thông minh. Hiện nay, có khá nhiều công nghệ không truyền nhận dữ liệu không dây như RF, Wifi, Bluetooth, NFC. Trong đó, Bluetooth là một trong những công nghệ được phát triển từ lâu và luôn được cải tiến để nâng cao tốc độ cũng như khả năng bảo mật. Trên thị trường Việt Nam hiện nay chưa có nhiều sản phẩm điều khiển thiết bị không dây, đa số những sản phẩm hiện có đều là nhập khẩu từ nước ngoài với giá thành cao. Việc nghiên cứu và thiết kế một bộ sản phẩm điều khiển thiết bị không dây có một ý nghĩa lớn, giúp tăng thêm sự lựa chọn cho ngƣời sử dụng, sản phẩm được sản xuất trong nước nên giá thành rẻ và góp phần phát triển các hệ thống điều khiển thông minh. Bên cạnh đó, các Robot tự hành được ứng dụng trong đời sống ngày càng nhiều như robot vận chuyển hàng hóa, kiểm tra nguy hiểm, xe lăn cho người khuyết tật… Những điểm hạn chế của các robot tự hành hiện tại là tính thiếu linh hoạt và khả năng thích ứng khi làm việc ở những vị trí khác nhau. Từ những lý do đó nảy sinh vấn đề tránh vật cản cho xe tự hành nhằm nâng cao tính linh hoạt cho xe. Vì vậy, nhóm quyết định thực hiện đề tài: “Thiết kế xe điều bằng tay và xe tự hành” để làm đồ án môn Vi điều khiển.
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN
THÔNG VIỆT - HÀN KHOA KỸ THUẬT MÁY TÍNH & ĐIỆN TỬ
ĐỒ ÁN VI ĐIỀU KHIỂN
ĐỀ TÀI THIẾT KẾ XE ĐIỀU KHIỂN BẰNG TAY VÀ XE
TỰ HÀNH
Sinh viên thực hiện : HOÀNG HỮU TIẾN ĐẠT– 21AD011
HOÀNG LÊ KIM VINH– 21AD RCOM ĐẠT – 21AD013
NGUYỄN THỊ THIÊN TRANG-21AD63 ĐÀM GIA HƯNG-21AD024
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN KHOA KHOA HỌC MÁY TÍNH
ĐỒ ÁN VI ĐIỀU KHIỂN
THIẾT KẾ XE ĐIỀU KHIỂN BẰNG
TAY VÀ XE TỰ HÀNH
Sinh viên thực hiện : HOÀNG HỮU TIẾN ĐẠT– 21AD011
HOÀNG LÊ KIM VINH– 21AD RCOM ĐẠT – 21AD013
NGUYỄN THỊ THIÊN TRANG-21AD63 ĐÀM GIA HƯNG-21AD024
NGUYỄN QUỐC KHÁNH-21AD033
Giảng viên hướng dẫn: TS Nguyễn Vũ Anh Quang
Đà Nẵng, tháng 5 năm 2023
Trang 3Trong những năm gần đây, công nghệ truyền nhận dữ liệu không dâyđang có những bước phát triển mạnh mẽ, góp công lớn trong việc phát triểncác hệ thống điều khiển, giám sát từ xa, đặc biệt là các hệ thống thôngminh Hiện nay, có khá nhiều công nghệ không truyền nhận dữ liệu khôngdây như RF, Wifi, Bluetooth, NFC Trong đó, Bluetooth là một trongnhững công nghệ được phát triển từ lâu và luôn được cải tiến để nâng caotốc độ cũng như khả năng bảo mật Trên thị trường Việt Nam hiện naychưa có nhiều sản phẩm điều khiển thiết bị không dây, đa số những sảnphẩm hiện có đều là nhập khẩu từ nước ngoài với giá thành cao Việcnghiên cứu và thiết kế một bộ sản phẩm điều khiển thiết bị không dây cómột ý nghĩa lớn, giúp tăng thêm sự lựa chọn cho người sử dụng, sản phẩmđược sản xuất trong nước nên giá thành rẻ và góp phần phát triển các hệthống điều khiển thông minh.
Bên cạnh đó, các Robot tự hành được ứng dụng trong đời sống ngàycàng nhiều như robot vận chuyển hàng hóa, kiểm tra nguy hiểm, xe lăn chongười khuyết tật… Những điểm hạn chế của các robot tự hành hiện tại làtính thiếu linh hoạt và khả năng thích ứng khi làm việc ở những vị trí khácnhau Từ những lý do đó nảy sinh vấn đề tránh vật cản cho xe tự hànhnhằm nâng cao tính linh hoạt cho xe
Vì vậy, nhóm quyết định thực hiện đề tài: “Thiết kế xe điều bằngtay và xe tự hành” để làm đồ án môn Vi điều khiển
Trang 4LỜI CẢM ƠN
Nhóm xin gửi lời cảm ơn chân thành đến quý thầy cô Trường Đại họcCông nghệ Thông tin và Truyền thông Việt – Hàn đã truyền đạt cho nhómnhững kiến thức và bài học quý báu trong học kỳ vừa qua
Nhóm xin trân trọng gửi lời cảm ơn đến thầy giáo Ts Nguyễn Vũ AnhQuang giảng viên Trường Đại học Công nghệ Thông tin và Truyền thông Việt -Hàn đã tận tình hướng dẫn và giúp đỡ nhóm trong suốt quá trình làm đồ án, giúpnhóm có thêm nhiều kiến thức bổ ích, và hiểu rõ hơn vấn đề mình nghiên cứu
Và trong thời gian làm đồ án vừa qua, cô đã dành nhiều thời gian quý báu vàtâm huyết để hướng dẫn nhóm hoàn thành đồ án này
Dưới đây là kết quả của quá trình tìm hiểu và nghiên cứu mà nhóm đãđạt được trong học kỳ vừa qua Tuy có nhiều cố gắng học hỏi trau dồi để nângcao kiến thức nhưng không thể tránh khỏi những sai sót Nhóm rất mong đượcnhững sự góp ý quý báu của các thầy giáo, cô giáo cũng như tất cả các bạn để
đồ án của nhóm được hoàn thiện hơn
Nhóm xin chân thành cảm ơn!
Đà Nẵng, ngày … tháng … năm 2023
Sinh viên
Trang 5NHẬN XÉT
(Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
Đà Nẵng, ngày … tháng … năm 2023.
Trang 62.2 Lựa chọn linh kiện 11
2.4.3 Phần mềm App điều khiển xe (Bluetooth RC Controller) 23
Trang 7DANH MỤC HÌNH
Hình 2.10 Mạch mô phỏng xe điều khiển trên proteus 17
Hình 2.16 Lưu đồ thuật toán phần mềm điều khiển 25Hình 2.17 Giao diện App Bluetooth RC Controller 26Hình 2.18 Giao diện kết nối thiết bị Bluetooth 26
Trang 8Bên cạnh đó, các Robot tự hành được ứng dụng trong đời sống ngày càngnhiều như robot vận chuyển hàng hóa, kiểm tra nguy hiểm, xe lăn cho ngườikhuyết tật… Những điểm hạn chế của các robot tự hành hiện tại là tính thiếulinh hoạt và khả năng thích ứng khi làm việc ở những vị trí khác nhau Từnhững lý do đó nảy sinh vấn đề tránh vật cản cho xe tự hành nhằm nâng cao tínhlinh hoạt cho xe.
1.2 Mục đích thực hiện đề tài
Sau khi tìm hiểu thông tin về đề tài, cùng với những hiểu biết sẵn có vàtìm kiếm thông tin liên quan, chúng em xác định các đối tượng cần nghiên cứulà:
- Công nghệ Bluetooth: khái niệm về Bluetooth, các đặc điểm của côngnghệ Bluetooth, liên kết vật lý trong công nghệ Bluetooth, các chế độ kếtnối, cách thức hoạt động Nghiên cứu Module Bluetooth HC-05: cácthông số kỹ thuật, nguyên lý hoạt động của module HC-05
- Module Arduino Uno R3: thiết kế hệ thống sử dụng để giao tiếp moduleBluetooth, điều khiển các thiết bị, phần mềm hỗ trợ lập trình Arduino
- Hệ điều hành Android: kiến trúc hệ điều hành Android, chu kỳ hoạt độngcác ứng dụng chạy trên hệ điều hành Android, phần mềm hỗ trợ lập trìnhAndroid Studio, ngôn ngữ lập trình Java,viết phần mềm ứng dụng
1.3 Nhiệm vụ thực hiện đề tài
- Học tập, nắm vững các ngôn ngữ cần thiết để ứng dụng vào việc thiết kế
- Tìm hiểu, đọc các nguồn tài liệu, thông tin tham khảo
- Nghiên cứu tình hình thực tế, qua sách báo, hoặc internet
- Trước tiên, chế tạo được phần cứng khung xe điều khiển Khung xe phảiđảm bảo bền chắc và đạt độ chính xác nhất định về việc bố trí các bánh
xe và động cơ thông qua việc vẽ trên phần mềm và cắt CNC Tiếp theo làcông đoạn lập trình Arduino dựa trên những kiến thức đã học được đểlập trình xe điều khiển Và cuối cùng là app điều khiển xe chạy bằngAndroid
Trang 91.4 Cấu trúc đồ án
Đồ án gồm 5 phần chính:
- Mở đầu
- Chương 1 Tổng quan: giới thiệu tổng quan về đề tài, mục tiêu thực hiện
và nhiệm vụ thực hiện đề tài
- Chương 2 Thiết kế xe điều khiển bằng tay
- Chương 3 Thiết kế xe tự hành
- Kết luận
Trang 10Chương 2 XE ĐIỀU KHIỂN BẰNG TAY
2.1 Thiết kế hệ thống điều khiển
2.1.1 Sơ đồ khối
Bộ phần cứng : Module nguồn, khối xử lý ( Module Arduino Uno R3, code Arduino ), khối Module Bluetooth
Phần mềm: Khối điều khiển (Điện thoại Android)
Hình 2.1 Sơ đồ khối xe điều khiển bằng tay
Trang 11Khối nguồn tạo ra dòng điện và điện thế ổn định cung cấp an toàncho cả mạch Mạch ổn áp có chức năng tạo ra điện áp nhỏ hơn điện ápđầu vào và luôn duy trì mức áp này mặc dù áp đầu vào tăng/giảm.Module ổn áp LM2596S sử dụng các tụ có khả năng lọc nhiễu cao và trữđiện tốt Ngoài ra trên module có sẵn đèn LED báo hiệu hoạt động củamạch nguồn.
2.1.3.2 Khối module Bluetooth
Trên thị trường hiện nay có khá nhiều module Bluetooth hỗ trợ viđiều khiển giao tiếp với thiết bị khác thông qua kết nối Bluetooth, một sốmodule Bluetooth thường được sử dụng trong thực tế như: moduleBluetooth HC-05, module Bluetooth HC-06 Tuy nhiên, moduleBluetooth HC-05 là lựa chọn tối ưu cho đồ án này vì: giá thành rẻ hơn sovới các Module khác, tốc độ hoạt động phù hợp với truyền dữ liệu điềukhiển thiết bị, dễ dàng mua ở thị trường Việt Nam, được nhiều người sửdụng và đánh giá là rất ổn định
Hình 2.3 Module Bluetooth HC-05
2.1.3.3 Khối xử lý trung tâm
Arduino UNO R3 dùng vi điều khiển ATmega328 Bộ não này cóthể xử lý những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử
lý tín hiệu cho xe điều khiển từ xa, điều khiển động cơ bước, điều khiểnđộng cơ servo, làm một trạm đo nhiệt độ – độ ẩm và hiển thị lên mànhình LCD,… hay những ứng dụng khác
Trang 12Hình 2.4 Module Arduino Uno R3
2.1.3.4 Khối điều khiển xe
Tất cả các loại điện thoại chạy hệ điều hành android có thể càiứng dụng android, ứng dụng được viết bằng ngôn ngữ Java nhằm tạo ramột giao diện trực quan, dễ sử dụng cho việc điều khiển và giám sát cácthiết bị điện
2.2 Lựa chọn linh kiện
2.2.1 Module Arduino Uno R3
2.2.1.1 Thông số kỹ thuật
- Vi điều khiển: ATmega328 họ 8 bit
- Điện áp hoạt động: 5VDC (chỉ được cấp qua cổng USB)
- Tần số hoạt động: 16 MHz
- Dòng tiêu thụ: 30 mA + Điện áp vào khuyên dùng: 7-12 VDC
- Điện áp vào giới hạn: 6-20 VDC + Số chân Digital I/O: 14 ( 6 chânhardware PWM) + Số chân analog: 6 ( độ phân giải 10 bit)
- Dòng tối đa trên mỗi chân I/O: 30 mA
- Dòng ra tối đa (5V): 500mA
- Dòng ra tối đa (3.3V): 50mA
- Bộ nhớ flash: 32KB với 0.5KB dùng để bootloader
- RAM: 2 KB + EEPROM: 1KB
Trang 13Hình 2.5 Module Arduino Uno R3
2.2.1.2 Bộ nhớ
- 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữtrong bộ nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài
KB trong số này sẽ được dùng cho bootloader
- 2KB cho SRAM (Static Random Access Memory): giá trị các biếnbạn khai báo khi lập trình sẽ lưu ở đây Bạn khai báo càng nhiềubiến thì càng cần nhiều bộ nhớ RAM Tuy vậy, thực sự thì cũnghiếm khi nào bộ nhớ RAM lại trở thành thứ mà bạn phải bận tâm.Khi mất điện, dữ liệu trên SRAM sẽ bị mất
- 1KB cho EEPROM (Electrically Erasable Programmable ReadOnly Memory): đây giống như một chiếc ổ cứng mini – nơi bạn cóthể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mấtkhi cúp điện giống như dữ liệu trên SRAM
- Các cổng vào ra: Arduino UNO có 14 chân digital dùng để đọc hoặcxuất tín hiệu Chúng chỉ có 2 mức điện áp là 0V và 5V với dòngvào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều có các điện trởpull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặcđịnh thì các điện trở này không được kết nối)
2.2.2 Module Bluetooth HC-05
Bluetooth là chuẩn truyền thông không dây để trao đổi dữ liệu ởkhoảng cách ngắn.Chuẩn truyền thông này sử dụng sóng radio ngắn(UHFradio) trong dải tần số ISM (2.4 tới 2.485 GHz) Khoảng cách truyền củamodule này vào khoảng 15m
Trang 14- GND nối với chân nguồn GND
- TXD,RXD đây là hai chân UART để giao tiếp module hoạt động
Trang 152.2.3.2 Mạch khuếch đại dòng điện + Pin
- Khuếch đại dòng điện cho các ứng dụng cần dòng lớn: điều khiển động cơ, chiếu sáng,…
- Nguyên tắc hoạt động cơ bản: dòng tại ngõ vào Inn sẽ được khuếch đại thành dòng tại ngõ ra Out
- Driver: L298N tích hợp hai mạch cầu H
- Điện áp cung cấp: 5 ~ 12VDC
- Dòng tối đa cho mỗi cầu H là: 2A
- Điện áp của tín hiệu điều khiển: 5 ~ 7VDC
- Dòng của tín hiệu điều khiển: 0 ~ 36mA
2.2.3.3 Các thành phần khác
Trang 17Hình 2.8 Các thành phần khác
- Module điều khiển động cơ L298N
- Dây điện đực, cái
Trang 182.3.1.2 Sơ đồ mạch mô phỏng trên proteus
Hình 2.10 Mạch mô phỏng xe điều khiển trên proteus
2.3.2 Lưu đồ thuật toán
Hình 2.11 Lưu đồ thuật toán cho Arduino
Trang 20Hình 2.13 Vùng lệnh chương trình
2.4.1.3 Vùng viết chương trình
Bạn sẽ viết các đoạn mã của mình tại đây
2.4.1.4 Vùng thông báo (debug)
Những thông báo từ IDE sẽ được hiển thị tại đây Để ý rằng gócdưới cùng bên phải hiển thị loại board Arduino và cổng COM được sửdụng Luôn chú ý tới mục này bởi nếu chọn sai loại board hoặc cổngCOM, bạn sẽ không thể upload được code của mình
Hình 2.14 Vùng thông báo (debug)
Trang 212.4.2 Mã lập trình xe điều khiển bằng tay
Trang 25Hình 2.15 Code xe điều khiển bằng tay
2.4.3 Phần mềm App điều khiển xe (Bluetooth RC Controller)
Ứng dụng này cho phép bạn kiểm soát một Arduino dựa trên RC xequa Bluetooth Điều này được thực hiện bằng cách sử dụng một kích hoạtBluetooth điện thoại Android
Trang 262.4.3.1 Sơ đồ hoạt động của App
Hình 2.16 Sơ đồ hoạt động của App điều khiển
1.1.1.1 Lưu đồ thuận toán phần mềm App điều khiển
Hình 2.17 Lưu đồ thuật toán phần mềm điều khiển
Trang 272.4.3.2 Giao diện App điều khiển
Hình 2.18 Giao diện App Bluetooth RC Controller
Giao diện chính của App gồm các chức năng chính sau:
- App có thể sử dụng các nút để Tiến, lùi, xoay trái, xoay phải xe điều khiển mình đã tạo từ phần cứng
- Có nút cài đặt để kết nối Bluetooth từ điện thoại vào xe điều khiển Giao diện phụ của nút cài đặt:
Khi nhấn đúp kết nối với thiết bị, thì có thông báo kết nối thiết
bị Bluetooth thành công thì chúng ta có thể điều khiển được xe điềukhiển từ xa trong vòng 10m – m và có thể sử dụng các nút trong giaodiện chính để xe hoạt động
Trang 28Hình 3.21 Module khối nguồn
Khối nguồn tạo ra dòng điện và điện thế ổn định cung cấp an toàncho cả mạch Mạch ổn áp có chức năng tạo ra điện áp nhỏ hơn điện ápđầu vào và luôn duy trì mức áp này mặc dù áp đầu vào tăng/giảm.Module ổn áp LM2596S sử dụng các tụ có khả năng lọc nhiễu cao và trữđiện tốt Ngoài ra trên module có sẵn đèn LED báo hiệu hoạt động củamạch nguồn
3.1.2.2 Khối xử lý trung tâm
Arduino UNO R3 dùng vi điều khiển ATmega328 Bộ não này cóthể xử lý những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử
lý tín hiệu cho xe điều khiển từ xa, điều khiển động cơ bước, điều khiển
Trang 29động cơ serve, làm một trạm đo nhiệt độ – độ ẩm và hiển thị lên màn hình LCD,… hay những ứng dụng khác.
Hình 3.22 Module Arduino Uno R3
3.1.2.3 Khối cảm biến (Sensor)
Khối cảm biến gồm các tín hiệu cảm biến bằng tiếp giáp cơ báohết hành trình động tác và các cặp cảm biến hồng ngoại phát và quangtrở
Một đầu cảm biến phát ra bức xạ hồng ngoại đầu còn lại thu lấybức xạ, lượng tín hiệu thu được phù thuộc rất nhiều vào độ bóng, màusắc của bề mặt phản xạ Độ bóng càng lớn, màu càng sáng thì độ phản xạcàng nhiều, tín hiệu thu được càng lớn và ngược lại Tín hiệu thu được ởđầu ra cảm biến thu được chỉ là tín hiệu tương tự, tín hiệu thu được cần
Trang 303.2 Thiết kế phần cứng
3.2.1 Arduino Uno
Arduino Uno điều khiển hai động cơ servo và cả bốn cảm biếnsiêu âm Cả cảm biến và động cơ servo đều được kết nối với các chânđầu vào kỹ thuật số Kết nối hai động cơ servo với các chân riêng biệtcho phép điều khiển các động cơ riêng biệt cần thiết cho truyền động visai
3.2.2 Cảm biến dò line 5 kênh TCRT5000
Năm cảm biến hồng ngoại loại TCRT5000 đã được sử dụng trong
dự án này Nguyên lý hoạt động của TCRT5000 dựa trên việc phát ra ánhsáng hồng ngoại và đo lường lượng ánh sáng hồng ngoại được phản xạlại từ vật thể
TCRT5000 bao gồm một bộ phát hồng ngoại và mộtphototransistor Khi bộ phát hồng ngoại phát ra ánh sáng hồng ngoại, vậtthể đặt trước cảm biến sẽ phản xạ lại ánh sáng này Ánh sáng phản xạ sẽđược nhận và đo lường bởi phototransistor, khiến phototransistor dẫnđiện Lượng dòng điện dẫn qua phototransistor tỉ lệ với độ mạnh của ánhsáng phản xạ, phụ thuộc vào khoảng cách và tính chất bề mặt của vật
Khi không có vật thể nào đặt trước cảm biến, không có ánh sángphản xạ được nhận, phototransistor sẽ không dẫn điện Khi có vật thể đặttrước cảm biến, ánh sáng phản xạ sẽ được nhận, phototransistor sẽ dẫnđiện và cho ra tín hiệu đầu ra Tín hiệu đầu ra này có thể được đọc bởi viđiều khiển hoặc các mạch kỹ thuật số khác để xác định sự hiện diện hoặcvắng mặt của vật thể
TCRT5000 là một cảm biến quang học phản xạ và hoạt động tốttrong các ứng dụng như đèn pha xe hơi, robot theo dòng chân, hệ thốngphát hiện chướng ngại vật và các cảm biến tiệm cận
Hình 3.24 Cảm biến hồng ngoại
Trang 31Mã cho bộ vi điều khiển đã được tạo trong Arduino IDE.
3.3.1 Thuật toán
Đây là một lưu đồ để mô tả thuật toán mà xe tự hành sử dụng cảmbiến TCRT5000 để dò line:
1 Khởi tạo các biến và cấu hình cảm biến TCRT5000
2 Đọc giá trị đầu ra của cảm biến TCRT5000 và lưu trữ vào mộtmảng
3 Tính trung bình giá trị của mảng lưu trữ (ví dụ: trung bình cộngcủa 5 giá trị đọc được)
4 So sánh giá trị trung bình với một ngưỡng được cấu hình trước
để xác định vị trí của đường
5 Điều chỉnh hướng di chuyển của xe dựa trên vị trí của đường.Nếu xe đi quá xa khỏi đường, nó sẽ quay trở lại trung tâm đường Nếu xe
đi quá gần đường, nó sẽ điều chỉnh hướng di chuyển sang trái hoặc phải
để tránh rời khỏi đường
6 Lặp lại các bước từ bước 2 đến bước 5 để xe tự động di chuyểntheo đường
Nếu xe gặp chướng ngại vật trên đường, nó sẽ dừng lại và chờ chođến khi chướng ngại vật được loại bỏ Sau đó, xe sẽ tiếp tục thực hiện cácbước từ bước 2 đến bước 5 để tiếp tục điều khiển di chuyển theo đường