LỜI MỞ ĐẦU Dưới sức ép mạnh mẽ về nhu cầu sử dụng của người tiêu dùng đã thúc ép các nhà chế tạo không ngừng nghiên cứu, tích hợp và hoàn thiện chúng hàng năm để cho phù hợp với hầu hết
Trang 2LỜI MỞ ĐẦU 1
CHƯƠNG I: CƠ SỞ LÝ THUYẾT 2
1.1 Kit coolRunner-II 2
1.1.1 Giới thiệu kit coolRunner-II 2
1.1.2 Sơ đồ khối 3
1.1.3 Môi trường lập trình bo mạch XC2C256TQ144 4
1.2 Quang trở 6
1.2.1 Giới thiệu quang trở 6
1.2.1 Cấu tạo và nguyên lý hoạt động 6
1.3 Opto PC817 7
1.3.1 Cấu tạo 7
1.3.2 Nguyên lý hoạt động 7
1.4 Động cơ 8
1.4.1 Cấu tạo 8
1.4.2 Nguyên lý hoạt động 8
CHƯƠNG II: THIẾT KẾ MẠCH 9
2.1 Yêu cầu đồ án 9
Thiết kế máy bán nước tự động dùng kít coolRunner-II 9
2.2 Sơ đồ khối hệ thống 9
2.3 Lưu đồ thuật toán 10
2.4 Mạch nguyên lý 11
2.5 Thiết kế phần cứng 12
2.5.1 Phần mạch điện 12
2.5.2 Phần cơ 14
2.6 Thiết kế phần mềm 15
2.7 Một số hình ảnh về máy bán nước tự động 16
CHƯƠNG III: KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN CỦA ĐỒ ÁN 18
3.1 Đánh giá kết quả thực hiện đồ án 18
3.2 Hướng phát triển của đồ án 18
PHỤ LỤC 19
Trang 4LỜI MỞ ĐẦU
Dưới sức ép mạnh mẽ về nhu cầu sử dụng của người tiêu dùng đã thúc
ép các nhà chế tạo không ngừng nghiên cứu, tích hợp và hoàn thiện chúng hàng năm
để cho phù hợp với hầu hết các điều kiện và nhu cầu của xã hội hiện đại ngày nay đó
là một thiết bị phải ngày càng nhỏ gọn, tính công nghệ và tính thẩm mỹ ngày càng phải cao lên Những chiếc máy bán hàng tự động gần đây nhất được chế tạo mang trong nó đầy đủ những tính năng của một chiếc máy thông minh, khả năng xử lýnhanh chóng chính xác, sử dụng đơn giản, gần gũi và thân thiện hơn với người sử dụng
Trong những năm gần đây tại Việt Nam máy bán hàng tự động xuất hiện ở nhiều nơi Có loại nhập khẩu từ nước ngoài, có loại trong nước chế tạo Nhưng gần gũi và dễ thấy nhất đối với chúng ta là máy bán nư ớc tự động dạng lon có mặt ở nhiều nơi như trường học, siêu thị…Vì vậy nhóm chúng em với niềm đam mê các thiết bị tự động chọn đề tài tìm hiểu về máy bán nước tự động
Nhưng vì thời gian và kiến thức có hạn nên nhóm chúng em chỉ thiết kế một máy bán nước với chức năng đơn giản và đây cũng là đồ án tạo tiền đề cho chúng em thực hiện tốt các đồ án sau này
Trang 5CHƯƠNG I: CƠ SỞ LÝ THUYẾT
1.1 Kit coolRunner-II
1.1.1 Giới thiệu kit coolRunner-II
CoolRunner-II được cung cấp bởi hãng Xilinx
Xilinx là nhà phát triển hàng đầu hiện nay trong lĩnh vực chip khả trình, là nhà phát triển FPGA, CPLD được sử dụng rộng rãi trong những ứng dụng truyền thông, tự động hóa, mật mã và các lĩnh vực khác
CoolRunner-II là thiết bị được thết kế cho việc hoạt động với hiệu suất cao và sửdụng năng lượng thấp Điều này cho phép tiết kiệm năng lượng khi truyền thông tốc
độ cao với các thiết bị hoạt động bằng pin Do sử dụng điện năng thấp và năng động nên độ tin cậy của hệ thống được cải thiện
CoolRunner-II bao gồm 16 khối chức năng được liên kết với nhau thông qua ma trận điện kết nối trong nâng cao Ma trận điện kết nối trong là nguồn cung cấp dữ liệu
40 đầu vào và bổ sung cho mỗi khối chức năng Mỗi khối chức năng bao gồm 40 đầu vào và 16 macrocells chứa các bit cấu hình cho phép tổ hợp hoặc thiết lập phương thức hoạt động Ngoài ra chúng ta có thể thiết lập hoặc cài đặt trước và cấu hình như
là một flip flop D hoặc T
CoolRunner-II được phát triển và hoàn thành trên nền tảng USB-powered Bảngmạch này bao gồm hiệu quả năng lượng cao, tiết kiệm năng lượng, khả lập trình và hỗtrợ một số thiết bị vào ra chung Ngoài ra nó cũng có 5 kết nối mở rộng cho phép kếtnối với 64 CPLD sẵn có ở bên ngoài
Trang 6Hình 1.1.1: Kit coolRunner-II
1.1.2 Sơ đồ khối
Hình 1.1.2: Sơ đồ khối
Tính năng:
CoolRunner II TQ-144 bao gồm 256 macrocells
Một cổng USB2 để lập trình JTAG và truyền dữ liệu
Tần số cố định 8MHz và một ổ cắm cho tần số ngoại
Mở rộng kết nối với 64 tín hiệu vào ra
Một dây DS28E01Q EEPROM
Trang 7CoolRunner-II có thể được cấp nguồn từ cổng USB tách rời của nó hoặc từ mộtnguồn cung cấp bên ngoài gắn vào kết nối JP3, JP2 chọn xem bảng mạch sử dụngnguồn USB hoặc nguồn điện bên ngoài Nguồi điện bên ngoài, từ bất kỳ nguồn nàođược định tuyến thông qua một điều chế cơ bản LT3028 để tạo ra 2 nguồn cung cấpđiện áp 3.3V cho I/O và 1.8V cho lõi theo yêu cầu của CPLD.
CoolRunner-II cung cấp 2 nút bấmBTN0 và BTN1 hoạt động mức tích cực thấp,
2 thiết bị chuyển mạch trượt đầu vào là SW0 và SW1, 4 đèn led xanh và 4 led 7 đoạnanode chung
1.1.3 Môi trường lập trình bo mạch XC2C256TQ144
Sử dụng ngôn ngữ mô tả phần cứng Verilog
Verilog là một trong hai ngôn ngữ mô tả phần cứng chính (gồm VHDL và Verilog HDL) được người thiết kế phần cứng sử dụng để mô tả, thiết kế các hệ thống
số, ví dụ như máy tính hay linh kiện điện tử
VHDL là ngôn ngữ mô tả phần cứng cho các mạch tích hợp tốc độ rất cao, làmột loại ngôn ngữ mô tả phần cứng được phát triển dùng cho trương trình VHSIC( Very High Speed Itergrated Circuit ) của bộ quốc phòng Mỹ Mục tiêu của việcphát triển VHDL là có được một ngôn ngữ mô phỏng phần cứng tiêu chuẩn và thốngnhất cho phép thử nghiệm các hệ thống số nhanh hơn cũng như cho phép dễ dàng đưacác hệ thống đó vào ứng dụng trong thực tế
Phần mền dùng để lập trình là Xilinx ISE 10.1
Trang 8
Giao diện phần mềm lập trình:
Hình 1.1.3: Giao diện ISE 10.1
Trang 91.2 Quang trở
1.2.1 Giới thiệu quang trở
Là một loại điện trở, mà điện trở suất của nó giảm xuống rất nhanh khi có ánh sáng chiếu vào, làm bằng CdS hoạt dộng trên hiện tượng quang dẫn
Ứng dụng :Chế tạo các điện trở có giá trị thay đổi theo cường độ ánh sáng kích thích
1.2.1. Cấu tạo và nguyên lý hoạt động
Hình 1.2.1: Hình ảnh về quang trở
Quang điện trở có cấu tạo gồm: một sợi dây (hoặc một màng) bằng chất quang dẫn (1) gắn trên một đế cách điện (2)
Hình 1.2.2 Cấu tạo và ký hiệu quang trở
Một quang điện trở bằng CdS có điện trở vào khoảng 3.106 Ω khi không được chiếu sáng, và có điện trở vào khoảng 20Ω khi được chiếu sáng
Trang 101.3 Opto PC817
1.3.1 Cấu tạo
Opto hay còn gọi là cách ly quang là linh kiện tích hợp có cấu tạo gồm 1 led và 1photo diot hay 1 photo transitor Được sử dụng để các ly giữa các khối chênh lệch nhau về điện hay công suất như khối có công suất nhỏ với khối điện áp lớn
Trang 111.4 Động cơ
1.4.1 Cấu tạo
Cấu tạo của động cơ DC gồm 2 thành phần chính là phần tĩnh (Stato) và phầnđộng (Roto)
Stato của động cơ DC gồm nam châm vĩnh cử
Roto : Phần ứng bao gồm một lõi hình trụ làm bằng các lá thép kỹ thuật điện được gắn lên trục Bề mặt ngoài của lõi có các rãnh để quấn dây, các đầu dây của phầnứng được hàn vào cổ góp
Hình 1.4.1: Motor DC
1.4.2 Nguyên lý hoạt động
Khi có một dòng điện một chiều chạy qua cuộn dây quấn xung quanh một lõi sắtnon, cạnh phía bên cực dương sẽ bị tác động bởi một lực hướng lên, trong khi cạnh đối diện lại bị tác động bằng một lực hướng xuống theo nguyên lý bàn tay trái của Fleming Các lực này gây tác động quay lên cuộn dây, và làm cho roto quay
Trang 122.1 Yêu cầu đồ án
Thiết kế máy bán nước tự động dùng kít coolRunner-II
Sử dụng quang trở làm cảm biến
Giá một chai nước là 4000 Có 3 khe đưa tiền vào với mức giá là 1000, 2000,
3000 Có 1 khe đưa nước ra và 2 khe trả lại tiền thừa với 2 mức giá là 1000 và 2000
2.2 Sơ đồ khối hệ thống
Hình 2.1: Sơ đồ khối hệ thống Khối cảm biến: Gồm 3 module quang trở.
Khối động cơ: Gồm 3 động cơ để điều khiển cho nước ra và trả lại tiền thừa Khối hiển thị: Hiển thị lên 2 led 7 đoạn ở trên kít, hiển thị số tiền thả vào và số tiền thừa nếu có
Khối nguồn: Gồm nguồn 5V và nguồn 12V cung cấp toàn bộ nguồn cho hệ thống
Hiển thị
XC2C256 TQ144
Nguồn cấp
Trang 13Hình 2.2: Lưu đồ thuật toán
Trang 146 hoặc 4 cũng với điện áp 3,3V để điều khiển động cơ trả tiền thừa 1000 hoặc 2000 tùy vào số tiền thừa khi thả vào.
Trang 152.5.1 Phần mạch điện
a Kít coolRunner-II
Hình 2.4: Kit coolRunner-II
b Mạch điều khiển động cơ
Hình 2.5: Mạch điều khiển động cơ
Khi có tín hiệu điện áp 3,3V đưa vào chân 1 của opto thì led phát sáng làm cho photo transitor thông, khi photo transitor thông dẫn đến có điện áp 12V đặt trên động
cơ và làm động cơ quay Ngược lại khi điện áp 0V đưa vào chân 1 của opto thì động
cơ không quay
Trang 16Hình 2.6: Module quang trở
Khi quang trở có ánh sáng chiếu vào thì điện áp ra của LM358 là 3,3V tương ứng với mức logic 1 Khi không có ánh sáng chiếu vào thì điện áp ra của LM358 là 0V tương ứng với mức logic 0
d Mạch nguồn
Hình 2.7: Mạch nguồn
Mạch nguồn cung cấp điện áp 5V cho hệ thống
Trang 17a Một hộp kín làm vỏ máy bán nước.
b Băng truyền trả nước.
Hình 2.8: Băng truyền trả nước
Nước sẽ được trả cho khách hàng bằng cách sử dụng động cơ điện một chiều làm quay băng truyền, trên băng truyền có một thanh gạt, khi băng truyền quay thanh gạt sẽ gạt nước ra và nước rơi vào hốc đựng nước
c 2 ống trả tiền thừa
Một máy bán hàng cần phải có cơ cấu trả lại tiền thừa cho người mua Cơ cấu trảtiền phải chính xác và nhanh, đảm bảo trả lại đúng tiền thừa cho khách hàng Có thể vận dụng nguyên lý mô tả trong hình dưới đây để thiết kế cơ cấu trả tiền
Hình 2.9: Phần trả tiền thừa
Trang 18ra ngoài Sau đó tiền sẽ được rơi vào máng nghiêng và rơi xuống hộc trả tiền Kết thúcphần trả tiền thừa.
Thời gian quay của motor DC trả tiền thừa được tính toán và được xử lý
Trang 19Hình 2.11: Testbench
Trang 20Hình 2.12: Một số hình ảnh về máy bán nước
Trang 21CHƯƠNG III: KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN
CỦA ĐỒ ÁN
3.1 Đánh giá kết quả thực hiện đồ án
Đồ án “ THIẾT KẾ MÁY BÁN NƯỚC TỰ ĐỘNG “, như đã trình bày ở trên
là một đề tài có ứng dụng cao, cung cấp cho thị trường máy bán nước tự động có thể đặt được ở mọi nơi nhăm đáp ứng nhu cầu của con người
Vận dụng những kiến thức đã học cùng sự cố gắng của cả nhóm, nhóm em đãthực hiện được những phần sau đây:
Nắm rõ được quang trở
Tạo ra được module quang trở phù hợp với đồ án
Thực hiện khối điều khiển động cơ
Thiết kế được mạch công suất để cung cấp nguồn & điều khiển thiết bị
Bên cạnh đó, hệ thống còn một số nhược điểm sau:
Hệ thống máy bán nước được thiết kế còn khá đơn giản, chưa có nhiềutính năng
Đồ án đã đạt được một số kết quả nhất định, song để đáp ứng cho một bài toán thực tế còn chưa thật rối ưu Sau đây là một số hướng phát triển mà nhóm em dự định
sẽ làm:
Nâng cấp hệ thống nhận tiền, chỉ cần một đầu vào mà có thể nhận biết được nhiều loại tiền và phân biệt được tiền thật hay giả
Trang 22seg : out STD_LOGIC_VECTOR(6 downto 0);
AN : out STD_LOGIC_VECTOR(1 downto 0)
);
end dambn;
Trang 23type status is (T0,T1,T2,T3,T4,T5,T6);
signal cst,nst: status:=T0;
signal flag: STD_LOGIC;
signal count1,count2,count3: integer range 0 to 99999999;signal clk_an: STD_LOGIC:='0';
signal tien: STD_LOGIC_VECTOR(3 downto 0 );
signal mode2: STD_LOGIC_VECTOR(3 downto 0):=x"0";signal temp: STD_LOGIC_VECTOR(3 downto 0);
signal repay: STD_LOGIC_VECTOR(3 downto 0);
signal clk_use: STD_LOGIC:='0';
Trang 24elsif(S3='0') then nst<=T3;tien<=x"3";repay<=x"0"; end if;
when T1 => if(S1='0') then nst<=T2;tien<=x"2";repay<=x"0";
elsif(S2='0') then nst<=T3;tien<=x"3";repay<=x"0"; elsif(S3='0') then nst<=T4;tien<=x"4";repay<=x"0"; end if;
when T2 => if(S1='0') then nst<=T3;tien<=x"3";repay<=x"0";
elsif(S2='0') then nst<=T4;tien<=x"4";repay<=x"0"; elsif(S3='0') then nst<=T5;tien<=x"5";repay<=x"1"; end if;
when T3 => if(S1='0') then nst<=T4;tien<=x"4";repay<=x"0"; elsif(S2='0') then nst<=T5;tien<=x"5";repay<=x"1"; elsif(S3='0') then nst<=T6;tien<=x"6";repay<=x"2"; end if;
when T4 => if (flag='1') then nst<=T0;tien<=x"0";repay<=x"0";
Trang 25if(cst=T4) then coca<='1'; P1<='0'; P2<='0'; flag<='1';
elsif(cst=T5) then coca<='1'; P1<='1'; P2<='0'; flag<='1'; elsif(cst=T6) then coca<='1'; P1<='0'; P2<='1'; flag<='1'; else
if(clk'event and clk='1') then
if (count2=2199999) then count2<=0;
if(clk'event and clk='1') then
if (count3=2499) then count3<=0;
clk_an<='1';
Trang 26if(clk_an'event and clk_an='1')then
if(mode2=x"1") then mode2<=x"0";
end process;
Trang 27with temp select