Mục tiêu của đề tài nhằm xây dựng hệ thống bao gồm các khối phần cứng và phần mềm đi kèm đáp ứng chức năng đếm số lượng sản phẩm một cách chính xác thay cho con người, từ đó đưa đến cách
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO HỆ THỐNG NHÚNG
ĐỀ TÀI:THIẾT KẾ HỆ THỐNG ĐẾM SẢN PHẨM
Giảng viên hướng dẫn : TS.Nguyễn Trọng Đức Sinh viên Thực Hiện : Nguyễn Bá Mạnh- 45316
Đào Trung
Lê Tường Sơn - 45328
Trần Thái
Long-HẢI PHÒNG 2016
Trang 2MỤC LỤC
CHƯƠNG 1 MỞ ĐẦU 2
CHƯƠNG 2 CÁC KHỐI CHÍNH VÀ CHỨC NĂNG 3
2.1 KHỐI THIẾT BỊ ĐỌC TÍN HIỆU 3
2.2 KHỐI XỬ LÝ 4
2.3 KHỐI HIỂN THỊ 7
CHƯƠNG 3 THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN 13
3.1 LƯ ĐỒ THUẬT TOÁN 13
3.2 CODE CHƯƠNG TRÌNH NẠP MẠCH ARDUINO 14
3.3 GIAO DIỆN HỆ THỐNG 15
Trang 3Chương 1.MỞ ĐẦU
Ngày nay, công nghệ thông tin đã phát triển với tốc độ nhanh chóng, nó đã trở thành một ngành công nghiệp mũi nhọn trên thế giới cũng như ở Việt Nam Việc tin học hoá đã được ứng dụng rộng rãi trong nhiều lĩnh vực khoa học công nghệ, kinh tế, quân sự và nhiều ngành, nghề khác
Trên thị trường hiện nay, các doanh nghiệp đang phải tăng cường tối đa hiệu quả cung cấp các dịch vụ của mình, để đạt được mục tiêu này, họ phải dựa vào một trong những tài sản lớn nhất của mình đó là nguồn nhân lực Các công tác quản lý, chấm công theo phương pháp thủ công đã không còn khả năng đáp ứng được nhu cầu thực tế công việc đòi hỏi, do đó việc ứng dụng tin học vào trong công tác quản lý là hết sức cần thiết, nó đạt hiệu quả cao về thời gian, không gian đem lại lợi ích kinh tế,
sự thuận tiện cho người sử dụng và đảm bảo tính chính xác, minh bạch về thông tin
Mặt khác, công nghệ “Đếm sản phẩm tự động” đang trở lên phổ biến trong mỗi công ty, doanh nghiệp sản xuất sản phẩm, cửa hàng, ngân hàng… các thiết bị giá thành ngày càng rẻ Với ưu điểm đó nhóm em đã lựa chọn đề tài: “ Thiết kế hệ thống đếm sản phẩm tự động” làm đề tài làm đề tài bài tập lớn của bọn em
Mục tiêu của đề tài nhằm xây dựng hệ thống bao gồm các khối phần cứng và phần mềm đi kèm đáp ứng chức năng đếm số lượng sản phẩm một cách chính xác thay cho con người, từ đó đưa đến cách nhìn tổng quát cho chủ doanh nghiệp về hoạt động của doanh nghiệp
Trang 4Chương 2.CÁC KHỐI CHÍNH VÀ CHỨC NĂNG
2.1 SƠ ĐỒ KHỐI CỦA HỆ THỐNG
2.1.1 Khối thiết bị đọc tín hiệu
Là khối nhận biết vật cản (sản phẩm) và phát tín hiệu điều khiển về khối vi điều khiển, ở đây ta sử dụng led thu-phát hồng ngoại để làm công việc này
Khối gồm có các thiết bị: 1quang trở CDS 5MM, 1 đèn led phát quang, 2 điện trở 10k ôm.
Khối Hiển Thị Kết Quả
Khối Xử Lý Tín Hiệu Khối Thiết Bị
Đọc Tín Hiệu
Trang 5Quang trở: quang trở được xem như 1 điệ trở nhưng khi ta chiếu ánh sáng vào thì
hiệu điện thế của nó sẽ tăng đồng nghĩa với việc điện trở tăng(U=IR)
Cơ chế hoạt động của khối
Khi hệ thống được mở thì đèn led sẽ sáng và chiếu thẳng vào quang trở lúc này hiệu điện thế quang trở đạt lớn nhất và giá trị hiệu điện thế này được gửi về cho khối xử lý tín hiệu Khi có sản phẩm đi qua, sản phẩm che mất ánh sáng từ đèn led chiếu đến quang trở do đó điện trở quang trở lúc này giảm xuống đồng nghĩa vs việc hiệu điện thế giảm và giá trị này lại được gửi về khối
xử lý tín hiệu
2.1.2 Khối xử lý
Là hận tín giá trị điện thay đổi được gửi từ khối thiết bị đọc tín hiệu
Khối gồm có : sử dụng mạch phát triển Arduino Uno R3.
Trang 6- Khối chuyển đổi Serial – USB: giao tiếp COM ảo qua cổng USB, nạp chương
trình
- Khối nguồn: cân bằng điện áp cho đúng với điện áp yêu cầu, cung cấp nguồn điện
cho toàn hệ thống
Các cổng điện áp: cung cấp điện áp đầu ra cho các thiết bị
- Các cổng Analog in: cổng logic 0-1 vào với mức điện 0-5V tương ứng.
- Khối các cổng Digital in-out: có thể nhận điện áp vào hoặc xuất điện áp ra Các
cổng này có thể xuất xung PWM
- Thông tin:
Điện áp hoạt động 5V – DC
Điện áp khuyên dùng 7-12V – DC
Số chân Digital 14 ( 6 chân PWM)
Dòng tối đa mỗi chân I/O 30 mA
Dòng ra tối đa chân 5V 500 mA
Trang 7Dòng ra tối đa chân 3.3V 50 mA
Bộ nhớ Flash 32KB (0.5 KB sử dụng làm bootloader)
Thông tin chi tiết của Arduino Uno R3
- Vi điều khiển
Arduino Uno có thể sử dụng 3 vi kiều khiển họ 8bit là ATmega8, ATmega168, ATmega328 Điểm khác biệt của 3 vi điều khiển này là dung lượng bộ nhớ Flash
Trong hệ thống này ta sử dụng ATmega328
Hình ảnh Atmega 328 và sơ đồ chân kết nối
Đặc điểm:
- Cấu trúc RISC với khoảng 133 lệnh ASM, hầu hết thực hiện trong một chu
kỳ máy
- 32 thanh ghi đa năng làm việc như các vùng nhớ tốc độ cao
- Tốc độ thực hiện lệnh tối đa 16 MIPS (với thạch anh 16MHz, không chia tần)
- 32KB bộ nhớ Flash, dùng làm bộ nhớ chương trình, cho phép nạp xoá
- 1KBytes EEPROM, dùng để lưu các biến ngay cả khi không được cấp điện
- 2KB SRAM dùng để lưu kết quả trung gian, làm bộ nhớ vào ra và dùng cho stack
Trang 8- Giao diện JTAG, cho phép nạp xoá Flash 10.000 lần, EEPROM 100.000 lần, Fulse Bits, Lock Bits
- Các chức năng ngoại vi tích hợp sẵn: 2 bộ Timer 8 bits với nhiều chế độ hoạt động, 2 bộ Timer 16 bits có bộ chia tần riêng, các chế độ đếm, định thời, so sánh (compare mode) và bắt giữ (capture mode)
- Bộ đồng hồ thời gian thực
- 2 kênh điều chế độ rộng xung PWM có độ phân giải 8bit
- 4 kênh điều chế độ rộng xung PWM có độ phân giải 2 đến 16 bits
- Bộ ADC 10bit
- Chuẩn giao tiếp TWI (I2C)
- Chuẩn truyền thông USART
Cơ chế hoạt động
Sau khi nhận được giá trị điện áp của quang trở gửi về chân ANALOG IN A0 từ khối đọc tín hiệu, nếu giá trị điện áp nhỏ hơn 900mv thì số lượng sản phẩm sẽ được cộng thêm 1 nghĩa là sản phẩm đã đi qua khối đọc tín hiệu ,ngược lại nếu giá trị điện áp lớn hơn hoặc bằng 900mV thì số lượng sản phẩm giữ nguyên nghĩa là sản phẩm chưa đi qua khối đọc tín hiệu Tiếp theo sau khi nhận và xử lý tín hiệu điện xong khối tiếp tục xử lý biến số lượng thành dạng chuỗi rồi gửi cho khối hiển thị kết quả
2.1.3 Khối hiển thị kết quả
Là khối hiển thị biến đếm ở dạng chuỗi ra màn hình sau khi được gửi từ khối xử lý
Khối sử dụng một màn hình Module LCD5110 nền xanh chữ đen (84x84)
Màn hình 5110 LCD Graphic có tát cả 84x48 điểm ảnh (pixel) được driver bởi IC PCD8544
Trang 9- Thứ tự và chức năng các chân LCD NOKIA 5110.
- 1:RST:Chân reset LCD
2: CE: Chân cho phép hoặc không cho phép LCD hoạt động
3: DC: Chân chọn dữ liệu gửi đến LCD là lệnh hay là dữ liệu để hiển thị ra màn hình
4: DIN: Chân truyền dữ liệu theo chuẩn SPI
5: CLK: Chân truyền xung nhịp theo chuẩn SPI
6: VCC: Chân cấp nguồn cho LCD
7: BL: Chân cấp nguồn cho led nền màn hình LCD
8: GND: Chân mass
- Ngoài chuẩn SPI với 3 đường tín hiệu chuẩn ( CS (CE), SCK(CLK), MOSI(DI)) thì Nokia LCD này cần thêm 2 đường nữa, đó là D/C (Data/Command) và RST (Reset)
- Giao tiếp với LCD NOKIA 5110
Quá trình gửi dữ liệu từ vi điều khiển đến LCD NOKIA 5110 được chia làm 2 chế độ Chế độ gửi lệnh điiều khiển LCD và chế độ gửi dữ liệu hiển thị ra LCD Đường tín hiệu DC cho phép chọn 1 trong 2 chế độ này
Nếu DC=0: dữ liệu gửi đến LCD được lưu vào thanh ghi Command Thanh ghi Command lưu trữ và thực thi các lệnh dùng để điều khiển sự hoạt động của Nokia LCD (dữ liệu này không được hiển thị ra màn hình)
Nếu DC=1: dữ liệu gửi đến LCD được lưu vào thanh ghi Data Thanh hi Data lưu trữ các giá trị dữ liệu hiển thị lên màn hình LCD
Trang 10Tín hiệu reset LCD được tạo ra khi chân RST được kéo xuống mức thâp
Khi đang truyền dữ liệu, nếu có tín hiệu reset LCD thì quá trình truyền sẽ bị hủy Cho đến khi chân RST ở mức cao (tức RST=1), trong chu kì xung clock tiếp theo, quá trinh truyền dữ liệu của byte vừa bị hủy sẽ được thực hiện
Khi đường tín hiệu CE ở mức cao (tức CE=1), thì LCD sẽ không chấp nhận bất kỳ một dữ liệu nào từ VĐK gửi đến hay mọi dữ liệu hoặc lệnh lúc này đều không ảnh hưởng đến LCD Khi đường tín hiệu CE ở mức thấp (tức CE=0) thì data gửi đến LCD sẽ được chấp nhận cứ Sau mỗi chu kì của xung clock (xung cạnh lên) thì 1 bit
dữ liệu được dịch vào LCD trên chân DIN Chân CE phải được giữ ở mức thấp(tức CE=0) cho tới khi việc gửi dữ liệu đến LCD hoàn tất
- Một số lệnh cơ bản điều khiển LCD NOKIA 5110.
Lệnh Function set : Set chế độ hoạt động cho LCD.
Trang 11Các lệnh trong chế độ cho phép sử dụng các lệnh cơ bản (khi H=0).
Lệnh Set địa chỉ dòng (set Y address).
LCD Nokia 5110 hiển thị được 6 dòng (0 ->5), vì vậy chỉ cần 3 bit Y2, Y1, Y0,
để chứa giá trị lựa chọn dòng hiển thị
- Lệnh Set địa chỉ cột (Set X address).
LCD Nokia 5110 có tất cả 84 cột (0 ->83), nên cần đến 7 bít (X0->X6 ) để chứa giá trị lựa chọn cột hiển thị
- Lệnh cài đặt hiển thị (Display Control).
ý nghĩa của các bit D, E :
Trang 12
Các lệnh trong chế độ cho phép sử dụng các lệnh bổ sung (H=1).
Lệnh Set Bias (CommandBias System )
Đây là lệnh để thiết lập giá trị của Bias được xác định bởi các Bit BS2, BS1 và BS0
- Lệnh Set điện áp hoạt động cho LCD (Set Vop).
Các bạn có thể set các bit từ Vop6 ->Vop0 để chọn điện áp hoạt động cho LCD, dựa vào công thức sau
Trang 13
với giá trị của a, b là: a=3.06, b=0.06
Ví dụ: Để chọn điện áp hoạt động của LCD là 5V, ta làm như sau:
Theo công thức ta sẽ có:
5V = 3.06 + (Vop6 ->Vop0)*0.06
từ đó suy ra: (Vop6 ->Vop0) =32,33 Ta sẽ chọn số nguyên là 32 hay bằng
20H=0100000B
Vậy, giá trị đưa vào LCD để set giá trị điên áp cho LCD là: 11000000B hay C0h
Có 1 số lệnh khác trong chế độ H=1
a Ưu điểm của các thiết bị:
- Hồng Ngoại Thu và Phát tín Hiệu: nhỏ gọn, dễ kết nối, hoạt động hiệu quả
- Arduino Uno: nhỏ gọn, mạch được làm với hệ thống máy hiện đại, đảm bảo các mối hàn luôn được bảo vệ Có sẵn khối chuyển đổi Serial – USB giao tiếp trực tiếp với máy tính không cần thêm bộ chuyển đổi RS232 Sử dụng trực tiếp nguồn điện từ cổng USB vì thế không cần lắp bổ sung thêm nguồn phụ Dễ dàng tháo lắp, thay đổi chip xử lý (AVR họ 8 bit) Nạp chương trình trực tiếp thông qua chip ATmega16U2 gẵn trên mạch được nạp sẵn firmware Ngôn ngữ lập trình dựa theo C/C++ đơn giản, dễ hiểu; chương trình lập trình tiện dụng, tích hợp sẵn Serial Monitor
- Màn Hình Module LCD5110: Nhỏ gọn dễ kết nối hiển thị đầu đủ thông tin người sử dụng yêu cầu
Trang 14Chương 3.Hệ thống điều khiển
3.1 Lưu đồ thuật toán
Lưu đồ thuật toán trên bộ vi xử lý
Hoạt động của hệ thống:
- Bước 1: Khởi tạo phiên truyền thông, khởi tạo các thiêt bị, kết nối
- Bước 2: Khởi tạo bộ đếm i=0
- Bước 3: Tiếp nhận 32bit dữ liệu từ bộ đọc
- Bước 4: Kiểm tra xem i đã bằng 5 hay chưa, nếu chưa thì quay lại bước 3
- Bước 5: Nếu i=5, tiến hành gửi dữ liệu tới server Đồng thời Speaker (Pin 3) kêu
- Bước 6: Kết thúc khi đã tiếp nhận xong dữ liệu
Trang 153.2 Sơ đồ phần cứng
3.3 Code chương trình nạp mạch Arduino
Ở đây chúng ta sử dụng phần mềm lập trình Arduino là phần mềm lập trình dành riêng cho các dòng Kit Arduino
// MOSI or DIN - Pin 6 arduino
// DC - Pin 5 arduino
// RST - Pin 3 arduino
// CS or CE - Pin 4 arduino
// VCC - 3.3 volt arduino
// BL - 5 volt arduino
// GND- ground of arduino
#include <LCD5110_Graph.h>
LCD5110 myGLCD(7,6,5,3,4);
extern uint8_t SmallFont[];
Trang 16extern uint8_t BigNumbers[];
int dem=0;
void setup()
{
myGLCD.InitLCD();
myGLCD.setFont(SmallFont);
myGLCD.print("SO LUONG:", CENTER, 0); myGLCD.print("NHOM 7 K53", CENTER, 38); myGLCD.setFont(BigNumbers);
myGLCD.print(String(0), CENTER, 10);
myGLCD.update();
Serial.begin(9600);
}
void loop()
{
delay(1000);
Serial.println(analogRead(1));
if(analogRead(1)<900)
{
dem++;
myGLCD.setFont(BigNumbers);
myGLCD.print(String(dem), CENTER, 10); myGLCD.update();
}
}
3.4 Giao diện hệ thống