CHƯƠNG 1 Vấn nạn điều khiển phương tiện giao thông sau khi đã sử dụng rượu bia ngày càng xảy ra thường xuyên. Điều khiển các phương tiện giao thông trong khi Nồng độ cồn trong máu và hơi thở quá mức quy định cho phép, làm người điều khiển không làm chủ được phương tiện, xứ lí các tình huống khẩn cấp trở nên không chính xác, dễ gây tai nạn cho bản thân và những người tham gia giao thông xung quanh. Cấp thiết cần có một thiết bị có thể đo và cảnh báo chính xác cho người tham gia giao thông về tình trạng cơ thể sau khi đã uống rượu bia. Luận văn phân tích kĩ lưỡng các trường hợp cần sử dụng thiết bị, mục đích chế tạo cũng như những lợi ích khi sử dụng thiết bị.
Song hành, luận văn cũng đảm bảo việc nghiên cứu, phân tích bài toán đo và cảnh báo nồng đọ cồn một cách kĩ lưỡng, chính quy. Từ đó đưa ra các phương pháp, giải pháp và định hướng thiết kế thiết bị sao cho đạt được độ chính xác và hiệu quả cao nhất. 7 download by : skknchat@gmail.com CHƯƠNG 2: CƠ SỞ LÝ THUYẾT, LỰA CHỌN THIẾT BỊ 2. Giới thiệu về Arduino 2.
Arduino là một bo mạch vi điều khiển do một nhóm giáo sư và sinh viên Ý thiết kế và đưa ra đầu tiên vào năm 2005. Mạch Arduino được sử dụng để cảm nhận và điều khiển nhiều đối tượng khác nhau. Nó có thể thực hiện nhiều nhiệm vụ từ lấy tín hiệu từ cảm biến đến điều khiển đèn, động cơ, nhiều đối tượng khác. Ngoài ra mạch có khả năng liên kết với nhiều module khác nhau như module đọc thẻ từ, Ethernetshield, sim900A, 800L…để tăng khả ứng dụng của mạch Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM, Atmel 32-bit,….
Phần mềm để lập trình cho mạch Arduino là phần mềm IDE. Đây là phần mềm mã nguồn mở, và có thể được download từ trang web của Arduino. Hiện tại ở Việt Nam và trên thế giới cũng có nhiều board mạch vi điều khiển khác nhau. Tuy nhiên Arduino có một số ưu điểm mà khiến nó trở nên nổi tiếng và hiện đang được sử dụng rộng rãi trên thế giới.
Những ưu điểm đó là: rẻ, tương thích được với nhiều hệ điều hành, chương trình lập trình đơn giản, rõ ràng, dễ ứng dụng, sử dụng nguồn mở và có thể kết hợp với nhiều module khác nhau.1:Arduino Nano 8 download by : skknchat@gmail.com Arduino có rất nhiều module, mỗi module được phát triển cho một ứng dụng về mặt chức năng, các bo mạch Arduino được chia thành hai loại: loại bo mạch chính có chip Atmega và loại mở rộng thêm chức năng cho bo mạch chính. Các bo mạch chính về cơ bản giống nhau về chức năng, tuy nhiên về mặt cấu hình như số lượng I/O, dung lượng bộ nhớ, hay kích thước có độ khác nhau. Một số bo mạch có trang bị thêm các tính năng kết nối như Ethernet và Bluetooth. Các bo mở rộng chủ yếu mở rộng thêm một số tính năng cho bo mạch chính.
Ví dụ như tính năng kết nối Ethernet, Wireless, điều khiển động cơ. Arduino được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản cho tới phức tạp. Trong đó có một vài ứng dụng thực sự chứng tỏ khả năng vượt trội của Arduino dù cho chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp. Giới thiệu về Arduino Nano.
Arduino Nano là bản thu nhỏ của các bản như ArduinoUno R3 và các loại Arduino khác, Arduino Nano được thiết kế để sử dụng với breadboard nhưng vẫn đầy đủ chức năng như một board arduino bình thường khác. Arduino Nano sử dụng chip Atmega328-AU nên còn có thêm 2 chân Analog A6 và A7 mà các board sử dụng chip cắm không hề có. Trên board tích hợp IC ổn áp tự động chuyển nguồn khi có điện áp cao hơn vào board nên board không cần sử dụng công tắc chọn nguồn. Trên board Arduino Nano sử dụng IC chuyên dụng USB to COM là chip FTDI FT232RL hoặc CH340G.
Thông số kỹ thuật: Vi điều khiển: Atmega328P Điện áp hoạt động: 5V Tần số hoạt động: 16 MHz Điện áp đầu vào khuyên dùng : 7V - 12V DC Điện áp vào giới hạn : 6-20V DC Số chân Digital I/O : 14 (6 chân hardware PWM) Bộ nhớ flash 32 KB (Atmega328) với 2KB dùng bởi bootloader 9 download by : skknchat@gmail.com SRAM 2 KB (Atmega328) EEPROM 1 KB (Atmega328) Kích thước board : 0,73 x 1,70 (Inch) Hình 2.2: Sơ đồ linh kiện Arduino Nano 2. Các cổng vào /ra. Mạch ArduinoNano 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 (mặc định thì các điện trở này không được kết nối). Một số chân digital có các chức năng đặc biệt như sau: 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL Serial. Arduino có thể giao tiếp với thiết bị khác thông qua hai chân này. Kết nối bluetooth thường thấy chính là kết nối Serial không dây.
Nếu không cần giao tiếp Serial, chúng ta không nên sử dụng hai chân này nếu không cần thiết LED 13: trên Arduino Nano có một đèn led màu cam (ký hiệu chữ L). Khi bấm nút Reset, ta sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13. Khi chân này được người dùng sử dụng, LED sẽ sáng.
Arduino Nano Broad có 8 chân analog (A0 → A7) 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). Với 10 download by : skknchat@gmail.com 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 chúng ta cấp điện áp 2.5V vào chân này thì ta có thể dùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit. Các chân năng lượng.
GND (Ground): cực âm của nguồn điện cấp cho Arduino NANO. Khi dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau. 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 (Voltage Input): để cấp nguồn ngoài cho Arduino Nano mình có thể nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND. VREF: của vi điều khiển trên Arduino Nano có thể được đo ở chân này nó luôn là 5V. Mặc dù vậy ta không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn.
RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua một điện trở 10KΩ. Lưu ý: Arduino Nano không có bảo vệ cắm ngược nguồn vào. Do đó chúng ta 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 Nano.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. Cấp nguồn ngoài không qua cổng USB cho Arduino Nano với điện áp dưới 6V có thể làm hỏng board. 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. 11 download by : skknchat@gmail.com Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino Nano nếu vượt quá 40mA sẽ làm hỏng vi điều khiển.
Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino Nano sẽ làm hỏng vi điều khiển.3: Sơ đồ chân Arduino Nano 12 download by : skknchat@gmail.Giao diện của phần mềm IDE Phần này nói về giao diện của phần mềm IDE, hình bên dưới thể hiện những phần cơ bản nhất và thường dùng nhất để có thể học nhanh Arduino…Các chức năng 1. Nút nạp chương 3. Hiển thị màn chương trình trình xuống bo mạch hình giao tiếp với máy tính 4. Vùng lập trình 5.
Vùng thôngbáo thông tin cơ bản của các biểu tượng trên phần mền được trình bày chi tiết ở các phần bên dưới.4: Giao diện của phần mềm IDE Chức năng của từng phần như sau: 1, Nút kiểm tra chương trình: Dùng để kiểm tra xem chương trình được viết có lỗi không. Nếu chương trình bị lỗi thì phần mềm sẽ hiển thị thông tin lỗi ở vùng số 5. 2, Nút nạp chương trình xuống bo Arduino: Dùng để nạp chương trình được viết xuống mạch Arduino. Trong qua trình nạp, chương trình sẽ được kiểm tra lỗi trước sau đó mới thực hiện nạp xuống mạch Arduino.
3, Hiển thị màn hình giao tiếp với máy tính: Khi nhấp vào biểu tượng kính lúp thì phần giao tiếp với máy tính sẽ được mở ra. Phần này sẽ hiển thị các thông 13 download by : skknchat@gmail.com số mà người dùng muốn đưa lên màn hình. Muốn đưa lên màn hình phải có lệnh Serial.print() mới có thể đưa thông số cần hiển thị lên màn hình. 4, Vùng lập trình:Vùng này để người lập trình thực hiện lập trình.
5, Vùng thông báo thông tin: Có chức năng thông báo các thông tin lỗi của chương trình hoặc các vấn đề liên quan đến chương trình. Cấu trúc của một chương trình trong phần mềm IDE Phần này sẽ đưa ra cấu trúc của một chương trình trong IDE, đồng thời giải thích một số lệnh thường được sử dụng để thuận tiện cho người dùng. Phần 1: Khai báo biến: Đây là phần khai báo kiểu biến, tên các biến, định nghĩa các chân trên board một số kiểu khai báo biến thông dụng: define Nghĩa của từ define là định nghĩa, hàm #define có tác dụng định nghĩa, hay còn gọi là gán, tức là gán một chân, một ngõ ra nào đó với một cái tên. Khai báo các kiểu biến khác như: int (kiểu số nguyên), float,… Phần 2: Thiết lập (void setup()) Phần này dùng để thiết lập cho chương trình, cần nhớ rõ cấu trúc của nó void setup() { …….
} Cấu trúc của nó có dấu ngoặc nhọn ở đầu và ở cuối, nếu thiếu phần này khi kiểm tra chương trình thì chương trình sẽ báo lỗi. Phần này dùng để thiết lập các tốc độ truyền dữ liệu, kiểu chân là chân ra hay chân vào.1: Một số câu lệnh cơ bản trong Arduino IDE 14 download by : skknchat@gmail.com Dùng để truyền dữ liệu từ board Serial.begin(9600); Arduino lên máy tính.