CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI 1. Lý do chọn đề tài Robot là một loại máy có thể thực hiện được những công việc một cách tự động hoặc được điều khiển bởi con người. Robot có nhiệm vụ chủ yếu là di chuyển, định vị và làm các công việc được lập trình trước.
Một số loại robot có thể kể đến như: robot tránh vật cản, robot dò line, robot phục vụ trong các nhà hàng,. Trong số đó, robot dò line là một trong những loại robot được ứng dụng nhiều trong thực tế.[1] Robot dò line là một loại robot tự động được sử dụng phổ biến trong trong các ứng dụng công nghiệp,giáo dục và nhiều lĩnh vực khác. Robot này được thiết kế để di chuyển trên một đường line được đánh dấu trước và thực hiện các nhiệm vụ như vận chuyển, phát hiện và tránh vật cản trên đường đi của chúng. Robot dò line thường được trang bị các cảm biến hồng ngoại để phát hiện đường line và điều khiển động cơ để điều chỉnh hướng đi của robot.
Ngoài ra robot còn có thể được trang bị thêm các chi tiết khác như: cánh tay, các cảm biến khoảng cách,… để chúng có thể thực hiện được các yêu cầu đã được lập trình trước và những điều mà người sử dụng chúng mong muốn. Ứng dụng của robot dò line rất đa dạng từ việc sử dụng trong các nhà máy sản xuất để vận chuyển hàng hóa đến việc sử dụng trong giáo dục nhằm tạo sân chơi và giúp sinh viên hiểu rõ hơn về nguyên lí hoạt động của robot và lập trình robot[1]. Với sự phát triển của công nghệ, robot dò line ngày càng được cải tiến và ứng dụng rộng rãi hơn trong các lĩnh vực khác nhau như: Vận chuyển hàng hóa Công nghệ ô tô tự lái Robot lau nhà tự động. Đối tượng và phạm vi nghiên cứu Đối tượng và phạm vi nghiên cứu của đề tài bao gồm các công nghệ liên quan đến điều khiển, điều hướng cho xe robot cảm biến và nhận dạng.
Việc nghiên cứu trong lĩnh vực này nhằm mục đích tối ưu hóa hiệu suất và độ chính xác của hệ thống tự động hóa nhằm giảm thiểu thời gian và chi phí sản xuất đồng thời đảm bảo các yêu cầu khác. Dựa trên những kiến thức đã học và tài liệu có sẵn kết hợp việc tổng hợp, tự học các kiến thức từ nhiều nguồn khác nhau ứng dụng vào việc thực hiện đồ án. Tìm hiểu về các linh kiện được sử dụng bao gồm: board mạch Arduino Uno R3, mô-đun điều khiển động cơ L298, mô-đun thu phát hồng ngoại, động cơ DC giảm tốc V1, bánh xe V1, mạch giảm áp 1 DC, phần mềm viết chương trình điều khiển cho Arduino, phần mềm thiết kế, phần mềm thiết kế sơ đồ nguyên lí hoạt động. Mục tiêu đồ án Thông qua đề tài, mục tiêu đặt ra cho đề tài và hướng phát triển cho tương lai như sau: Tìm hiểu cơ chế hoạt động của các linh kiện.
Nâng cao kỹ năng lập trình vi điều khiển. Hiểu rõ cơ chế hoạt động của linh kiện, sản phẩm điện tử. Phát triển tư duy, chọn lọc thông tin trong quá trình nghiên cứu. Nâng cao kỹ năng viết và suy luận nhằm chuẩn bị kiến thức tốt nhất để hoàn thành tốt hơn các bài báo cáo.
Tăng hiệu quả trong làm việc Tiết kiệm thời gian và công sức cho co người Tăng tính linh hoạt Tăng tính an toàn Giảm thiểu chi phí. Phương pháp nghiên cứu Các phương pháp nghiên cứu được sử dụng trong quá trình thực hiện đề tài bao gồm: Phương pháp thu thập số liệu Phương pháp phân tích và tổng hợp Phương pháp phân loại và hệ thống hóa lý thuyết Phương pháp quan sát khoa học. Bộ điều khiển (Arduino Uno R3) 2. Giới thiệu Nhắc tới dòng mạch Arduino dùng để lập trình điều khiển, cái đầu tiên mà người ta thường nghĩ đến chính là dòng Arduino Uno.
Arduino Uno R3 là kit Arduino Uno thế hệ thứ 3, đi kèm với giao diện USB với khả năng lập trình cho các ứng dụng điều khiển phức tạp do được trang bị cấu hình mạnh cho các loại bộ nhớ ROM, RAM và Flash, các ngõ vào ra digital I/O trong đó có nhiều ngõ có khả năng xuất tín hiệu PWM, các ngõ đọc tín hiệu analog và các chuẩn giao tiếp đa dạng như UART, SPI, TWI (I2C) [3]. Board mạch Arduino Uno R3 2. Vi điều khiển Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168, ATmega328. Trong đó, Atmega328 lả một bộ vi điều khiển tiên tiến và nhiều tính năng.
Được thiết kế bằng công nghệ CMOS 8-bit và CPU RSIC giúp nâng cao hiệu suất và tối ưu mức sử dụng năng lượng nhờ có chế độ ngủ tự động và cảm biến nhiệt độ bên trong[5]. Vi điều khiển Atmega328 ATmega328P có mạch bảo vệ bên trong và có nhiều cách lập trình giúp các người sử dụng linh hoạt ở các tính huống khác nhau. Vi điều khiển này cũng hỗ trợ nhiều giao thức giao tiếp hiện đại cho các mô-đun khác. Đó là lý do tại sao ATmega328P được sử dụng phổ biến[5].
Thông số kỹ thuật Bảng 2. Đặc tính của Arduino R3 Vi điều khiển Atmege328 họ 8bit Điện áp hoạt động 5VDC (chỉ được cấp qua cổng USB) Tần số hoạt động 16MHz Dòng tiêu thụ Khoảng 30mA Điện áp vào khuyên dùng 7-12VDC Điện áp vào giới hạn 6 – 20VDC Số chân Digital I/O 14 (6 chân hardware PWM) Số chân Analog 6 (độ phân giải 10bit) Dòng tối đa mỗi chân I/O 30mA Dòng ra tối đa (5V) 500mA Dòng ra tối đa (3V) 50mA 4 Bộ nhớ flash 32KB SRAM 2KB EEPROM 1KB 2. Cấp nguồn cho Arduino Mạch Arduino Uno hiện nay cho phép có nhiều nguồn điện được kết nối đồng thời. Tích hợp mạch chuyển thông minh, mạch đảm bảo điện áp khả dụng cao nhất được chọn, gửi đến bộ điều chỉnh điện áp trên bo mạch và cuối cùng cấp nguồn cho bo mạch.
Arduino UNO có thể được cấp nguồn 5V từ cổng USB type B hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12VDC và giới hạn là 6-20VDC [4]. Các chân năng lượng trên Arduino Uno Các chân năng lượng trong board mạch Arduino R3: GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. 5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.
Dòng tối đa cho phép ở chân này là 50mA. Vin: để cung cấp điện áp đầu vào cho mạch từ 6V - 20V. IOREF: dùng để đo điện áp hoạt động của vi điều khiển trên Arduino. RESET: dùng để khởi động lại board khi kết nối với GND thông điện trở 10KΩ 2.
Các lưu ý khi sử dụng Các lưu ý khi sử dụng Arduino Uno R3: Arduino UNO không có bảo vệ cắm ngược nguồn vào. Do đó bạn phải hết sức cẩn thận, kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino UNO. Việc làm chập mạch nguồn vào của Arduino UNO sẽ biến nó thành một miếng nhựa chặn giấy. mình khuyên bạn nên dùng nguồn từ cổng USB nếu có thể [4].3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho các thiết bị khác, không phải là các chân cấp nguồn vào.
Việc cấp nguồn sai vị trí có thể làm hỏng board. Điều này không được nhà sản xuất khuyến khích [4]. Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V có thể làm hỏng board [4]. 5 Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển ATmega328 [4].
Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển [4]. Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làm hỏng vi điều khiển [4]. Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của Arduino UNO vượt quá 40mA sẽ làm hỏng vi điều khiển. Do đó nếu không dùng để truyền nhận dữ liệu, bạn phải mắc một điện trở hạn dòng [4].
Các cổng giao tiếp của Arduino Uno R3 Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA. Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 [3]. Arduino UNO có 6 chân analog (A0, A1, A2, A3, A4, A5) cung cấp độ phân giải tín hiệu 10bit (0 - 210 -1) để đọc giá trị điện áp trong khoảng 0V - 5V.
Đặc biệt, 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác [3]. Một số chân digital có các chức năng đặc biệt như sau: 6 Hai chân Serial 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL Serial (transistor – transistor logic). Thường được sử dụng trong kết nối bluetooth. Chân giao tiếp SPI (Serial Peripheral Interface) 10, 11, 12, 13: các chân này dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác ngoài các chức năng thông thường.
Lập trình cho Arduino Uno R3 Arduino Uno R3 sử dụng phần mềm Arduino IDE đê lập trình. Arduino IDE (Intergrated Development Environment) là một phần mềm với mã nguồn mở được sử dụng để viết và biên dịch và board Arduino. Ngôn ngữ để lập trình cho Arduino có tên là “Arduino” được xây dựng và phát triển trên ngôn ngữ C/C++ [6]. Arduino IDE là một phần mềm với một mã nguồn mở, được sử dụng chủ yếu để viết và biên dịch mã vào module Arduino.
Nó bao gồm phần cứng và phần mềm. Phần cứng chứa đến 300,000 board mạch được thiết kế sẵn với các cảm biến, linh kiện. Phần mềm giúp bạn có thể sử dụng các cảm biến, linh kiện ấy của Arduino một cách linh hoạt phù hợp với mục đích sử dụng. Đây là một phần mềm Arduino chính thống, giúp cho việc biên dịch mã trở nên dễ dàng, ngay cả một người bình thường không có kiến thức kỹ thuật cũng có thể làm được [6].
Biểu tượng của phần mềm Arduimo IDE 7 Khi người dùng viết mã và biên dịch, IDE sẽ tạo file Hex cho mã. File Hex là các file thập phân Hexa được Arduino hiểu và gửi đến bo mạch bằng cáp USB. Mỗi bo Arduino đều được tích hợp một bộ vi điều khiển, bộ vi điều khiển sẽ nhận file Hex và chạy theo mã được viết [6]. IDE trong Arduino IDE là phần có nghĩa là mã nguồn mở.
Nghĩa là phần mềm này miễn phí cả về phần tải về lẫn phần bản quyền.