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

THIẾT KẾ XE ROBOT ĐIỀU KHIỂN BẰNG SMARTPHONE, SỬ DỤNG KIT LAUNCHPAD VÀ LẬP TRÌNH TRÊN MÔI TRƯỜNG ENERGIA

64 879 3

Đ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 64
Dung lượng 2,28 MB

Nội dung

THIẾT KẾ XE ROBOT ĐIỀU KHIỂN BẰNG SMARTPHONE, SỬ DỤNG KIT LAUNCHPAD VÀ LẬP TRÌNH TRÊN MÔI TRƯỜNG ENERGIA Sản phẩm cuối cùng của nhóm em là Mô hình xe robot được điều khiển bởi smart phone thông qua bluetooth, lập trình trên môi trường Energia: gồm có hai chế độ hoạt động chính là chế độ điều khiển bằng tay và chế độ chạy tự động. Ở chế độ điều khiển bằng tay: Các tín hiệu điều khiển ‘tới’, ‘lui’, ‘trái’, ‘phải’, ‘tăng tốc độ’, ‘giảm tốc độ’ được điện thoại gửi đến module bluetooth, rồi thông qua module này đến bộ vi xử lý, điều khiển hoạt động của 2 motor làm xe di chuyển. Ở chế độ tự động: xe sử dụng sóng siêu âm để đo khoảng cách từ xe tới vật cản gần nhất, từ đó đưa ra hướng di chuyển thích hợp. Sản phẩm được xây dựng nhằm hướng tới mục đích sử dụng trong nhiều lĩnh vực quan trọng như: thăm dò địa hình, phát hiện tai nạn ở những nơi con người khó vươn tới được, cứu hộ… Sản phẩm sử dụng một trong nhưng vi xử lý đơn giản và rẻ tiền nhất của TI là kit Launchpad MSP430G2553, thiết kế đơn giản với các module thông dụng như module bluetooth HC05, module siêu âm SFR05, IC cầu H L298… Nhờ vậy mà giá thành sản phẩm thấp. Xe robot có thể được điều khiển bởi bất kì điện thoại nào có chạy hệ điều hành, sử dụng bluetooth; sóng siêu âm sử dụng nguyên lý phản xạ để tránh vật cản. Sản phẩm được lập trình trên môi trường Energia với giao diện đơn giản, gần gũi với người sử dụng, và được hỗ trợ mã nguồn mở bởi một cộng đồng người dùng rất lớn

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM

KHOA ĐIỆN TỬ VIỄN THÔNG

ĐỒ ÁN TỐT NGHIỆP

ĐỀ TÀI:

THIẾT KẾ XE ROBOT ĐIỀU KHIỂN BẰNG

SMARTPHONE, SỬ DỤNG KIT LAUNCHPAD VÀ LẬP TRÌNH TRÊN MÔI TRƯỜNG ENERGIA

Tp Hồ Chí Minh ,Tháng 7 năm 2015

Trang 2

Lời cam đoan

LỜI CAM ĐOAN

Trang 3

- Ở chế độ điều khiển bằng tay: Các tín hiệu điều khiển ‘tới’, ‘lui’, ‘trái’,

‘phải’, ‘tăng tốc độ’, ‘giảm tốc độ’ được điện thoại gửi đến module bluetooth, rồi thông qua module này đến bộ vi xử lý, điều khiển hoạt động của 2 motor làm xe di chuyển Ở chế độ tự động: xe sử dụng sóng siêu âm

để đo khoảng cách từ xe tới vật cản gần nhất, từ đó đưa ra hướng di chuyển thích hợp

- Sản phẩm được xây dựng nhằm hướng tới mục đích sử dụng trong nhiều lĩnh vực quan trọng như: thăm dò địa hình, phát hiện tai nạn ở những nơi con người khó vươn tới được, cứu hộ…

- Sản phẩm sử dụng một trong nhưng vi xử lý đơn giản và rẻ tiền nhất của TI

là kit Launchpad MSP430G2553, thiết kế đơn giản với các module thông dụng như module bluetooth HC05, module siêu âm SFR05, IC cầu H L298… Nhờ vậy mà giá thành sản phẩm thấp Xe robot có thể được điều khiển bởi bất kì điện thoại nào có chạy hệ điều hành, sử dụng bluetooth; sóng siêu âm sử dụng nguyên lý phản xạ để tránh vật cản Sản phẩm được lập trình trên môi trường Energia với giao diện đơn giản, gần gũi với người

sử dụng, và được hỗ trợ mã nguồn mở bởi một cộng đồng người dùng rất lớn

Trang 4

Mục lục

MỤC LỤC

LỜI CAM ĐOAN 1

TÓM TẮT ĐỀ TÀI 3

MỤC LỤC 4

1.1 Đặt vấn đề: 5

1.2 Hướng giải quyết: 5

CHƯƠNG II: CƠ SỞ LÝ THUYẾT 2

2.1Vi điều khiển/vi xử lý Launchpad MSP430G2553: 2

2.2 Module bluetooth HC05: 4

2.4 IC L298: 6

CHƯƠNG III: THIẾT KẾ PHẦN CỨNG 9

3.1 Tổng quan thiết kế hệ thống: 9

3.2 Quy trình hoạt động của hệ thống: 10

3.3 Một số hình ảnh về cấu trúc, cơ khí của xe: 11

3.4 Sơ đồ nguyên lý của mạch: 15

3.5 Layout của mạch cầu H điều khiển động cơ: 15

CHƯƠNG IV: THIẾT KẾ PHẦN MỀM 16

4.1 Giới thiệu về ENERGIA: 16

4.2 Phần mềm điều khiển xe robot qua Bluetooth trên điện thoại: 19

4.3 Lưu đồ thuật toán cho hệ thống: 22

4.4 Nội dung code Energia nạp cho Launchpad: 25

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 32

TÀI LIỆU THAM KHẢO: 33

Trang 5

CHƯƠNG 1:GIỚI THIỆU ĐỀ TÀI 1.1 Đặt vấn đề:

Thứ nhất, hiện nay, hầu hết các ngành công nghiệp ở nước ta đều có quy mô lớn nhưng chất lượng chưa cao do những hạn chế về khoa học kĩ thuật, máy móc thiết bị còn thô sơ nên năng suất lao động chỉ đạt ở mức trung bình vì lợi nhuận giảm do phải thuê mướn một lượng máy móc rất lớn, các công ty trong nước cũng không tránh khỏi tình trạng đó Ví dụ như ngành khai thác than hay khai thác khoáng sản,trước khi bắt tay vào khai thác thì cần thăm dò địa hình để đặt máy móc Vấn đề đặt ra là với những địa hình đồi núi hoặc đi sâu vào lòng đất mà không có ảnh sáng thì yếu tố an toàn rất bé Và quá trình thuê xe dò địa hình tốn kém về cả thời gian và tài chính

Thứ hai , qua thực tế thì nước ta có rất ít các máy móc có thể can thiệp vào các

Thứ ba, quá trình phát triển khoa học được hiện rõ ráng nhất là sự phát triển của smartphone,ngày càng tiện dụng và phổ biến Nhưng nếu chỉ để nghe,gọi,hay các tính năng thông dụng khác thì ý nghĩa smartphone chưa đủ lớn Để can thiệp nhiều hơn vào đời sống con người,chúng ta dùng smartphone như một “đũa phép”,điều khiển những vật xung quanh

Do đó,để đáp ứng nhu cầu cấp bách hiện tại và làm tăng yếu tố an toàn cho con người cũng như tận dụng sự phổ biến của smartphone , nhóm chúng em đã bắt tay vào thực hiện đề tài : “THIẾT KẾ XE ROBOT ĐIỀU KHIỂN BẰNG SMARTPHONE

VÀ TỰ ĐỘNG DÒ ĐƯỜNG

1.2 Hướng giải quyết :

Mục tiêu đặt ra cho đề tài là cần thiết kế ra một chiếc xe có khả năng dò đường như một robot tự động,phát hiện được các vật cản trên đường và có thể điều khiển chuyển động thông qua smartphone Các yêu cầu đặt ra là xe phải hoạt động ổn định

Với các yêu cầu đặt ra,nhóm chúng em đã tìm tòi và ứng dụng thành công module Bluetooth HC-05 để giao tiếp với điện thoại,nhận dữ liệu từ điện thoại,đưa vào trung tâm xử lý nhằm điều khiển xe robot theo ý muốn Trong trường hợp địa hình khuất tầm nhìn, tối tăm, nguy hiểm, cách xa người điều khiển thì vấn đề tự dò đường, phát hiện vật cản và đảm bảo an toàn là rất quan trọng Nhóm em khắc phục điều này bằng cách cho xe robot hoạt động ở chế độ tự động, dùng cảm biến siêu âm SRF05 có khả năng phát hiện vật cản ở tầm xa khoảng từ 3-4m, từ đó xe sẽ tự đưa ra

Trang 6

Chương 2: Cơ sở lý thuyết

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 Vi điều khiển/vi xử lý Launchpad MSP430G2553:

Vi điều khiển (Micro controller unit – MCU ) là đơn vị xử lý nhỏ, nó được tích hợp toàn bộ các bộ nhớ như ROM , RAM , các port truy xuất , giao tiếp

Trang 7

Chương 2: Cơ sở lý thuyết

3

 Chân số 1 là chân cấp nguồn Vcc ( ký hiệu trên chip là DVCC ) , ở đây nguồn cho chip chỉ được cấp ở mức 3,3V, nếu cấp nguốn cao quá mức này thì chip có thể hoạt động sai hay cháy chip

 Chân 20 là chân nối cực âm (0V)

 Chân reset : Chính là chân số 16 RST, dấu gạch ngang trên đầu có nghĩa là chân này tích cực ở mức thấp Mục đích củaviệc reset là nhằm cho chương trình chạy lại từ đầu

 Mạch dao động: Cũng giống như những dòng vi điều khiển khác thì MSP430 cũng hỗ trợ người dùng thạch anh ngoài ( external crystal ), nhưng thạch anh ngoại vi cho phép chỉ có thể lên tới 32,768 kHz mà thôi, và tín hiệu này được mắc trên 2 chân 18 và 19 Nhưng MSP430 lại hỗ trợ thạch anh nội có thể lên đến 16Mhz, tùy vào cách khai báo trong lập trình Và mặc định của chip là thạch anh nội Như vậy thì chúng ta không cần thiết phải sử dụng mạch dao động ngoại cho chip giống như những dòng khác

c) Sơ đồ các khối trên kit LaunchPad :

Trang 8

Chương 2: Cơ sở lý thuyết

2.2 Module bluetooth HC05:

Tổng quan :

Bluetooth module SLAVE cho phép vi điều khiển kết nối với các thiết bị ngoại vi: smartphone, laptop, usb bluetooth thông qua giao tiếp Serial gửi và nhận tín hiệu 2 chiều

Module bluetooth được tích hợp trên board cho phép ta sử dụng nguồn từ 3.5V đến 6V cung cấp cho board mà không cần lo lắng về chênh lệch điện áp 3V - 5V gây hỏng board

Bluetooth module gồm 6 chân theo thứ tự: KEY, VCC, GND, TX, RX, STATE Đây là module bluetooth SLAVE nghĩa là ta không thể chủ động kết nối bằng vi điều khiển, mà cần sử dụng smartphone, laptop, bluetooth usb để dò tín hiệu và kết nối từ smartphone, laptop, bluetooth usb, Sau khi kết nối thành công, ta có thể gửi và nhận tín hiệu từ vi điều khiển đến các thiết bị này

Hình ảnh của module bluetooth:

a) Bảng biểu diễn kết nối bluetooth với launchpad:

Trang 9

Chương 2: Cơ sở lý thuyết

5

Nhiệm vụ:

Module Bluetooth làm nhiệm vụ nhận dữ liệu từ smartphone và đưa dữ liệu vào kit MSP430LAUNCHPAD để bắt đầu xử lý và điều khiển động cơ của xe

Yêu cầu: Baud rate = 9600

2.3 Cảm biến siêu âm SRF05:

a) Tổng quan về cảm biến siêu âm SRF05:

Cảm biến SRF05 là một loại cảm biến khoảng cách dựa trên nguyên lý thu phát siêu âm Cảm biến gồm một bộ phát và một bộ thu sóng siêu âm Sóng siêu

âm từ đầu phát truyền đi trong không khí, gặp vật cản (vật cần đo khoảng cách tới)

sẽ phản xạ ngược trở lại và được đầu thu ghi lại Vận tốc truyền âm thanh trong không khí là một giá trị xác định trước, ít thay đổi Do đó nếu xác định được

khoảng thời gian từ lúc phát sóng siêu âm tới lúc nó phản xạ về đầu thu sẽ quy đổi được khoảng cách từ cảm biến tới vật thể Cảm biến SRF05 cho khoảng cách đo từ 3cm tới 3m

SRF05 có thể thiết lập cách hoạt động thông qua các chân điều khiển

MODE Nối hoặc không nối chân MODE xuống GND cho phép cảm biến được điều khiển thông qua giao tiếp dùng 1 chân hay 2 chân IO

Ở đây, ta dùng MODE 1 ( chân MODE để trống )

Trang 10

Chương 2: Cơ sở lý thuyết

Hình vẽ biểu diễn sự điều khiển SRF05

Từ hình vẽ mô tả trên, để điều khiển SRF05 ở MODE1 cần cấp cho chân TRIGGER một xung điều khiển với độ rộng tối thiểu 10uS Sau đó một khoảng thời gian, đầu phát sóng siêu âm sẽ phát ra sóng siêu âm, vi xử lý tích hợp trên modun sẽ tự xác định thời điểm phát sóng siêu âm và thu sóng siêu âm Vi xử lý tích hợp này sẽ đưa kết quả thu được ra chân ECHO Độ rộng xung vuông tại chân ECHO tỉ lệ với khoảng cách từ cảm biến tới vật thể

Hình vẽ cho IC L298

Trang 11

Chương 2: Cơ sở lý thuyết

7

Biểu diễn sơ đồ khối của IC L298

 Tóm tắt chức năng các chân của L298:

+ 4 chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5,

7, 10, 12 của L298 Đây là các chân nhận tín hiệu điều khiển

+ 4 chân OUTPUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với các

chân INPUT) được nối với các chân 2, 3, 13, 14 của L298 Các chân này

sẽ được nối với động cơ

+ Hai chân ENA và ENB dung để điều khiển các mạch cầu H trong

L298 Nếu ở mức logic “1” (nối với nguồn 5V) thì cho phép mạch cầu H hoạt động, nếu ở mức logic “0” thì mạch cầu H không hoạt động

 Cách điều khiển chiều quay với L298:

+ Khi ENA = 0: Động cơ không quay với mọi đầu vào + Khi ENA = 1:

INT1 = 1; INT2 = 0: động cơ quay thuân

INT1 = 0; INT2 = 1: động cơ quay nghịch

INT1 = INT2: động cơ dừng ngay tức thì

(tương tự với các chân ENB, INT3, INT4)

Trang 12

Chương 2: Cơ sở lý thuyết

b.) Sơ đồ mắc IC L298 với động cơ DC:

Trang 13

 Khối điều khiển bởi Smart Phone: sử dụng phần mềm bluetooth để gửi

đi các tín hiệu điều khiển di chuyển tới/lui, trái/phải; chọn mode điều khiển bằng tay/mode tự động; tăng/giảm tốc độ…

 Khối module bluetooth HC05: cho phép kết nối giữa MSP430 với điện thoại, nhận tín hiệu điều khiển từ người sử dụng đưa đến vi điều khiển

 Khối cảm biến siêu âm SRF05: được dùng ở mode điều khiển tự động của xe, dùng cảm biến khoảng cách từ xe tới vật cản dựa trên nguyên lý

Trang 14

để điều khiển 2 động cơ DC về chiều quay cũng như tốc độ quay

 Khối IC L298 điều khiển động cơ: gồm 2 mạch cầu H bên trong, phụ thuộc tín hiệu ra từ vi xử lý được đưa đến các chân In1, In2, In3, In4 mà chiều quay và tốc độ của 2 động cơ là khác nhau

o In1 = 1, In2 = 0: động cơ quay thuận

o In1 = 0, In2 = 1: động cơ quay nghịch

o In1 = In 2: động cơ dừng quay

3.2 Quy trình hoạt động của hệ thống:

Xe có 2 mode hoạt động được chọn bởi người dùng thông qua phần mềm bluetooth trên điện thoại:

a) Mode điều khiển bằng tay:

Các tín hiệu điều khiển ‘tới’, ‘lui’, ‘trái’, ‘phải’, ‘xoay’, ‘tăng tốc độ’, ‘giảm tốc độ’ được điện thoại gửi đến module bluetooth, rồi thông qua module này đến

bộ vi xử lý ( chính là các dữ liệu kiểu int được lưu trong biến data_bt )

Tùy thuộc vào dữ liệu điều khiển mà vi xử lý xuất ra tín hiệu thích hợp đến các chân đầu vào của IC cầu H L298, điều khiển hoạt động của 2 motor làm xe di chuyển

b) Mode điều khiển tự động:

Ở chế độ này sẽ không sử dụng chức năng điều khiển di chuyển tới/lui, trái/phải bằng tay nữa Mà xe sẽ tự đo khoảng cách từ nó đến vật cản gần nhất, rồi

từ đó đưa ra quyết định về hướng di chuyển tiếp theo

Xe sử dụng sóng siêu âm từ đầu phát của cảm biến siêu âm truyền đi trong không khí, khi gặp vật cản (vật cần đo khoảng cách tới) sẽ phản xạ ngược trở lại và được đầu thu ghi lại Vận tốc truyền âm thanh trong không khí là một giá trị xác định trước, ít thay đổi Do đó từ khoảng thời gian xác định được từ lúc phát sóng siêu âm tới lúc nó phản xạ về đầu thu sẽ quy đổi được khoảng cách từ cảm biến tới vật thể

o Nếu ‘khoảng cách’ > 20cm: xe di chuyển tới

o Nếu 10cm < ‘khoảng cách’ < 20cm xe rẽ trái hoặc rẽ phải

Nếu ‘khoảng cách’ < 10cm: xe di chuyển lùi

Trang 15

Chương 3: Thiết kế phần cứng

11

3.3 Một số hình ảnh về cấu trúc, cơ khí của xe:

Trang 16

Chương 3: Thiết kế phần cứng

Trang 17

Chương 3: Thiết kế phần cứng

13

Trang 18

Chương 3: Thiết kế phần cứng

Trang 19

Chương 3: Thiết kế phần cứng

15

3.4 Sơ đồ nguyên lý của mạch:

3.5 Layout của mạch cầu H điều khiển động cơ:

Trang 20

Energia được xây dựng như một phiên bản của Wiring/Arduino IDE, nhưng thay vì lập trình trên board Arduino, Energia hỗ trợ cho các board Texas Instruments, Stellaris và TivaC Launchpad

Energia có môi trường lập trình rất đơn giản và thân thiện với người sử dụng Điều này giúp người dùng có thể tạo ra những ứng dụng dễ dàng hơn trên Launchpad mà không cần phải hiểu chi tiết về phần cứng

Giao diện sử dụng của Energia

Thêm một ưu điểm nữa là Energia có môi trường mã nguồn mở liên tục được cập nhật

và phát triển bởi cộng đồng người dùng rất lớn trên thế giới, tạo cơ hội thuận lợi cho bất kì ai đều có thể tiếp cận được các mã nguồn mở, từ đó phát triển nên ứng dụng cho riêng mình

4.1.2 Giới thiệu sơ lược các thành phần của một chương trình Energia:

Trang 21

 Boolean Operators; && (and), || (or), ! (not)

 Bitwise Operators: &, |, ^, ~, <<, >>

- Values:

 Constants: HIGH | LOW, INPUT | OUTPUT, INPUT_PULLUP| INPUT_PULLDOWN, true | false, integer constants, floating point constants

 Data Types: void, boolean, char, unsigned char, byte, int, unsigned int, word, long, unsigned long, float, double, string, String, array

- Functions:

 Digital I/O: pinMode(), digitalWrite, digitalRead()

 Analog I/O: analogReference(), analogRead(), analogWrite()

 Time: millis(), micros(), delay(), delayMicroseconds()

 Math: min(), max(), abs(), constrain(), map(), pow(), sqrt()

 Interrupts: interrupts(), noInterrupts()

4.1.3 Lập trình chương trình nháy LED dùng Energia:

- Đầu tiên kết nối Launchpad với máy tính qua cổng USB

- Từ cửa sổ chương trình Enegia: Tools > Board > LaunchPad w/MSP430G2553 (16 MHz)

- Có thể sử dụng chương trình nháy LED từ rất nhiều ví dụ có sẵn của Energia như sau: File > Examples > 1 Basics > Blink

- Complie chương trình trình bằng cách nhấn nút “checkmark button”

- Download code xuống Launchpad bằng cách nhấn nút “arrow button”

Trang 22

Chương 4: Thiết kế phần mềm

- Hình minh họa như sau:

Trang 23

Chương 4: Thiết kế phần mềm

19

4.2 Phần mềm điều khiển xe robot qua Bluetooth trên điện thoại:

Phần mềm trên có tên Bluetooth SPP

Để kết nối với Module HC 05 thì nhấn CONNECT, nhấp vào “HC-05” và nhấn

CONNECT

Khi kết nối thành công sẽ có thông báo: “Connect with: HC-05”

Khi nhấn các nút:

Trang 24

Chương 4: Thiết kế phần mềm

 Nút lên: gởi mã ‘1’, xe chạy thẳng

 Nút xuống: gởi mã ‘2’, xe chạy lùi

 Nút trái: gởi mã ‘3’, xe rẽ trái

 Nút phải: gởi mã ‘4’, xe rẽ phải

 Nút dừng: gửi mã ‘5’ xe dừng

 Nút tròn: gởi mã ‘6’, giảm tốc độ

 Nút vuông: gởi mã ‘7’, tăng tốc độ

 Nút tam giác: gởi mã ‘8’, chuyển đổi giữa hai chế độ điều khiển bằng tay và tự động

Để cài đặt độ nhạy khi gởi, chọn CONFIG => Send Delay, chọn 100ms

Trang 25

Chương 4: Thiết kế phần mềm

21

Trang 26

Chương 4: Thiết kế phần mềm

4.3 Lưu đồ thuật toán cho hệ thống:

Trang 27

Chương 4: Thiết kế phần mềm

23

4.3.1 Lưu đồ thuật toán cho các chương trình con:

Trang 28

Chương 4: Thiết kế phần mềm

4.3.2 Lưu đồ chương trình con để xe robot chạy tự động:

Trang 29

Chương 4: Thiết kế phần mềm

25

4.4 Nội dung code Energia nạp cho Launchpad:

unsigned int nadc=0;

float temp_C=0.0;

float temp_F=0.0;

int pwm_level=7000; //mức băm xung

int pwm_level_stand=6000; //mức băm xung chuẩn

int distance; //khoảng cách xe đến vật cản (cm)

//hc 06

int data_bt; //dữ liệu hc06 nhận được

//srf 05

int trig=P2_3; //trig là chân phát xung kích cho srf05

int echo=P2_4; //chân đọc thời gian tồn tại mức cao để tính khoảng cách

//đầu vào IC cầu H điều khiển động cơ

ADC10CTL0 |= ENC + ADC10SC;

//thiết lập các chân OUTPUT

Trang 32

digitalWrite(trig,LOW); // phát xung kích 10us

distance=pulseIn(echo,HIGH,1500)/58;// đo xung cao trên chân echo và tính khoảng cách

Ngày đăng: 07/05/2016, 01:47

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w