L ỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆ P
a. Thuật toán:
3.4.4.3 Thiết kế phần cứng cho khối tìm hướng cường độ sáng lớn nhất
a. Phương án thiết kế.
Theo yêu cầu thiết kế là phải luôn phát hiện được nơi có cường độsáng lơn nhất. Ý
tưởng của nhóm là đặt bốn quang trở ở bốn hướng khác nhau, được đặt tên như sau cho
dễ phân biệt: TL(top left), TR(top right), BF(bot left), BR(bot right) mục đích là để so
sánh cường độ sáng theo bốn hướng khác nhau. Để biết được hướng nào có cường độ
sáng lớn nhất ta sẽ đo tín hiêu tín hiệu điện áp từ chân các quang trở về xử lý trung tâm 2.
Sau đó so sánh các giá trịđiện áp vừa đo được và quay tấm pin theo hướng quang trở có
CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG. 76
Để cho tấm pin luôn hướng vuông góc với hướng ánh sáng mặt trời thì giá trịđiện
áp đo về từ bốn quang trờ sẽ bằng nhau.
Sơ đồ nguyên lý:
Hình 3.16: Sơ đồ mạch khối cảm biến ánh sáng.
b. Nguyên lý.
Các quang trở có một chân được nối chung nguồn 5V, chân còn lại đi qua điện trở
220Ω và nối chung về GND. Vì số chân của xửlý trung tâm 2 không đủ để giải quyêt cả bài nên nhóm đã dùng IC CD4051BE ghép kênh có thế chọn được các tín hiệu điện áp ngõ vào. Với một giá trị điện áp ngõ vào sẽ cho ra một điện áp ngõ ra tương ứng.
Khi có ánh sáng mạnh thì điện trở của quang trở giảm, nên điện áp đo về sẽ lớn.
Ngược lại thì điện áp đo về sẽ nhỏhơn.
c. Tính toán.
Điện áp tối đa đi vào chân tương tự của Intel Galileo là 5V và dòng lớn nhất là 80 mA vì vậy để tránh hư hỏng vi điều khiển thì cần có điện trở hạn dòng. Do điện áp cung cấp cho cảm biến là 5V nên điện áp khi đi vào vi xử lý trung tâm sẽ luôn nhỏ hơn 5V. Tính toán điện trở hạn dòng như sau:
CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG. 77 Vì Rmin=62.5 Ω nên ta có thể chọn các giá trị lớn hơn cũng được. Nhóm chọn là 220Ω và nhóm nhận thấy khi mạch chạy thực tế cho kết quảổn định.
3.4.4.3.2 Khối 2: a. Phương án lựa chọn.
Vì điện áp cung cấp cho xử lý trung tâm 2 theo yêu cầu của nhà sản xuất là từ 6V- 9V, vì vậy nhóm đã sử dụng module ổn áp để chuyển tửđiện áp của bình ắc quy sang 7V
để cho board.
b. Các thông số.
Điện áp đầu vào: Từ3V đến 40V.
Điện áp đầu ra: Điều chỉnh được trong khoảng1.5V đến 35V. Dòng đáp ứng tối đa là 3A.
Hiệu suất : 92%. Công suất : 15W.
Kích thước: 45 (dài) * 20 (rộng) * 14 (cao) mm.
3.4.4.3.3 Khối 3, 5:
Phương án lựa chọn:
Để điều khiển được động cơ bước nhóm đã sử dụng module Driver TB6600. Vì module này dễđiều khiển để lập trình cho động cơ bước, đồng thời vấn đề nguồn cấp điện
cho động cũng được giải quyết qua driver này.
Cấu tạo cách cài đặt đã được trình bày ở chương2 cơ sở lý thuyết, mục 2.7.
3.4.4.3.4 Khối 4, 6:
Phương án lựa chọn:
Để điều khiển chọn hướng có cường độ sáng nhóm đã sử hai động cơ, mục đích động cơ thứ nhất sẽ chọn hướng ánh sáng, động cơ thứ hai sẽ điều chỉnh tấm pin vuông góc với ánh sáng mặt trời.
Động cơ phải có momen lớn để có thể quay được pin mặt trời và giảm quán tính khi tấm pin đang quay. Qua thử nghiệm thực tế nhóm sử dụng động cơ bước hai pha sáu
dây dùng cho đề tài.
CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG. 78
3.4.4.3.5 Khối 7, 8: a. Phương án thiết kế.
Trong quá trình quay của tấm pin mặt trời chúng ta cần phải xác đinh được vị trí các góc quay lớn nhất của tấm pin. Nhưng vì động cơ bước nó không thểxác định được vị
trí hiện tại của nó, nên nhóm chọn công tắc hành trình đểxác định vị trí giới hạn quay của tấm pin.
Trong đồ án nhóm sử dụng gồm bốn công tắc đặt ở bốn vị trí khác nhau được đặt
tên để thuận tiện cho việc lập trình như sau: TOP, BOT, RIGHT, LEFT.
Hai công tắc TOP và BOT dùng để báo vị trí tới hạn trong khi điều chỉnh tấm pin vuông góc với hướng mặt trời. Góc quay lớn nhất cho việc điều chỉnh vuông góc mà pin
khi quay được khoảng 1400.
Hai công tắc RIGHT và LEFT dùng để báo vị trí tới hạn trong khi điều chỉnh tấm pin chọn ra hướng có cường độ sáng lớn nhất. Góc quay lớn nhất cho việc chọn hướng mà
pin khi quay được khoảng 1700.
Sơ đồ nguyên lý:
CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG. 79
b. Nguyên lý hoạt động.
Các công tắc có một chân được nối chung nguồn 5V, chân còn lại đi qua điện trở
1K và nối chung về GND. Giá trị analog sẽđược đọc vềtương ứng với từng công tắc. Khi tấm pin chưa chạm công tắc thì giá trịđiện áp đọc về là 0V, khi chạm thì giá trị đọc về là 5V.
c. Tính toán.
Điện áp tối đa đi vào chân tương tự của Intel galileo là 5V và dòng lớn nhất là 80 mA vì vậy để tránh hư hỏng vi điều khiển thì cần có điện trở hạn dòng. Do điện áp cung cấp cho cảm biến là 5V nên điện áp khi đi vào vi xử lý trung tâm sẽ luôn nhỏ hơn 5V. Tính toán điện trở hạn dòng như sau:
Rmin= = ≈62.5Ω.
Vì Rmin=62.5 Ω nên ta có thể chọn các giá trị lớn hơn cũng được. Nhóm chọn là 1kΩ và nhóm nhận thấy khi mạch chạy thực tế cho kết quảổn định.
3.4.4.3.6 Khối 9: a. Phương án lựa chọn.
Đểđáp ứng yêu cầu điều khiển nhóm chọn board Aduino Pro Minni, vì nó có thiết kế nhỏ gọn, lập trình đơn giản, vấn đề cấp nguồn tương đối dễ dàng và không cần thi công thêm phần cứng. Ngoài ra giá thành của board hợp lý với yêu cầu của nhóm.
Các thông số cảu board đã được trình bày ở chương 2 cơ sở lý thuyết, mục 2.5.
b. Nguyên lý.
Chức năng các được sử dụng vào điều khiển như sau:
- A2: Nhận giá trịđiện áp ngưỡng từ biến trở. - A1: Đọc các gia trịđiện áp của bốn quang trở.
- D0, D1, D2, D3: Nhận biết trạng thái của bốn công tắc hành trình. - D4, D5, D6: Điều khiển động cơ quay tấm pin lên và xuống. - D7, D8, D9: Điều khiển động cơ quay tấm pin sang trai và phải. - D14, D16: Lựa chọn các giá trị điện áp quang trởđọc vào.
CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG. 80 Hình 3.18: Sơ đồ chân Arduino Pro Mini.
3.4.4.3.7 Ý tưởng thiết kế phần khung đỡ:
Đểđáp ứng yêu cầu đặt ra thì phần khung đỡ phải đáp ứng được: Có thểđỡ tấm pin và giữthăng bằng cho cả hệ thống khi hoạt động. Hơn nữa đề có thể chọn hướng ánh sáng thì phần cứng phải có khớp nối có thể chuyển động được.
Nhóm đã có ý tưởng phải làm sao để thiết kế ra phần cứng mà có thể xoay tấm pin mặt trời đến vị trí mong muốn một cách dễ dàng nhất. Sau khi tham khảm qua nhiều mô hình, kết hợp với ý tưởng và yêu cầu hoạt động của khối tìm hướng có cường độ sáng nhất, nhóm em đã thiết kế ra phần cứng như mong muốn có thểđược minh họa như sau:
CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG. 81 Phần cứng sẽđáp ứng được hai điều đó là nâng đỡ tấm pin mặt trời và xoay tấm pin mặt trời. Chúng ta sẽ xoay tấm pin mặt trời theo hai trục. Thứ nhất là xoay xung quanh trục y, mục đích là để chọn được hướng ánh sáng. Thứ hai là xoay quanh trục x, mục đích là để tấm pin luôn vuông góc với hướng ánh sáng.
Các thông sô bộkhung đỡ cho tấm pin:
Bộ khung được thiết kế sao cho có thể giữthăng bằng khi tấm pin mặt trời quay. Độ
cao của khung được thiết kế phù hợp cho tấm khi, để khi tấm pin quay không bị cản bởi
chướng ngại vật nào là được. Kích thước của khung như sau:
Hộp đếđỡ khung: 29.5 cm-25.5cm-13cm (dài-rộng-cao). Trục cao đểđỡ tấm pin: 40 cm.
Hai tay đỡ tấm pin: 35 cm.
Động cơ chuyển động để chọn hướng.
Đểđáp ứng được chức như nhóm đã trinh bày ở trên, chúng ta cần hai động cơ để điều khiển chuyển động cho tấm pin. Cái thứ nhất được gắn phía dưới đế hộp đỡ, có chức
năng chọn hướng ánh sáng. Cái thứ hai được gắn ngay trên cánh tay đỡ của tấm pin, có chức năng hướng tấm pin vuông góc với ánh sáng.
CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG. 82 Hình 3.21: Động cơ chọn hướng ánh sáng lớn nhất.
3.4.4.3.8 Sơ đồ kết nối chung của khối tìm hướng có cường độ sáng lớn nhất:
CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG. 83
3.4.4.4 Phần mềm: a. Thuật toán: a. Thuật toán:
Trong phần này nhóm sử dụng cách lập trình bình thường là đo các giá trị analog cần thiết đểtính toán và đưa ra điều kiện để thực hiện yêu cầu của bài toán.
b. Lưu đồ:
Hình 3.23: Hình lưu đồ thuật toán của chương trình.
CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG. 84 Đầu tiên ta đọc giá trị của điện áp ngưỡng từ biến trở, đọc các giá trị của cảm biến
ánh sáng và đọc các trạng thái của công tắc hành trình. Tính toán các thông số trung bình:
avt: giá trị trung bình của hai cảm biến trên top là: left top và right top. avb: giá trị trung bình của hai cảm biến dưới bot là: left bot và right bot. avl: giá trị trung bình của hai cảm biến bên trái là: left top và left down. avr: giá trị trung bình của hai cảm biến bên phải là: right top và right bot. Sau đó:
Gán giá trị của trung bình top trừ trung bình bot cho biến dvert, biến này dùng
đểđiều khiển tấm pin quay lên hay xuống.
Gán giá trị của trung bình left trừ trung bình right cho biến dhoriz, biến này
dùng đểđiều khiển tấm pin quay trái hay sang phải. Điều khiển tấm pin quay lên xuống:
Kiểm tra xem điện áp trên top có lớn hơn điện áp dưới bot một khoảng là Vth không: + Nếu lớn hơn thì ta kiểm tra tấm pin có chạm công tắc hành trình phía trên top
chưa nếu chưa chạm thì cho tấm pin quay lên top, ngược lại thì dừng động cơ.
Nếu nhỏhơn thì ta kiểm tra tấm pin có chạm công tắc hành trình phía dưới top
chưa nếu chưa chạm thì cho tấm pin quay xuống, ngược lại thì dừng động cơ.
Điều khiển tấm pin quay trái phải:
Kiểm tra xem điện áp bên trái có lớn hơn điện áp bên phải một khoảng là Vth không: Nếu lớn hơn thì ta kiểm tra tấm pin có chạm công tắc hành trình phía bên trái
chưa nếu chưa chạm thì cho tấm pin quay sang trái, ngược lại thì dừng động cơ.
Nếu nhỏhơn thì ta kiểm tra tấm pin có chạm công tắc hành trình phía bên phải
chưa nếu chưa chạm thì cho tấm pin quay sang phải, ngược lại thì dừng động cơ.
Tiếp tục quay lên đọc giá trị của cảm biến và công tắc hành trình, lặp lại các quá trình trên.
3.4.5 Khối điều khiển qua Internet: 3.4.5.1 Giới thiệu trang Web của nhóm: 3.4.5.1 Giới thiệu trang Web của nhóm:
CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG. 85 Trong phạm vi đề tài, nhóm em sẽ triển khai một trang web thực hiện những nhiệm vụ
sau:
Điều khiển bật tắt đèn đường thông qua Internet ở chếđộ Manual.
Giám sát thời gian hệ thống và điều khiển đèn đường thông qua thời gian đã đặt
trước ở chếđộ Auto.
Hiển thị các thông số cần thiết của Pin mặt trời và Ắc quy để tiện theo dõi và giám sát.
Website của nhóm được thực hiện bằng ứng dụng NodeJs trên hệ điều hành Linux Yocto của Intel Galileo.
Để làm cho giao diện thêm đẹp hơn, nhóm đã dùng thêm ngôn ngữ html và CSS. Phần này sẽ được viết trên một file html riêng, trong NodeJs ta sẽdùng hàm “fs” để đọc được file html này.
Để chạy được chương trình web trên cửa sổ console của hệđiều hành, ta gõ lệnh:
node tên file.js
Để thuận tiện, chương trình của web sẽ được viết bằng định dạng Notepad, sau đó sẽ đổi đuôi thành .js đối với file của NodeJs và thành .html đối với file html. Tiếp theo ta sẽ
dùng phần mềm Winscp đăng nhập vào hệ điều hành của Intel Galileo và chép file
chương trình vừa mới viết đó vào kit. Với phần mềm Winscp này ta có thể chép file, sửa file trực tiếp trên hệđiều hành một cách dễ dàng và nhanh chóng.
Để chạy được webserver thì ta phải khai báo thư viện http và dùng hàm sau:
http.createServer(function(request, response) { Nội dung web }).listen(8080);
Trong đó, số 8080 là số port cần mở cho Router.
Khi chạy web, ta gõ và vào link sau: https://169.254.143.152:8080
Trong đó số 169.254.143.152 là địa chỉ IP của kit Intel Galileo.
Ngoài ra, để điều khiển được các chân digital và analog của kit, ta phải dùng thư viện
CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG. 86
3.4.5.2 Điều khiển đèn đường bằng tay:
Hình 3.24: Giao diện web điều khiển bật tắt đèn đường.
Giao diện này dùng để bật tắt đèn đường trên web, cụ thể là 3 vòng đèn LOAD1,
LOAD2, LOAD3.
Các nút nhấn được tạo bằng CSS với kiểu <style> nhất định. Muốn gọi kiểu style đó, ta dùng class. Cụ thểnhư sau:
<a href="on1" class="button">ON1</a>
Trong đó “on1” là link url sẽ được tạo ra, “button” là kiểu <style> đã được định nghĩa trước.
Khi ta nhấn nút thì link url sẽ được tạo ra. Cụ thể là “/on1”. Ta sẽ dựa vào đây để điều khiển nút nhấn:
switch(request.url) {
case '/on1' : respond1(); IO13.write(1); LOAD1="ON1";break; case '/off1' : respond1(); IO13.write(0); LOAD1="OFF1";break;
CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG. 87
3.4.5.3 Điều khiển tựđộng:
Hình 3.25: Giao diện web cài đặt thời gian hệ thống.
Để tạo được khung nhập số và nút nhấn như hình trên, ta sẽ viết ra một <form>
bằng html như sau:
<form action="" style="color:#CC0000; font-size:150%;">
<span style="margin-left:23em">Giờ bật : <span style="margin-left:0.01em"><input type="time" name="gio" style=" font-size:100%;width: 10%; height: 5%" ></span><br><br>
<span style="margin-left:23em">Giờ tắt : <span style="margin-left:0.255em"><input
type="time" name="phut" style="font-size:100%; width: 10%; height:
5%"></span><br><br>
<span style="margin-left:26.75em"><input type="Submit" value="Enter"
style="font-size:100%; background-color:#4CAF50;color:#FFFFFF; width: 7%; height: 7%"></span>
CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG. 88 Lệnh <span style="margin-left:23em"> có chức năng canh lề cho text và khung
text được thẳng hàng.
Lệnh <input type="time" name="gio" style=" font-size:100%;width: 10%; height: 5%" > có chức năng tạo khung để nhập giá trị thời gian.
Lệnh <input type="Submit" value="Enter" style="font-size:100%; background-color:#4CAF50;color:#FFFFFF; width: 7%; height: 7%">có chức năng
tạo ra nút nhấn với các định dạng màu sắc, kích thước tùy ý.
Để có thểđọc thời gian và hiển thị thời gian lên web, ta dùng đoạn code sau :
<p id="demo" style="color:#CC0000; font-size:100%;" ></p> <script>
var myVar = setInterval(function(){ myTimer() }, 1000); function myTimer() {
var c = new Date().toTimeString() var a = new Date().toDateString()
document.getElementById("demo").innerHTML = a + " " + c;
}
</script>
Trong đoạn code trên, lệnh var c = new Date().toTimeString() có chức năng đọc giờ phút giây của hệ thống và sau đó gán nó vào biến c.
Lệnh var a = new Date().toDateString() có chức năng đọc ngày tháng năm của hệ
thống và sau đó gán vào biến a.
Lệnh document.getElementById("demo").innerHTML = a + " " + c; có chức
năng ghép ngày và giờ vừa được gán vào biến a và c ở trên lại với nhau và sau đó gán
chuỗi này vào một Id là demo.