1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

384988161 thiết kế xe tự hanh di động bam tường

46 234 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 46
Dung lượng 2,46 MB

Nội dung

báo cáo xe bám tường phiên bản mới ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

Trang 1

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

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

DANH MỤC TỪ VIẾT TẮT

PID Proportional Integral Derivative Bộ điều khiển vi tích phân tỷ lệ

IDE Integrated Development Environment Môi trường phát triển tích hợp

RISC Reduced Instructions Set Computer Máy tính với tập lệnh đơn giản hóa

EEPROM Electrically Erasable Programmable Bộ nhớ chỉ đọc tái lập trình bằng tí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ự

Trang 6

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

Trang 7

CHƯƠNG 1: TỔNG QUAN

1.1 Giới thiệu về xe tự hành [1]

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 following 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

Trang 8

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

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)

Trang 9

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 [4]

Phổ thông UNO, LEONARDO, 101, ROBOT, ESPLORA, MICRO, NANO, MINI

Nâng cao MEGA, ZERO, DUE, MEGA ADK, PRO, M0, M0 PRO, MKRZERO,

PRO MINI

Internet vạn vật YUN, ETHERNET, TIAN, INDUSTRIAL 101, LEONARDO ETH,

MKRFOX 1200, MKR1000, YUN MINI

Thiết bị có thể

đeo được

GEMMA, LILYPAD ARDUINO USB, LILYPAD ARDUINO MAINBOARD, LILYPAD ARDUINO SIMPLE, LILYPAD ARDUINO SIMPLE SNAP

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 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

Trang 10

Hình 1.3 Robot di động tự tránh vật cản dùng camera CMUCam và Arduino Nano

Trang 11

CHƯƠNG 2: THIẾT KẾ PHẦN CỨNG CHO XE TỰ HÀNH

2.1 Cấu tạo xe tự hành

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.1 Mô hình xe tự hành

Trong đó:

Trang 12

 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.2 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.3 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

Trang 13

2.1.1 Khối điều khiển

2.1.1.1 Bo mạch Arduino Pro Mini [6]

Đố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.4 Arduino Pro Mini

Bảng 2.1 Thông số kỹ thuật Arduino Pro Mini

2.1.1.2 Vi điều khiển ATmega328P [7]

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 bit

Trang 14

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.5 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.2 Thông số kỹ thuật chip ATmega328P-AU

Trang 15

2.1.2 Khối động cơ

2.1.2.3 Điều chế độ rộng xung PWM [8]

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.6 Độ 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

OCRxDuty Cycle

ICRx

Xung PWM dùng để điều khiển động cơ Servo có những đặc điểm sau: [9]

 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ỳ

Trang 16

Hình 2.7 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à 00, 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.4 Động cơ RC Servo quay 360 0 DS04-NFC [10]

Thông thường, các động cơ Servo chỉ quay với góc quay nằm trong khoảng từ 00 – 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

Hình 2.8 Động cơ Servo DS04-NFC cùng phụ kiện

Trang 17

Để điều khiển động cơ, ta sử dụng thư viện <Servo.h> 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.3 Thông số kỹ thuật động cơ Servo DS04-NFC

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

Để điều khiển động cơ ta sử dụng đoạn lệnh sau:

Hình 2.9 Code điều khiển động cơ Servo DS04-NFC

Trang 18

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.10 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

Hình 2.11 Nguyên lý hoạt động của cảm biến [8]

Để đ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

Trang 19

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.12 Biểu đồ thời gian của cảm biến [11]

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.13 Những trường hợp cảm biến không đo được khoảng cách [12]

Trang 20

Bảng 2.4 Thông số kỹ thuật cảm biến siêu âm HC-SRF04 [11]

 Sử dụng chống va chạm trong các băng chuyền

 Kiểm tra, giám sát tình trạng của nguyên liệu gia công

 Phát hiện, giám sát chiều cao của vật

Để đo khoảng cách bằng cảm biến, ta sử dụng đoạn lệnh sau:

Hình 2.14 Code điều khiển cảm biến siêu âm HC-SRF04

2.1.4 Khối nguồn

Bo mạch Arduino Pro Mini cho phép điện áp nguồn cấp nằm trong khoảng 6-12V Chính vì vậy, để cung cấp điện áp cho xe hoạt động ổn định, ta lựa chọn Pin sạc 7.4v Lithium Li-Ion ICR18650-2600mAh

Trang 21

Hình 2.15 Pin sạc 7.4v Lithium Li-Ion ICR18650-2600mAh

Bảng 2.5 Thông số kỹ thuật pin sạc 7.4v Lithium Li-Ion ICR18650-2600mAh [13]

2.2 Thiết kế mạch điều khiển xe tự hành [8]

Sau khi đã hiểu rõ nguyên lý hoạt động và cấu tạo của xe tự hành, ta tiến tới thiết kế mạch điều khiển động cơ nhằm tối ưu phần cứng của xe Mạch điều khiển bao gồm:

Trang 23

2.2.1 Khối xử lí trung tâm

Khối vi điều khiển ATmega328P sử dụng xung nhịp thạch anh ngoài 16MHz Khối điều khiển còn gồm 1 nút reset để khởi động lại chương trình, một đèn LED báo nguồn và 1 nút nhấn giữ để cấp nguồn từ pin cho ATmega328 Vi điều khiển ATmega328P sau khi được nạp Bootloader của Arduino UNO, ta có thể sử dụng IDE của Arduino để lập trình sử dụng thư viện của Arduino Ngoài ra, ta có thể nạp chương trình trực tiếp cho chip thông qua chuẩn UART mà không cần sử dụng mạch nạp

Hình 2.17 Sơ đồ nguyên lý khối xử lí trung tâm

2.2.2 Khối nguồn

Khối vi điều khiển hoạt động ở mức điện áp 5V, vì vậy cần một khối nguồn thực hiện chức năng tưng ứng, cung cấp mức điện áp 5V cho các khối của thiết bị từ nguồn pin vào ban đầu Trên cơ sở đó, ta có thể lựa chọn IC ổn áp AMS1117-5V để tạo ra nguồn 5V cho thiết bị

Ngày đăng: 30/11/2019, 21:34

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] D. M. Đăng, "Luân Văn Tốt Nghiệp Đại Học: Robot Di Động Theo Dấu Tường," Đại Học Bách Khoa Tp.HCM, 2004 Sách, tạp chí
Tiêu đề: Luân Văn Tốt Nghiệp Đại Học: Robot Di Động Theo Dấu Tường
[2] "Arduino," [Online]. Available: https://vi.wikipedia.org/wiki/Arduino#cite_ref-2. [3] "Types of Arduinos," [Online]. Available: http://karma-laboratory.com/workshops/arduinoforprogrammers/arduino_types.html Sách, tạp chí
Tiêu đề: Arduino," [Online]. Available: https://vi.wikipedia.org/wiki/Arduino#cite_ref-2. [3] "Types of Arduinos
[4] "Arduino Products," [Online]. Available: https://www.arduino.cc/en/Main/Products Sách, tạp chí
Tiêu đề: Arduino Products
[5] "Giới Thiệu Về Arduino," [Online]. Available: http://sotatec.com.vn/nhom-gioi-thieu-sotatec-94.html.[6] "Arduino Pro Mini," [Online]. Available:https://www.arduino.cc/en/Main/ArduinoBoardProMini Sách, tạp chí
Tiêu đề: Giới Thiệu Về Arduino," [Online]. Available: http://sotatec.com.vn/nhom-gioi-thieu-sotatec-94.html. [6] "Arduino Pro Mini
[9] "Xung PPM," 2014. [Online]. Available: http://arduino.vn/reference/xung-ppm Sách, tạp chí
Tiêu đề: Xung PPM
[10] "Servo Motor Set - Model: DS04-NFC Datasheet," EKT, [Online]. Available: http://www.ekt2.com/pdf/412_CH_SERVO_MOTOR_SET.pdf.[11] "SRF04 Technical Documentation," [Online]. Available:http://inside.mines.edu/~whoff/courses/EENG383/lab/SRF04%20Technical%20Documentation.pdf Sách, tạp chí
Tiêu đề: Servo Motor Set - Model: DS04-NFC Datasheet," EKT, [Online]. Available: http://www.ekt2.com/pdf/412_CH_SERVO_MOTOR_SET.pdf. [11] "SRF04 Technical Documentation
[12] "Build and Test the Ping))) Sensor Circuit," [Online]. Available: http://learn.parallax.com/tutorials/robot/activitybot/activitybot/navigate-ultrasound/build-and-test-ping-sensor-circuit Sách, tạp chí
Tiêu đề: Build and Test the Ping))) Sensor Circuit

TỪ KHÓA LIÊN QUAN

w