1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ Án Điều Khiến Xe Bằng Bluetooth Dùng Arduino

40 40 1

Đ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 40
Dung lượng 18,17 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đồ Án Điều Khiến Xe Bằng Bluetooth Dùng Arduino Nano kết nối HC 05 có sẳn Code tự hành chỉ việc mua linh kiện lắp ráp theo sơ đồ nạp code là xong kèo.Như đã đề cập trước đó, Arduino Nano có 14 ngõ vàora digital. Các chân làm việc với điện áp tối đa là 5V. Mỗi chân có thể cung cấp hoặc nhận dòng điện 40mA và có điện trở kéo lên khoảng 2050kΩ. Các chân có thể được sử dụng làm đầu vào hoặc đầu ra, sử dụng các hàm pinMode (), digitalWrite () và digitalRead ().

Trang 1

MỤC LỤC

Lời nói đầu 4

CẤU TRÚC ĐIỀU KHIỂN 5

PHẦN I GIỚI THIỆU CHUNG VỀ CÁC THIẾT BỊ CẦN THIẾT 6

I GIỚI THIỆU VỀ ARDUINO NANO 6

1 Chức năng của các chân: 7

2 Lập trình cho arduino 8

II GIỚI THIỆU CHUNG VỀ MẠCH BLUETOOTH HC-05 VÀ MIT APP INVENTOR2 10

1 Module bluetooth HC-05 10

2 App Inventor 12

III Cảm biến siêu âm HC – SR05 14

1 Các thông số chính 14

2 Sơ đồ chân của HC-SR05 gồm 4 chân: 14

3 Nguyên lý hoạt động 15

IV Động cơ servo SG40 Tower Pro 15

Thông số kỹ thuật: 16

V Cảm biến hồng ngoại 16

Thông số kỹ thuật: 17

VI Động cơ DC 17

VII Modul điều khiển động cơ L298 18

Thông số kỹ thuật: 18

PHẦN II GIỚI THIỆU KHÁI QUÁI VỀ ĐỀ TÀI XE DÒ LINE 19

I Một số hình ảnh về robot 19

II Thuật toán điều khiển 22

1 Phần chương trình dò đường + tránh vật cản 22

2 Phần chương trình điều khiển bằng bluetooth 26

3 Các thuật toán điều khiển 29

a) Thuật toán chính (điều khiển bằng bluetooth) 29

Trang 2

c) Thuật toán của chương trình tự động 31

d) Thuật toán chương trình dò đường 31

PHẦN III CHƯƠNG TRÌNH ĐIỀU KHIỂN 32

PHẦN IV KẾT LUẬN 41

Trang 3

Lời nói đầu

Trong cuộc sống ngày nay cùng với sự tiến bộ vượt bậc của con người đòihỏi nền Khoa học - Kỹ thuật đã phải không ngừng nâng cao hoàn thiện và pháttriển để đáp ứng nhu cầu cuộc sống của con người Công nghiệp phát triển vượttrội, kéo theo đó là ảnh hưởng của môi trường làm việc, tính chất công việc ngàycàng khó khăn nguy hiểm hơn, khả năng lao động của con người có giới hạn Đểgiải quyết vấn đề này, robot đã ra đời để giúp đỡ con người trong phục vụ sảnxuất, làm việc trong những điều kiện nguy hiểm, khó khăn Ngoài ra robot còndùng trong lĩnh vực thám hiểm quân sự Lĩnh vực robot di động ngày càng được

sự quan tâm của các nhà nghiên cứu và xã hội Đặc biệt robot dò đường là vấn

đề thiết yếu của robot di động

Song, việc nghiên cứu, tìm hiểu và thiết kế robot dò đường cũng là đề tàichính của Đồ Án 1 mà nhóm chúng em sẽ giới thiệu trong báo cáo này

Với yêu cầu đòi hỏi sự tự giác học tập, nghiên cứu, tìm hiểu của Đồ Án 1 đãgiúp chúng em hiểu rõ được giá trị thiết thực của môn học, giúp nâng cao khảnăng làm việc nhóm Đồng thời trang bị thêm cho bản thân kiến thức về lậptrình Arduino, thiết kế mạch in trên Atium, Tạo nền tảng kinh nghiệm cơ bảncho việc thực hiện báo cáo đồ án tốt nghiệp sau này

Sau cùng, chúng em xin chân thành cảm ơn sự giúp đỡ, chỉ bảo tận tình củathầy Trần Tiến Lương trong suốt quá trình học tập, cảm ơn thầy đã cho chúng

em những gợi ý để phát triển đề tài, đồng thời bổ sung những giải pháp để khắcphục khó khăn

Do kiến thức và kinh nghiệm còn hạn hẹp nên trong quá trình báo cáo kếtquả học tập còn nhiều điều sai sót, mong thầy cô tận tình chỉ bảo để chúng emsửa chữa rút kinh nghiệm, hoàn thiện hơn ở những báo cáo sau Chúng em xinchân thành cảm ơn

Trang 4

CẤU TRÚC ĐIỀU KHIỂN

Trang 5

PHẦN I GIỚI THIỆU CHUNG VỀ CÁC THIẾT BỊ CẦN THIẾT

I GIỚI THIỆU VỀ ARDUINO NANO

Arduino Nano là một bảng vi điều khiển thân thiện, nhỏ gọn, đầy

đủ Arduino Nano nặng khoảng 7g với kích thước từ 1,8cm - 4,5cm Bài viết nàytrình bày về các thông số kỹ thuật quan trọng, nhất là sơ đồ chân và chức năngcủa mỗi chân trong bảng Arduino Nano

Điện áp vào khuyên dùng 7-12V – DC

Dòng tối đa trên mỗi chân I/O 40 mA

Trang 6

1 Chức năng của các chân:

Chân TX-truyền dữ liệu

Chân Rx-nhận dữ liệu

3 RESET Đầu vào Chân reset, hoạt động ở mức thấp

đầu vào

+ Đầu ra 5V (từ bộ điều chỉnh board) hoặc + 5V (đầu vào từ nguồn điện bên ngoài)

On-28 RESET Đầu vào Chân đặt lại, hoạt động ở mức thấp

Bảng 2 Thống kê các chân chức năng của KIT Arduino

Trang 7

2 Lập trình cho arduino

Cũng tương tự như bên ARDUINO N3, Arduino Nano sử dụng chươngtrình Arduino IDE để lập trình, và ngôn ngữ lập trình cho Arduino cũng tên làArduino (được xây dựng trên ngôn ngữ C)

Đầu tiên, ta cần cài Driver của Arduino Nano và tải về bản Arduino IDE mớinhất cho máy tính, các bước cài đặt hoàn toàn tương tự như Arduino Uno R3.Sau khi cài đặt, ta sẽ thấy một thông báo dạng "Cổng COMx đã được cài đặtthành công" (chữ "x" này sẽ được thay bằng một số nguyên dương,hãy nhớ lấy

số này, vì sau này ta sẽ dùng cổng COMx này để lập trình cho Arduino Nano)Sau đó, ta tìm loại board và cổng Serial mới như hình sau là được Lưu ý, cổngCOM trong hình dưới đây là chỉ là hình minh họa trong máy tính

Trang 8

Hình 1 2 Hướng dẫn chọn cổng kết nối giữa PC và kit Arduino

Sau khi hoàn thành quá trình cài đặt, nếu muốn quay lại lập trình choArduino Uno, thì chỉ cần chỉnh tên board là Arduino Uno và "Serial Port" thànhcổng Serial mà con Uno đang kết nối

Hình 1.1 Hướng dẫn chọn loại kit Arduino trong phần mềm Arduino IDE

Trang 9

Với kích thước cực kì nhỏ gọn và khả năng tương tự như Arduino Uno, ta

có thể ứng dụng nó trong các dự án yêu cầu kích thước nhỏ và khối lượng nhẹ,chẳng hạn như:

Module thu phát bluetooth HC-05 dùng để thiết lập kết nối Serial giữa

2 thiết bị bằng sóng bluetooth Điểm đặc biệt của module bluetooth HC-05 làmodule có thể hoạt động được ở 2 chế độ: MASTER hoặc SLAVE

+ Ở chê độ SLAVE: bạn cần thiết lập kết nối từ smartphone, laptop, usbbluetooth để dò tìm module sau đó pair với mã PIN là 1234 Sau khi pair thànhcông, bạn đã có 1 cổng serial từ xa hoạt động ở baud rate 9600

+ Ở chế độ MASTER: module sẽ tự động dò tìm thiết bị bluetooth khác (1module bluetooth HC-06, usb bluetooth, bluetooth của laptop ) và tiến hànhpair chủ động mà không cần thiết lập gì từ máy tính hoặc smartphone

Thông số kỹ thuật:

- Điện áp hoạt động: 3.3 ~ 5VDC

- Mức điện áp chân giao tiếp: 3.3VDC và 5VDC

Trang 10

- Dòng điện khi hoạt động: khi ghép nối 30 mA, sau khi ghép nối hoạtđộng truyền nhận bình thường 8 mA.

- Tốc độ truyền UART có thể chọn được: 1200, 2400, 4800, 9600, 19200,

38400, 57600, 115200

- Tần số: 2.4 GHz

- Tính năng bảo mật: xác thực và mã hóa

- Kích thước: 15.2 x 35.7 x 5.6mm

Hình 1 4 Sơ đồ chân IC của module HC-05

Hình 1 5 Sơ đồ kết nối của module HC-05 với Arduino.

Trang 11

2 App Inventor

App Inventor là một ứng dụng web của Google, chạy bởi trình duyệt trênmáy tính cá nhân, tạo điều kiện để mọi người có thể tự xây dựng phần mềm ứngdụng cho thiết bị di động dùng hệ điều hành Android

Hình 1 6 MIT App Inventor2

App Inventor không đòi hỏi bạn phải có kiến thức về lập trình Thay vìviết các câu lệnh, bạn có thể thiết kế bộ mặt ứng dụng theo ý mình một cách trựcquan và lắp ráp các thẻ lệnh để diễn đạt chức năng của phần mềm

App Inventor có sẵn đủ loại thẻ lệnh giúp làm mọi việc với điện

thoại Android : thẻ lưu giữ thông tin, thẻ lặp lại thao tác nào đó nhiều lần, thẻthực hiện thao tác với điều kiện định trước Thậm chí có cả thẻ lệnh giúp bạnliên lạc với các dịch vụ trên mạng như Twitter Ngoài ra còn cho phép truy xuất

bộ định vị GPS, nên người dùng có thể tạo ra các ứng dụng để xác định vị trí…

Và cuối cùng để sử dụng được App Inventor,truy cập vào địachỉ ai2.appinventor.mit.edu Sau đó tiến hành đăng nhập bằng tài khoản Googlecủa bạn để mở trang quản lí các project

Trang 12

Đây là không gian lập trình Với các khối lệnh có sẵn, ngươi dùng có thể

dễ dàng thao tác kéo thả hoặc ghép các khối lại với nhau để tạo lệnh hoànchỉnh thay vì lập trình bằng các dòng code phức tạp

Hình 1 8 Không gian Block của App Inventer 2

Trang 13

III Cảm biến siêu âm HC – SR05

Cảm biến siêu âm HC-SR05 (cảm biến đo khoảng cách) sử dụng rất phổ

biến để xác định khoảng cách HC-SR05 sử dụng sóng siêu âm và có thể đo khoảng cách trong khoảng từ 2 -> 300 cm, với độ chính xác gần như chỉ phụ

Trang 14

Hình 1 9 Module siêu âm

3 Nguyên lý hoạt động

Để đo khoảng cách, ta sẽ phát 1 xung rất ngắn (5 microSeconds) từ chântrig Sau đó, cảm biến sẽ tạo ra 1 xung HIGH ở chân echo cho đến khi nhận lạiđược sóng phản xạ ở pin này Chiều rộng của xung sẽ bằng với thời gian sóngsiêu âm được phát từ cảm biển và quay trở lại

Tốc độ của âm thanh trong không khí là 340 m/s (hằng số vật lý), tươngđương với 29,412 microSeconds/cm (106 / (340*100)) Khi đã tính được thờigian, ta sẽ chia cho 29,412 để nhận được khoảng cách

Hình 1 10 Nguyên lý hoạt động của Module siêu âm

Trang 15

IV Động cơ servo SG40 Tower Pro

Động cơ servo SG40 có kích thước nhỏ, là loại được sử dụng nhiều nhất

để làm các mô hình nhỏ hoặc các cơ cấu kéo không cần đến lực nặng

Động cơ servo SG90 Tower Pro có tốc độ phản ứng nhanh, các bánh răng

được làm bằng nhựa nên cần lưu ý khi nâng tải nặng vì có thể làm hư bánh răng,động cơ RC Servo 9G có tích hợp sẵn Driver điều khiển động cơ bên trong nên

có thể dễ dàng điều khiển góc quay bằng phương pháp điều chỉnh độ rộng xungPWM

Trang 16

V Cảm biến hồng ngoại

Module thu phát hồng ngoại với 4 kênh riêng biệt, có thể tách rời thànhtừng đầu dò khác nhau với dây nối dài cho từng đầu, dễ dàng trong quá trình sắpxếp theo mục đích của từng ứng dụng

Có thể điều chỉnh độ nhạy của từng cảm biếmn qua mỗi biến trở đi kèm.Tín hiệu ngõ ra dạng số thuận tiện cho quá trình xử lý cùng với đèn báo cho mỗikênh cảm biến

● Kích thước của mạch cảm biến: 25×12×12 (mm)

● Các ngõ ra của mạch: gồm có 6 cổng ra, 1234 là tín hiệu của 4 mạchcảm biến, 5 là VCC, 6 là GND

Hình 1 12 Cảm biến hồng ngoại 4 kênh

Trang 18

VII Modul điều khiển động cơ L298

Mạch điều khiển động cơ DC L298 V2 sử dụng IC Driver điều khiểnđộng cơ L298 chính hãng ST, mạch có chất lượng tốt, khả năng hoạt động bền bỉ

và thiết kế tiện lợi với trở kéo tích hợp, diod bảo vệ, led hiển thị trạng thái,Domino và chân cắm dễ dàng sử dụng.Mạch điều khiển động cơ DC L298 V2

có khả năng điều khiển 2 động cơ DC với dòng cấp lên đến 2A, trên mạch có ICnguồn 7805 giúp cấp nguồn 5VDC cho các module khác

Hình 1 14 Module điều khiển động cơ

Thông số kỹ thuật:

● IC chính: L298 - Dual Full Bridge Driver

● Công suất tối đa: 25W 1 cầu

● Dòng tối đa cho mỗi cầu H là: 2A

● Mức điện áp logic: Low -0.3V~1.5V, High: 2.3V~Vss

● Điện áp đầu vào: 5~46VDC

● Kích thước: 60mm*54mm

● Trọng lượng: ~48g

Trang 19

PHẦN II GIỚI THIỆU KHÁI QUÁI VỀ ĐỀ TÀI XE DÒ LINE

Trang 20

+ Tay robot:

21

Hình 2 4 Module Bluetooth HC-05

Hình 2 3 Cảm biến hồng ngoại

Trang 21

II Thuật toán điều khiển

1 Phần chương trình dò đường + tránh vật cản

Các chân tín hiệu, điều khiển được nối với các chân Arduino như sau:

● Module cảm biến hồng ngoại

Bảng 4 Chân ghép nối Module L298N với Arduino

Ta có sơ đồ mô phỏng trên Proteus:

Hình 2.6 Sơ đồ đấu dây của mạch điều khiển tự động

*Note: Do trong proteus không có module dò đường nên kết quả trả về

được thay thế bằng các logicstate

Đ.cơ phải Đ.cơt

rái

Trang 22

Phân tích nguyên lý dò line của robot :

Khi hoạt động, tín hiệu phản xạ hồng ngoại khi gặp nền đen (trắng)trên các mắt thu được đưa qua IC so sánh, trả về kết quả là 0 (line trắng) hoặc

1 (line đen) về Arduino, Arduino đọc tín hiệu trả về bằng lệnh digitalRead()

và đưa ra một giá trị lỗi vị trí (e) của Robot (giá trị của e được ghi trong

Ta có bảng phân tích độ lệch của robot như sau:

Trang 23

Điều khiển robot bám line

Để thay đổi tốc độ động cơ, module L298 thay đổi điện áp đặt vàođộng cơ bằng cách băm xung (PWM) trên các chân ENA, ENB Các chânbăm xung Arduino có độ phân giải 0-2^8bit (0-255) tương ứng với điện

áp ra ( cấp vào các chân (ENA, ENB) là 0-5V và cũng tương ứng với tốc

độ động cơ từ 0-max Ban đầu cho robot chạy thẳng (IN1 = 1, IN2 = 0,IN3 = 0, IN4 = 1), đồng thời giá trị đặt tại các chân băm xung điều khiểnđộng cơ là 55

Nếu robot chạy đúng vạch, e = 0, robot chạy thẳng không cần điềuchỉnh

Nếu robot lệch trái, nhứ hình minh họa ta thấy động cơ trái cầngiảm tốc, còn động cơ phải cần phải tăng tốc, tương ứng với việc giảm sốxung cấp cho ENB và tăng số xung cấp cho ENA để robot quay về đúngline Lúc này e đang nhỏ hơn 0 nên ta lấy ENA = 55 – e và ENB = 55 + e

Nếu robot lệch phải, nhứ hình minh họa ta thấy động cơ trái cầntăng tốc, còn động cơ phải cần phải giảm tốc, tương ứng với việc tăng sốxung cấp cho ENB và giảm số xung cấp cho ENA để robot quay về đúng

Mắt thu

Robot bị lệch trái (e < 0)

Robot bị lệch phải (e > 0)

Trang 24

Như vậy ta thấy trong cả hai trường hợp lệch tría và lệch phải sốxung cấp cho các chân ENA, ENB đều theo công thức xác định

ENA = 55 - e và ENB = 55 + e

Tuy nhiên, giá trị e từ (-5 – 5) tương đối nhỏ, dẫn đến độ nhạy của

robot khi bắt line là không cao, robot bị lệch line nhiều Do đó ta cầnkhuếch đại e lên bằng hệ số k nào đó, hệ số k được xác định bằng thựcnghiệm Sau nhiều lần thử nhóm đã tìm ra hệ số k tương đối phù hợp là k

= 20

Như vậy, công thức để điều chỉnh tốc độ 2 động cơ là

ENA = 55 - 15e và ENB = 55 + 15e.

Nguyên lý hoạt động của cảm biến siêu âm được nêu trong phần giới thiệu chung

Trang 25

2 Phần chương trình điều khiển bằng bluetooth

Module bluetooth HC05 giao tiếp với arduino qua cổng truyền thông nốitiếp Dữ liệu nhận được từ smart phone được HC05 lưu tại bộ nhớ flash rồitruyền tới Arduino và được Arduino lưu trong bộ nhớ đệm Serial Để lấy được

dữ liệu từ bộ nhớ đệm của Arduino, ta sử dụng lệnh Serial.read()

Giao diện điều khiển:

Hình 2.7 Giao diện App điều khiển Bluetooth

Trang 26

Hình 2 8 Khối lệnh của App điều khiển Bluetooth

*) Trong đó:

- When “Screen1”.Initialize … do: Khi bật màn hình Screen1 thì sẽ thực

hiện cái gì đó

- If … then: Lệnh điều kiện.

- Call “Notifier1” ShowAlert notice: Gọi thư viện con “Notifier1” thực

hiện lệnh hiển thị ký tự trong ô text

Ý nghĩa: Khi bật lên Screen1 (tức ứng dụng được bật lên) nếu thiết bị

điều khiển chưa được kết nối bluetooth với robot thì sẽ hiện lên cảnh báo “Hienchua bat Bluetooth – Hay vao cai dat Bluetooth de tiep tuc”

Ý nghĩa: Lệnh hiển thị danh sách địa chỉ bluetooth.

Trang 27

Ý nghĩa: Nếu đã chọn một địa chỉ liên kết bluetooth Trên nền ứng dụng

sẽ hiện “Connected” báo đã kết nối

Ý nghĩa: Nếu nhấn nút ấn “Button2” thì thực hiện lệnh gửi ký tự “W” đến

thiết bị thu (HC-05)

Ý nghĩa: Nếu nhả nút ấn “Button2” thì thực hiện lệnh gửi ký tự “0” đến

thiết bị thu (HC-05)

Trang 28

3 Các thuật toán điều khiển

a) Thuật toán chính (điều khiển bằng bluetooth)

Trang 29

Hình 2 9 Thuật toán điều khiển bằng bluetooth

b) Thuật toán của chương trình kiểm tra vật cản

Hình 2 10 Thuật toán kiêm tra vật cản

Trang 30

c) Thuật toán của chương trình tự động

d) Thuật toán chương trình dò đường

Hình 2 11 Thuật toán chương trình

chạy tự động

Hình 2 12 Thuật toán

dò đường

Trang 31

PHẦN III CHƯƠNG TRÌNH ĐIỀU KHIỂN

const int trig = 13;

const int echo = 8;

const int in1 = A0;

const int in2 = A1;

const int in3 = A2;

const int in4 = A3;

const int enA = 3;

const int enB = 11;

const int ss1 = 12;

const int ss2 = 4;

const int ss3 = A4;

const int ss4 = A5;

int q1, q2, q3, q4;

unsigned long times;

unsigned long time;

unsigned long kc;

unsigned long giay;

int kt, vc, last_kt;

int e, pre_e, sai_so;

int cb1, cb2, cb3, cb4, a_cb3, a_cb4;

void setup() {

q1 = constrain(q1, 5, 175);

Trang 40

PHẦN IV KẾT LUẬN

1 Kết quả

Sau 9 tuần thực hiện, nhóm em đã đạt được những kết quả sau:

 Chương trình điều khiển hoạt động tốt

 Robot đã có thể bám theo line

 Cánh tay robot có khả năng nâng hạ, gắp nhả vật

 Cảm biến siêu âm hoạt động chính xác, ở chế độ tự động, robot đã

có thể dừng chờ lệnh khi gặp vật cản

2 Những hạn chế của đề tài

 Robot bắt line chưa mượt, còn bị lắc nhiều Nguyên nhân do

khoảng cách giữa 2 mắt thu ở giữa của robot nhỏ hơn độ rộng của line

 Động cơ servo là loại nhỏ, tải yếu, đôi lúc không thể đáp ứng lệnh điều khiển dẫn đến mạch điều khiển bị treo

3 Hướng phát triển của đề tài

Hiện tại robot mới chỉ bám theo line thẳng, chương trình đếm ngã tư hoạt động không ổn định, đếm nhầm số vạch ngang Nhóm em hướng đến phát triển để xe đếm ngã tư chính xác hơn, thực hiện rẽ, quay ở các ngã tư mong muốn Ngoài ra vẫn chưa thể thực hiện nhiều nhiệm vụ cùng lúc (dò đường + tránh vật cản) mà phải giảm số lần đo khoảng cách để chương trình

dò đường không bị ảnh hưởng, cho nên nhóm cũng mong muốn có thể phát triển thêm để robot có thể đa nhiệm hơn, nhanh hơn và ổn định hơn

Ngày đăng: 27/08/2022, 14:41

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w