TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ HỌC PHẦN: KĨ THUẬT VI ĐIỀU KHIỂN CN581 BÁO CÁO ĐỒ ÁN ĐỀ TÀI: TÌM HIỂU VỀ CẢM BIẾN SIÊU ÂM VÀ THIẾT KẾ ROBOT TRÁNH VẬT CẢN NHÓM 21 Giáo viên hướng dẫ
Trang 1TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ
HỌC PHẦN: KĨ THUẬT VI ĐIỀU KHIỂN (CN581)
BÁO CÁO ĐỒ ÁN
ĐỀ TÀI: TÌM HIỂU VỀ CẢM BIẾN SIÊU ÂM VÀ
THIẾT KẾ ROBOT TRÁNH VẬT CẢN
NHÓM 21
Giáo viên hướng dẫn: Nhóm sinh viên thực hiện:
Nguyễn Hoàng Linh B1913045 Đào Hữu Đức B1913016
Trang 2MỤC LỤC
1 GIỚI THIỆU ĐỀ TÀI 1
a Tên và mục tiêu của đề tài 1
b Các tính năng cơ bản 1
c Phương pháp thực hiện 1
2 THỰC HIỆN 1
a Mô hình hệ thống 1
i Mô tả sơ lược về hệ thống 1
ii Mô hình hệ thống dạng khối 1
b Thiết kế phần cứng mạch điện 2
i Mô tả sơ lược hoạt động của mạch điện 2
ii Sơ đồ khối phần cứng mạch điện 2
iii Thiết kế chi tiết 2
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 6
i Chức năng của phần mềm 6
ii Lưu đồ chương trình chính 6
iii Lưu đồ chương trình con chính yếu 7
iv Đoạn code chương trình 7
3 KẾT QUẢ THỰC HIỆN 13
a Mô hình thực tế 13
b Kết quả thực hiện 13
c Nhận xét hệ thống 13
d Hướng phát triển 14
4 TÀI LIỆU THAM KHẢO 14
5 PHỤ LỤC 14
a Quá trình thực hiện đề tài 14
Trang 3ĐỀ TÀI : THIẾT KẾ ROBOT TRÁNH VẬT CẢN
1 GIỚI THIỆU ĐỀ TÀI
a Tên và mục tiêu của đề tài
Tên đề tài: Tìm hiểu về cảm biến siêu âm và thiết kế robot tránh vật cản
Mục tiêu: Hiểu về cấu tạo, hoạt động, chức năng cũng như các ứng dụng cơ bản của cảm biến siêu âm trong thí nghiệm và trong các lĩnh vực thực tế, thiết kế thành công một mô hình robot nhỏ có khả năng di chuyển và tránh vật cản
b Các tính năng cơ bản
Có thể di chuyển và chuyển hướng khi phát hiện vật cản phía trước ứng dụng phổ biến trong robot lau nhà, xe thông minh, … Ngoài ra có thể kết hợp thêm các loại cảm biến khác để dạng chức năng của sản phẩm
c Phương pháp thực hiện
Sử dụng cảm biến siêu âm để đo khoảng cách va chạm giữa robot với vật cản phía trước và hiển thị khoảng cách đó ra LED 7 đoạn, từ dữ liệu khoảng cách được đọc từ cảm biến ra lệnh cho robot tiếp tục di chuyển, rẽ trái, rẽ phải hay dừng lại nhờ khối động cơ gắn với bánh xe phía dưới robot
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
Trang 4b 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
iii Thiết kế chi tiết
Sơ đồ khối 1
- 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:
Trang 5Sơ đồ 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
Trang 6- 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
Trang 7iv Sơ đồ nguyên lý tổng hợp của toàn mạch
Trang 8c 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
iii Lưu đồ chương trình con chính yếu
Trang 9
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);
// -Khai bao doc cam
bien -int miliseconds;
int distance;
long sensor;
// -Khai bao bien cho led 7
doan -char tbl7seg[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; char buff[4]={0,0,0,0};
char idx=0;
int num = 0;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P1DIR = 0x0f; //P1.0 den 1.3 la output
P3DIR = 0xFF; // P3 la oupput cho led7
Trang 10P4DIR = BIT0; // P4.0 la ouput cho den
// khai bao port cho motor ben phai
P2DIR |= BIT0 + BIT1 + BIT2; // P2.0,P2.1,P2.2 all output cho P2OUT &= ~BIT0 + BIT1 + BIT2; // Clear P2.0,P2.1,P2.2
// khai bao port cho motor ben trai
P2DIR |= BIT3 + BIT4 + BIT6; // P2.3,P2.4,P2.6 all output
P2OUT &= ~BIT3 + BIT4 + BIT6; // Clear P2.3,P2.4,P2.6
P2SEL &= ~(BIT6 + BIT0); //sudunghetport2
timer(); // khoi dong timer doc cam bien va quet led
PWM_init(); // khoi dong Pwm cho dong co
_BIS_SR( GIE); // cho phep ngat toan cuc ca Pwm va timer while(1){
P1DIR |= BIT5; // P1.5 la ouput trigger
P1OUT |= BIT5; // set trigger muc cao
delay_cycles(10); // for 10us
P1OUT &= ~BIT5; // dung cho trigger ve muc thap P1DIR &= ~BIT4; // cho pin P1.2 input (ECHO) P1IFG = 0x00; // clear flag
P1IE |= BIT4; // cho phep interupt ECHO P1IES &= ~BIT4; // cho echo muc cao
delayms(100); // delay 1ms
distance = sensor/58; // doi thoi gian cam bien doc duoc ra cm
Trang 11}
else {
delayms(100);
P4OUT &= ~BIT0; //den bao hieu tat
DCtienvetruoc(); //neu cam bien do khoang cach >50 xe tien ve truoc
}
}//end while
}// end main
// -cau hinh timer do khoang cach va quet led -//
void timer ()
{
DCOCTL = 0;
BCSCTL1 = CALBC1_1MHZ; // 1mhz
DCOCTL = CALDCO_1MHZ; // 1mhz
CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0 = 1000; // 1ms at 1mhz
TACTL = TASSEL_2 + MC_1 + TAIE; // SMCLK, upmode/Enable Timer Interrupt TAIV
}
// -cau hinh PWM -//
void PWM_init()
{
CCTL1 = CCIE; // Enable interrupt for CCR1
CCR1 = 200; // Load value 20%C0
}
Trang 12// -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
}
}
// - khai bao ngat timer -//
#pragma vector=TIMER0_A0_VECTOR
interrupt void Timer_A (void)
Trang 13interrupt 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;
case 0x00A: //TAR overflow interrupt
P2OUT &= ~BIT0; // P2.0 = 0 ,1&2_EN = 0,Right Motor dung P2OUT &= ~BIT6; // P2.6 = 0 ,3&4_EN = 0,Left Motor dung break;
}
}
// -ham tien dong co ve truoc -//
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,
}
// -ham lui dong co ket hop chuuyen huong sang phai -//
void luisangphai(){
Trang 14// 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 -//
void delayms(int ms) {
for(int i=0; i<ms ; i++)
delay_cycles(1000);
}
// -ham quet led -//
void scanled(){
char ch;
CTR = 0x00;
ch = buff[idx]; // lay du lieu tu Buff
PDAT = tbl7seg[ch]; // chuyen ma 7 doan
CTR = (1<<idx); // dieu khien 1 LED tuong ung sang
idx++; // tang con tro quet => LED tiep theo
if (idx>=4) idx = 0; // Reset con tro quet
}
Trang 15//=======================================het=========================
3 KẾT QUẢ THỰC HIỆN
a Mô hình thực tế
- Do dịch bệnh nhóm chỉ thực hiện mô phỏng trên protues nên chỉ có hình ảnh mạch điện trên protues
b Kết quả thực hiện
- Mạch hoạt động ổn định, giá trị hiển thị lên led khớp so với cảm biến và động cơ cũng di chuyển như mong muốn cho thấy mạch hoạt động tương đối tốt
c Nhận xét hệ thống
- Ưu điểm: Hệ thống đo chính xác khoảng cách và điều khiển động cơ tiến hay lùi giống yêu cầu đặt ra
- Nhược điểm: Nhóm chưa điểu khiển được tốc độ động cơ và đây cũng là dạng mô phỏng nên chưa thấy được robot hoạt động trên địa hình thực tế có nhìu vật cản thì còn nhược điểm gì về hoạt động của hệ thống
d Hướng phát triển
- Ngoài việc sử dụng đơn thuần robot di chuyển tranh vật cản thì ta có thể thay đổi hình dạng và kết hợp các thiết bị ngoại vi khác để làm robot lau nhà, … ngoài ra hiện nay cảm biến siêu âm kết hợp vi điều khiển còn ứng dụng rộng rãi trong nhìu lĩnh vực
4 TÀI LIỆU THAM KHẢO
[1] https://www.mouser.vn/ProductDetail/TexasInstruments/MSP430F2232TRHAR? qs=iSMark9AYDXbmoraPweWaQ==
Trang 16https://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