Professional Documents
Culture Documents
NHÓM 21
Giáo viên hướng dẫn: Nhóm sinh viên thực hiện:
2. THỰC HIỆN
a. Mô hình hệ thống
i. Mô tả sơ lược về hệ thống
- Sản phẩm cấu tạo bao gồm các thành phần: một cảm biến siêu âm HC-SR 04, một chip vi điều
khiển msp430f2232, LED 7 đoạn, giá đỡ, khối động cơ và bánh xe của xe điều khiển mô hình
loại nhỏ. Nguyên tắc hoạt động khi khởi động xe bắt đầu di chuyển đồng thời cảm biến siêu âm
cũng hiển thị khoảng cách so với vật cản phía trước lên LED 7 đoạn nếu như khoảng cách dưới
50cm thì robot bắt đầu chuyển hướng và di chuyển theo hướng mới và như vậy robot cứ tiếp tục
di chuyển.
ii. Mô hình hệ thống dạng khối
1
b. Thiết kế phần cứng mạch điện
i. Mô tả sơ lược hoạt động của mạch điện
- Khi cấp nguồn cảm biến siêu âm tiến hành đo khoảng cách truyền dữ liệu lên vi điều khiển
bằng phương pháp quét led hiển thị giá trị lên led 7 đoạn sau đó giá trị được so sánh với giá định
trước và tiến hành ra lệnh cho động cơ di chuyển theo từng trường hợp định trước.
ii. Sơ đồ khối phần cứng mạch điện
- Khối điều khiển: điều khiển trung tâm, quyết định các hoạt động của các khối còn lại.
- Sơ đồ nguyên lý kết nối:
2
Sơ đồ khối 2
- Cảm biến siêu âm: dùng để đo khoảng cách từ robot đến vật cản
- Chú thích chân:
Chân số 1 là chân Vcc
Chân số 2 là chân ECHO
Chân số 3 là chân TRI
Chân số 4 là chân GND
- Cách kết nối
Chân Vcc nối lên nguồn 5v
Chân GND nối mass
Chân ECHO nối với chân P1.4 của vi điều khiển
Chân TRI nối với chân P1.5 của vi điều khiển
- Thông số kĩ thuật
Điện áp làm việc: 5VDC
Dòng điện: 15mA
Tần số: 40 KHz
Khoảng cách phát hiện: 3cm – 4m
Tín hiệu đầu ra: xung mức cao 5V, mức thấp 0V
Góc cảm biến: không quá 15 độ
Độ chính xác lên đến 3mm
Chế độ kết nối: VCC / Trig (T-Trigger) / Echo (R-Receive) / GND
Sơ đồ khối 3
- Khối LED 7 đoạn: dùng để hiển thị khoảng cách mà cảm biến siêu âm đo được
3
- Led 7 đoạn sử dụng là loại led anode chung nên 4 chân led 7 đoạn kết nối với MSP430 ứng
với các chân kết nối vào port 1 (1.0, 1.1, 1.2, 1.3)
- Sơ đồ nguyên lý kết nối
Sơ đồ khối 4
- Khối LM293 và động cơ DC: dùng để thay đổi hướng di chuyển của robot khi gặp vật cản
-Thống số kĩ thuật
Điện áp hoạt động: 4-36V
Cấp dòng: 600mA
Dòng đỉnh 1.2A
Dùng để điều khiển động cơ, robot, motor\
Kiểu DIP16
Input: TTL Logic
- Sơ đồ nguyên lý kết nối
4
iv. Sơ đồ nguyên lý tổng hợp của toàn mạch
5
c. Thiết kế phần mềm điều khiển
i. Chức năng của phần mềm
- Khi hệ thống bắt đầu hoạt động Timer được sử dụng để tạo ra xung PWM dùng để đo khoảng
cách và tính toán thời gian quét led để hiển thị khoảng cách ra led.
- Khi nhận được khoảng cách từ cảm biến trả về sẽ tiến hành so sánh với khoảng cách định trước
là 50cm và tiến hành ra lệnh động cơ di chuyển nếu khoảng cách lớn hơn 50cm thì robot di
chuyển tiến về trước ngược lại khoảng cách nhỏ hơn 50cm thì có một led đơn sáng lên báo cho
biết gần khoảng cách va chạm động cơ bên trái dừng, động cơ bên phải quay ngược, nên lúc này
sẽ lùi và quay đầu sang phải nếu như khoảng cách tiếp tục nhỏ hơn 50cm thì động cơ cứ chuyển
hướng đến khi nào khoảng cách lớn hơn 50cm thì tiếp tục di chuyển.
- Vòng lặp chương trình giúp hệ thống luôn hoạt động giống với mô tả trên.
ii. Lưu đồ chương trình chính
6
iv. Đoạn code chương trình
#include <msp430f2232.h>
#define PDAT P3OUT
#define CTR P1OUT
#define led BIT0
#define K BIT7
void timer();
void PWM_init();
void DCtienvetruoc();
void luisangphai();
void scanled();
void toDisplay(int num);
void delayms(int ms);
void main(void)
{
}
}//end while
}// end main
void PWM_init()
{
9
//-------------------khai bao vector ngat--------------//
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
if(P1IFG&BIT4) // neu co vector ngat
{
if(!(P1IES&BIT4)) // neu khong co echo canh len
{
TACTL|=TACLR; // clears timer A
miliseconds = 0;
P1IES |= BIT4; // cho echo canh len
}
else
{
sensor = (long)miliseconds*1000 + (long)TAR; // do khoang cach bang thoi gian
dem duoc
}
P1IFG &= ~BIT4; //clear flag
}
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A (void)
{
scanled();
miliseconds++;
}
//-------------- ngat PwM ------------//
#pragma vector = TIMER0_A1_VECTOR
10
__interrupt void TimerA(void)
{
switch(TAIV)
{
case 0x002: // CCR1 interrupt
P2OUT |= BIT0; // P2.0 = 1 ,1&2_EN = 1,Right Motor bat dau chay
P2OUT |= BIT6; // P2.6 = 1 ,3&4_EN = 1,Left Motor bat dau chay
break;
case 0x004:
break;
void DCtienvetruoc(){
// DC phai tien
P2OUT |= BIT1; // P2.1 = 1,
P2OUT &= ~BIT2; // P2.2 = 0
// DC trai tien
P2OUT |= BIT3; // P2.3 = 1,
P2OUT &= ~BIT4; // P2.4 = 0,
}
void luisangphai(){
11
// DC phai qua nguoc
P2OUT &= ~BIT1; // P2.1 = 0,
P2OUT |= BIT2; // P2.2 = 1
// Dc trai dung
P2OUT &= ~BIT3; // P2.3 = 0,
P2OUT &= ~BIT4; // P2.4 = 0,
}
//-------------------ham delay--------//
char ch;
CTR = 0x00;
ch = buff[idx]; // lay du lieu tu Buff
PDAT = tbl7seg[ch]; // chuyen ma 7 doan
13
[2]
https://www.ti.com/product/MSP430F2232
[3]
https://www.hackster.io/powerberry/like-a-bat-with-hc-sr04-829486
5. PHỤ LỤC
a. Quá trình thực hiện đề tài
-Thời gian: Nhóm thực hiện đề tài ngay khi báo cáo giữa kỳ đến nay cũng khoảng hơn 40 ngày.
-Thuận lợi: Các thành viên đồng lòng và tập trung nên mọi việc được giải quyết nhanh gọn và
hiệu quả.
-Khó khăn: do tình hình dịch nên nhóm chỉ có thể làm việc online, và không thể làm mô hình
thực tế.
b. Phân chia công việc
-Nhóm làm việc chung với cách làm việc là sau một tuần nhóm sẽ họp 1 lần để tiến hành thảo
luận về trao đổi sau đó tổng kết để thực hiện đề tài.
14