XE tự HÀNH bám TƯỜNG TRÁI DÙNG PIC (có code và layout) XE tự HÀNH bám TƯỜNG TRÁI DÙNG PIC (có code và layout) XE tự HÀNH bám TƯỜNG TRÁI DÙNG PIC (có code và layout) XE tự HÀNH bám TƯỜNG TRÁI DÙNG PIC (có code và layout) XE tự HÀNH bám TƯỜNG TRÁI DÙNG PIC (có code và layout) XE tự HÀNH bám TƯỜNG TRÁI DÙNG PIC (có code và layout)
Trang 1XE TỰ HÀNH BÁM TƯỜNG TRÁI
Trang 2DANH MỤC CÁC BẢNG BIỂU VII DANH MỤC CÁC TỪ VIẾT TẮT VIII CHƯƠNG 1 TỔNG QUAN VỀ XE TỰ HÀNH BÁM TƯỜNG 1
1.1 GIỚI THIỆU 1
1.2 HƯỚNG NGHIÊN CỨU 1
CHƯƠNG 2 TÌM HIỂU LINH KIỆN 2
CHƯƠNG 3 TIẾN TRÌNH THỰC HIỆN 10
3.1 THIẾT KẾ PHẦN CỨNG VI ĐIỀU KHIỂN PIC 16F877A 10
Trang 3HÌNH 2-2: SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC 16F877A 4
HÌNH 2-3: CẢM BIẾN SIÊU ÂM SRF 05 5
HÌNH 2-4: IC L298N 6
HÌNH 2-5: LCD 1602 7
HÌNH 2-6: SƠ ĐỒ CHÂN LCD 1602 7
HÌNH 2-7: ĐỘNG CƠ DC 9
HÌNH 2-8: CẤU TẠO ĐỘNG CƠ DC 9
HÌNH 3-1: MẠCH NGUYÊN LÍ VI ĐIỀU KHIỂN PIC 16F877A 10
HÌNH 3-2: MẠCH IN VI ĐIỀU KHIỂN PIC 16F877A 11
HÌNH 3-3: SƠ ĐỒ CẤU TRÚC CƠ BẢN CỦA XE TỤ HÀNH 12
Hình 3-4: Sơ đỒ giẢi thuẬt cỦA xe bám tưỜng trái 13
Trang 5PIC Programable Intelligent Computer
LCD Liquid Crystal Display
DC Direct Current
Trang 6CHƯƠNG 1 TỔNG QUAN VỀ XE TỰ HÀNH BÁM TƯỜNG
1.1 Giới thiệu
Di chuyển theo tường (wall following) là một tác vụ thường thấy ở xe tự hành,trong các môi trường biết trước hoạc không biết trước Tác vụ này được dùng vớicác nhiệm vụ: tránh chướng ngại vật, bám theo tường,
1.2 Hướng nghiên cứu
- Nghiên cứu các bộ điều khiển cho xe bám tường
- Thiết kế đế di chuyển
- Thiết kế cảm biến gắn lên xe tự hành để đo khoảng cách với tường
- Lập trình cho xe tự hành
- Nhận xét kết quả và kết luận
Trang 7CHƯƠNG 2 TÌM HIỂU LINH KIỆN
Hình 2-1: Sơ đồ chân vi điều khiển 16F877A
- Vi điều khiển PIC 16F877A có 5 cổng xuất nhập bao gồm PORTA, PORTB,PORTC, PORTD, PORTE
PORTA bao gồm 6 I/O pin Đây là các chân có thể vừa xuất và nhập, đượcđiều khiển bởi thanh ghi TRISA
PORTB bao gồm 8 I/O pin, thanh ghi điều khiển xuất nhập tương ứng làTRISB Bên cạnh đó một số chân của PORT B còn được sử dụng trong quátrình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau
PORTC bao gồm 8 I/O pin, thanh ghi điều khiển xuất nhập tương ứng làTRISC Bên cạnh đó, PORTC còn chứa các chức năng của bộ so sánh, bộtimer 1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART
Trang 8 PORTD bao gồm 8 I/O pin, thanh ghi điều khiển xuất nhập tương ứng làTRISD PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (ParallelSlave Port).
PORTE bao gồm 3 I/O pin, thanh ghi điều khiển xuất nhập tương ứng làTRISE Các chân của PORTE có ngõ vào analog Bên cạnh đó, PORTE còn làcác chân điều khiển của chuẩn giao tiếp PSP (Parallel Slave Port)
- Cấu trúc bộ nhớ của vi điều khiển 16F877A gồm bọ nhớ chương trình (ProgramMemory) và bộ nhớ dữ liệu (Data Memory)
Bộ nhớ chương trình của vi điều khiển PIC 16F877A là bộ nhớ flash, dunglượng bộ nhớ 8K word (1 word= bit) và được phân thành nhiều trang
Bộ nhớ dữ liệu của vi điều khiển PIC 16F877A là bộ nhớ EEPROM đượcchia ra làm 4 bank Mỗi bank có dung lượng 128 bit, bao gồm các thanh ghi cóchức năng đặc biệt nằm ở các vùng địa chỉ thấp và các thanh ghi mục đíchchung nằm ở vùng địa chỉ còn lại trong bank
- Bộ định thời:
TIMER 0: Là bộ đếm 8 bit được kết nối với bộ chia tần só 8 bit Cấu trúccủa Timer 0 cho phép ta lựa chọn xung clock tác động và cạnh tích cực củaxung clock Ngắt Timer 0 sẽ xuất hiện khi Timer 0 bị tràn Bit TMR0IE là bitđiều khiển Timer 0 TMR0IE=1 cho phép ngắt Timer 0 tác động, TMR0IF=0không cho phép ngắt Timer 0 tác động
TIMER 1: Là bộ định thời 16 bit, giá trị của Timer 1 sẽ được lưu trong 2thanh ghi (TMRH1:TMR1L) Cờ ngắt của Timer 1 là bit TMR1IF, bit điềukhiển của Timer 1 sẽ là TMR1IE Tương tự như Timer 0, Timer 1 cũng có 2chế độ hoạt động: chế độ định thời và chế độ đếm
TIMER 2: Là bộ định thời 8 bit và được hỗ trọ bởi 2 bộ chia tần sốprescaler và postscaler Thanh ghi chứa giá trị đếm của Timer 2 là TMR2 Bitcho phép ngắt Timer 2 tác động là TMR2ON Cờ ngắt của Timer 2 là bitTMR2IF
Trang 9Bảng 2-1: So sánh các Timer
TIMER0 TIMER1 TIMER2Kích thước thanh ghi 8 bits 16 bits 8 bitsNguồn CLOCK bên
trong
Fosc/4 Fosc/4 Fosc/4
Nguồn CLOCK bên
Trang 102.2 Cảm biến siêu âm SRF 05
Hình 2-3: Cảm biến siêu âm SRF 05
Module cảm biến siêu âm SRF05 dùng để đo khoảng cách đến vật chắn bằng sóngsiêu âm Module có 2 đầu thu và phát sóng, khoảng cách được xác định bằng cách
đo khoảng thời gian mà sóng siêu âm được phát ra từ module truyền đến vật chắnrồi phản hồi về
Sử dụng bằng cách truyền 1 xung vào chân trigger của module, sau đó chờ 1 xungtrả về trên chân echo, độ dài của xung phản hồi tương ứng với thời gian của sóngsiêu âm truyền trong không khí, từ đó tính ra được khoảng cách đến vật thể chắn.Thông tin cơ bản: [2]
- Điện áp hoạt động: 5 V
- Dòng cấp: 30 mA
- Tần số: 40 KHz
- Khoảng cách đo được xa nhất: 3 m
- Phát hiện vật cản trong khoảng: 3 cm đến 3 m
Trang 112.3 Mạch cầu H dùng IC L298N
L298 là IC kết hợp 2 mạch cầu H bên trong, thích hợp ứng dụng công suất nhỏ nhưđộng cơ DC loại vừa
Hình 2-4: IC L298N
Chức năng các chân của L298:
- 4 chân input: IN1, IN2, IN3, IN4 được nối với các chân 5, 7, 10, 12 củaL298 Đây là các chân nhận tín hiệu điều khiển
- 4 chân output: OUT1, OUT2, OUT3, OUT4 được nối với các chân 2, 3, 13,
14 của L298 Các chân này được nối với động cơ
- 2 chân ENA và ENB là hai chân điều khiển các mạch cầu H trong L298 Nếuchân điều khiển ở mức “1” thì cho phép mạch cầu hoạt động và ngược lại
Điều khiển chiều quay với L298:
- Khi ENA=0: Động cơ không quay
- Khi ENA=1:
+ INT1=1 và INT2=0: Động cơ quay thuận
+ INT1=0 và INT2=1: Động cơ quay nghịch
+ INT1=INT2: Động cơ dừng lại
Trang 13Chân số 1 - VSS: Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này vớiGND của mạch điều khiển.
Chân số 2 - VDD: Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân nàyvới VCC=5V của mạch điều khiển
Chân số 3 - VE: Điều chỉnh độ tương phản của LCD
Chân số 4 - RS: Chân chọn thanh ghi Nối chân RS với logic "0" hoặc logic "1"
để chọn thanh ghi:
Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ
“ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD
Chân số 5 - R/W: Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W vớilogic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độđọc
Chân số 6 - E: Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên busDB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E
Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghibên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chânE
Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên(low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân Exuống mức thấp
Chân số 7 đến Chân số 14 - D0 đến D7: Tám đường của bus dữ liệu dùng để traođổi thông tin với MPU Có 2 chế độ sử dụng 8 đường bus này :
Chế độ 8 bit: Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7
Chế độ 4 bit: Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB làDB7
Chân số 15 - A: Nguồn dương cho đèn nền
Chân số 16 - K: Nguồn âm cho đèn nên [3]
Trang 142.5 Động cơ DC
Hình 2-7: Động cơ DC
Động cơ DC là động cơ điện hoạt động với dòng một chiều, chuyển đổi năng lượngđiện thành năng lượng cơ
Hình 2-8: Cấu tạo động cơ DC
Khi cấp một dòng điện, động cơ sẽ xoay dựa theo hiệu ứng điện từ của nam châm
Trang 15CHƯƠNG 3 TIẾN TRÌNH THỰC HIỆN
3.1 Thiết kế phần cứng vi điều khiển PIC 16F877A
Thi công phần cứng mạch kit PIC 16F877A
Yêu cầu: Thi công mạch đúng với mạch nguyên lí, mối hàn chắc chắn, thẩm mĩ
Hình 3-1: Mạch nguyên lí vi điều khiển PIC 16F877A
Trang 16Hình 3-2: Mạch in vi điều khiển PIC 16F877A
3.2 Thi công, lắp ráp xe tự hành
Lắp ráp động cơ và bánh xe vào khung xe, sắp xếp các linh kiện hợp lí để xe dichuyển dễ dàng
Trang 173.3 Thiết kế phần mềm
Hình 3-3: Sơ đồ cấu trúc cơ bản của xe tự hành
Khối Sensor
Khối hiển thị
Khối hiển thị
Khối điều khiển
Khối điều khiển
Trang 19CHƯƠNG 4 NHẬN XÉT
4.1 Ưu điểm
Cảm biến chính xác khoảng cách đến tường để bám vào
4.2 Khuyết điểm
- Xe chạy chưa ổn định, khung và bánh xe chưa chắc chắn
- Nguồn năng lượng có giới hạn nên không thể vận hành khoảng thời gian quálâu
4.3 Hướng phát triển
Phát triển thành các robot tự hành, ứng dụng vào thực tế để giúp ích con người, pháttriển đời sống xã hội
Trang 20TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1] Giáo trình vi điều khiển PIC 16F877- Nguyễn Đình Phú.[2] http://hqdt.vn/bai-viet/thong-tin-linh-kien-dien-tu/
[3] http://bachkhoadientu.com/
Trang 21#DEFINE LCD_RS_PIN PIN_B3
#DEFINE LCD_RW_PIN PIN_B4
#DEFINE LCD_ENABLE_PIN PIN_B5
#DEFINE LCD_D4_PIN PIN_D4
#DEFINE LCD_D5_PIN PIN_D5
#DEFINE LCD_D6_PIN PIN_D6
#DEFINE LCD_D7_PIN PIN_D7
#DEFINE SRF05_TRIGGER1 PIN_B1
#DEFINE SRF05_ECHO PIN_B0
#include <lcd.c>
int1 range_ok=0;
int32 temp = 0;
void SRF05_Range();
Trang 22set_timer1(10);
enable_interrupts(GLOBAL);
delay_ms(100);