Tải bản đầy đủ (.docx) (26 trang)

THÙNG rác THÔNG MINH DÙNG PIC (có code và layout)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.15 MB, 26 trang )

ĐỒ ÁN 2

THÙNG RÁC THÔNG MINH


ĐỒ ÁN 2
Trang 1/27

CHƯƠNG 1.

TỔNG QUAN VỀ THÙNG RÁC THÔNG MINH

1.1 Giới thiệu
Khi công nghệ đang ngày càng phát triển mạnh thì các giải pháp nhằm nâng cao
chất lượng cuộc sống cũng đang dần tăng lên. Bên cạnh đó, giảm sức lao động của
con người và xây dựng 1 cuộc sống văn minh hơn cũng là thách thức cho các nhà
quản lý cũng như các công ty dịch vụ. Thùng rác xưa nay vốn là một vật dụng
không thể thiếu trong cuộc sống của con người. Cùng với sự phát triển chung đó,
việc hiện đại hóa thùng rác vừa giúp làm sạch môi trường, vừa giúp những người
công nhân thu gom rác tiết kiệm được sức lao động, vừa giúp nâng cao ý thức của
loài người về việc để rác đúng nơi quy định.
1.2 Mục đích nghiên cứu
Nhằm ứng dụng chức năng của vi điều khiển PIC16F877A và những kiến thức đã
học hằng ngày vào thực tiễn để tạo ra 1 sản phẩm ứng dụng được trong cuộc sống.
1.3 Đối tượng nghiên cứu
Thùng rác có chức năng tự đóng mở nắp khi có người muốn đổ rác. Sử dụng cảm
biến siêu âm, cảm biến hồng ngoại, mạch thu phát RF 315 MHz, servo và sử dụng
vi điều khiển PIC16F877A.
1.4 Phạm vi nghiên cứu
Trong đề tài đồ án lần này, tôi muốn làm mô hình của một chiếc thùng rác công
cộng. Điều này giúp cho những người lao công có thể biết chính xác những nơi nào


rác đã đầy để đi thu gom. Mặt khác, khi đi bỏ rác vào thùng, chúng ta thường ngại
khi phải dùng tay mở nắp thùng rác vì nó khá là bẩn. Do vậy việc tự động mở nắp
thùng sẽ khiến việc bỏ rác vào thùng dễ dàng hơn, dần dần loại bỏ được ý niệm lười
bỏ rác vào đúng nơi quy định.
1.5 Dự kiến kết quả đạt được
Sản phẩm có được là 1 chiếc thùng rác mà khi dơ tay ra ngay vị trí quy định thì
thùng rác sẽ mở nắp. Và khi lượng rác đầy hệ thống sẽ gửi thông báo và hiển thị lên
LCD.

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 2/27

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 3/27

CHƯƠNG 2.

THIẾT KẾ VÀ THI CÔNG

1.6 Sơ đồ khối của hệ thống

Khối nguồn

Khối VĐK


Khối giao tiếp
với người dùng

Khối cảm biến
tiệm cận

Khối VĐK

Khối phát

Khối giao tiếp
với người quản
lý.

Khối thu

Hình 2-1: Sơ đồ khối của hệ thống

1.1.1 Khối nguồn

Hình 2-2: Sơ đồ khối nguồn [1]

 Chức năng: biến đổi điện áp từ 9 V thành điện áp 5 V để cung cấp cho vi điều
khiển và các khối khác trong mạch.
Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 4/27


 Các linh kiện chính:


LM2576:
+ Là IC nguồn tích hợp của mạch nguồn xung theo nguyên lý Buck, cung
cấp đầu ra ổn định.

Hình 2-3: Hình ảnh thực tế và sơ đồ chân của LM2576 [2]

+ Các thông số kỹ thuật:
 Dòng ra: 3 A.
 Điện áp ngõ vào: 40 V đến 65 V.
 Giao tiếp 5 chân I/O.
 Tần số 52 KHz.


Các linh kiện khác: Tụ điện 103, tụ 33 µF, điện trở 330 Ω, điện trở 10 KΩ,
diode, LED đơn…

 Sơ đồ nguyên lý:

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 5/27

Hình 2-4: Mạch nguyên lý của khối nguồn


1.1.2 Khối vi điều khiển
 Chức năng: Điều khiển toàn bộ hoạt động của các thiết bị trong mạch.
 Linh kiện chính: PIC16F877A

Hình 2-5: Hình ảnh thực tế và sơ đồ chân của PIC16F877A [3]



PIC16F877A là một vi điều khiển khá phổ biến, đầy đủ chức năng, phù hợp



với các ứng dụng cơ bản.
Đặc điểm cơ bản:
+ Là loại vi điều khiển 8 bit tầm trung.
+ Có kiến trúc Havard, sử dụng tập lệnh RISC với 35 lệnh cơ bản.
+ Tất cả các lệnh được thực hiện trong một chu kỳ, ngoại trừ các lệnh rẽ

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 6/27

nhánh.
+ Sơ đồ chân với chip loại cắm 40 chân.


Các chức năng cơ bản:


Hình 2-6: Các thông số cơ bản của PIC16F877A



Về phần mềm lập trình: Có thể sử dụng nhiều phần mềm như MikroC PRO
for PIC, CCS, MPLab…Và sử dụng phần mềm CCS để lập trình cho

PIC16F877A.
 Sơ đồ nguyên lý:

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 7/27

Hình 2-7: Mạch nguyên lý khối vi điều khiển

 Sơ đồ mạch in: Khối vi điều khiển + khối nguồn

Hình 2-8: Mạch in khối vi điều khiển và khối nguồn

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 8/27

1.1.3 Khối cảm biến tiệm cận
 Chức năng: Giao tiếp với môi trường từ đó lấy thông số đưa về khối vi điều

khiển.
 Các linh kiện chính:


Cảm biến siêu âm SRF05:

Hình 2-9: Hình ảnh thực tế và sơ đồ chân của SRF05 [4]

+ Chức năng: SRF05 là cảm biến siêu âm dùng để đo vật cản. Trong đề tài này
nó được dùng để đo lưu lượng rác.
+ Các thông số kỹ thuật:






Điện áp hoạt động: 5 V
Khoảng cách đo được: 3 – 5 cm
Dòng cấp: < 2 mA
Góc quét : 15 º
Tín hiệu: TTL

+ Hoạt động:
 Biểu đồ thời gian của SRF05

Thùng Rác Thông Minh


ĐỒ ÁN 2

Trang 9/27

Hình 2-10: Biểu đồ thời gian của SRF05 [5]

 Giao tiếp với vi điều khiển để đo khoảng cách:
 Đo khoảng cách bằng SRF05 chính là đo thời gian chân Echo ở
mức cao
 Để đo được thời gian Echo ở mức cao, sử dụng bộ timer của vi






điều khiển
Kích chân Triger xuất ra mức 1 và delay tối thiểu 10ms
Đợi chân Echo lên mức cao
Kích hoạt timer:
 Đợi chân Echo xuống mức thấp
 Cho phép ngắt cạnh xuống
Dừng timer, tính toán giá trị từ timer, từ đó tính ra được khoảng

cách
 Reset giá trị đếm để đo những lần sau
 Cách tính khoảng cách:
 Gọi d là khoảng cách cần tính
 Gọi S là quãng đường mà sóng âm đi được: S= 2xd
 Gọi V là vận tốc sóng âm: V=0,0344 (cm/µs)
 Gọi t là thời gian truyền: S= 2xd = Vxt => d = Vxt/2 = t/58 (cm)




Cảm biến hồng ngoại:
+ Linh kiện chính:

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 10/27

Hình 2-21: Hình ảnh thực tế của LED thu phát hồng ngoại và LM358 [6]

 LED thu phát hồng ngoại:
 Chức năng: Nhận biết có vật cản ở gần.
 Các thông số kỹ thuật:
 Góc nhận biết: 35 º
 Điện áp: 1.2 - 1.6 V
 Dòng: 10 - 20 mA
 Bước sóng: 940 nm
 Hoạt động:
 Tia hồng ngoại phát ra một tần số nhất định, khi phát hiện
hướng truyền có vật cản (mặt phản xạ), phản xạ vào đèn thu
hồng ngoại.
 Ở mắt thu bình thường sẽ có 1 nội trở rất lớn, sau khi có tia
hồng ngoại phản xạ lại thì nội trở đó giảm đi, đèn LED sẽ sáng
lên, đồng thời đầu cho tín hiệu số đầu ra (một tín hiệu bậc
thấp).
 LM358:
 Chức năng: IC LM358 là bộ khuếch đại thuật toán kép công suất

thấp, bộ khuếch đại này có ưu điểm hơn so với bộ khuếch đại thuật
toán chuẩn trong các ứng dụng dùng nguồn đơn.
 Thông số kỹ thuật:
 Điện áp: 3 - 32 V với nguồn đơn, 1.5 - 16 V với nguồn đôi
 Dải nhiệt độ hoạt động: 0 ~ 70 oC

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 11/27

 Độ lợi khuếch đại DC 100 dB
 Điện áp ngõ ra: 0 V đến VCC (+) - 1.5 V
 Hoạt động: LM358 là opamp được mắc theo mạch so sánh để tạo
tín hiệu mức 0 V hoặc 5 V.
+ Sơ đồ nguyên lý:

Hình 2-12: Mạch nguyên lý khối cảm biến hồng ngoại

+ Mạch in:

Hình 2-13: Mạch in khối cảm biến hồng ngoại

1.1.4 Khối thu và khối phát

Thùng Rác Thông Minh


ĐỒ ÁN 2

Trang 12/27

Hình 2-14: Hình ảnh thực tế của mạch thu phát RF 315 MHz

 Chức năng: truyền và nhận dữ liệu do vi điều khiển cung cấp.
 Các linh kiện chính:


IC PT2262:

Hình 2-15: Sơ đồ chân của IC PT2262 [7]

+ Chức năng: Mã hóa và truyền tín hiệu đi.
+ Các thông số kỹ thuật:

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 13/27

 Điện áp làm việc: 4 - 15 V
 8 địa chỉ mã hóa và 4 địa chỉ dữ liệu
 Tiêu thụ điện năng thấp
 Sử dụng dao động ngoài
 Có thể mã hóa 531441 mã
+ Hoạt động:
 Tín hiệu encoder được đưa ra ở chân 17 của PT2262, chân này
ở mức 1 khi tín hiệu nghỉ và mức 0 khi tín hiệu hoạt động. Tín hiệu
đưa

ra gồm sóng mang dao động (700 KHz) cùng với địa chỉ mã hóa và dữ
liệu.
 Tần số sóng mang dao động được quyết định bởi R chân 15 và 16 và
được tính bằng: f = R/12.


IC PT2272:

Hình 2-16: Sơ đồ chân của IC PT2272 [8]

+ Chức năng: nhận và giải mã tín hiệu từ IC PT2262.
+ Các thông số kỹ thuật:
Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 14/27

 Điện áp làm việc: 4 - 15 V
 8 địa chỉ giải mã tương ứng + 4 dữ liệu ra + 1 chân báo hiệu mã đúng
VT (chân 17).
 Tiêu thụ điện năng thấp
 Sử dụng dao động ngoài
 Có thể giải mã 531441 mã
+ Hoạt động:
 Chân 15 và 16 cũng cần một điện trở để làm dao động giải mã . Trong
dải hồng ngoại hoặc dưới 100 KHz có thể dùng R rất lớn hoặc không
cần. Nhưng từ khoảng 100 KHz dao động trở lên thì bắt buộc phải
dùng R để tạo dao động cho PT2272.
 Các chân mã hóa của PT2262 (chân 1 đến chân 8),nối thế nào thì các

chân giải mã của PT2272 cũng phải nối tương tự như vậy.
 Khi truyền một mã đúng và giải mã đúng thì chân 17 của PT2272 sẽ
có điện áp cao đưa ra , báo hiệu là đã đúng mã hóa. 4 chân dữ liệu
truyền song song.
1.1.5 Khối giao tiếp với người dùng
 Chức năng: Mở nắp thùng khi có người cần bỏ rác vào thùng.
 Linh kiện chính: Động cơ RC Servo 9G

Hình 2-37: Hình ảnh thực tế và sơ đồ chân của động cơ RC Servo 9G [9]

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 15/27






Chức năng: Đóng mở nắp thùng.
Thông số kỹ thuật:
+ Điện áp hoạt động: 3.5 V – 8.4 V
+ Tốc độ hoạt động: 60 độ trong 0.1 giây
+ Lực kéo: 1.6 Kg.cm
+ Nhiệt độ hoạt động: 0 ºC đến 55 ºC
Hoạt động:
+ Động cơ RC Servo 9G hoạt động dựa trên nguyên lý nhận xung PWM và
cho ra góc quay.

+ Chỉnh xung có độ rộng là 1500µs, khi đó góc quay của trục là 90º, sau đó
tùy theo cách lắp ráp mà tùy chỉnh xung cho phù hợp.

1.1.6 Khối giao tiếp với người quản lý
 Chức năng: Hiển thị thông tin lên màn hình LCD.
 Linh kiện chính: LCD 16x2

Hình 2-18: Hình ảnh thực tế và sơ đồ chân của LCD 16x2 [10]




Chức năng: Hiển thị dòng cảnh báo khi rác đầy.
Thông số kỹ thuật:
+ Điện áp hoạt động: 5 V.
+ Chữ đen, nền xanh lá.
+ Có thể điều khiển được với 6 dây tín hiệu.
+ Có bộ ký tự được xây dựng hỗ trợ tiếng anh tiếng nhật.
+ Màn hình có 2 dòng mỗi dòng hiển thị 16 ký tự.



Hoạt động của các chân:

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 16/27


Bảng 2-1: Hoạt động của các chân của LCD 16x2 [11]

1.7 Thiết kế mô hình
19cm

32cm

11cm
Hình 2-19: Mô hình thùng rác thông minh

CHƯƠNG 3.

GIẢI THUẬT VÀ ĐIỀU KHIỂN

1.8 Hoạt động của hệ thống
 Khi cấp nguồn cho hệ thống, các khối trong mạch hoạt động như sau:

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 17/27



Khi có người dùng để tay trước cảm biến hồng ngoại nắp thùng sẽ mở ra cho



phép bỏ rác vào bên trong.

Cảm biến siêu âm liên tục đo lưu lượng rác có trong thùng, khi khoảng cách
đo được quá gần thì vi điều khiển sẽ chuyển tín hiệu rác đầy vào RF phát



315 MHz để tín hiệu được truyền đi.
Ở phía mạch thu sau khi nhận được tín hiệu lượng rác đã đầy sẽ chuyển tín
hiệu cho vi điều khiển, sau đó vi điều khiển xuất lệnh hiển thị ra màn hình
LCD dòng chữ “FULL!!!”. Nếu rác chưa đầy màn hình sẽ hiển thị dòng chữ
“NOT FULL!”.

1.9 Lưu đồ giải thuật trên vi điều khiển

Hình 3-4: Lưu đồ giải thuật của phần phát

Thùng Rác Thông Minh

Hình 3-2: Lưu đồ giải thuật của phần thu


ĐỒ ÁN 2
Trang 18/27

 Phần phát:
 Khởi tạo timer: khởi tạo timer 1, chế độ xung nội, bộ chia 2.
 Đọc cảm biến siêu âm: đọc thông số đo được từ cảm biến siêu âm.
 Đọc cảm biến hồng ngoại: đọc tín hiệu thu được từ cảm biến hồng ngoại.
 Cảm biến = 1: Tín hiệu thu được từ cảm biến hồng ngoại ở mức 1 nếu đúng
thì tiến hành mở nắp và giữ trạng thái mở trong vòng 5 s rồi đóng nắp lại.



Nếu sai thì đi tới bước cuối.
Gửi RF: gửi dữ liệu thu được từ cảm biến siêu âm và cảm biến hồng ngoại

đi.
 Phần thu:
 Khởi tạo LCD:
 Đọc RF: đọc dữ liệu thu được từ RF thu.
 Hiển thị LCD: lấy dữ liệu từ RF thu và hiển thị ra màn hình LCD.

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 19/27

CHƯƠNG 4.

THỰC NGHIỆM

1.10 Tiến trình thực nghiệm
Bước 1: Cấp điện và đo nguồn.
Bước 2: Thử hoạt động của cảm biến siêu âm khi thùng rác đầy.
Bước 3: Thử hoạt động của cảm biến siêu âm khi thùng rác rỗng.
Bước 4: Thử hoạt động của nắp thùng khi có người dơ tay ra trước cảm biến hồng
ngoại.
Bước 5: Thử hoạt động của nắp thùng khi không có người dơ tay ra trước cảm biến
hồng ngoại.
Trong suốt quá trình trên quan sát mạch thu.
1.11 Kết quả thực nghiệm

 Sau khi cấp điện áp đo được nguồn ra là 5V.
 Sau khi thử nghiệm hoạt động của cảm biến siêu âm thì có các thông số sau:
 Khi cảm biến siêu âm đo được thùng rác đầy bên phía mạch thu sẽ hiển thị


dòng chữ “FULL” lên màn hình LCD.
Khi cảm biến siêu âm đo được thùng rác chưa đầy bên phía mạch thu sẽ hiển

thị dòng chữ “NOT FULL” lên màn hình LCD.
 Sau khi thử nghiệm hoạt động của nắp thùng thì kết quả đạt được như sau:
 Khi có người dơ tay ra trước cảm biến hồng ngoại nắp thùng sẽ tự động mở


ra 5s sau đó đóng lại.
Khi không có người dơ tay trước cảm biến hồng ngoại thì nắp thùng sẽ
không mở ra.

1.12 Kết luận thực nghiệm
Sau khi tiến hành thực nghiệm thì đạt được kết quả giống với dự kiến ban đầu.

CHƯƠNG 5.
1.13



Ưu điểm
Sản phẩm dễ sử dụng.
Mạch chạy khá ổn định.

Thùng Rác Thông Minh


KẾT LUẬN


ĐỒ ÁN 2
Trang 20/27

1.14





Nhược điểm
Truyền dữ liệu ngắn, chỉ truyền được khoảng 30m.
Mạch thi công chưa được đẹp mắt.
Chỉ có thể nhận biết được mức rác mà không thể nhận biết được lượng rác.
Chi phí cao, thiết kế chưa thực sự tối ưu.

1.15


Hướng phát triển
Sử dụng các thiết bị RF có khoảng cách truyền xa hơn để có thể đặt sản




phẩm ở bất kỳ đâu trong thành phố.
Sử dụng thêm các thiết bị cảnh báo như loa hoặc đèn LED khi rác đầy.

Sử dụng PIN năng lượng mặt trời để cung cấp nguồn hoạt động cho thùng.

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 21/27

TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1]



[4] Stdio,
[5] Học IT- Điện Tử,
[11] Hshop,
Tiếng Anh:
[2]

Edwinrobotics,

[3] Microcontrollerslab,
[6] Chaney Electronic,INC,
[7] [8] SZAPG,
[9] Conrad,
[10] ElectronicWings,

Thùng Rác Thông Minh



ĐỒ ÁN 2
Trang 22/27

PHỤ LỤC A
Phần phát:
#include <16f877A.h>
#fuses HS, NOWDT, NOPUT
#use delay(clock=20M)
#define LCD_RS_PIN
#define LCD_RW_PIN

PIN_d0
PIN_d1

#define LCD_ENABLE_PIN PIN_d2
#define LCD_DATA4

PIN_d3

#define LCD_DATA5

PIN_d4

#define LCD_DATA6

PIN_d5

#define LCD_DATA7


PIN_d6

#include <lcd.h>
#define TRIG PIN_b0
#define ECHO PIN_b1
#define full 0x0c
#define empty 0x0d
unsigned int16 x;
float kc;
void main()
{
SETUP_TIMER_1 (T1_INTERNAL|T1_DIV_BY_2);
lcd_init();

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 23/27

WHILE (true)
{
//Trig
output_high (TRIG);
delay_us (50);
output_low (TRIG);
//Cho doi Echo len 1
WHILE (input (ECHO) == 0);
SET_TIMER1 (0);
WHILE (input (ECHO) == 1)

{
x=GET_TIMER1();
if(x>50000)
break;
}
x=GET_TIMER1();
kc=(float)x*0.4/58;
lcd_gotoxy (1, 1);
printf (lcd_putc, "Dis = %5.2f cm ", kc);
if(kc<5)
{
output_c(full); delay_ms(500); output_c(0);
lcd_gotoxy (1, 2);
lcd_putc(">>>>Full!!!!<<<<");
}
else

Thùng Rác Thông Minh


ĐỒ ÁN 2
Trang 24/27

{
output_c(empty); delay_ms(500); output_c(0);
lcd_gotoxy (1, 2);
lcd_putc(">>>Not full!!<<<");
}
delay_ms(1000);
}

}
Phần thu:
#include <16f877A.h>
#fuses HS, NOWDT, NOPUT
#use delay(clock=20M)
#define LCD_RS_PIN
#define LCD_RW_PIN

PIN_d0
PIN_d1

#define LCD_ENABLE_PIN PIN_d2
#define LCD_DATA4

PIN_d3

#define LCD_DATA5

PIN_d4

#define LCD_DATA6

PIN_d5

#define LCD_DATA7

PIN_d6

#include <lcd.h>
#define full


0x0c

#define empty

0x0d

unsigned int8 dem=0;
void read_input()
{

Thùng Rác Thông Minh


×