TỔNG QUAN VỀ ĐỀ TÀI
Mục tiêu đề tài
Mô hình vật lý của robot không dây được thiết kế để hoạt động trong môi trường bằng phẳng, với khả năng thu thập dữ liệu về nhiệt độ, độ ẩm và khí gas Robot cho phép người vận hành điều khiển từ khoảng cách lên đến 300m (trong điều kiện không có vật cản) để thu thập thông tin cần thiết Nhờ vào các bộ cảm biến và bộ thu phát không dây gắn trên robot, dữ liệu thu thập được sẽ được truyền về cho người điều khiển qua phần mềm điều khiển từ xa trên máy tính, với tốc độ truyền 9600bps Điều này giúp người điều khiển nắm bắt thông số tại khu vực khảo sát và đưa ra giải pháp xử lý phù hợp.
Tổng quan tình hình nghiên cứu
1.2.1 Tình hình nghiên cứu ở nước ngoài a Robot phá mìn dùng công nghệ không dây
Một robot do các nhà nghiên cứu Australia phát triển có khả năng kiểm soát quá trình phá bom và kiểm tra phương tiện an ninh Tiến sĩ Jun Jo, giảng viên tại Đại học Griffith, đã hợp tác với sinh viên sau đại học để tạo ra nguyên mẫu "xe phá bom" Robot này được điều khiển từ xa qua công nghệ Bluetooth, cho phép người vận hành duy trì khoảng cách an toàn khi robot hoạt động trong khu vực nguy hiểm.
Camera gắn trên đầu robot truyền hình ảnh liên tục đến người điều khiển, cho phép họ xác định vị trí đặc biệt và các khối nghi ngờ Người điều khiển sử dụng một cái xẻng gài trên xe để bứng những khối này lên Qua camera, họ có thể quan sát những gì robot nhìn thấy và điều khiển nó từ xa.
100 mét Chiếc xe robot này có chiều dài 20 cm, chỉ nhỏ như một món đồ chơi
Hình 1.1: Jun Jo và thiết bị điều khiển chiếc xe robot từ xa b Robot hút bụi iRobot Roomba®415
Robot hút bụi iRobot Roomba® 415, một sản phẩm của hãng iRobot (Mỹ), mang đến hiệu quả hút bụi vượt trội, giúp làm sạch sàn nhà một cách đều đặn và tự động Với khả năng hút bụi mạnh mẽ và cơ chế quét thông minh bằng chổi xoay, Roomba dễ dàng loại bỏ bụi bẩn và vết bẩn trên thảm Bánh dẫn hướng linh hoạt và khả năng tự điều chỉnh độ cao cho phép máy leo lên và xuống các bề mặt khác nhau, đồng thời phát hiện khu vực bẩn và tự động chuyển hướng để tránh rơi xuống cầu thang Hệ thống bánh xe di chuyển linh hoạt giúp Roomba chuyển trạng thái trên nhiều bề mặt sàn, thu gom rác và bụi vào hai khoang riêng biệt.
The iRobot Roomba® 415 vacuum robot utilizes wireless and serial communication for control, enhancing user experience and functionality This innovative technology allows for efficient operation and seamless interaction with the device Author: Jong Hoon Ahn, Master of Electrical Engineering.
Chương trình tại Đại học Cornell, Mỹ, năm 2007, đề xuất các chiến lược thiết lập hai loại thông tin liên lạc: một cho giao tiếp không dây giữa robot di động và trạm cơ sở từ xa, và một cho giao tiếp nối tiếp giữa trạm từ xa và ứng dụng GUI trên PC Mục tiêu là điều khiển robot không dây thông qua các ứng dụng GUI trên PC Robot được thiết kế với chip vi điều khiển AVR và module vô tuyến điều khiển hoạt động ở tần số 433 MHz, cho phép kiểm soát robot một cách hiệu quả.
Bài viết nghiên cứu về hệ thống điều khiển không dây cho thiết bị gắn trên robot công nghiệp, bao gồm bộ xử lý và phần mềm điều khiển Hệ thống này cho phép giám sát và điều khiển thiết bị một cách hiệu quả, cải thiện khả năng hoạt động của robot Tác giả của nghiên cứu là Esko Niemela, Pierre Oberg, Jimmy Kjellsson, Martin Strand, Asa Gronqvist và Seija Tasala, được công bố năm 2006.
Hình 1.4: Sơ đồ cấu trúc hệ thống e Một số dạng Robot không dây đã được thiết kế
Hình 1.5: Một số dạng robot không dây
1.2.2 Tình hình nghiên cứu trong nước
Nhiều nhóm tác giả trong nước đang nghiên cứu về thiết kế robot, điều khiển từ xa và thu thập dữ liệu Một ví dụ tiêu biểu là robot điều khiển bằng tiếng nói của Nguyễn Tuấn Lý và Lê Quốc Tuấn, đã vào vòng chung khảo cuộc thi Trí tuệ Việt Nam 2001 Hệ thống này bao gồm cả phần cứng và phần mềm, cho phép robot nhận lệnh từ giọng nói hoặc bàn phím máy tính Robot có khả năng di chuyển, gắp vật nặng 5 kg và chở đồ với sức tải 40 kg, được thiết kế với khung nhôm, 6 bánh xe và cánh tay có thể thực hiện nhiều động tác Với hai động cơ độc lập, robot có thể thực hiện các động tác ngay cả khi di chuyển và có chức năng truyền tín hiệu về trung tâm điều khiển cùng khả năng tự định hướng nhờ các thiết bị dò tìm vật cản Người dùng có thể "dạy" robot hiểu các câu lệnh đơn giản.
Tác giả nghiên cứu thiết kế robot đa năng có khả năng hoạt động trong nhiều lĩnh vực, trang bị các thiết bị chuyên dụng để thăm dò, phát hiện và gỡ mìn, cũng như kiểm tra nhiệt độ, phóng xạ và nồng độ chất độc ở những khu vực nguy hiểm Thông số thăm dò sẽ được truyền về trung tâm điều khiển để xử lý Tuy nhiên, cần thiết kế lại tay gắp để robot có thể xử lý nhiều loại đồ vật hơn, đồng thời cần tính toán chi tiết về các khớp nối, góc quay và tốc độ di chuyển để tăng độ chính xác Hình thể robot cũng cần được hoàn thiện, và phần mềm nhận dạng tiếng nói cần được cải thiện qua thử nghiệm để nâng cao khả năng điều khiển Hướng tới sản xuất robot phá bom mìn là một mục tiêu quan trọng trong nghiên cứu này.
Cuộc thi sáng chế robot rà phá bom mìn do Hội Cơ khí TPHCM và Trung tâm Công nghệ xử lý bom mìn tổ chức đã thu hút 36 đội tham gia, bao gồm 33 đội từ các trường đại học, cao đẳng và 3 đội từ các công ty và cá nhân Các robot dự thi phải đáp ứng tiêu chí tự động, có khả năng tự đánh giá địa hình và di chuyển linh hoạt, vượt qua chướng ngại vật để đến điểm có bom mìn Kích thước robot dao động từ 300x300x100mm đến 1.000x1.000x600mm và trọng lượng dưới 20kg Cuộc thi là cơ hội cho học sinh, sinh viên và kỹ sư trẻ thể hiện sự sáng tạo và nghiên cứu, nhằm phục vụ cho công tác rà phá bom mìn cấp bách trong thực tế.
Tính cấp thiết của đề tài
Việc thu thập và truyền dữ liệu qua kết nối dây cáp gặp nhiều hạn chế như phức tạp trong kết nối và giới hạn phạm vi Để đáp ứng nhu cầu thực tế, chúng tôi đã thiết kế một xe robot không dây sử dụng vi điều khiển AVR và giao tiếp USB để thu thập dữ liệu từ xa Bộ tài liệu hướng dẫn thiết kế và sử dụng robot cũng được xây dựng nhằm phục vụ cho giảng dạy và nghiên cứu về robot và vi điều khiển Robot có khả năng đo nhiệt độ, độ ẩm và khí gas ở những khu vực khó tiếp cận, với dữ liệu được truyền về máy tính điều khiển trung tâm qua kết nối không dây Nghiên cứu này có ý nghĩa thực tiễn cao, hỗ trợ thu thập dữ liệu từ xa với tốc độ nhanh chóng.
Sơ đồ khối giao tiếp giữa xe robot và máy tính được trình bày như sau:
Hình 1.6: Giao tiếp giữa xe robot và máy tính
THIẾT KẾ XE ROBOT VÀ CÁC MODULE THU THẬP DỮLIỆU
Ứng dụng vi điều khiển AVR trong thiết kế xe Robot
AVR microcontrollers are a family of microcontrollers designed based on the RISC (Reduced Instruction Set Computer) architecture, featuring a streamlined instruction set produced by Atmel These microcontrollers are known for their efficiency and versatility in various applications.
Khi sử dụng AVR, hầu như chúng ta không cần lắp thêm linh kiện phụ nào, bao gồm cả nguồn tạo xung clock cho chip, thường là các khối thạch anh Chip AVR đã tích hợp sẵn bộ nhớ chương trình, bộ nhớ dữ liệu và nhiều bộ phận ngoại vi, giúp đơn giản hóa quá trình thiết kế và lắp đặt.
Thiết bị lập trình cho AVR rất đơn giản, với một số loại chỉ cần vài điện trở để hoạt động Hơn nữa, một số dòng AVR còn hỗ trợ lập trình on-chip thông qua bootloader, giúp loại bỏ sự cần thiết của mạch nạp.
- Bên cạnh lập trình bằng ngôn ngữ assembly, cấu trúc AVR được thiết kế tương thích với ngôn ngữ C
Hầu hết các lệnh trên AVR được thực thi trong một chu kỳ xung clock, cho phép thời gian thực thi nhanh hơn so với một số vi điều khiển khác, mặc dù nguồn clock lớn nhất có thể nhỏ hơn.
Hình 2.1: So sánh tốc độ thực thi lệnh của AVR với các vi điều khiển khác
2.1.1 Kiến trúc của AVR Ở đây chúng tôi sử dụng chip vi điều khiển ATmega 128 trong thiết kế board điều khiển, do đó chúng tôi quan tâm đến kiến trúc của chip vi điều khiển này
Hình 2.2: Sơ đồ chân của ATmega 128
Hình 2.3: Sơ đồ kiến trúc bên trong của ATmega 128
Một số đặc tính của ATmega128:
• Vi điều khiển 8 bit công suất thấp, hiệu năng cao.
• Kiến trúc RISC mở rộng
- Tập lệnh với 133 lệnh, hầu hết mỗi lệnh đều được thực thi trong một chu kỳ xung clock.
- Một tập thanh ghi với 32 thanh ghi 8 bit, tất cả các chip thuộc họ AVR đều có tập thanh ghi này.
- Tần số tối đa có thể lên tới 16Mhz.
• Bộ nhớ chương trình và bộ nhớ dữ liệu
- 128K Byte bộ nhớ lập trình được (flash), có thể nạp lại 10.000 lần.
- 4K Byte EEPROM, có thể nạp lai 100.000 lần.
• Giao tiếp chuẩn JTAG(IEEE)
- Hỗ trợ chế độ Debug mở rộng trên chip.
- Lập trình cho Flash, EEPROM, set Fuse bit và lock bit thông qua chuẩn giao tiếp JTAG.
• Đặc điểm thiết bị ngoại vi
- 2 bộ Timer/Counter 8 bit hoạt động riêng biệt.
- 2 bộ Timer/Counter 16 bit với Compare mode và Capture mode.
- Bộ đếm thời gian thực với bộ tạo dao động riêng biệt.
- 6 kênh PWM với độ phân giải lập trình được từ 2 đến 16bit
- Giao tiếp chuẩn nối tiếp 2 dây
- Lập trình truyền thông nối tiếp USART
- Bộ WatchDog Timer khả trình với bộ tạo dao động riêng biệt trên chip
• Những điểm đặc biệt của vi điều khiển
- Bao gồm cả ngắt nội lẫn ngắt ngoại
- 6 chế độ Sleep: Idle, ADC noise reduction, Power-save, Power-down, Standby, Extended Standby
• I/O và hình thức đóng gói
- 64-lead TQFP và 64-pad QFN/MLF
Vi điều khiển AVR sử dụng 32 thanh ghi trong tệp thanh ghi kết nối trực tiếp với ALU (đơn vị luận lý số học), được coi là CPU của AVR, cho phép truy xuất hai thanh ghi trong một chu kỳ xung clock Các lệnh được lưu trữ dưới dạng thanh ghi 16 bit trong bộ nhớ chương trình và được truy cập mỗi chu kỳ xung clock Khi một lệnh được nạp vào thanh ghi lệnh, nó sẽ chọn các thanh ghi và RAM cần thiết cho ALU thực thi Trong quá trình thực thi, địa chỉ của lệnh hiện tại được xác định bởi bộ đếm chương trình (PC), phản ánh cách thức hoạt động cơ bản của chip AVR.
2.1.3 Tổ chức bộ nhớ trong AVR a Bộ nhớ chương trình (Program Memory): là bộ nhớ Flash lập trình được có chứa Application Flash Section, phần này lại bao gồm hai phần nhỏ: phần chứa mã lệnh lập trình cho chip, phần còn lại chứa các vector ngắt Các vector ngắt nằm ở phần đầu của Application Flash Section (từ địa chỉ 0x0000) và dài đến bao nhiêu thì tuỳ loại chip
Bộ nhớ dữ liệu của chip Atmega16 chứa các thanh ghi quan trọng, là phần mà lập trình viên thường xuyên truy cập Kích thước bộ nhớ dữ liệu trên các chip AVR khác nhau tùy thuộc vào từng loại chip, nhưng cơ bản được chia thành 5 phần.
- Phần 1: là phần đầu tiên trong bộ nhớ dữ liệu gồm 32 tệp thanh ghi, mỗi thanh ghi gồm 8 bit như sau:
Sau tệp thanh ghi, có 64 thanh ghi nhập/xuất (I/O register) hay còn gọi là vùng nhớ I/O, đóng vai trò là cầu nối giữa CPU và các thiết bị ngoại vi Tất cả các thanh ghi điều khiển và trạng thái của thiết bị ngoại vi đều được lưu trữ tại đây Mỗi PORT liên quan đến ba thanh ghi quan trọng: DDRx, PORTx và PINx, tất cả đều nằm trong vùng nhớ I/O.
Phần 3: SRAM nội (internal SRAM) là khu vực lưu trữ cho các biến (toàn cục hoặc cục bộ) trong quá trình thực thi chương trình Vùng này tương tự như RAM trong máy tính nhưng có dung lượng hạn chế Chip ATmega16 có dung lượng 1Kbyte SRAM nội.
Phần 4: SRAM ngoại (external SRAM) là bộ nhớ mở rộng được người dùng thêm vào chip AVR nhằm tăng cường dung lượng cho SRAM nội SRAM được kết nối với Atmega16 thông qua hai chân SCL (chân 22) và SDA (chân 23).
- Phần 5: EEPROM (Electrical Ereasable Programmable ROM) là một phần quan trọng của các chip
EEPROM như M24C16, M24C08, M24C04, M24C02, M24C01 (16Kbit, 8Kbit, 4Kbit, 2Kbit and 1Kbit Serial I²C bus EEPROM) Giá trị của End Address tùy thuộc vào từng loại EEPROM
2.1.4 Các thanh ghi chức năng a Thanh ghi trạng thái – SREG (Status Register): có địa chỉ I/O là 0x003F và địa chỉ bộ nhớ là 0x005F (thường đây là vị trí cuối cùng của vùng nhớ I/O) là một trong số các thanh ghi quan trọng nhất của AVR Thanh ghi SREG chứa 8 bit cờ (flag) chỉ trạng thái của bộ xử lí, thanh ghi này đều bị xóa sau khi reset, các bit này cũng có thể được đọc và ghi bởi chương trình b Thanh ghi con trỏ ngăn xếp- SP (Stack Pointer):Có độ rộng 2 byte Được dùng để chỉ đến vùng trong bộ nhớ SRAM ở đỉnh ngăn xếp và lưu trữ địa chỉ mà bộ xử lý trả trở lại sau khi gọi ngắt hoặc gọi thủ tục hoặc có thể lưu các biến cục bộ Khi sử dụng SP cần tạo giá trị hợp lý vì địa chỉ bắt đầu của SRAM là 0x0060 chứ không phải là 0x0000 Các giá trị khởi tạo thường là 0.
Hình 2.6: Thanh ghi con trỏ ngăn xếp c Thanh ghi điều khiển toàn bộ vi điều khiển – MCUCR (MCU Control Register):
Bit 7 – SRE (External SRAM/XMEM Enable): cho phép sử dụng SRAM ngoài khi bit này được bật lên 1, ngược lại nếu bit này là 0 thì việc truy cập vào SRAM ngoài bị cấm
Bit 6 – SRW10 (Wait-state Select Bit): bit trạng thái chờ truy cập SRAM ngoài
Các bit còn lại không xét đến d Thanh ghi các PORT:
Thanh ghi DDRx (thanh ghi hướng dữ liệu) là một thanh ghi 8 bit dùng để điều khiển hướng của cổng, xác định xem cổng đó là đầu vào hay đầu ra Khi có ít nhất một bit trong thanh ghi này bật lên 1, cổng được xác định là cổng ra; ngược lại, nếu không có bit nào bật lên 1, cổng sẽ được quy định là cổng vào.
Ví dụ: DDRA=0xFF có nghĩa là PORTA được định nghĩa là PORT xuất
DDRA=0x00 có nghĩa là PORTA được định nghĩa là PORT nhập
Thanh ghi PORTx là một thanh ghi dữ liệu 8 bit, trong đó mỗi bit có thể mang giá trị 1 hoặc 0 Nếu một bit trong thanh ghi PORTx có giá trị 1, thì chân tương ứng trên PORT sẽ có mức logic cao tương ứng.
Ví dụ: PORTA=0x01 thì dữ liệu được xuất ra PORTA0
Thiết kế board điều khiển chính (main board)
Board điều khiển chính (main board) đóng vai trò quan trọng trong việc điều khiển quá trình thu thập dữ liệu và di chuyển của xe robot, cũng như truyền nhận dữ liệu giữa xe và chương trình điều khiển trên máy tính Chúng tôi đã chọn chip vi điều khiển ATmega128 với bộ tạo dao động thạch anh 8MHz để thực hiện các chức năng này, nhờ vào bộ nhớ lớn (128K Byte lập trình, 4K Byte EEPROM, 4K Byte SRAM) và các thiết bị ngoại vi tích hợp như Timer/Counter, PWM, ADC, và USART Điều này giúp thiết kế mô hình xe robot thu thập dữ liệu từ xa trở nên thuận lợi hơn Main board cũng tích hợp nhiều thiết bị ngoại vi và connector để kết nối với các module thu thập dữ liệu Sơ đồ mạch và mạch thực tế của hai board sẽ được trình bày sau đây.
Hình 2.15: Sơ đồ Capture Main Board
Hình 2.16: Main Board (mặt trên và mặt dưới)
Thiết kế module thu thập nhiệt độ
Trong module thu thập nhiệt độ chúng tôi sử dụng IC cảm biến nhiệt độ DS18B20, kiểu chân TO-92
Hình 2.17: Sơ đồ chân DS18B20
Cảm biến nhiệt độ DS18B20 được lựa chọn cho thiết kế module thu thập nhiệt độ do sở hữu nhiều ưu điểm vượt trội so với các loại cảm biến khác như LM35 Những đặc điểm nổi bật của cảm biến DS18B20 bao gồm độ chính xác cao, khả năng hoạt động trong dải nhiệt độ rộng và tính năng giao tiếp đơn giản.
• Sử dụng giao thức một dây (One wire) nên chỉ cần một ngõ ra để giao tiếp với MCU
• Khoảng nhiệt độ từ -55 0 C đến +125 0 C (–67°F to +257°F)
• Sai số ±0.5°C trong khoảng nhiệt độ là -10°C đến +85°C
• Có chức năng cảnh báo nhiệt độ vượt qua giá trị cho trước
• Độ phân giải từ 9 bit – 12 bit Nếu cấu hình cho DS18B20 theo 9, 10,
Cảm biến có độ chính xác tương ứng với độ phân giải 11 và 12 bit lần lượt là 0.5°C, 0.25°C, 0.125°C và 0.0625°C Nếu không được cấu hình, cảm biến sẽ tự động thiết lập độ phân giải mặc định là 12 bit.
• Thời gian chuyển đổi nhiệt độ tối đa là 750ms cho mã hóa 12 bit
• , không cần thêm mạch ngoài hỗ trợ
• Đọc nhiệt độ trực tiếp từ cảm biến, không cần hiệu chỉnh giá trị đọc về
Có thể kết nối nhiều cảm biến trên cùng một bus, điều này rất phù hợp cho việc xây dựng hệ thống theo dõi nhiệt độ trong nhà, thiết bị hoặc máy móc, nhằm xử lý và điều khiển hệ thống hiệu quả.
• Nhiệt độ lớn nhất đo được tương đối thấp (125 0 C)
• Thời gian chuyển đổi tương đối lớn (750ms)
- Thường dùng: đo nhiệt độ không khí, dùng trong các thiết bị đo, bảo vệ các mạch điện tử
2.18: Sơ đồ kết nối của DS18B20 với MCU
Các lệnh sử dụng trong điều khiển:
Lệnh READ ROM (33h) chỉ áp dụng khi có một 'tớ' trên bus, cho phép 'chủ' đọc mã ROM 64 bit của 'tớ' Tuy nhiên, nếu có nhiều hơn một 'tớ' trên bus, việc sử dụng lệnh này sẽ gây ra xung đột dữ liệu do tất cả các 'tớ' phản hồi cùng lúc.
Lệnh MATCH ROM (55h) được sử dụng để chọn một cảm biến DS1820 cụ thể trong trường hợp có nhiều cảm biến cùng kết nối trên bus Lệnh này đi kèm với 64 bit ROM, cho phép bộ điều khiển bus xác định cảm biến nào phản hồi Chỉ những cảm biến DS1820 có 64 bit ROM trùng khớp với chuỗi 64 bit được gửi sẽ thực hiện các lệnh tiếp theo, trong khi những cảm biến không trùng khớp sẽ chờ nhận tín hiệu reset.
Lệnh SKIP ROM (CCh) cho phép thiết bị điều khiển truy cập trực tiếp vào các lệnh bộ nhớ của DS1820 mà không cần gửi chuỗi mã 64 bit ROM Điều này giúp tiết kiệm thời gian chờ đợi, tuy nhiên chỉ có hiệu quả khi trên bus chỉ có một cảm biến.
Lệnh SEARCH ROM (F0h) cho phép bộ điều khiển bus xác định số lượng thành viên kết nối vào bus và các giá trị cụ thể trong 64 bit ROM của chúng thông qua một chu trình dò tìm.
Lệnh ALARM SEARCH (ECh) hoạt động tương tự như lệnh Search ROM, tuy nhiên, cảm biến DS1820 chỉ phản hồi khi có điều kiện cảnh báo trong phép đo nhiệt độ cuối cùng Điều kiện cảnh báo được xác định khi giá trị nhiệt độ đo được vượt quá giá trị TH (nhiệt độ cao nhất) và thấp hơn giá trị TL (nhiệt độ thấp nhất) đã được thiết lập trong bộ nhớ của cảm biến.
Sau khi vi điều khiển sử dụng lệnh ROM để định địa chỉ các cảm biến một dây trên bus, thiết bị chủ sẽ phát lệnh chức năng DS1820 Qua các lệnh này, thiết bị chủ có khả năng đọc và ghi vào bộ nhớ nháp của cảm biến DS1820, khởi động quá trình chuyển đổi giá trị nhiệt độ và xác định chế độ cung cấp điện áp Các lệnh chức năng được mô tả ngắn gọn như sau:
Lệnh WRITE SCRATCHPAD (4Eh) cho phép ghi 2 byte dữ liệu vào bộ nhớ nháp của DS1820 Byte đầu tiên được ghi vào thanh ghi TH, trong khi byte thứ hai được ghi vào thanh ghi TL Dữ liệu được truyền theo trình tự từ bit có ý nghĩa nhất đến những bit có ý nghĩa giảm dần Cả hai byte này cần phải được ghi trước khi thiết bị chủ phát ra một xung reset hoặc khi có dữ liệu khác xuất hiện.
Lệnh READ SCRATCHPAD (BEh) cho phép thiết bị chủ đọc nội dung bộ nhớ nháp từ bit có ý nghĩa nhấy của byte 0 đến byte thứ 9 (byte 8 - CRC) Quá trình đọc có thể bị dừng bất kỳ lúc nào bằng cách xuất ra một xung reset, nếu chỉ cần đọc một phần dữ liệu từ bộ nhớ nháp.
- COPYSCRATCHPAD (48h): Lệnh này copy nội dung của hai thanh ghi
TH và TL (byte 2 và byte 3) vào bộ nhớ EEPROM Nếu cảm biến được sử dụng trong chế dộ cấp nguồn l bắt đầu việc đo
Lệnh CONVERT T (44h) khởi động quá trình đo và chuyển đổi giá trị nhiệt độ thành số nhị phân Kết quả sau khi chuyển đổi được lưu trữ trong thanh ghi nhiệt độ 2 byte trong bộ nhớ nháp Trong thời gian chuyển đổi, nếu thực hiện lệnh đọc, các giá trị đọc sẽ bằng 0.
Lệnh READ POWER SUPPLY (B4h) cho phép người dùng xác định chế độ cấp nguồn của DS1820 Nếu giá trị đọc được là 0, điều đó có nghĩa là DS1820 sử dụng nguồn từ đường dẫn dữ liệu; ngược lại, nếu giá trị là 1, DS1820 đang được cấp nguồn qua một đường dẫn riêng.
2.4 Thiết kế module điều khiển động cơ
Chúng tôi sử dụng 2 loại động cơ:
• Động cơ DC để điều khiển chuyển động của xe Robot
• Động cơ servo để điều chỉnh hướng di chuyển của xe Robot và góc quay của camera.
Thiết kế module điều khiển động cơ
Để điều khiển tốc độ chuyển động của xe Robot, chúng tôi áp dụng chế độ điều chế độ rộng xung nhằm kiểm soát tốc độ quay của động cơ.
PWM PWM là một trong bốn chế độ hoạt động của Timer 16 bit trong vi điều khiển AVR Bốn chế độ hoạt động của Timer 16bit gồm:
- Chế độ so sánh CTC
Chế độ Phase correct PWM được áp dụng trong điều chế độ rộng xung, trong đó chúng tôi sử dụng chế độ Fast PWM, hay còn gọi là PWM tần số cao.
t 1B, chú ý các bit COM1A1, COM1A0 và
COM1B1 và COM1B0 là các bit dùng để chọn dạng tín hiệu ra của PWM trong chế độ so sánh (Compare Output Mode bits), với COM1A1 và COM1A0 dành cho kênh A, còn COM1B1 và COM1B0 dành cho kênh B Thông tin chi tiết về các bit này được trình bày trong Bảng 2.7.
2.7: Mô tả các bit COM trong chế độ fast PWM
Ngoài ra để thay đổi hướng quay của xe Robot (tương ứng đảo chiều động cơ) chúng tôi sử dụng IC L298
298 được trình bày như trong :
L x x có thể kết nối thêm một điện trở, giúp đo giá trị điện áp rơi trên điện trở này Thông tin này sẽ được gửi đến bộ ADC để xử lý, nhằm hạn chế tình trạng quá dòng qua động cơ DC.
Hình 2.23: IC L298 dùng để đảo chiều động cơ
Hình 2.24: Mạch điều khiển động cơ
Trong đề tài này, động cơ servo R/C được sử dụng cho các hệ thống hồi tiếp vòng kín, cho phép tín hiệu ra của động cơ kết nối với mạch điều khiển Khi động cơ hoạt động, vận tốc và vị trí sẽ được gửi về mạch điều khiển Nếu có bất kỳ trở ngại nào ngăn cản chuyển động, cơ cấu hồi tiếp sẽ phát hiện tín hiệu chưa đạt yêu cầu và mạch điều khiển sẽ điều chỉnh sai lệch để đưa động cơ về vị trí chính xác Hệ thống này bao gồm động cơ và vôn kế kết nối với mạch điều khiển, tạo thành một mạch hồi tiếp vòng kín và được cấp nguồn DC từ 4.8 đến 7.2 volt.
V) Để quay động cơ, tín hiệu số được gới tới mạch điều khiển Tín hiệu này khởi động động cơ, thông qua chuỗi bánh răng, nối với vôn kế Vị trí của trục vôn kế cho biết vị trí trục ra củaservo Khi vôn kế đạt được vị trí mong muốn, mạch điều khiển sẽ tắt động cơ
Servo bao gồm một động cơ, một chuỗi các bánh răng giảm tốc, một mạch điều khiển, một vôn kế Động cơ servo R/C sử dụng có 3 dây :
+ Dây đỏ: dùng để cấp nguồn Vcc=5V cho servo
+ Dây đen: dùng để nối đất
+ Dây cam: cấp tín hiệu điều khiển cho servo
2.4.2.1 Kĩ thuật điều biến độ rộng xung
Trục của động cơ servo R/C được định vị thông qua kỹ thuật điều biến độ rộng xung (PWM), trong đó servo phản hồi từ một dãy xung số ổn định Mạch điều khiển nhận tín hiệu số với các xung biến đổi từ 1 – 2 ms, được gửi đi 50 lần mỗi giây Điều quan trọng là không phải số lượng xung mà là chiều dài của chúng, với servo yêu cầu khoảng 30 – 60 xung mỗi giây Nếu số lượng xung quá thấp, độ chính xác và công suất duy trì servo sẽ bị giảm.
Với độ dài xung 1 ms, servo được điều khiển quay theo một chiều (giả sử là chiều kim đồng hồ như hình )
Hình 2.25: Điều khiển vị trí của trục ra động cơ bằng điều chế độ rộng xung
Với độ dài khoảng 2 ms, servo sẽ quay theo chiều ngược lại Kỹ thuật này được gọi là tỉ lệ số, trong đó chuyển động của servo tỉ lệ thuận với tín hiệu số điều khiển.
Công suất cung cấp cho động cơ servo tỉ lệ thuận với độ lệch giữa vị trí hiện tại và vị trí đích Khi servo gần đến vị trí đích, động cơ hoạt động với tốc độ thấp để tránh vượt quá điểm định Ngược lại, nếu servo ở xa vị trí đích, nó sẽ hoạt động với vận tốc tối đa để đạt được mục tiêu nhanh chóng Khi trục ra đến vị trí mong muốn, động cơ sẽ giảm tốc Toàn bộ quá trình này diễn ra trong thời gian ngắn, với servo trung bình có thể quay 60 độ trong khoảng 1/4 đến 1/2 giây và chu kỳ xung điều khiển là 16ms.
2.4.2.2 Vai trò của Vôn kế
Vôn kế trong servo đóng vai trò quan trọng trong việc định vị trục ra, với vị trí của nó phản ánh chính xác vị trí trục ra Hoạt động của Vôn kế dựa trên việc cung cấp điện áp biến thiên cho mạch điều khiển; khi Vôn kế chuyển động, điện thế thay đổi Mạch điều khiển so sánh điện thế này với độ dài các xung số đầu vào và phát tín hiệu sai số nếu có sự không khớp Tín hiệu sai số này tỷ lệ với độ lệch giữa vị trí của Vôn kế và độ dài tín hiệu vào, giúp mạch điều khiển điều chỉnh động cơ Khi điện thế của Vôn kế và độ dài các xung số tương đương, tín hiệu sai số được loại bỏ và động cơ dừng lại.
Thiết kế module thu thập độ ẩm
2.5.1 Đặc tính của cảm biến độ ẩm
, một tụ điện CMOS để chuyển đổi sử dụng để giữ các yếu tố hiệu chuẩn Cảm biến này có những đặc tính như sau:
2.26: Module cảm biến độ ẩm HH10D
Hệ thống cảm biến độ ẩm loại này có khả năng phản ứng nhanh chóng với sự thay đổi độ ẩm Mỗi cảm biến hoạt động tại hai mức độ ẩm chính xác khác nhau, và hai cảm biến này có hệ số liên quan duy nhất được lưu trữ trong hệ thống.
EEPROM trên module được để tính độ ẩm
Các giá trị đặc trưng của HH10D được trình bày trong bảng sau:
Dựa trên Hình 2.27, chúng ta :
Module truyền hình ảnh
Để thực hiện chức năng truyền nhận hình ảnh từ xe Robot về máy tính chúng tôi sử dụng camera analog và bộ thu Radio AV Receiver
Hình 2.28: Module truyền hình ảnh về máy tính Các thông số thiết bị trong bộ truyền hình ảnh gồm:
-Camera Analog, sử dụng điện thế 9V
-Bộ thu Radio AV Receiver gồm: nút điều chỉnh tần số (dãy tần số sử dụng từ 0.9 - 1.2 MHz), ăng-ten nhận tín hiệu, cổng VIDEO OUT và
AUDIO OUT được kết nối với bộ giải mã tín hiệu hình ảnh và âm thanh để đưa vào máy tính và nguồn DC 9-12V
2.10: Bảng thông số của module hình ảnh
Effective Reception Range Up to 500 feet “line of sight”
Camera Dimensions 25 mm x 33 mm x 33 mm
Hình 2.29: Camera đặt trên xe Robot
Module truyền thông không dây
2.7.1 Bộ thu phát không dây HM-TR
Bộ thu phát không dây HM-TR, sản phẩm của công ty Microelectric, được thiết kế cho ứng dụng truyền nhận dữ liệu không dây với tốc độ cao và khoảng cách truyền xa Nó có khả năng thay đổi tần số và các thông số theo chuẩn USART, giúp người dùng điều khiển linh hoạt Với thời gian nghỉ thấp và tính năng giao tiếp không dây mạnh mẽ, HM-TR là lựa chọn tiết kiệm chi phí cho các thiết kế đã có sẵn.
Bộ thu phát HM-TR có những đặc tính như sau:
-Có khả năng thay đổi tần số, chống giao thoa tốt
-Truyền nhận 2 chiều theo phương thức haft-duplex
-Thay đổi được tần số, cho phép sử dụng trong các ứng dụng FDMA
-Chuyển đổi từ RF (tín hiệu sóng FM) thành giao thức theo chuẩn USART một cách tự động, tin cậy và dễ dàng sử dụng
-Cho phép cấu hình định dạng UART, với tốc độ từ 300 bit/giây đến 19200 bit/giây
-Sử dụng chân ENABLE để điều khiển chu trình thực thi làm thỏa mãn các yêu cầu ứng dụng khác nhau
-Khả năng hoạt động cao, cự ly truyền nhận xa đến hơn 200 m khi không có vật cản
-Không cần điều chỉnh RF trong ứng dụng
-Ứng dụng trong các lĩnh vực: Điều khiển từ xa, hệ thống đo lường từ xa, thu thập dữ liệu, ứng dụng gia đình,…
2.7.2 Cấu tạo của bộ thu phát HM-TR
Bộ thu phát HM-TR có hai loại gồm: HM-TR/232 và HM-TR/TTL Trong đó
HM-TR/232 tương tự như HM-TR/TTL nhưng có tích hợp sẵn Max232, cho phép tương thích với mức điện thế theo chuẩn RS232, trong khi HM-TR/TTL chỉ tương thích với chuẩn TTL Trong bài viết này, chúng tôi sẽ sử dụng loại HM-TR/TTL.
(a) (b) Hình 2.30: Bộ thu phát HM-TR, (a) HM-TR/232 và (b) HM-TR/TTL
Hai loại này đều có cùng các chân chức năng, gồm 6 chân chức năng được trình bày như trong bảng sau:
B 2.11: Bảng mô tả chức năng của các chân trong HM-TR
Chân Tên chân Chức năng
5 CONFIG Đây là chân cấu hình Nếu chân này là 1 thì sẽ cho phép chế độ cấu hình lại, nếu là 0 thì hoạt động truyền nhận bình thường
6 ENABLE Đây là chân cho phép, nếu là mức 0 thì sẽ rơi vào chế độ ngủ tức thời, không dùng Nếu là mức 1 thì sẽ hoạt động trở lại
2.7.3 Cài đặt và cấu hình bộ thu phát HM-TR
HM-TR là một module giao tiếp USART không dây, cho phép tái cấu hình các thông số như tần số truyền, tốc độ baud và khung dữ liệu Để hỗ trợ người dùng trong việc cấu hình, hãng Microelectric đã cung cấp công cụ HM-TR SETUP UTILITY.
Lắp mạch như hình sau:
Hình 2.31: Sơ đồ kết nối dùng để cấu hình HM-TR
Khi cấp nguồn, đèn đỏ và đèn xanh lục sẽ nhấp nháy 3 lần, báo hiệu rằng thiết bị đã sẵn sàng cho ứng dụng Hãy đảm bảo chân CONFIG được đặt ở mức cao để thực hiện cấu hình một cách chính xác.
Khi cấu hình, các tham số của mô-đun được thiết lập thông qua công cụ HM-TR SETUP UTILITY, với giao diện người dùng trực quan giúp quá trình cài đặt trở nên dễ dàng và hiệu quả.
Hình 2.32: Giao diện chương trình HM-TR SETUP UTILITY
Các thông số mặc định giữa mođun và máy tính là: 9600, 8, N, 1
Nút “Read”: đọc những thông số cấu hình hiện tại của mođun
Nút “ Write”: nhập cấu hình mới cho mođun
Nút “Default”: khôi phục lại những tham số mặc định cho mođun
2.7.4 Kết nối HM-TR với PC và Vi điều khiển
Kết nối HM-TR/TTL với vi điều khiển (MCU) có thể thực hiện trực tiếp thông qua giao thức UART, như minh họa trong hình bên dưới.
Hình 2.33: Sơ đồ kết nối HM-TR/TTL với vi điều khiển
Để kết nối HM-TR/232 với máy tính, bạn có thể trực tiếp gắn thiết bị vào cổng COM trên PC Nếu máy tính không có cổng COM, hãy sử dụng cáp chuyển đổi từ COM sang USB để thực hiện kết nối.
Hình 2.34: Sơ đồ kết nối HM-TR/232 với PC
Để kết nối HM-TR/TTL với máy tính, cần sử dụng mạch chuyển đổi mức điện thế Max232, vì HM-TR/TTL không tương thích với mức điện thế của cổng COM trên máy tính Hình ảnh minh họa cách lắp mạch kết nối này được trình bày dưới đây.
Hình 2.35: Sơ đồ kết nối HM-TR/TTL với PC
Thiết kế module giám sát dung lượng pin tiêu thụ trên xe
Module này giám sát dung lượng pin trên xe Robot và cảnh báo người sử dụng qua chương trình điều khiển trên máy tính Nó bao gồm một biến trở 10KOhm kết nối với VCC và GND, với đầu chính giữa nối vào ngõ ADC của AVR Khi điện thế giảm xuống mức nhất định, ADC sẽ đọc giá trị tương ứng và xử lý theo yêu cầu Ngoài ra, board còn tích hợp một loa gốm (Buzzer) để phát âm thanh cảnh báo.
Hình 2.36: Sơ đồ mạch của module giám sát dung lượng pin
Thiết kế module thu thập khí gas
Trong module thu thập khí gas, chúng tôi sử dụng cảm biến MQ-6
Hình 2.37: Sơ đồ chân và kết nối ra mạch ngoài của MQ-6 Cảm biến MQ-6 có các đặc điểm sau:
• Độ nhạy cao với LPG (Liquefied petroleum gas), iso-butane, propane
• Độ nhạy thấp với cồn và khói
• Thời gian phản hồi nhanh
• Ổn định và thời gian hoạt động lâu
• Mạch điểu khiển đơn giản
• Điện áp hoạt động 5VDC hoặc 5VAC (+/-0.1)
Cảm biến khí LPG, isobutane, propane và LNG (khí tự nhiên hóa lỏng) được sử dụng rộng rãi trong các thiết bị phát hiện khí cho cả gia đình và công nghiệp Khi được cấp nguồn, cuộn dây kết nối giữa hai đầu (H-H) sẽ nóng lên, tạo điều kiện cho các thành phần cảm biến hoạt động hiệu quả.
Hình 2.38: Điện trở Rs của MQ-6
Hình 2.39: Điện thế ngõ ra của MQ-6
Cảm biến MQ-6 giúp xác định nồng độ phân tử khí gas trong môi trường xung quanh bằng cách sử dụng tỉ số Rs/Ro Số lượng phân tử khí gas được tính toán dựa trên tỉ số này và bảng tham chiếu tương ứng.
2.12: Bảng mô tả đặc trưng của cảm biến MQ-6
Trong đó, Ro chính là giá trị của Rs tại thời điểm ban đầu làm chuẩn Rs chính là giá trị điện trở của MQ-6 lúc khảo sát.
Thiết kế bộ điều khiển bằng tay
Bộ điều khiển bằng tay cho phép người dùng điều chỉnh hướng di chuyển của xe robot khi quan sát trực tiếp hoặc qua hình ảnh truyền về từ xe Thiết bị này hoạt động độc lập với chương trình trên máy tính, mang lại sự linh hoạt và tiện lợi cho người sử dụng Dưới đây là sơ đồ mô phỏng và hình ảnh thực tế của bộ điều khiển bằng tay.
Hình 2.41: Sơ đồ mô phỏng mạch điều khiển bằng tay
Hình 2.42: Bộ điều khiển bằng tay
Thiết kế mạch nạp STK 200/300
Hình 2.44: Cáp nạp STK200/300 Sau khi kết nối cáp nạp giữa xe robot và máy tính, ta thiết lập trong chương trình CodeVision như sau:
Sau khi kết nối thành công, hãy vào menu File và chọn Load Flash để tải file HEX đã biên dịch Tiếp theo, vào menu Program và chọn To Flash để nạp dữ liệu vào chip trên xe robot.
Kết luận
Trong chương này chúng tôi đã tìm hiểu về cấu trúc của chip vi điều khiển
Vi điều khiển AVR (ATmega 128) được sử dụng trong thiết kế module điều khiển chính của xe Robot, cho phép giao tiếp hiệu quả với các module thu thập dữ liệu Chúng tôi đã phát triển nhiều module điều khiển và thu thập dữ liệu, bao gồm: board điều khiển chính, module thu thập nhiệt độ, module điều khiển động cơ, module thu thập độ ẩm, module truyền hình ảnh, module truyền thông không dây, module giám sát dung lượng pin tiêu thụ, module thu thập khí gas, và module nạp chương trình cho chip vi điều khiển.