Thiết kế xe tự hành di động bám tường
MỤC LỤC
DANH MỤC HÌNH VẼ...........................................................................................................2
DANH MỤC BẢNG BIỂU......................................................................................................4
DANH MỤC TỪ VIẾT TẮT...................................................................................................5
LỜI NÓI ĐẦU..........................................................................................................................6
CHƯƠNG 1: TỔNG QUAN..................................................................................................7
1.1.
Giới thiệu về xe tự hành [1].....................................................................................7
1.2.
Tổng quan về Arduino.............................................................................................8
1.2.1.
Giới thiệu chung [2]..........................................................................................8
1.2.2.
Ứng dụng [5].....................................................................................................9
CHƯƠNG 2: THIẾT KẾ PHẦN CỨNG CHO XE TỰ HÀNH.......................................11
2.1.
Cấu tạo xe tự hành.................................................................................................11
2.1.1.
Khối điều khiển..............................................................................................13
2.1.2.
Khối động cơ..................................................................................................15
2.1.3.
Khối cảm biến.................................................................................................18
2.1.4.
Khối nguồn.....................................................................................................20
2.2.
Thiết kế mạch điều khiển xe tự hành [8]................................................................21
2.2.1.
Khối xử lí trung tâm.......................................................................................23
2.2.2.
Khối nguồn.....................................................................................................23
2.2.3.
Mạch sạc pin...................................................................................................25
2.2.4.
Hệ thống các Jump kết nối.............................................................................26
2.2.5.
Mô hình sản phầm..........................................................................................27
CHƯƠNG 3: THIẾT KẾ PHẦN MỀM CHO XE TỰ HÀNH.........................................28
3.1.
Lập trình cho xe tự hành........................................................................................28
3.1.1.
Phần mềm Arduino IDE [5]............................................................................28
3.1.2.
Lập trình cho ATmega328P [8]......................................................................29
3.2.
Xây dựng thuật toán cho xe tự hành......................................................................29
3.2.1.
Bộ điều khiển PID [16]...................................................................................29
3.2.2.
Xây dựng thuật toán.......................................................................................33
CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM.......................................................................41
KẾT LUẬN.............................................................................................................................44
TÀI LIỆU THAM KHẢO.....................................................................................................45
Đồ Án I
1
Thiết kế xe tự hành di động bám tường
DANH MỤC HÌNH VẼ
Hình 1.1. Xe tự hành thám hiểm Sao Hỏa Curiosity..................................................................7
Hình 1.2. Các dòng Arduino. [3]................................................................................................8
Hình 1.3. Robot di động tự tránh vật cản dùng camera CMUCam và Arduino Nano.............10
Hình 2.1. Mô hình xe tự hành..................................................................................................11
Hình 2.2. Hình ảnh thực tế của xe............................................................................................12
Hình 2.3. Sơ đồ khối cấu tạo của xe tự hành............................................................................12
Hình 2.4. Arduino Pro Mini.....................................................................................................13
Hình 2.5. Chip ATmega328P-AU............................................................................................14
Hình 2.6. Độ rộng xung ứng với các giá trị Duty Cycle..........................................................15
Hình 2.7. Góc quay của Servo ứng với độ rộng xung..............................................................16
Hình 2.8. Động cơ Servo DS04-NFC cùng phụ kiện...............................................................16
Hình 2.9. Code điều khiển động cơ Servo DS04-NFC............................................................17
Hình 2.10. Cảm biến siêu âm HC-SRF04................................................................................18
Hình 2.11. Nguyên lý hoạt động của cảm biến. [8].................................................................18
Hình 2.12. Biểu đồ thời gian của cảm biến. [11].....................................................................19
Hình 2.13. Những trường hợp cảm biến không đo được khoảng cách. [12]............................19
Hình 2.14. Code điều khiển cảm biến siêu âm HC-SRF04......................................................20
Hình 2.15. Pin sạc 7.4v Lithium Li-Ion ICR18650-2600mAh................................................21
Hình 2.16. Sơ đồ nguyên lý mạch điều khiển xe tự hành........................................................22
Hình 2.17. Sơ đồ nguyên lý khối xử lí trung tâm.....................................................................23
Hình 2.18. IC AMS1117-5V....................................................................................................24
Hình 2.19. Sơ đồ nguyên lý khối nguồn..................................................................................24
Hình 2.20. IC TP4056..............................................................................................................25
Hình 2.21. Sơ đồ nguyên lý mạch sạc pin................................................................................26
Đồ Án I
2
Thiết kế xe tự hành di động bám tường
Hình 2.22. Hệ thống các Jump kết nối.....................................................................................26
Hình 2.23. PCB mô phỏng mạch điều khiển động cơ..............................................................27
Hình 3.1. Giao diện Arduino IDE............................................................................................28
Hình 3.2. Sơ đồ khối của bộ điều khiển PID............................................................................30
Hình 3.3. Đồ thị tín hiệu ra theo thời gian, ba giá trị KP (KI và KD là hằng số).......................31
Hình 3.4. Đồ thị tín hiệu ra theo thời gian, tương ứng với 3 giá trị KI (KP và KD không đổi). 32
Hình 3.5. Đồ thị tín hiệu ra theo thời gian, với 3 giá trị KD (KP and KI không đổi).................33
Hình 3.6. Lưu đồ thuật toán điều khiển xe tự hành..................................................................35
Hình 3.7. Khi xe gặp vật cản phía trước..................................................................................36
Hình 3.8. Khi khoảng cách bên phải xe lớn hơn 25 cm...........................................................37
Hình 3.9. Góc quay cần được điều chỉnh cho phù hợp............................................................38
Hình 3.10. Khi khoảng cách bên phải xe nhỏ hơn 25 cm........................................................39
Hình 3.11. Khi khoảng cách phía trước và bên phải xe đều lớn..............................................40
Hình 3.12. Khi có vật cản nằm chếch với hướng di chuyển của xe góc 450............................40
Hình 4.1. Trường hợp phía trước không có vật cản, bên phải cách tường 25 cm....................41
Hình 4.2. Trường hợp khoảng cách bên phải xe lớn hơn 25 cm..............................................41
Hình 4.3. Góc quay của xe được điều chỉnh hợp lý.................................................................42
Hình 4.4. Trường hợp khoảng cách bên phải xe nhỏ hơn 25 cm.............................................42
Hình 4.5. Trường hợp phía trước có vật cản............................................................................42
Hình 4.6. Trương hợp xảy ra sự cố..........................................................................................43
Đồ Án I
3
Thiết kế xe tự hành di động bám tường
DANH MỤC BẢNG BIỂU
Bảng 1.1. Phân loại bo mạch Arduino. [4].................................................................................9
Bảng 2.1. Thông số kỹ thuật Arduino Pro Mini.......................................................................13
Bảng 2.2. Thông số kỹ thuật chip ATmega328P-AU..............................................................14
Bảng 2.3. Thông số kỹ thuật động cơ Servo DS04-NFC.........................................................17
Bảng 2.4. Thông số kỹ thuật cảm biến siêu âm HC-SRF04. [11]............................................20
Bảng 2.5. Thông số kỹ thuật pin sạc 7.4v Lithium Li-Ion ICR18650-2600mAh. [13]............21
Bảng 2.6. Thông số kỹ thuật IC AMS1117-5V. [14]...............................................................24
Bảng 2.7. Thông số kỹ thuật IC TP4056. [15].........................................................................25
Bảng 3.1. Cách nối dây nạp bootloader cho ATmega328P.....................................................29
Đồ Án I
4
Thiết kế xe tự hành di động bám tường
DANH MỤC TỪ VIẾT TẮT
I/O
Input/Output
Cổng vào/ra
PID
Proportional Integral Derivative
Bộ điều khiển vi tích phân tỷ lệ
USB
Universal Serial Bus
Chuẩn kết nối tuần tự đa dụng
IDE
Integrated Development Environment
Môi trường phát triển tích hợp
LED
Light Emitting Diode
Điốt phát quang
PWM
Pulse Width Modulation
Điều chế độ rộng xung
RISC
Reduced Instructions Set Computer
Máy tính với tập lệnh đơn giản hóa
ISP
In-System Programmer
Nạp chương trình trong hệ thống
EEPROM
Electrically Erasable Programmable
Bộ nhớ chỉ đọc tái lập trình bằng tín
Read-Only Memory
hiệu điện
RAM
Random Access Memory
Bộ nhớ truy cập ngẫu nhiên
SRAM
Static Random Access Memory
Bộ nhớ truy cập ngẫu nhiên tĩnh
UART
Universal Asychronous serial
Giao thức truyền nhận nối tiếp không
Receiver and Transmitter
đồng bộ
SPI
Serial Peripheral Interface
Giao diện ngoại vi nối tiếp
I2C
Inter-Integrated Circuit
Giao tiếp truyền thông 2 dây
ADC
Analog-to-Digital Converter
Bộ chuyển đổi tuơng tự-số
DAC
Digital-to-Analog Converter
Bộ chuyển đổi số-tuơng tự
IC
Integrated Circuit
Mach tich hop.
LCD
Liquid Crystal Display
Màn hình tinh thể lỏng
Đồ Án I
5
Thiết kế xe tự hành di động bám tường
LỜI NÓI ĐẦU
Trong thời đại công nghiệp ngày nay, robot ngày càng được sử dụng phổ biến trong sản
xuất cũng như trong cuộc sống của con người. Robot đã có một vị trí quan trọng khó có thể
thay thế được, nó giúp con người để làm việc trong các điều kiện nguy hiểm, khó khăn.
Ngoài ra, robot còn được dùng vào các lĩnh vực thám hiểm không gian, quân sự, giải trí...
Lĩnh vực robot di động đang ngày càng chiếm được sự quan tâm của các nhà nghiên cứu và
xã hội. Chính vì lí do này, em đã lựa chọn đề tài “Thiết kế xe tự hành di động bám tường”
cho học phần Đồ Án I.
Trong học kỳ vừa qua, dưới sự chỉ dẫn của thầy TS. Nguyễn Hoàng Nam và các anh Bùi
Tuấn Anh và anh Phạm Tùng Lâm thuộc Nhóm nghiên cứu của thầy, em đã học hỏi được
nhiều kiến thức bổ ích về xe tự hành để có thể hoàn thiện được Đồ Án này. Trong bài báo cáo
của mình, em xin trình bày những nội dung sau:
-
Chương 1: Tổng quan.
-
Chương 2: Thiết kế phần cứng xe cho tự hành.
-
Chương 3: Thiết kế phần mềm cho xe tự hành.
-
Chương 4: Kết quả thực nghiệm.
-
Chương 5: Kết luận.
Em xin chân thành cảm ơn!
Sinh viên
Đồ Án I
6
Thiết kế xe tự hành di động bám tường
CHƯƠNG 1: TỔNG QUAN
1.1. Giới thiệu về xe tự hành[CITATION Doã \l 1033 ]
Xe tự hành là một loại xe robot có khả năng tự dịch chuyển, tự vận
động (có thể lập trình lại được) dưới sự điều khiển tự động có khả năng
hoàn thành công việc được giao. Xe tự hành là một thành phần có vai trò
quan trọng trong ngành robot học. Cùng với sự phát triển mạnh mẽ của
các hệ thống tự động hóa, xe tự hành ngày một được hoàn thiện và càng
cho thấy lợi ích của nó trong công nghiệp và sinh hoạt. Ngày nay xe tự
hành có rất nhiều ứng dụng tự động hóa trong đời sống, công nghiệp….Có
nhiều công việc đòi hỏi thực thi trong môi trường độc hại, nguy hiểm như
có phóng xạ, khí độc, bụi bẩn, kí sinh trùng gây bệnh. Vì thế giải pháp sử
dụng robot nói chung trong việc quan trắc môi trường là rất cần thiết. Với
khả năng tích hợp nhiều loại cảm biến như nhiệt độ, độ ẩm, bụi, camera,
siêu âm, hồng ngoại…, robot có khả năng thay thế con người 1 cách hiệu
quả trong các công việc có độ nguy hiểm cao.
Hình 1.1. Xe tự hành thám hiểm Sao Hỏa Curiosity.
Từ tình hình thực tế đó, việc xây dựng các chương trình hoạt động cho
các xe tự hành là điều thiết yếu. Một vấn đề rất được quan tâm khi thiết
kế xe tự hành là điều khiển làm sao cho xe có thể đi theo một quỹ đạo
mong muốn. Bài toán xe tự hành di động bám tường (wall-following
Đồ Án I
7
Thiết kế xe tự hành di động bám tường
problem) là một trong các bài toán thường gặp của robot kiểu phản xạ
(reactive paradigm), nó đã được giải bằng nhiều cách khác nhau. Bản báo
cáo này trình bày phương pháp giải quyết vấn đề đó với thuật toán điều
khiển PID sử dụng Arduino.
1.2. Tổng quan về Arduino
1.2.1. Giới thiệu chung[ CITATION Ard1 \l 1033 ]
Hình 1.2. Các dòng Arduino.[ CITATION Typ \l 1033 ]
Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với nhau
hoặc với môi trường được thuận lợi hơn. Phần cứng bao gồm một board mạch nguồn mở
được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit. Những Model
hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ
thuật số tương thích với nhiều board mở rộng khác nhau.
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 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.
Đồ Án I
8
Thiết kế xe tự hành di động bám tường
Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn
kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có
khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành. Những
ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều
khiển nhiệt độ và phát hiện chuyển động. Đi cùng với nó là một môi trường phát triển tích
hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùng viết các
chương trình cho Aduino bằng ngôn ngữ C hoặc C++. 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.
Hiện tại, có hơn 20 loại bo mạch Arduino được phát triển phù hợp cho với nhu cầu khác
nhau của người sử dụng. Dựa theo mục đích sử dụng, các bo mạch được phân loại theo bảng
sau:
Bảng 1.1. Phân loại bo mạch Arduino.[ CITATION Ard \l 1033 ]
Mục đích
Bo mạch
Phổ thông
UNO, LEONARDO, 101, ROBOT, ESPLORA, MICRO, NANO, MINI
Nâng cao
Internet vạn vật
Thiết bị có thể
đeo được
MEGA, ZERO, DUE, MEGA ADK, PRO, M0, M0 PRO, MKRZERO,
PRO MINI
YUN, ETHERNET, TIAN, INDUSTRIAL 101, LEONARDO ETH,
MKRFOX 1200, MKR1000, YUN MINI
GEMMA, LILYPAD ARDUINO USB, LILYPAD ARDUINO
MAINBOARD, LILYPAD ARDUINO SIMPLE, LILYPAD ARDUINO
SIMPLE SNAP
1.2.2. Ứng dụng[CITATION TạQ16 \l 1033 ]
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. Có thể kể đến một số ứng dụng nổi bật
như: Điều khiển ánh sáng (đóng ngắt LED, điều khiển ánh sáng theo nhạc), điều khiển máy
Đồ Án I
9
Thiết kế xe tự hành di động bám tường
bay không người lái, điều khiển máy in 3D. Và một ứng dụng quan trọng không thể không
nhắc đến là sử dụng Arduino để điều khiển robot, đặc biệt là robot di động. Trong Đồ Án
này, Arduino được sử dụng làm mạch điều khiển xe tự hành, mọi công việc đo đạc, điều
khiển động cơ đều được ra lệnh bởi bo mạch này.
Hình 1.3. Robot di động tự tránh vật cản dùng camera CMUCam và Arduino Nano.
Đồ Án I
10
Thiết kế xe tự hành di động bám tường
CHƯƠNG 2: THIẾT KẾ PHẦN CỨNG CHO XE TỰ HÀNH
2.1. Cấu tạo xe tự hành112Equation Chapter 2 Section 1
Yêu cầu của bài toán đặt ra là thiết kế xe tự hành có khả năng di chuyển song song với
tường, cạnh phải của xe bám tường, cách tường một khoảng không đổi 25 cm. Để giải quyết
bài toán này, ta sử dụng khung xe Robot ba bánh với bánh trước là bánh đa hướng, hai bánh
sau được điều khiển bởi hai động cơ. Để thu thập dữ liệu khoảng cách phía trước và bên phải
xe, ta cần gắn hai cảm biến siêu âm theo hai hướng tương ứng. Với các yêu cầu đặt ra, ta lựa
chọn động cơ Servo DS04-NFC và cảm biến siêu âm HC-SRF04. Để điều khiển xe tự hành,
bo mạch Arduino Pro Mini là phù hợp nhất bởi với 14 chân tín hiệu số (trong đó có 6 chân
PWM), nó hoàn toàn đáp ứng được nhu cầu điều khiển hai động cơ (cần 1 chân PWM cho
mỗi động cơ) và hai cảm biến (cần 2 chân số cho mỗi cảm biến), các chân còn thừa có tác
dụng dự phòng cho những phiên bản về sau. Nguồn điện cho xe hoạt động được cấp từ Pin
sạc 7.4v Lithium Li-Ion ICR18650-2600mAh.
Như vậy, cấu tạo xe tự hành có dạng như sau:
Hình 2.4. Mô hình xe tự hành.
Trong đó:
Đồ Án I
11
Thiết kế xe tự hành di động bám tường
B1, B2, B3: Các bánh xe của xe, trong đó B3 là bánh đa hướng.
MT1, MT2: Động cơ gắn lên bánh phải và bánh trái của xe.
US1, US2: Hai cảm biến siêu âm.
MĐK: Mạch điều khiển xe.
PIN: Nguồn cấp cho xe hoạt động.
Hình 2.5. Hình ảnh thực tế của xe.
Nguyên lý hoạt động của xe được minh họa qua sơ đồ khối:
Hình 2.6. Sơ đồ khối cấu tạo của xe tự hành.
Có thể thấy, cấu tạo của xe gồm có bồn khối cơ bản: Khối nguồn, khối cảm biến, khối điều
khiển và khối động cơ. Ta tiến tới phân tích chi tiết từng khối chức năng.
Đồ Án I
12
Thiết kế xe tự hành di động bám tường
2.1.1. Khối điều khiển
2.1.1.1. Bo mạch Arduino Pro Mini[ CITATION Ard2 \l 1033 ]
Đối với khối điều khiển, ta sử dụng Arduino Pro Mini để thu thập và xử lí thông tin từ
khối cảm biến đồng thời đưa ra tín hiệu điều khiển đến khối động cơ.
Arduino Pro Mini là phiên bản nhỏ gọn nhất trong các dòng Arduino nhưng vẫn giữ đầy
đủ tính năng tương đương với Arduino UNO/Nano do cùng sử dụng vi điều khiển chính là
ATmega328P, vì là phiên bản sử dụng chip dán nên Arduino Pro Mini sẽ có nhiều hơn
Arduino UNO 2 chân Analog là A6 và A7, với thiết kế nhỏ gọn và giá thành phải chăng,
Arduino Pro Mini là sự lựa chọn tối ưu cho vô số các ứng dụng khác nhau.
Hình 2.7. Arduino Pro Mini.
Bảng 2.2. Thông số kỹ thuật Arduino Pro Mini.
Vi điều khiển
Atmega328P-AU
Điện áp hoạt động
5V
Nguồn cấp
6-12V
Số đầu vào/ra số
14 (6PWM)
Đầu vào tương tự
6
Dòng điện vào/ra số
40 mA
Bộ nhơ chương trình
32 KB
Xung nhịp
16 MHz
2.1.1.2. Vi điều khiển ATmega328P[ CITATION 8bi16 \l 1033 ]
Thiết kế tiêu chuẩn của Arduino Pro Mini sử dụng vi điều khiển ATmega328P-AU thuộc
họ MegaAVR có sức mạnh hơn hẳn ATmega8. ATmega328P-AU là một bộ vi điều khiển 8
Đồ Án I
13
Thiết kế xe tự hành di động bám tường
bit dựa trên kiến trúc RISC bộ nhớ chương trình 32KB ISP flash có thể ghi xóa hàng nghìn
lần, 1KB EEPROM, và 2KB SRAM.
Hình 2.8. Chip ATmega328P-AU.
Với 23 chân có thể sử dụng cho các kết nối vào hoặc ra I/O, 32 thanh ghi, 3 bộ
timer/counter có thể lập trình, có các ngắt nội và ngoại (2 lệnh trên một vector ngắt), giao
thức truyền thông nối tiếp UART, SPI, I2C. Ngoài ra có thể sử dụng bộ biến đổi số tương tự
10 bít (ADC/DAC) mở rộng tới 8 kênh, khả năng lập trình được watchdog timer, hoạt động
với 5 chế độ nguồn, có thể sử dụng tới 6 kênh điều chế độ rộng xung (PWM), hỗ trợ nạp
bootloader.
Bảng 2.3. Thông số kỹ thuật chip ATmega328P-AU.
Kiến trúc
AVR 8 bit
Xung nhịp lớn nhất
20MHz
Bộ nhớ chương trình
32KB
Bộ nhớ EEPROM
1KB
Bộ nhớ RAM
2KB
Điện áp hoạt động
1.8-5.5V
Số Timer
3 Timer gồm 2 Timer 8 bit và 1 Timer 16
bit
Số kênh PWM
6 kênh
Đồ Án I
14
Thiết kế xe tự hành di động bám tường
2.1.2. Khối động cơ
2.1.2.1. Điều chế độ rộng xung PWM[CITATION Ngu16 \l 1033 ]
Xung là các trạng thái cao/thấp (HIGH/LOW) về mức điện áp được lặp đi lặp lại. Đại
lượng đặc trưng cho 1 xung PWM (Pulse Width Modulation) bao gồm tần số (frequency)
và chu kì xung (duty cycle).
Phương pháp điều chế độ rộng xung là thay đổi độ rộng của chuỗi xung vuông từ đó thay
đổi điện áp trung bình cấp ra tải, nhằm điều khiển tốc độ động cơ.
Hình 2.9. Độ rộng xung ứng với các giá trị Duty Cycle.
Để tạo xung PWM trong Atmega328P, ta đặt giá trị ban đầu cho thanh ghi OCRx. Khi
TCNTx tăng từ 0 lên bằng giá trị OCRx thì chân OCx được xóa về 0. TCNTx lại tiếp tục tăng
lên đến giá trị ICRx thì reset về 0 và chân OCx được kéo lên 1. Như vậy giá trị của ICRx là
chu kì xung, giá trị của OCRx là thời gian xung ở mức cao.
Duty Cycle
OCRx
ICRx
222\* MERGEFORMAT (.)
Xung PWM dùng để điều khiển động cơ Servo có những đặc điểm sau:[ CITATION
Xun14 \l 1033 ]
Xung PWM có tần số thông thường trong khoảng 50Hz (20ms).
Thời gian xung ở mức cao chỉ từ 1ms đến 2ms.
Có thể có nhiều hơn 1 sự thay đổi trạng thái điện cao/thấp trong 1 chu kỳ.
Đồ Án I
15
Thiết kế xe tự hành di động bám tường
Hình 2.10. Góc quay của Servo ứng với độ rộng xung.
Với thời gian 1ms ở mức cao, góc quay của Servo là 0 0, 1.5ms góc quay là 900 và 2ms góc
quay là 1800. Các góc khác từ 00 - 1800 được xác định trong khoảng thời gian 1 - 2ms.
Lưu ý: Có thể ghép nhiều xung trong cùng 1 thời gian là 20ms để xác định vị trí góc của
nhiều Servo cùng 1 lúc, tối đa là 10 Servo.
2.1.2.2. Động cơ RC Servo quay 3600 DS04-NFC[ CITATION Ser \l 1033 ]
Thông thường, các động cơ Servo chỉ quay với góc quay nằm trong khoảng từ 0 0 – 1800.
Tuy nhiên động cơ DS04-NFC có thể quay liên tục theo cả hai chiều. Động cơ này thường
được sử dụng trong các thiết kế xe với ưu điểm dễ sử dụng, nhỏ gọn, dễ lắp đặt, có thể mua
kèm bánh xe RC Servo để sử dụng với động cơ này. Động cơ có 3 chân là: Vcc, Signal,
GND.
Đồ Án I
16
Thiết kế xe tự hành di động bám tường
Hình 2.11. Động cơ Servo DS04-NFC cùng phụ kiện.
Để điều khiển động cơ, ta sử dụng thư viện của Arduino, cụ thể là hàm
myservo.writeMicroseconds để cấp xung PWM cho động cơ với giá trị đặt từ 1000-2000. Ta
sẽ thấy động cơ quay chậm dần ở khoảng từ 1000 đến 1500, dừng lại, sau đó đảo chiều và
quay nhanh dần từ 1500-2000. Trên Servo có 1 biến trở để canh chỉnh điểm dừng, lợi dụng
đặc tính như trên ta có thể sử dụng Servo như 1 động cơ xoay bình thường với Driver có sẵn
trên động cơ và chỉ sử dụng 1 chân tạo xung duy nhất để điều khiển.
Bảng 2.4. Thông số kỹ thuật động cơ Servo DS04-NFC.
Điện áp hoạt động
4.8 ~ 6.0V
Dòng điện cung cấp
<1000mA
Xung yêu cầu
Xung vuông điện áp đỉnh từ 3 ~ 5V
Nhiệt độ hoạt động
Từ 0 đến 600C
Tốc độ hoạt động (4.8V)
0.22s/600 khi không tải
Tốc độ hoạt động (6.0V)
0.19s/600 khi không tải
Torque (4.8V)
5.5 kg/cm
Kiểu bánh răng
Bánh răng nhựa
Đồ Án I
17
Thiết kế xe tự hành di động bám tường
Kích thước
41 x 20 x 40mm
Khối lượng
38g
Do động cơ sử dụng điện áp 4.8-6V phù hợp với điện áp đầu ra của Arduino nên ta có thể
nối trực tiếp động cơ với Arduino mà không cần thông qua mạch khuếch đại công suất.
Để điều khiển động cơ ta sử dụng đoạn lệnh sau:
Hình 2.12. Code điều khiển động cơ Servo DS04-NFC.
2.1.3. Khối cảm biến
Để xác định vật cản xung quanh xe, ta sử dụng cảm biến siêu âm HC-SRF04.
Cảm biến khoảng cách siêu âm HC-SRF04 được sử dụng rất phổ biến để xác định khoảng
cách. Cảm biến sử dụng sóng siêu âm và có thể đo khoảng cách trong khoảng từ 3-600 cm,
với độ chính xác khá cao. Cảm biến HC-SR04 có 4 chân là: Vcc, Trig, Echo, GND.
Hình 2.13. Cảm biến siêu âm HC-SRF04.
Cảm biến siêu âm hoạt động bằng cách phát đi 1 xung tín hiệu và đo thời gian nhận được
tín hiệu trở vể. Sau khi đo được tín hiệu trở về trên cảm biến siêu âm, ta tính được thời gian
từ lúc phát đến lúc nhận được tín hiệu. Từ thời gian này có thể tính ra được khoảng cách.
Đồ Án I
18
Thiết kế xe tự hành di động bám tường
Hình 2.14. Nguyên lý hoạt động của cảm biến.[ CITATION Ngu16 \l 1033 ]
Để đo khoảng cách, ta lập trình cho vi điều khiển phát một xung có độ rộng 10µs vào chân
Trig của cảm biến. Ngay khi đó cực phát trên cảm biến sẽ phát ra xung của sóng âm
(v=340m/s). Chân Echo kéo lên mức cao cho đến khi nhận lại được sóng phản xạ thì chân
Echo được kéo xuống thấp. Chiều rộng của xung sẽ bằng với thời gian sóng siêu âm được
phát từ cảm biến và quay trở lại. Sử dụng Timer ta sẽ đo được khoảng thời gian này.
d
t
cm
2* 29.412
[CITATION Ngu16 \l 1033 ]
323\* MERGEFORMAT (.)
Trong đó:
d: Khoảng cách cần đo.
t: Khoảng thời gian sóng siêu âm được phát từ cảm biến và quay trở lại.
Hình 2.15. Biểu đồ thời gian của cảm biến.[ CITATION SRF \l 1033 ]
Đồ Án I
19
Thiết kế xe tự hành di động bám tường
Nếu đo được chính xác thời gian và không có nhiễu, mạch cảm biến siêu âm trả về kết quả
cực kì chính xác. Điều này phụ thuộc vào cách viết chương trình không sử dụng các hàm
delay.
Lưu ý: Những trường hợp cảm biến không đo được khoảng cách:
Khi khoảng cách đến vật lớn hơn 6m.
Khi mặt phẳng phản xạ không hướng vào cảm biến.
Khi vật cản quá nhỏ.
Khi vật cản quá mềm (chăn, gối…).
Hình 2.16. Những trường hợp cảm biến không đo được khoảng cách.[ CITATION Bui \l 1033 ]
Bảng 2.5. Thông số kỹ thuật cảm biến siêu âm HC-SRF04.[ CITATION SRF \l 1033 ]
Điện áp hoạt động
5V
Dòng điện
30mA (Tối đa 50mA)
Tần số hoạt động
40KHz
Khoảng cách lớn nhất đo được
6m
Khoảng cách nhỏ nhất đo được
3cm
Góc quét
450
Kích thước module
45x20mm
Ứng dụng:
Đồ Án I
20
- Xem thêm -