Chương 1: Tổng Quan do an Báo Cáo Đồ Án Tốt Nghiệp Trang 6 Chương 2: CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu linh kiện 2.1 Borad Arduino Uno R3 Hình 2. 1: Hình ảnh thực tế Arduino Uno R3 Arduino Uno R3 là kit Arduino Uno thế hệ thứ 3, tích hợp vi điều khiển ATmega328P(8bits), 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). Arduino Uno R3 có 6 chân Analog (A0 ÷ A5) cung cấp độ phân giải 10bit (0 ÷ 210 -1) để đọc giá trị điện áp trong khoảng 0V – 5V. Với chân AREF trên board, ta có thể đưa vào điện áp tham chiếu khi sử dụng các chân Analog.
Tức là nếu cấp điện áp 2.5V vào chân này thì có thể dùng các chân Analog để đo điện áp trong khoảng 0V ÷ 2.5V với độ phân giải vẫn là 10bit. Arduino có thế cấp nguồn 5V thông qua cổng USB. Bộ nhớ của Arduino Uno R3 cung cấp cho người dùng: Chương 2: Cơ Sở Lý Thuyết do an Báo Cáo Đồ Án Tốt Nghiệp Trang 7 32KB bộ nhớ Flash: những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader nhưng rất hiếm khi nào cần quá 20KB bộ nhớ này.
2KB cho SRAM (Static Random Access Memory): giá trị các biến khai báo khi lập trình sẽ ở đây. Khai báo càng nhiều biến thì cần càng nhiều bộ nhớ RAM. Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM trở thành thứ đáng để mà phải bận tâm. Khi mất điện, dữ liệu trên SRAM sẽ bị mất.
EPROM (Electrically Eraseble Programmable Read Only Memory): đây giống như một chiếc ổ cứng mini – nơi mà bạn có thể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM là 1KB. 2: Sơ đồ chân của Arduino Uno R3 Chương 2: Cơ Sở Lý Thuyết do an Báo Cáo Đồ Án Tốt Nghiệp Trang 8 Thông sỗ kỹ thuật của board Arduino Uno R3: STT Tên thông số Đặc tính 1. Vi điều khiển Atmega 328P 2. Điện áp hoạt động 1.
PWM Digital I/O Pins 6 5. Analog Input Pins 6 6. Cường độ dòng điện ngõ ra 20 mA 7. Flash Memory 32 KB (ATmega328P) 8.
Tốc độ 16 MHz Bảng 2. 1: Thông số kỹ thuật chính của borad Arduino Chương 2: Cơ Sở Lý Thuyết do an Báo Cáo Đồ Án Tốt Nghiệp Trang 9 2.2 Module RFID RC522 Hình 2. 3: Hình ảnh thực tế module RFID RC522 Dùng giao tiếp SPI kết nối với ARDUINO, kết nối qua 4 chân: SCK, MISO, MOSI, SS SCK: Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền đồng bộ nên cần 1 đường giữ nhịp, mỗi nhịp trên chân SCK báo 1 bit dữ liệu đến hoặc đi. MISO – Master Input / Slave Output: nếu là chip Master thì đây là đường Input còn nếu là chip Slave thì MISO lại là Output.
MISO của Master và các Slaves được nối trực tiếp với nhau. MOSI – Master Output / Slave Input: nếu là chip Master thì đây là đường Output còn nếu là chip Slave thì MOSI là Input. MOSI của Master và các Slaves được nối trực tiếp với nhau. SS – Slave Select: đường chọn Slave cần giap tiếp, tích cực mức thấp.
Thông số kỹ thuật: Nguồn: 3.3VDC, 13 - 26mA Dòng ở chế độ chờ: 1013mA Dòng ở chế độ nghỉ: < 80uA Chương 2: Cơ Sở Lý Thuyết do an Báo Cáo Đồ Án Tốt Nghiệp Trang 10 Tần số sóng mang: 13.56MHz Khoảng cách hoạt động: 0~60mm(mifare1 card) Chuẩn giao tiếp: SPI Tốc độ truyền dữ liệu: tối đa 10Mbit/s 2.3 Màn hình LCD 20x4 Hình 2. 4: Hình ảnh LCD 20x4 LCD 20x4 là loại màn hình tinh thể lỏng nhỏ dùng để hiển thị chữ hoặc số trong bảng mã ASCII. Mỗi ô của Text LCD bao gồm các chấm tinh thể lỏng, các chấm này kết hợp với nhau theo trình tự “ẩn” hoặc “hiện” sẽ tạo nên các kí tự cần hiển thị và mỗi ô chỉ hiển thị được một kí tự duy nhất. LCD 20x4 nghĩa là loại LCD có 4 dòng và mỗi dòng chỉ hiển thị được 20 kí tự.
Đây là loại màn hình được sử dụng rất phổ biến trong các loại mạch điện. Thông số kĩ thuật của LCD 20x4: Điện áp: 5V Ngõ giao tiếp: 16 chân Màu sắc: xanh lá hoặc xanh dương Module hỗ trợ giao tiếp với vi điều khiển: LCD I2C 16x2 Chương 2: Cơ Sở Lý Thuyết do an Báo Cáo Đồ Án Tốt Nghiệp Trang 11 Chức năng các chân: Chân Ký hiệu Mô tả Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với 1 Vss GND của mạch điều khiển. Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này 2 VDD với VCC=5V của mạch điều khiển. 3 VEE Điều chỉnh độ tương phản của LCD.
Chân chọn thanh ghi (Register select). Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi. + Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của 4 RS LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read). + Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.
Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với 5 R/W logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc. Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển 6 E vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E. + Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp. Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2 chế độ sử dụng 8 đường bus này: DB0 - + Chế độ 8 bit: Dữ liệu được truyền trên cả 8 đường, với bit 7 - 14 DB7 MSB là bit DB7.
+ Chế độ 4 bit: Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7. 15 - Nguồn dương cho đèn nền. Chương 2: Cơ Sở Lý Thuyết do an Báo Cáo Đồ Án Tốt Nghiệp Trang 12 16 - GND cho đèn nền. 2: Chức năng các chân của LCD Cách điều khiển LCD: Hình 2.
5: Dạng sóng điều khiển LCD Nhìn vào dạng song ta có thể thấy được trình tự điều khiển như sau: Điều khiển tín hiệu RS. Điều khiển tín hiệu R/W xuống mức thấp. Điều khiển tín hiệu E lên mức cao để cho phép. Xuất dữ liệu D7 – D0.
Điều khiển tín hiệu E về mức thấp. Điều khiển tín hiệu R/W lên mức cao trở lại. Kết nối với Arduino thông qua Module chuyển đổi I2C với địa chỉ giao tiếp I2C là 0x27. 6: Module chuyển đổi I2C Chương 2: Cơ Sở Lý Thuyết do an Báo Cáo Đồ Án Tốt Nghiệp Trang 13 Để sử dụng các loại LCD có driver là HD44780 (LCD 1602, LCD 2004, …) cần có ít nhất 6 chân của MCU kết nối với các chân RS, EN, D7, D6, D5 và D4 để có thể giao tiếp với LCD.
Nhưng với module chuyển giao tiếp LCD sang I2C, chỉ cần hai chân (SDA và SCL) của MCU kết nối với hai chân (SDA và SCL) của module để có thể hiển thị thông tin lên LCD. Ngoài ra có thể điều chỉnh được độ tương phản bởi biến trở gắn trên module. Thông số kĩ thuật của module I2C: Kích thước: 41.3MM(H) Trọng lượng: 5g Điện áp hoạt động: 2.5v-6v Jump chốt: Cung cấp đèn cho LCD hoặc ngắt Biến trở xoay độ tương phản cho LCD 2.4 Động cơ Servo SG90 Hình 2. 7: Hình ảnh động cơ Servo SG90 Servo là một dạng động cơ điện đặc biệt.
Không giống như động cơ thông thường là quay liên tục, servo chỉ quay khi được điều khiển (bằng xung PPM), với góc quay nằm trong khoảng bất kì từ 0o - 180o. Động cơ servo được thiết kế những hệ thống hồi tiếp vòng kín. Tín hiệu ra của động cơ được nối với một mạch điều khiển. Khi động cơ quay, vận tốc và vị trí sẽ Chương 2: Cơ Sở Lý Thuyết do an Báo Cáo Đồ Án Tốt Nghiệp Trang 14 được hồi tiếp về mạch điều khiển này.
Nếu có bầt kỳ lý do nào ngăn cản chuyển động quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong muốn. Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được điểm chính xác. Thông số kỹ thuật của động cơ: Momen xoắn: 1.8kg/cm Tốc độ hoạt động: 60 độ trong 0.1 giây Điện áp hoạt động: 4.8V(~5V) Nhiệt độ hoạt động: 0 ºC – 55 ºC 2. 8: Hình ảnh Camera Ngày nay, tại các bãi giữ xe thông minh thì camera là phần quan trọng nhất, không thể thiếu trong quá trình làm việc, hệ thống camera quan sát bãi giữ xe có chức năng tìm kiếm hình ảnh xe ra vào một cách thông minh giúp cho người giũ xe không lo nghĩ về việc mất xe hoặc thất lạc thẻ giữ xe một cách thông thường.
Chương 2: Cơ Sở Lý Thuyết do an Báo Cáo Đồ Án Tốt Nghiệp Trang 15 Thông số kỹ thuật: Pixel size(μm): 3.20 Cảm biến ảnh: 1/2 inch CMOS Số điểm ảnh: 2.0 Megapixel Độ phân giải lớn nhất: 640X480 Tỷ lệ khung hình: 11fps Kết nối: cổng USB 2.2 Phần mềm lập trình điều khiển 2.1 Phần mềm lập trình Arduino IDE Với mục tiêu của đề tài là sử dụng Arduino Uno R3 nên phần mềm để viết chương trình điều khiển là phần mềm Arduino IDE. Arduino IDE (Arduino Integrated Development Environment) là một trình soạn thảo văn bản, giúp viết code để nạp vào bo mạch arduino. Arduino có thể chạy trên Windows , MAC OS X và Linux. Một chương trình viết bởi Arduino IDE được gọi là sketch, sketch được lưu dưới định dạng.
Sau khi khởi động Arduino IDE, ta được giao diện như hình sau: Chương 2: Cơ Sở Lý Thuyết do an Báo Cáo Đồ Án Tốt Nghiệp Trang 16 Hình 2. 9: Giao diện phần mềm Arduino IDE Vùng lập trình source code: Hình 2.