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

Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp

65 3 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

Tiêu đề Xe Điều Khiển Từ Xa Qua Internet Với Inut Cảm Biến Kết Nối Với Wifi Trong Nhà Hoặc Usb Wifi 3G
Tác giả Nguyễn Vũ Thanh
Người hướng dẫn Tp. HCM, Ngày 7 Tháng 6 Năm 2018
Trường học Tp. HCM
Thể loại Khóa Luận Tốt Nghiệp
Năm xuất bản 2018
Thành phố Tp. HCM
Định dạng
Số trang 65
Dung lượng 1,82 MB

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

Nội dung

i PHIẾU GIAO ĐỀ TÀI KHÓA LUẬN TỐT NGHIỆP 1 Họ và tên sinh viên nhóm sinh viên được giao đề tài Nguyễn Vũ Thanh, MSSV 14022301 2 Tên đề tài XE ĐIỀU KHIỂN TỪ XA QUA INTERNET VỚI INUT CẢM BIẾN KẾT NỐI VỚI WIFI TRONG NHÀ HOẶC USB WIFI 3G 3 Nội dung Lập trình để điều khiển xe từ App Inventer thông qua Wifi để xe hoạt động với các lệnh sau Chạy tới, chạy lùi, rẻ trái, rẻ phải; điều khiển được tốc độ với hai lệnh tăng tốc độ và giảm tốc độ; biết được khoảng cách từ xe đến vật cản, báo về giao diện điề.

Trang 1

1 Họ và tên sinh viên/ nhóm sinh viên được giao đề tài

Trang 2

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

Trang 3

PHIẾU GIAO ĐỀ TÀI KHÓA LUẬN TỐT NGHIỆP i

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ii

MỤC LỤC iii

DANH SÁCH CÁC HÌNH VẼ v

DANG SÁCH CÁC BẢNG vii

LỜI MỞ ĐẦU viii

CHƯƠNG 1: TỔNG QUAN 1

1.1 Giới thiệu chung về Arduino 1

1.2 Giới thiệu về Arduino Uno R3 3

1.2.1 Một vài thông số của Arduino Uno R3 3

1.2.2 Vi điều khiển 4

1.2.3 Nguồn 4

1.2.4 Các chân năng lượng 5

1.2.5 Bộ nhớ 5

1.2.6 Các cổng vào/ra 5

1.2.7 Lập trình cho Arduino 7

1.3 Module L298 8

1.4 Cảm biến siêu âm SRF05 9

1.5 iNut – Cảm biến 10

1.6 Động cơ DC giảm tốc V1 1:48 11

1.7 Pin sạc 18650 Panasonic 3.7V 1100mAh 2A 12

1.8 Bánh xe động cơ giảm tốc V1 65mm 13

1.9 Sơ đồ kết nối 13

1.10 Truyền và nhận dữ liệu 15

CHƯƠNG 2: PHẦN MỀM 18

2.1 Giao tiếp với Arduino Uno R3 thông qua Arduino IDE 1.8.5 18

2.2 Giao tiếp Arduino Uno với Smartphone (Android) 26

2.2.1 Tạo App 26

Trang 4

CHƯƠNG 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 48

3.1 Kết quả đạt được 48

3.2 Hạn chế 51

3.3 Hướng phát triển 52

3.4 Ứng dụng 53

TÀI LIỆU THAM KHẢO 55

LỜI CẢM ƠN 56

Trang 5

Hình 1.1 Các dòng Arduino qua các năm 2

Hình 1.2 Board Arduino Uno R3 3

Hình 1.3 Vi điều khiển Atmega328P-PU 4

Hình 1.4 Các cổng vào/ra của Arduino Uno R3 6

Hình 1.5 Phần mềm Arduino IDE 8

Hình 1.6 Mạch điều khiển động cơ DC L298 9

Hình 1.7 Cảm biến siêu âm SRF05 10

Hình 1.8 iNut - Cảm biến 11

Hình 1.9 Động cơ DC giảm tốc 1:48 12

Hình 1.10 Pin sạc 18650 Panasonic 3.7V 1100mAh 2A 12

Hình 1.11 Bánh xe động cơ giảm tốc V1 65mm 13

Hình 1.12 Sơ đồ kết nối 15

Hình 2.1 Phần mềm Arduino IDE 18

Hình 2.2 Tạo một project 28

Hình 2.3 Giao diện sau khi tạo một New project 28

Hình 2.4 Giao diện trong User Interface 29

Hình 2.5 Giao diện trong Layout 30

Hình 2.6 Giao diện trong Connectivity 30

Hình 2.7 Màn hình hiển thị các icon 31

Hình 2.8 Giao diện bên Properties 31

Hình 2.9 Screen bên Viewer sau khi đổi tên 32

Hình 2.10 Vị trí Button1 khi được thêm vào 32

Hình 2.11 Thay đổi tên, kích thước của Button1 cho thích hợp 33

Hình 2.12 Thêm TableArrangement 33

Hình 2.13 Chỉnh kích thước của TableArrangement 34

Hình 2.14 TableArrangement sau khi chỉnh 34

Hình 2.15 Thao tác thêm ảnh 35

Hình 2.16 Hình ảnh sau khi được thêm và chỉnh sửa 35

Hình 2.17 Cấu trúc thiết kế bên Components 36

Trang 6

Hình 2.19 Màn hình làm việc khi click sang Blocks 38

Hình 2.20 Các câu lệnh ở dạng Blocks 38

Hình 2.21 Cửa sổ thao tác câu lệnh 39

Hình 2.22 Chọn Block When Forward TouchDown từ Forward 39

Hình 2.23 Kéo thả call prepare_web1 được lấy từ Procedures vào When Forward TouchDown 40

Hình 2.24 Kéo thả call Web1.PostText được lấy từ Web1 vào When Forward TouchDown 41

Hình 2.25 Kéo thả (“ “) được lấy từ Text vào When Forward TouchDown 42

Hình 2.26 Điều khiển động cơ 43

Hình 2.27 Đồngg bộ dữ liệu với xe 44

Hình 2.28 Khỏi tạo các biến global 44

Hình 2.29 Khối lệnh Web và khối lệnh dừng 44

Hình 2.30 Khối lệnh đồng bộ dữ liệu 45

Hình 2.31 Khối lệnh lấy dữ liệu 45

Hình 2.32 Giải nén ra trường dữ liệu khi nhận được kết quả 46

Hình 2.33 Quét code lấy mã iNut-Cảm biến 47

Trang 7

Bảng 1.1 Thông số cơ bản của Arduino Uno R3 4 Bảng 1.2 Kết nối các chân thiết bị 14

Trang 8

Ngày nay khoa học công nghệ ngày càng phát triển, vi điều khiển AVR và vi điều khiển PIC ngày càng thông dụng và hoàn thiện hơn , nhưng có thể nói sự xuất hiện của Arduino vào năm 2005 tại Italia đã mở ra một hướng đi mới cho vi điều khiển Sự xuất hiện của Arduino đã hỗ trợ cho con người rất nhiều trong lập trình và thiết kế, nhất là đối với những người bắt đầu tìm tòi về vi điều khiển mà không có quá nhiều kiến thức, hiểu biết sâu sắc về vật lý và điện tử Phần cứng của thiết bị đã được tích hợp nhiều chức năng

cơ bản và là mã nguồn mở Ngôn ngữ lập trình trên nền Java lại vô cùng dễ sử dụng tương thích với ngôn ngữ C và hệ thư viện rất phong phú và được chia sẻ miễn phí Chính vì những lý do như vậy nên Arduino hiện đang dần phổ biến và được phát triển ngày càng mạnh mẽ trên toàn thế giới

Thế mạnh của arduino so với các nền tảng vi điều khiển khác :

- Chạy trên đa nền tảng: việc lập trình trên các hệ điều hành khác nhau như Window, Mac Os, Linux trên destop, android trên di động

- Ngôn ngữ lập trình đơn giản ,dễ hiểu

- Nền tảng mở: Arduino được thiết kế và sử dụng theo dạng module nên việc mở rộng phần cứng khá dễ dàng

- Đơn giản và nhanh: dễ dàng lắp ráp và sử dụng thiết bị

- Dễ dàng chia sẽ: mọi người dễ đàng chia sẽ mã nguồn với nhau mà không lo lắng về ngôn ngữ hay hệ điều hành mình đang sử dụng

Một hệ thống Arduino có thể cung cấp cho bạn rất nhiều sự tương tác với môi trường xung quanh với:

 Hệ thống cảm biến đa dạng về chủng loại (đo nhiệt độ ,độ ẩm ,gia tốc , vận tốc, cường độ ánh sáng, màu sắc vật thể, lưu lượng nước, phát hiện chuyển động, phát hiện kim loại,…)

 Các thiêt bị hiển thị (màn hình LCD, đèn LED, …)

Trang 9

các kết nối không dây thông dụng (3G, GPRS, Bluetooth, 315/433Mhz, 2.4Ghz,…) Định vị GPS, nhắn tin SMS và nhiều thứ thú vị khác

Arduino được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản đến phức tạp Trong

số đó có một vài ứng dụng thực sự chứng tỏ khả năng vượt trội của Arduino do chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp Sau đây một ứng dụng của Arduino là xe điều khiển bằng Internet Bản báo cáo này trình bày kết quả nghiên cứu công nghệ Internet của các thiết bị điện tử chạy trên nền hệ điều hành Android và ứng dụng vào thiết kế mô

hình xe điều khiển từ các thiết bị Android qua kết nối Internet với mục đích để tìm hiểu

thêm về Arduino, làm quen với các thiết bị điện tử, cách lập trình giao tiếp với máy tính và nâng cao hiểu biết cho bản thân Do kiến thức còn hạn hẹp nên chắc chắn không tránh khỏi những thiếu sót ,hạn chế vì thế em rất mong có được sự góp ý và nhắc nhỡ từ giảng viên để

có thể hoàn thiện đề tài của mình

Em xin chân thành cảm ơn giảng viên hướng dẫn Nguyễn Ngọc Anh Tuấn đã giúp đỡ em rất nhiều trong quá trình tìm hiểu, thiết kế và hoàn thành đề tài đồ án cơ sở này

Trang 10

CHƯƠNG 1: TỔNG QUAN

1.1 Giới thiệu chung về Arduino

Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vị vua vào thế kỷ thứ 9 là King Arduin Arduino chính thức được đưa ra giới thiệu vào năm 2005 như

là một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một trong những người phát triển Arduino, tại trường Interaction Design Instistute Ivrea (IDII) Mặc

dù hầu như không được tiếp thị gì cả, tin tức về Arduino vẫn lan truyền với tốc độ chóng mặt nhờ những lời truyền miệng tốt đẹp của những người dùng đầu tiên Hiện nay Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nơi đã sản sinh ra Arduino

Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình

có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình

Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm

Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY ( là những người

tự sáng chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây, gần giống với những gì mà Apple đã làm được trên thị trường thiết bị di động Số lượng người dùng cực

kì lớn và đa dạng với trình độ trải rộng từ bậc phổ thông đến bậc đại học đã làm cho ngay

cả những người sáng tạo ra cũng phải ngạc nhiên về mức độ phổ biến

Trang 11

Hình 1.1 Các dòng Arduino qua các năm

Trang 12

Mỗi dòng lại có những điểm mạnh và điểm yếu riêng, tuy nhiên, đều là sự sáng tạo của những con người sáng tạo nên mạch Arduino Nhờ những sáng tạo này, họ đã tạo nên một hệ sinh thái vô cùng lớn với Arduino Chỉ cần một mạch Arduino, bạn đã có thể tự xây dựng cho mình những cổ máy sáng tạo như máy in 3d, máy khắc laser,…Hay là những dự

án mạng cảm biến hoặc là những dự án mini robot, bạn có thể tự làm cho mình một cái ngay tại nhà

Cùng với thời gian, sự sáng tạo của Arduino càng ngày càng lan rộng và những nhà sản xuất IC hàng đầu thế giới đã xây dựng nên những máy tính thật sự và bạn có thể dùng Arduino để lập trình chúng, như là Intel Edison hay Intel Galileo Và cũng từ đó, đã có sự phân hóa nhánh mạnh mẽ thực sự của Arduino IDE Một nhánh thì phát triển phục vụ nhánh

cũ (nhánh vi điều khiển), còn một bên lại port (viết lại) các câu lệnh, thư viện của Arduino cho hệ máy 32bit như Intel Edison, Intel Galileo,

1.2 Giới thiệu về Arduino Uno R3

Hình 1.2 Board Arduino Uno R3

1.2.1 Một vài thông số của Arduino Uno R3

Trang 13

Bảng 1.1 Thông số cơ bản của Arduino Uno R3

Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)

Số chân Digital I/O 14 (6 chân hardware PWM)

Số chân Analog 6 (độ phân giải 10bit)

ẩm và hiển thị lên màn hình LCD,…

1.2.3 Nguồn

Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V Thường thì cấp nguồn bằng

Trang 14

pin vuông 9V là hợp lí nhất nếu bạn không có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, sẽ làm hỏng Arduino UNO

1.2.4 Các chân năng lượng

các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau

của nguồn với chân này và cực âm của nguồn với chân GND

ở chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn

việc chân RESET được nối với GND qua 1 điện trở 10KΩ

1.2.5 Bộ nhớ

32KB bộ nhớ Flash: những đoạn lệnh chúng ta 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 nhưng đừng lo, hiếm khi nào cần quá 20KB bộ nhớ này đâu

lập trình sẽ lưu ở đây Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ mà chúng

ta phải bận tâm Khi mất điện, dữ liệu trên SRAM sẽ bị mất

đây giống như một chiếc ổ cứng mini – nơi có thể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM

1.2.6 Các cổng vào/ra

Trang 15

Hình 1.4 Các cổng vào/ra của Arduino Uno R3 Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng và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)

Một số chân digital có các chức năng đặc biệt như sau:

2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive

– RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây Nếu không cần giao tiếp Serial, không nên sử dụng 2 chân này nếu không cần thiết

Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép xuất ra xung PWM với độ phân

Nói một cách đơn giản, có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác

Trang 16

Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các

chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác

LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút

Reset, sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng

Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0

→ 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trên board, có thể

để đưa vào điện áp tham chiếu khi sử dụng các chân analog Tức là nếu cấp điện áp 2.5V vào chân này thì có thể dùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit

Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác

1.2.7 Lập trình cho Arduino

Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn riêng Ngôn ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói chung Và Wiring lại là một biến thể của C/C++ Một số người gọi nó là Wiring, một số khác thì gọi là C hay C/C++ Ngôn ngữ Arduino bắt nguồn từ C/C++ phổ biến hiện nay do đó rất dễ học, dễ hiểu

Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, chúng ta sử dụng phần mềm lập trình Arduino được gọi là Arduino IDE (Intergrate Development Environment) như hình dưới đây:

Trang 17

Hình 1.5 Phần mềm Arduino IDE

1.3 Module L298

Mạch điều khiển động cơ DC L298 có khả năng điều khiển 2 động cơ DC, dòng tối

đa 2A mỗi động cơ, mạch tích hợp diod bảo vệ và IC nguồn 7805 giúp cấp nguồn 5VDC cho các module khác (chỉ sử dụng 5V này nếu nguồn cấp <12VDC)

Mạch điều khiển động cơ DC L298 dễ sử dụng, chi phí thấp, dễ lắp đặt, là sự lựa chọn tối ưu trong tầm giá

Trang 18

Hình 1.6 Mạch điều khiển động cơ DC L298

Thông số kỹ thuật:

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

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

 Công suất tối đa: 25W 1 cầu (lưu ý công suất = dòng điện x điện áp nên áp cấp vào càng cao, dòng càng nhỏ, công suất có định 25W)

 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

 Kích thước: 43x43x27mm

1.4 Cảm biến siêu âm SRF05

Cảm biến SRF05 là phiên bản nâng cấp của SRF04, cảm biến dùng để nhận biết khoảng cách đến vật cản nhờ sóng siêu âm phát ra từ cảm biến và nhận về (Quãng đường

= vận tốc x thời gian / 2), theo thông tin từ nhà sản xuất và test thực tế thì SRF05 gần như

là giống với SRF04 về cách sử dụng, SRF05 có thêm 1 chân Out, theo nhà sản xuất thì có

Trang 19

thể chỉ dùng chân này mà không cần đến chân trigger và echo, nó sẽ tự nhận và phản hồi lại xung luôn nhưng test thực tế thì không có gì xảy ra

Lưu ý cảm biến siêu âm càng xa thì càng bắt không chính xác, vì góc quét của cảm biến sẽ mở rộng dần theo hình nón, ngoài ra bề mặt xiên hay xù xì cũng làm giảm độ chính xác của cảm biến, thông số kỹ thuật ghi ở dưới đây là của nhà sản suất test trong điều khiện

lý tưởng, còn thực tế thì tùy theo môi trường

Hình 1.7 Cảm biến siêu âm SRF05

Thông tin cơ bản:

Trang 20

của module ESP-12 Hỗ trợ giao tiếp với Wifi vì thế dễ dàng thu thập và truyển tải dữ liệu qua internet

Hình 1.8 iNut - Cảm biến

Thông tin chi tiết:

 Vi điều khiển: ESP8266EX

 Wifi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n

 Điện áp hoạt động: 3.3V

 Điện áp vào: 5V thông qua cổng USB

 Giao tiếp: Cable Micro USB

 Hỗ trợ bảo mật: WPA/WPA2

 Tích hợp giao thức TCP/IP

 Nhiệt độ hoạt động : -40 ℃ ~ + 125 ℃

 Chuẩn giao tiếp với thiết bị lập trình đệm: I2C 100Mhz

 Số lượng cảm biến: Tùy chọn 1-8 cảm biến

1.6 Động cơ DC giảm tốc V1 1:48

Trang 21

1.7 Pin sạc 18650 Panasonic 3.7V 1100mAh 2A

Hình 1.10 Pin sạc 18650 Panasonic 3.7V 1100mAh 2A

Trang 22

Thông số kỹ thuật:

 Kiểu pin: 18650

 Điện áp trung bình 3.7VDC, sạc đầy 4.2VDC

 Dung lượng: 1100mAh

Trang 23

Bảng 1.2 Kết nối các chân thiết bị

Arduino

Uno R3

Module L298

Trang 24

Hình 1.12 Sơ đồ kết nối

1.10 Truyền và nhận dữ liệu

 Truyền dữ liệu (lập trình viên => Arduino):

key đó thông qua phần mềm iNut trên điện thoại của người lập trình Người lập trình có thể thu hồi key này bất cứ lúc nào

tạp ít hay nhiều Ví dụ người lập trình gửi lệnh UP => chạy tới

Trang 25

Sơ đồ truyền dữ liệu:

 Nhận dữ liệu (Arduino => lập trình viên):

tối đa 8 biến để người lập trình gán giá trị như trong đoạn code ở trên

chỉnh trong app iNut)

 App inventor gửi một request HTTPS lên Server iNut Platform để lấy thông tin hiện tại của iNut

 Gồm:

o Hướng di chuyển hiện tại

o Khoảng cách cảm biến siêu âm

o Tốc độ

Dịch vụ iNut Platform (Internet)

Kiểm tra đúng key

Trả về kết quả là gửi được hay không ?

Gửi qua giao tiếp I2C

Gửi lệnh

và key

Trang 26

Sơ đồ nhận dữ liệu:

Dịch vụ iNut Platform (Internet)

Arduino

Gửi dữ liệu Internet

Gửi về cho lập trình viên đã có key và đăng

ký lắng nghe dữ liệu

Gửi qua giao tiếp I2C

Trang 27

CHƯƠNG 2: PHẦN MỀM

2.1 Giao tiếp với Arduino Uno R3 thông qua Arduino IDE 1.8.5

Hình 2.1 Phần mềm Arduino IDE

Trang 28

Lưu đồ cho Arduino: Cấp điện

cho arduino

Khai báo thư viện; cài đặt module L298, module siêu

âm và iNut cảm biến

Sau mỗi 1s đồng

bộ các biến dữ liệu với iNut cảm biến

Lấy độ xa cảm biến siêu âm

Điều khiển module động cơ L298

So sánh khoảng dừng xe

Nhận lệnh

xử lý từ iNut cảm biến

Trang 29

Kết nối:

Bước 1: Click vào Tools→ Board→Arduino/Genuino Uno

Bước 2: Click vào Tools→Port→COM (tùy vào Board Arduino được kết nối với cổng USB nào thì chọn cổng COM đó)

Code :

#include <Wire.h>

#define N_SENSOR 3

float sensors[N_SENSOR];

const int trig = 9; // chân trig của HC-SR04

const int echo = 8; // chân echo của HC-SR04

#define HOW_FAR_SHOULD_WE_STOP 10 //Khoảng cách từ cảm biến đến vật cản bao nhiêu thì xe tự dừng? - 10cm

//l298 - module điều khiển động cơ

#define TIMEOUT_TO_CHECK_SENSOR 10UL

int direction; //Biến lưu trữ hướng đi của Robot hiện tại

//Cài đặt chương trình

void setup()

{

Trang 30

pinMode(trig, OUTPUT); // chân trig sẽ phát tín hiệu

pinMode(echo, INPUT); // chân echo sẽ nhận tín hiệu

}

//Các biến lưu trữ lệnh khi nhận được lệnh từ iNut - Cảm biến

volatile char buffer[33];

volatile boolean receiveFlag = false;

//Khi nhận được lệnh từ iNut cảm biến thì lắng nghe

void receiveEvent(int howMany)

{

Wire.readBytes((byte*)buffer, howMany);

Trang 31

//Buộc phải có nếu bạn muốn gửi dữ liệu

char* data = (byte*)&sensors;

if (receiveFlag) { //khi có tín hiệu là đã nhận được lệnh

String command = buffer; //chép lệnh vào biến String cho dễ xử lý

Serial.print(command); // in ra lệnh

Serial.print(' ');

Serial.println(millis()); //in ra thời gian theo millis tính từ lúc arduino chạy để debug

Trang 32

//Cho xe chạy 500ms thôi để lỡ có chạm mạch thì còn xử lý được :))

static unsigned long timer = 0;

if (millis() - timer > 1500UL) {

Ngày đăng: 25/06/2022, 11:21

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Quốc Bảo. Bạn có biết Arduino là gì không ? Tìm hiểu thêm… http://arduino.vn/bai-viet/40-ban-co-biet-arduino-la-gi-khong-tim-hieu-them Link
[2] Ngô Huỳnh Ngọc Khánh. Arduino Uno R3 là gì ?. http://arduino.vn/bai-viet/42- arduino-uno-r3-la-gi Link
[3] Ngô Huỳnh Ngọc Khánh. Sử dụng sáng tạo qua các phiên bản phần cứng của mạch tự động Arduino. http://arduino.vn/bai-viet/427-su-sang-tao-qua-cac-phien-ban-phan-cung-cua-mach-tu-dong-arduino Link
[4] Ngô Huỳnh Ngọc Khánh. Dự án xe điều khiển từ xa qua Internet với iNut Cảm biến kết nối với wifi trong nhà hoặc USB Wifi 3G. http://arduino.vn/tutorial/5781-du-xe-dieu-khien-tu-xa-qua-internet-voi-inut-cam-bien-ket-noi-voi-wifi-trong-nha-hoac Link
[5] Bài đăng của lvbuiluyen . Thiết kế mạch đo nhiệt độ sử dụng board arduino, hiển thị trên 4 led 7 thanh và truyền phát không dây sử dụng module nrf24l01.http://luanvan.net.vn/luan-van/de-tai-thiet-ke-mach-do-nhiet-do-su-dung-board-arduino-hien-thi-tren-4-led-7-thanh-va-truyen-phat-khong-day-su-dung-59513/ Link

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Các dòng Arduino qua các năm - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
Hình 1.1. Các dòng Arduino qua các năm (Trang 11)
Hình 1.2. Board Arduino Uno R3 - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
Hình 1.2. Board Arduino Uno R3 (Trang 12)
Hình 1.4. Các cổng vào/ra của Arduino Uno R3 - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
Hình 1.4. Các cổng vào/ra của Arduino Uno R3 (Trang 15)
Hình 1.5. Phần mềm Arduino IDE - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
Hình 1.5. Phần mềm Arduino IDE (Trang 17)
Hình 1.6. Mạch điều khiển động cơ DC L298 - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
Hình 1.6. Mạch điều khiển động cơ DC L298 (Trang 18)
Hình 1.8. iNut-Cảm biến - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
Hình 1.8. iNut-Cảm biến (Trang 20)
Hình 1.9. Động cơ DC giảm tốc 1:48 - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
Hình 1.9. Động cơ DC giảm tốc 1:48 (Trang 21)
Hình 1.10. Pin sạc 18650 Panasonic 3.7V 1100mAh 2A - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
Hình 1.10. Pin sạc 18650 Panasonic 3.7V 1100mAh 2A (Trang 21)
Hình 1.11. Bánh xe động cơ giảm tốc V1 65mm - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
Hình 1.11. Bánh xe động cơ giảm tốc V1 65mm (Trang 22)
Hình 1.12. Sơ đồ kết nối - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
Hình 1.12. Sơ đồ kết nối (Trang 24)
Hình 2.1. Phần mềm Arduino IDE - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
Hình 2.1. Phần mềm Arduino IDE (Trang 27)
 Phía bên trái là bảng tùy chỉnh bao gồm các mục: (ở đây chỉ nêu ra các mục mà trong dự án sử dụng) - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
h ía bên trái là bảng tùy chỉnh bao gồm các mục: (ở đây chỉ nêu ra các mục mà trong dự án sử dụng) (Trang 38)
Hình 2.6. Giao diện trong Connectivity - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
Hình 2.6. Giao diện trong Connectivity (Trang 39)
Hình 2.5. Giao diện trong Layout - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
Hình 2.5. Giao diện trong Layout (Trang 39)
Hình 2.7. Màn hình hiển thị các icon - Xe điều khiển từ xa qua internet với inut cảm biến kết nối với wifi trong nhà hoặc usb wifi 3g - Khóa luận tốt nghiệp
Hình 2.7. Màn hình hiển thị các icon (Trang 40)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

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

w