Điế n áp hoầ t đồ ng : 4.7V – 5.3V Dòng hoầ t đồ ng module mạch còi : <25mA
Chế độ : 4-bit và 8-bit
Chức năng hiển thị 16 ký tự 1 hàng
2.3 Giới thiệu phần mềm
2.3.1 Arduino IDE a) Giới thiệu a) Giới thiệu
Arduino IDE là một cơng cụ tuyệt vời cung cấp một mơi trường hồn chỉnh cho tất cả các dự án dựa trên Arduino. IDE trơng rất tối giản, nhưng nó cung cấp tất cả thư viện và chức năng cần thiết để thực hiện bất kỳ dự án Arduino phức tạp nào. Các thanh menu trên cùng có các tùy chọn tiêu chuẩn như File, Edit, Tools, Sketch, Help.
Các dự án được thực hiện bằng Arduino IDE được gọi là Sketch và những Sketch này thường được viết bằng phiên bản C ++ ngắn (nhiều tính năng của C ++ khơng bao gồm trong Arduino IDE). Bởi vì lập trình một bộ vi điều khiển là khác với lập trình máy tính, có một số thư viện được bao gồm trong Phần cứng Arduino như - đọc chân, ghi vào chân, đọc giá trị tương tự và các chức năng cụ thể của phần cứng khác, điều này thường khiến nhiều người nhầm lẫn và họ nghĩ rằng Arduino được lập trình bằng “ngơn ngữ Arduino.” Tuy nhiên, Arduino được lập trình bằng C ++ và sử dụng một số thư viện riêng của ArduinoHardware [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. Người dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung được nhà phát hành cho phép mà không cần xin phép ai, điều mà họ không được phép làm đối với các phần mềm nguồn đóng.
b) Giao diện phần mềm.
Hình 2.8: Giao diện của phần mềm IDE
- 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.
- 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 quá 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.
- 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 cái 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 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
- Vùng lập trình: Vùng này để người lập trình thực hiện việc lập trình cho chương trình của mình.
- 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 lập.
Có vài menu trong phần mềm IDE, tuy nhiên thông dụng nhất vẫn là menu File, ngoài những tính năng như mở một file mới hay lưu một file, phần menu này có một mục đáng chú ý là Example. Phần Example (ví dụ) đưa ra các ví dụ sẵn để người lập trình có thể tham khảo, giảm bớt thời gian lập trình. Hình bên dưới thể hiện việc chọn một ví dụ cho led chớp tắt (blink) để nạp cho mạch Arduino. Ví dụ về led chớp tắt này thường được dùng để kiểm tra bo khi mới mua về.
Hình 2.9: Menu file trên IDE
Một menu thường được sử dụng khác là menu Tools. Khi mới kết nối bo Arduino với máy tính ta click vào Tools => board để chọn loại board sử dụng. Phần mềm chọn sẵn kiểu bo là bo Arduino Uno, nếu người dùng dùng kiểu bo khác thì chọn kiểu bo đang dùng.
Bên cạnh việc chọn bo thì một phần quan trọng nữa là chọn cổng COM. Hình bên dưới minh họa cho việc chọn cổng COM. Khi lần đầu gắn mạch Arduino vào máy tính, người sử dụng cần nhấn chọn cổng COM bằng cách vào Tools => Serial Port (một số phiên bản dùng từ Port) sau đó nhấn chọn cổng COM, ví dụ như COM1.
Hình 2.11: Cách chọn cổng COM trên IDE
Sau khi thực hiện các bước trên xong, người dùng sẽ bắt tay vào việc lập trình. Phần kế tiếp sẽ trình bày cấu trúc của một chương trình trong phần mềm IDE [1].
2.3.2 Giới thiệu về phần mềm PLX-DAQ a) Giới thiệu chung
PLX DAQ v2 là một chương trình được sử dụng để thiết lập giao tiếp dễ dàng giữa Microsoft Excel trên Máy tính Windows và bất kỳ thiết bị nào hỗ trợ giao thức cổng nối tiếp. Nó đã được viết có chủ đích để cho phép giao tiếp giữa Arduino và Excel.
b) Giao diện phần mềm
- Port: Đặt thành cổng Arduino (giống như trong Arduino IDE => Công cụ => Cổng, ví dụ: 3 cho COM3.
- Baud: Đặt thành tốc độ truyền mà bạn chạy Arduino của mình (ví dụ: 9600 nếu bạn đang sử dụng Serial.begin (9600); trong mã Arduino của bạn)
- Connect: Kết nối với Arduino của bạn và bắt đầu ghi nhật ký - Pause logging/resume logging: Khi kết nối sẽ tạm dừng ghi nhật ký dữ liệu
- Reset Timer: Sẽ đặt Timer thành 0. Timer có thể được sử dụng để đo thời gian Excel đã ghi nhật ký
- Clear Columns: Sẽ xóa tất cả dữ liệu đã ghi ra khỏi trang tính. Khơng xóa nhãn của các cột
- Display/Hide direct debug: Sẽ hiển thị hoặc ẩn trường văn bản ở bên phải. Cửa sổ gỡ lỗi trực tiếp có thể được sử dụng để theo dõi thủ công các lệnh mà PLX DAQ v2 nhận được trong Excel
- Sheet name to post to: Đều này sẽ liệt kê tất cả các trang tính trong sổ làm việc Excel. Bất kỳ trang tính nào bạn chọn trong menu thả xuống, dữ liệu đã ghi sẽ được đăng lên trang tính đó. Trang tính này sẽ được gọi là “ActiveSheet” trong toàn bộ tài liệu này.
- Note: Sau khi thêm / xóa trang tính, vui lịng nhấn nút “Tải” nhỏ ở bên trái của hộp thả xuống để danh sách trang tính được cập nhật.
- Controller Messages: Trong trường bên dưới các lệnh gần đây nhất và thông tin trạng thái sẽ được hiển thị. Nhiều khả năng thông tin thay đổi quá nhanh khiến bạn không thể đọc được, do đó hãy sử dụng Cửa sổ gỡ lỗi trực tiếp.
- Reset on Connect: Hộp kiểm nên được đánh dấu vào mọi lúc. Nếu thẻ lệnh đầu tiên từ Excel tới Arduino sẽ là khởi động lại, do đó mã của bạn cũng bắt đầu từ đầu. Bằng cách này, bạn có thể có một phiên làm việc mới. Nếu bạn muốn kết nối với Arduino của mình mà khơng cần khởi động lại nó, chỉ cần bỏ chọn hộp.
- “Custom Checkbox 1/2/3”: Chúng có thể được sử dụng để điều khiển Arduino của bạn trong quá trình chạy theo bất kỳ cách nào bạn muốn. Có các lệnh để gắn nhãn Hộp kiểm bằng Arduino của bạn và để truy vấn trạng thái của các hộp. Ví dụ, bạn có thể dán nhãn cho một hộp “Cũng đo độ ẩm?” và kiểm tra theo yêu cầu trong Excel nếu bạn muốn Arduino của mình đo độ ẩm bằng cảm biến thứ hai bên cạnh chỉ đo, ví dụ: nhiệt độ. Có những lệnh đặc biệt Arduino có thể sử dụng để truy vấn trạng thái của các hộp kiểm.
2.4 Giới thiệu công nghệ
2.4.1 Giới thiệu chung về RFID a) Định nghĩa
Công nghệ nhận dạng tần số vô tuyến điện (RFID) đã được phát minh bởi Charlie Walton [2]. RFID về cơ bản các thẻ là một bộ phát (tag) và có một dữ liệu bên trong có thể xác định từng mục thơng qua việc truyền sóng vơ tuyến sóng. Việc truy xuất thơng tin và dữ liệu trong RFID hệ thống có thể được thực hiện bằng cách sử dụng dữ liệu có thể đọc được bằng máy tại thời gian và địa điểm cụ thể để đáp ứng các ứng dụng cụ thể [3]. Hiện tại, các hệ thống dựa trên RFID có thể được sử dụng như một hệ thống theo dõi ngồi bảo mật. Nó tích hợp bảo mật với theo dõi tài liệu có thẩm quyền cho thư viện bao gồm sạc và xả một cách dễ dàng và nhanh chóng, kiểm kê và xử lý vật liệu.
b) Cấu tạo
Một thiết bị bay một hệ thống RFID được cấu tạo bởi hai thành phần chính là thiết bị đọc (reader) và thiết bị phát mã RFID có gắn chip hay cịn gọi là tag. Một đầu đọc thường chứa một mô-đun tần số vô tuyến (máy phát và máy thu), một đơn vị điều khiển và một phần tử ghép nối với bộ phát. Bộ phát(tag), đại diện cho thiết bị mang dữ liệu thực tế của hệ thống RFID, thông thường bao gồm một phần tử ghép nối và một vi mạch điện tử [4].
c) Nguyên lý hoạt động
Giống như hệ thống thẻ thông minh, dữ liệu được lưu trữ trên một thiết bị mang dữ liệu điện tử - bộ phát. Tuy nhiên, không giống như những thẻ, nguồn điện cho thiết bị mang dữ liệu và trao đổi dữ liệu giữa thiết bị mang dữ liệu
thiết bị và đầu đọc đạt được mà không cần sử dụng các tiếp điểm điện, thay vào đó sử dụng từ tính hoặc điện trường [4].
Hình 2.13; Nguyên lý hoạt động của RFID d) Ứng dụng
- Ứng dụng quản lý lưu thơng hàng hố. - Ứng dụng quản lý kho hàng.
- Ứng dụng quan lý thu phí đăng ký tự động.
Hình 2.14: Ứng dụng của RFID 2.4.2 Giới thiệu chung về chuẩn giao tiếp USB
a) Định nghĩa
USB (Universal Serial Bus) là một giao diện kết nối thiết bị với máy tính. Với kết nối này, máy tính gửi hoặc truy xuất dữ liệu từ thiết bị. USB cung cấp cho các nhà phát triển một giao diện tiêu chuẩn để sử dụng trong nhiều loại ứng dụng khác nhau. USB thiết bị dễ dàng kết nối và sử dụng do quy trình thiết kế có hệ thống. Ghi chú ứng dụng này nhằm giúp đỡ làm cho q trình đó đơn giản hơn [7].
Hình 2.15: Đầu đọc USB tiêu chuẩn b) Cấu tạo b) Cấu tạo
Hệ thống USB bao gồm một máy chủ, thường là một máy tính cá nhân (PC) và nhiều thiết bị ngoại vi được kết nối thông qua cấu trúc liên kết tầng sao. Cấu trúc liên kết này cũng có thể bao gồm các trung tâm cho phép các điểm kết nối bổ sung vào hệ thống USB.
Thiết bị USB bao gồm một hoặc nhiều chức năng của thiết bị, chẳng hạn như chuột, bàn phím hoặc thiết bị âm thanh. Mỗi thiết bị được máy chủ cung cấp một địa chỉ, được sử dụng trong giao tiếp dữ liệu giữa thiết bị đó và máy chủ.
Hình 2.16: Thơng số cấu tạo của 1 giao tiếp USB tiêu chuẩn 2.4.3 Giới thiệu chung về ngơn ngữ lập trình C
a) Khái niệm
C là một ngơn ngữ lập trình dùng để viết chương trình. Các chương trình là tập hợp của hướng dẫn của một lập trình viên cho máy tính bằng ngơn ngữ cấp cao.
b) Lưu đờ thuật tốn
Lưu đồ thuật tốn là một biểu đồ thế hiện trình tự và các bước để tạo ra một chương trình cụ thể, bảng 2.2 đưa ra các hình dạng và ý nghĩa của các thành phần trong lưu đồ thuật toán.
Bảng 2.6: Giới thiệu ký hiệu
Hình dạng Ý nghĩa
Dữ liệu vào (Input)
Xử lý (Process)
Quyết định, điều kiện
Luồng xử lý
Gọi chương trình con, hàm
Bắt đầu, kết thúc (Begin, end)
Điểm kết nối
Cấu trúc điều khiển là các cấu trúc dùng để điều khiển chương trình theo các hướng khác nhau, vì thế các cấu trúc này cịn được gọi là cấu trúc điều khiển rẽ nhánh.
- Cấu trúc if:
Là một cấu trúc điều khiển rẽ nhánh, được sử dụng với một toán tử so sánh. Nó sẽ kiểm tra xem điều kiện có đạt được khơng.
Cấu trúc:
if ( < điều kiện> ) {
Khối lệnh; }
Hình 2.17: Lưu đờ thuật tốn của cấu trúc if
Ví dụ:
if(A > 50) {
Thực hiện một nhiệm vụ nào đó; }
Chương trình sẽ kiểm tra xem giá trị A nào đó có lớn hơn 50 khơng, nếu có thì nhiệm vụ bên trong cấu trúc if sẽ được thực hiện, nói cách khác, nếu biểu thức điều kiện đúng thì khối lệnh bên trong hai dấu ngoặc nhọn sẽ được thực hiện, cịn nếu khơng thì chương trình sẽ bỏ qua các câu lệnh này.
Trong một số trường hợp thì hai dấu ngoặc nhọn có thể bỏ đi, nếu biểu thức điểu kiện đúng thì câu lệnh ngay sau if sẽ được thực hiện, câu lệnh này định nghĩa bằng dấu chấm phẩy, và nó chỉ thực hiện một câu lệnh duy nhất này. Ví dụ:
Một số tốn tử so sánh thường được dùng trong cấu trúc if: x == y (giá trị của x bằng giá trị của y)
x!= y (giá trị của x khác giá trị của y) x < y (giá trị của x nhỏ hơn giá trị của y) x > y (giá trị của x lớn hơn giá trị của y)
x<=y (giá trị của x nhỏ hơn hoặc bằng giá trị của y) x>=y (giá trị của x lớn hơn hoặc bằng giá trị của y)
Lưu ý khi sử dụng if với toán tử so sánh bằng ( = = ), nếu bạn chỉ sử dụng một dấu bằng cho cấu trúc if, ví dụ if (x = 10) thì khi đó dấu bằng đơn này sẽ được hiểu là phép gán giá trị chứ không phải là tốn tử so sánh nữa, khi đó giá trị 10 sẽ được gán cho biến x, có nghĩa là khi cấu trúc if hoạt động thì sẽ ln ra kết quá là TRUE, và khi đó cấu trúc if của chúng ta sẽ bị hoạt động sai.
- Cấu trúc if/else:
Cấu trúc if/else là một cấu trúc điều khiển rẽ nhánh cao cấp hơn là cấu trúc if, nếu như cấu trúc if được gọi là cấu trúc if dạng thiếu thì cấu trúc if/else cịn được gọi là cấu trúc if dạng đủ. Cấu trúc if / else giải quyết bài toán linh hoạt hơn là cấu trúc if. Cấu trúc if/else cho phép ta kiểm tra nhiều toán từ so sánh hơn. Cấu trúc: if(<điều kiện ) { Khối lệnh 1; { else { Khối lệnh 2; }
Hình 2.18: Lưu đờ thuật tốn của cấu trúc if else Ví dụ: if(A> 500) { Thực hiện nhiệm vụ 1; } else { Thực hiện nhiệm vụ 2; }
Trong ví dụ này, giá trị A sẽ được kiểm tra, và nhiệm vụ số 1 sẽ được thực hiện nếu như giá trị A này lớn hơn 500, và nhiệm vụ còn lại, tức nhiệm vụ 2 sẽ được thực hiện nếu như A có giá trị bằng 500 hoặc nhỏ hơn 500.
Việc kiểm tra tính đúng sai của biểu thức trong cấu trúc if else được thực hiện liên tục cho đến khi nó tìm được một tốn tử so sánh đúng, khi đó câu lệnh tương ứng sẽ được thực hiện, và chương trình sẽ thốt khỏi cấu trúc if else này. Ngồi việc sử dụng cấu trúc if else như bình thường, ta cịn có thế sử dụng cấu trúc này theo một cách khác, ví dụ:
if ( A <500) { Thực hiện nhiệm vụ 1; } else if ( A >1000) { Thực hiện nhiệm vụ 2; } else { Thực hiện nhiệm vụ 3; }
Với cách này, ta có thế kiểm tra nhiều tốn tử so sánh khác nhau, ứng với mỗi tốn tử đó sẽ là một nhiệm vụ khác nhau, như vậy cấu trúc này sẽ điều khiển linh hoạt hơn rất nhiều so với cấu trúc if bình thường.
- Cấu trúc for:
Cấu trúc for là cấu trúc sử dụng để lặp lại một khối lệnh nào đó dựa theo một điều kiện cụ thể, cấu trúc này thường được sử dụng cho các câu lệnh với tính chật lặp lại nhiều lần.
Vịng lặp for được định nghĩa bởi từ khóa for và được chia làm 3 phần chính, mỗi phần được ngăn cách bởi dấu chấm phẩy:
for (khởi tạo; điều kiện ; biến gia tăng ) {
Khối lệnh; }
Phần khởi tạo sẽ được thực hiện đầu tiên và chỉ xẩy ra một lần duy nhất, mỗi lần chạy vòng lặp, điều kiện sẽ được kiểm tra, nếu điều kiện đúng thì khối lệnh và biến gia tăng sẽ được thực hiện, cho đến khi điều kiện sai thì vịng lặp sẽ kết thúc.
Lưu đồ thuật tốn:
Hình 2.19: Lưu đờ thuật tốn của cấu trúc for
Ví dụ về một vịng lặp for trong arduino: for (int i = 0; i <255; i ++ )
{
analogWrite (PWMpin,i); delay (10);
}
Đây là một ví dụ về việc xuất tín hiệu analog trong arudino, đầu tiên trong vòng lặp for biến I sẽ được khai báo và gán bằng giá trị 0, sau đó chương trình sẽ kiếm tra điều kiện, nếu i < 255 thì i sẽ được tăng lên, sau đó sẽ thực