CƠ SỞ LÝ THUYẾT VỀ ARDUINO
Giới thiệu
Lịch sử ra đời
Kiến trúc phần cứng Arduino
Thiết kế nguồn
Phần nguồn của Board mạch Arduino được thiết kế để thực hiện các nhiệm vụ sau:
Hình 2.1 Thiết kế nguồn Arduino
2.4.1 Thiết kế mạch dao động
Mạch dao động cung cấp các xung clock cần thiết cho vi điều khiển thực hiện lệnh Board mạch Arduino Uno sử dụng thạch anh 16MHz làm nguồn dao động chính.
2.4.2 Thiết kế mạch reset Để vi điều khiển thực hiện khởi động lại thì chân RESET phải ở mức logic LOW (~0V) trong 1 khoản thời gian đủ yêu cầu Mạch reset của board Arduino UnoR3 phải đảm bảo được 02 việc:
Reset bằng tay: Khi nhấn nút, chân RESET nối với GND, làm cho MCU RESET Khi không nhấn nút chân Reset được kéo 5V
Reset tự động là quá trình được kích hoạt ngay khi vi điều khiển nhận nguồn, nhờ vào sự kết hợp giữa điện trở nối lên nguồn và tụ điện nối đất Thời gian nạp của tụ điện đảm bảo chân RESET duy trì ở mức LOW trong một khoảng thời gian cần thiết để vi điều khiển thực hiện quá trình reset.
Khởi động vi điều khiển trước khi nạp chương trình mới
Hình 2.2 Thiết kế mạch dao động
2.4.3 Thiết kế mạch nạp và giao tiếp máy tính
Vi điều khiển Atmega328P trên Board Arduino UnoR3 đã được cài sẵn bootloader, cho phép nhận chương trình mới qua giao tiếp UART (chân 0 và 1) trong vài giây đầu sau khi vi điều khiển được Reset.
Hình 2.3 Thiết kế mạch reset
Hình 2.4 Thiết kế mạch nạp gia tiếp máy tính
Môi trường phát triển phần mềm Arduino
Môi trường phát triển tích hợp (IDE) của Arduino là một
Hình 2.5 Giao diện phần mềm Arduino
Có các tính năng chính:
Tổng kết chương 2
Trong chương này, chúng ta đã khám phá khái niệm và lịch sử phát triển của Arduino, cùng với kiến trúc phần cứng, thiết kế nguồn và môi trường phát triển phần mềm liên quan Dựa trên lý thuyết về Arduino, nhóm sẽ tiến hành xây dựng và thiết kế hệ thống xe tự hành sử dụng board Arduino làm linh kiện chính.
THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG
Thiết kế phần cứng
Một board mạch chủ chính dùng để truyền và nhận dữ liệu từ người sử dụng đến các thiết bị điện tử khác
Hình 3.1 Các thành phần của Arduino Uno R3
6 ICSP của ATmega 16U2: ICSP là chữ viết tắt của In-Circuit Serial
7 Chân xuất tín hiệu ra: Có tất cả có thể băm xung (PWM), tức có thể điều khiển tốc độ động cơ hoặc độ sáng của đèn
8 IC ATmega 328: IC này được sử
9 Chân ICSP của ATmega 328: Các
10 Chân lấy tín hiệu Analog: Các chân
11 Chân cấp nguồn cho cảm biến:
12 Các linh kiện khác trên board Arduino Uno:
* Các thông số cơ bản:
Bảng 3.1 Các thông số cơ bản của Arduino Uno R3
3.1.1.2 Cảm biến siêu âm HC-SR04
Cảm biến siêu âm hoạt động bằng cách đo khoảng cách thông qua công thức tính toán dựa trên thời gian và vận tốc của sóng cao tần mà nó phát ra.
Hình 3.2: Cảm biến siêu âm HC-SR04
Bảng 3.2 Các chân chức năng của HC-SR04
VCC Cấp nguồn cho cảm biến (5V) hoặc 3.3V ở cảm biến 3V3
TRIGGER Chân phát sóng âm Là chu kỳ của của điện cao /thấp diễn ra
ECHO Trạng thái ban dầu là 0V, khi có tín hiệu trả về sẽ là 5V và sau đó trở về 0V
Nguyên lý hoạt động của cảm biến siêu âm đo khoảng cách dựa trên việc phát xung ngắn 5 micro giây từ chân Trig Khi xung được phát, cảm biến sẽ tạo ra xung HIGH ở chân Echo cho đến khi nhận được sóng phản xạ Thời gian mà sóng siêu âm di chuyển đi và trở lại sẽ được tính bằng chiều rộng của xung, từ đó xác định khoảng cách.
Tốc độ âm thanh trong không khí là 340 m/s, tương đương với 29,412 microSeconds/cm Để tính khoảng cách, ta chỉ cần chia thời gian đã tính được cho 29,412.
Servo là một loại động cơ điện đặc biệt, khác với động cơ thông thường, servo chỉ quay khi nhận tín hiệu điều khiển (bằng xung PPM) và có khả năng xoay trong khoảng từ 0° đến 180° Các loại servo có kích thước, khối lượng và cấu trúc đa dạng; có loại nhẹ chỉ 9g, thường được sử dụng trong máy bay mô hình, trong khi có loại mạnh mẽ với momen lực lên đến vài chục Newton/m và những loại khác có thiết kế chắc chắn hơn.
GND Nối cực âm của mạch
- Động cơ servo được thiết kế những y
3.1.1.4 Module điều khiển động cơ L298 mạch cầu H
Hình 3.4 Module điều khiển động cơ L298 mạch cầu H
- Chúng ta trong một khoảng thời gian quy định
Hình 3.5 Nguyên lý hoạt động của module L298N mạch cầu H
Vì vậy: Tùy thuộc cầu H:
3.1.2 Thiết kế sơ đồ mạch
Hình 3.7 Sơ đồ nối mạch
Hình 3.6 Điều khiển động cơ DC bằng mạch cầu H
Thiết kế phần mềm
3.2.1 Sơ đồ Use Case tổng quát
Hình 3.8 Sơ đồ Use Case tổng quát
3.2.2.1 Đặc tả UC “Đi thẳng”
Bảng 3.3 Đặc tả Use Case “Đi thẳng”
3.2.2.2 Đặc tả UC “Đi lùi”
Bảng 3.4 Đặc tả Use Case “Đi lùi”
3.2.2.3 Đặc tả UC “Rẽ trái”
Bảng 3.5 Đặc tả Use Case “Rẽ trái”
3.2.2.4 Đặc tả UC “Rẽ phải”
Bảng 3.6 Đặc tả Use Case “Rẽ phải”
3.2.2.5 Đặc tả UC “Dừng lại”
Bảng 3.7 Đặc tả Use Case “Dừng lại”
3.2.3 Phân tích các ca sử dụng
3.2.3.1 Biểu đồ trình tự “Đi thẳng”
Hình 3.9 Biểu đồ trình tự “Đi thẳng”
3.2.3.2 Biểu đồ trình tự “Rẽ trái, Rẽ phải, Đi lùi”
Hình 3.10 Biểu đồ trình tự “Rẽ trái, Rẽ phải, Đi lùi”
Hình 3.11 Sơ đồ thuật toán
Khi bắt đầu, xe sẽ tính toán khoảng cách vật cản phía trước
• Nếu khoảng cách lớn hơn 40cm, xe đi thẳng
Khi khoảng cách giữa xe và vật cản nhỏ hơn 40cm, xe sẽ tiến hành đo khoảng cách vật cản bên trái và bên phải Nếu cả hai khoảng cách đều nhỏ hơn 40cm, xe sẽ lùi lại và dừng lại Nếu không, xe sẽ so sánh khoảng cách vật cản bên trái và bên phải để đưa ra quyết định tiếp theo.
Nếu khoảng cách vật cản phải lớn hơn, xe rẽ phải
Nếu khoảng cách vật cản trái lớn hơn, xe rẽ trái.