Đặt vấn đề, dẫn nhập lý do chọn đề tài, trình bày mục tiêu, nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án. • Chương 2: Cơ sở lý thuyết Trình bày về các lý thuyết có liên quan về việc lập trình cho hệ thống, các linh kiện, phần cứng sử dụng để thực hiện đề tài. • Chương 3: Tính toán và thiết kế Trình bày về thiết kế và các tính toán xây dựng hệ thống như thiết kế sơ đồ khối hệ thống, sơ đồ nguyên lý toàn mạch, tính toán thiết kế mạch, tiến hành xây dựng hệ thống thực tế, kiểm tra và tinh chỉnh. • Chương 4: Kết quả thực hiện Trình bày về những kết quả mà em đã đạt được sau khi thực hiện đề tài, về hệ thống mà em thực hiện, đánh giá mức độ hoàn thiện, sự vận hành của hệ thống.
• Chương 5: Kết luận và hướng phát triển Trình bày về những kết quả mà em đã đạt được sau khi thực hiện đề tài, những hạn chế, từ đó rút ra kết luận và hướng phát triển để giải quyết các vấn đề còn tồn đọng để đồ án hoàn thiện hơn GVHD TS: Đoàn Hữu Chức SVTH: Phan Minh Phú DC2201 CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ ARDUINO Hình 2. Các loại Board Arduino 2. Giới thiệu Arduino là một bo mạch vi xử lý được dùng để lập trình, tương tác với các thiết bị phần cứng như: cảm biến, động cơ, đèn hoặc các thiết bị khác. Đặc điểm nổi bật của arduino là môi trường phát triển ứng dụng rất dễ sử dụng, với ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình cũng có thể sử dụng một cách dễ dàng.
Arduino có mức giá thấp, phù hợp với nhu cầu người dùng, có tính chất nguồn mở và cộng đồng người dùng đông đảo. Với lợi thế đến từ giá thành cũng như lợi thế về cộng đồng người dùng, arduino đang ngày càng trở nên phổ biến hơn, người dùng arduino trải rộng từ học sinh phổ thông đến sinh viên đại học. Board mạch arduino được sử dụng để thực hiện nhiều ứng dụng như: điều khiển robot, điều khiển và giám sát nhiệt độ độ ẩm phòng thí nghiệm, điều khiển xe mô hình. GVHD TS: Đoàn Hữu Chức SVTH: Phan Minh Phú DC2201 2.
Phần cứng arduino Phần cứng arduino bao gồm một board mạch nguồn mở được thiết kế trên nền tảng là vi xử lý AVR Atmel 8-bit, hoặc ARM Atmel 32-bit. Board arduino sẽ đưa ra hầu hết các chân I/O của vi điều khiển để sử dụng cho những mạch ngoài. Những mẫu hiện tại thường được trang bị gồm 1 cổng giao tiếp USB, nhiều chân đầu vào analog và chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau. Điều này giúp người dùng dễ dàng lập trình và có thể mở rộng với các mạch khác, các module thêm vào có thể dễ dàng chuyển đổi, được gọi là shield.
Một số shield kết nối với board arduino trực tiếp thông qua các chân khác nhau, ngoài ra còn một số shield được định địa chỉ thông qua serial bus I2C, người dùng có thể kết nối nhiều shield với arduino dưới dạng song song. Arduino thường sử dụng các dòng chip MegaAVR, đặc biệt là ATMega8, ATMega168, ATMega328, ATMega1280, và ATMega2560. Theo nguyên tắc, khi sử dụng phần mềm arduino, tất cả các board được lập trình thông qua một kết nối RS-232, nhưng cách thức thực hiện lại tùy thuộc vào đời phần cứng. Các board serial arduino có chứa một mạch chuyển đổi giữa RS-232 sang TTL.
Các board arduino hiện tại được lập trình thông qua cổng USB, thực hiện thông qua chip chuyển đổi USB-to-serial như là FTDI FT232. Arduino mega 2560 Arduino mega 2560 sử dụng chip ATmega2560, có 54 chân digital I/O (trong đó có 15 chân điều chế độ rộng xung PWM), 16 chân đầu vào tương tự (Analog Inputs), 4 cổng UARTs (cổng nối tiếp phần cứng), một thạch anh dao động 16 MHz, kết nối USB, một jack cắm điện để cấp nguồn, một đầu ICSP và một nút reset. Arduino mega 2560 chứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển, người dùng chỉ đơn giản là kết nối nó với một máy tính bằng cáp USB hoặc với một bộ chuyển đổi điện AC-DC hoặc có thể sử dụng pin. Board có khả năng tự động reset nhờ phần mềm thay vì đòi hỏi phải ấn nút reset trước khi tải lên.
Phần mềm arduino sử dụng khả năng này để cho phép nạp code lên chỉ GVHD TS: Đoàn Hữu Chức SVTH: Phan Minh Phú DC2201 cần nhấn vào nút Upload trong Arduino IDE. Điều này có nghĩa rằng bộ nạp khởi động có thể có một thời gian chờ ngắn hơn. Arduino mega 2560 có thể bảo vệ cổng USB của máy tính khi xảy ra hiện tượng quá dòng. Mặc dù hầu hết các máy tính đều có khả năng bảo vệ nội bộ, các cầu chì còn giúp tạo ra thêm một lớp bảo vệ.
Nếu dòng cao hơn 500mA được áp dụng cho các cổng USB, cầu chì sẽ tự động phá vỡ các kết nối cho đến khi ngắt hoặc hiện tượng quá tải được khắc phục. Thông số kỹ thuật arduino mega 2560 [1]: − Chip vi điều khiển: ATmega2560. − Điện áp cấp nguồn: 5V. − Điện áp đầu vào (kiến nghị): 7-12V.
− Điện áp đầu vào (giới hạn): 6-20V. − Số chân Digital I/O: 54 (có 15 chân điều chế độ rộng xung PWM). − Số chân Analog (Input): 16. − Dòng DC trên chân I/O: 40 mA.
− Dòng DC cho chân 3. − Flash Memory: 256KB trong đó có 8KB được sử dụng bởi bộ nạp khởi động (bootloader). − Xung nhịp: 16 MH. − Chiều dài: 101,52 mm.
− Chiều rộng: 53,3 mm. − Sơ đồ các khối kết nối của arduino mega 2560 Trong hình 2.2 Bên dưới là hình ảnh sơ đồ các khối kết nối trên Arduino mega 2560: GVHD TS: Đoàn Hữu Chức SVTH: Phan Minh Phú DC2201 Hình 2. Vị trí các khối kết nối trên arduino mega 2560 USB (1): Arduino mega 2560 sử dụng cáp USB để giao tiếp với máy tính. Bằng việc sử dụng cáp USB, người dùng có thể upload chương trình cho arduino hoạt động, ngoài ra USB còn có thể dùng làm nguồn cho arduino.
Nguồn (2 và 3): Khi không sử dụng USB làm nguồn thì người dùng có thể sử dụng nguồn ngoài thông qua jack cắm 2.1mm (cực dương ở giữa) hoặc có thể sử dụng 2 chân Vin và GND để cấp nguồn cho arduino. Bo mạch hoạt động với nguồn ngoài ở điện áp từ 5 – 20 Volt. Người dùng có thể cấp một áp lớn hơn tuy nhiên chân 5V sẽ có mức điện áp lớn hơn 5 Volt. Và nếu sử dụng nguồn lớn hơn 12 Volt thì sẽ có hiện tượng nóng và dễ dẫn đến làm hỏng bo mạch.
Chân 5V và chân 3.3V (Output voltage): các chân này dùng để lấy nguồn ra từ nguồn mà chúng ta đã cung cấp cho arduino để cấp cho các thiết bị giao tiếp khác. Lưu ý: không được cấp nguồn vào các chân này vì sẽ làm hỏng arduino. Ngõ vào tương tự (4): Arduino mega 2560 có 16 ngõ vào tương tự (các chân từ A0 đến A15), mỗi ngõ vào này đều có độ phân giải 10 bit (1024 giá trị). Mặc định đo từ 0 đến 5V, có thể thiết GVHD TS: Đoàn Hữu Chức SVTH: Phan Minh Phú DC2201 lập giá trị bằng cách điều chỉnh chân AREF và sử dụng hàm Analog Referency() để chuyển đổi.
Ngõ vào số (5 và 6): Mỗi một chân trong 54 chân số của board đều có thể sử dụng như một ngõ vào hoặc ngõ ra. Mỗi chân có thể cung cấp hoặc nhận được tối đa 40 mA và có một điện trở kéo lên bên trong 20-50 kOhms. Ngoài ra, một số chân có chức năng đặc biệt: − Serial: để truyền và nhận dữ liệu nối tiếp. Gồm các chân: Serial 0: 0 (RX) và 1 (TX); Serial 1: 19 (RX) và 18 (TX); Serial 2: 17 (RX) và 16 (TX); Serial 3: 15 (RX) và 14 (TX).
− External Interrupt: Các chân này có thể được cấu hình để kích hoạt ngắt mức thấp, ngắt cạnh lên hoặc xuống. − PWM: Cung cấp ngõ ra PWM 8 bit. Gồm các chân từ chân 2 đến 13 và 44 đến 46. − SPI: Các chân này hỗ trợ giao tiếp SPI bằng cách sử dụng thư viện SPI.
− TWI: Hỗ trợ giao tiếp TWI bằng việc sử dụng thư viện WIRE. − Nút Retset (7): Đây là nút nhấn để người dùng có thể thiết lập lại vi điều khiển. Arduino uno r3 Arduino uno r3 là dòng mạch arduino phổ biến, với thiết kế tiêu chuẩn sử dụng vi điều khiển ATmega328 hoặc ATmega168 (bộ nhớ flash 16KB) đối với loại có giá thành thấp hơn. Arduino uno r3 sử dụng thạch anh có chu kì dao động là 16 MHz, có 14 pin (ngõ) ra/vào được đánh số từ 0 tới 13 trong đó có 6 pin PWM, ngoài ra còn có thêm 6 pin nhận tín hiệu analog được đánh kí hiệu từ A0 - A5, 6 pin này cũng có thể sử dụng được như các pin ra/vào bình thường.
GVHD TS: Đoàn Hữu Chức SVTH: Phan Minh Phú DC2201 Trên board arduino uno r3 còn có 1 nút reset, 1 ngõ kết nối với máy tính qua cổng USB và 1 ngõ cấp nguồn sử dụng jack 2.1mm lấy năng lượng trực tiếp từ ACDC adapter hay thông qua ắc-quy nguồn. Thông số kỹ thuật của arduino uno r3 [2]: − Vi điều khiển: ATmega328P. − Điện áp hoạt động: 5V. − Điện áp vào khuyên dùng: 7-12V.
− Điện áp vào giới hạn: 6-20V. − Chân PWM Ddigital I/O: 6. − Cường độ dòng điện trên mỗi chân I/O: 20 mA. − Cường độ dòng điện trên mỗi chân 3.
− Flash Memory: 32 KB (đối với ATmega328P). − SRAM: 2 KB (ATmega328P) − EEPROM: 1 KB (ATmega328P) − Tốc độ: 16 MHz Sơ đồ các khối kết nối của arduino uno r3: GVHD TS: Đoàn Hữu Chức SVTH: Phan Minh Phú DC2201 Hình 2.3 Vị trí các khối kết nối trên arduino uno r3 Các khối kết nối trên arduino uno r3 cũng có chức năng tương tự như trên arduino mega 2560 đã trình bày ở trên, bao gồm: 1. Ngõ vào số 2. Ngõ vào tương tự 4.
Nguồn vào và ra 5. Phần mềm lập trình arduino IDE Giao diện phần mềm lập trình arduino IDE bao gồm 3 phần chính như hình dưới đây: GVHD TS: Đoàn Hữu Chức SVTH: Phan Minh Phú DC2201 Hình 2.4 Giao diện phần mềm lập trình arduino IDE 1. Vùng lệnh: Bao gồm các nút lệnh (File, Edit, Sketch, Tools, Help). Phía dưới là các biểu tượng cho phép sử dụng nhanh các chức năng thường dùng.
Chức năng lần lượt của các biểu tượng được trình bày trong hình dưới đây: Hình 2.5 Chức năng các biểu tượng trong arduino IDE 2.