Professional Documents
Culture Documents
Raspberry Và lm35
Raspberry Và lm35
2
HƯƠNG I: TỔNG QUANG VỀ ĐỀ
TÀI NGHIÊN CỨU
1.1. Giới thiệu sơ lược về đề tài mạch đo nhiệt độ
- Đề tài mạch nhiệt độ được thực hiện dựa trên một số tiêu chí như sau:
Phần cứng:
- Tận dụng những linh kiện, chất liệu có sẵn để giảm thiểu chi phí
- Sản phẩm cần gọn, nhẹ, dễ kết nối và sử dụng.
- Thiết kế đơn giản và bắt mắt.
Phần mềm:
- Dùng những kiến thức về lập trình đã được học đặt biệt là ngôn ngữ lập trình Python và kế thừa
những dữ liệu, đoạn lệnh của những người đi trước, kết hợp và phát triển thành một phần mềm
phù hợp cho phần cứng.
- Dễ hiểu và dễ nghiên cứu.
- Thời gian đáp ứng ngắn.
Giao diện:
- Đơn giản, bắt mắt, dễ quan sát các số liệu
- Hiển thị khoảng cách đo được trên LCD
- Với những tiêu chí đó, mạch đo khoảng cách được kết nối như hình sau:
3
Qua đó quá trình hoạt động của mạch hiển thị hiển thị nhiệt độ được tiến hành như sau:
- Sử dụng Laptop cài đặt hệ điều hành Raspian trên thẻ SD Cad (1) sau đó tiến hành gắn vào
Module Raspberry Pi 3 (2)
- Hiển thị giao diện HĐH Raspbian lên laptop (3) thông qua Remote Decktop quá trình này thuận
tiện cho việc nghiên cứu code cũng như dễ dàng di chuyển.
- Sau khi tiến hành Remote và thực hiện đoạn code cho đề tài ta kết nối module cảm biến LM35
và MCP3008 với Raspberry pi 3. (4),(5)
- Cảm biến nhiệt độ trả tính hiệu Raspberry Pi (6) được kết nối với I2C (7) sau đó được Raspberry
xử lí thông qua phương trình toán học và xuất kết quả ra màng hình LCD.
1.2. Các thiết bị phần cứng cần cho quá trình thực hiện nghiên cứu đề tài
1.2.1. Laptop
- Laptop là một thiết bị không thể thiếu trong cuộc sống hiện đại và cả trong nghiên cứu, nhất là -
trong ngành điện tử có lập trình.
- Trong quá trình thực hiện nghiên cứu đề tài, ta cần sử dụng 1 laptop có cấu hình trung bình (chíp
sử lý core 2 duo- ram 2GB) và phải đáp ứng một số yêu cầu cơ bản như sau :
+ Phải cài đặt một số chương trình như SD Cad Fomatter, Putty, Win32 DiskImager (phục vụ cho
quá trình Remote Decktop Connection).
+ Có cổng Ethernet để kết nối địa chỉ IP của Raspberry Pi.
+ Có kết nối mạng Internet đề phục vụ cho quá trình download Raspian, các phần mềm cũng như
cho quá trình tìm tòi tài liệu có liên quan đến nội dung thực hiện đề tài.
1.2.2. Cảm biến nhiệt độ LM35
- LM35 là một cảm biến nhiệt độ analog.
- Nhiệt độ được xác định bằng cách đo hiệu điện thế ngõ ra của LM35.
→ Đơn vị nhiệt độ: °C.
→ Nhiệt độ thay đổi tuyến tính: 10mV/°C
5
nối đất, đo hiệu điện thế ở chân giữa bằng các pin A0 trên arduino, bạn sẽ có được nhiệt
độ (0-100ºC) bằng công thức:
- Với LM35, bạn có thể tự tạo cho mình mạch cảm biến nhiệt độ sử dụng LM35 và tự động ngắt
điện khi nhiệt độ vượt ngưỡng tối đa, đóng điện khi nhiệt độ thấp hơn ngưỡng tối thiểu thông qua
module rơ le...
- LM35 thay đổi nhiệt độ nhanh và chính xác
- Với ưu điểm như hoạt động khá chính xác với sai số ít, kích thước nhỏ và giá thành thấp, IC cảm
biến nhiệt độ LM35 là một trong những cảm biến tương tự được sử dụng rất nhiều trong các ứng
dụng đo nhiệt độ thời gian thực.
Thông số kĩ thuật:
Điện áp hoạt động: 4-20V DC.
Công suất tiêu thụ: 60uA.
Khoảng đo nhiệt độ: -55°C đến 150°C.
Nhiệt độ thay đổi tuyến tính: 10mV/°C.
Độ chính xác thực tế: 1/4°C ở nhiệt độ phòng và 3/4°C ngoài khoảng 2°C tới 150°C.
Kiểu chân: TO92.
Kích thước: 4.30mm × 4.30mm.
6
Hình 6: Mặt trước và sau của LCD Text 16x02
Thông số kỹ thuật:
- Điện áp hoạt động là 5 V
Kích thước: 80 x 36 x 12.5 mm.
Chữ đen, nền xanh lá.
Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối với Breadboard.
Tên các chân được ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối.
Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện
năng hơn.
Có thể được điều khiển với 6 dây tín hiệu.
Có bộ ký tự được xây dựng hổ trợ tiếng Anh và tiếng Nhật.
Sơ đồ chân tính hiệu
TT TÊN GIÁ TRỊ MÔ TẢ
1 VSS GND 0V
2 VCC Chân nguồn 5V
3 V0 Độ tương phản
4 RS Lựa chọn thanh RS=0 (mức thấp) chọn thanh ghi lệnh
ghi RS=1 (mức cao) chọn thanh ghi dữ liệu
5 R/W Chọn thanh ghi R/W=0 thanh ghi viết
iết dữ liệu R/W=1 thanh ghi đọc
6 E Enable
7 DB0
8 DB1
9 DB2
10 DB3 Chân truyền dữ 8 bit: DB0DB7
11 DB4 liệu
12 DB5
13 DB6
14 DB7
15 A Cực dương led 0V đến 5V
nền
16 K Cực âm led nền 0V
7
Chức năng của từng chân LCD 16x02:
Chân số 1 - VSS : chân nối đất cho LCD được nối với GND của mạch điều khiển.
Chân số 2 – VDD : chân cấp nguồn cho LCD, được nối với VCC=5V của mạch điều khiển.
Chân số 3 - VE : điều chỉnh độ tương phản của LCD.
Chân số 4 - RS : chân chọn thanh ghi, được nối với logic "0" hoặc logic "1":
+ Logic “0”: Bus DB0 - DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi”
- write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read).
+ Logic “1”: Bus DB0 - DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.
Chân số 5 - R/W : chân chọn chế độ đọc/ghi (Read/Write), được nối với logic “0” để ghi
hoặc nối với logic “1” đọc.
Chân số 6 - E : chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0- DB7,
các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân này như sau:
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào thanh ghi bên trong khi phát hiện một
xung (high-to-low transition) của tín hiệu chân E
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high
transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp
Chân số 7 đến 14 - D0 đến D7: 8 đường của bus dữ liệu dùng để trao đổi thông tin với
MPU. Có 2 chế độ sử dụng 8 đường bus này là: Chế độ 8 bit (dữ liệu được truyền trên cả
8 đường, với bit MSB là bit DB7) và Chế độ 4 bit (dữ liệu được truyền trên 4 đường từ
DB4 tới DB7, bit MSB là DB7)
Chân số 15 - A : nguồn dương cho đèn nền.
Chân số 16 - K : nguồn âm cho đèn nền.
- Một giao tiếp I2C gồm có 2 dây: Serial Data (SDA) và Serial Clock (SCL). SDA là đường truyền
dữ liệu 2 hướng, còn SCL là đường truyền xung đồng hồ để đồng bộ và chỉ theo một hướng. Như
ta thấy trên hình vẽ trên, khi một thiết bị ngoại vi kết nối vào đường bus I2C thì chân SDA của nó
sẽ nối với dây SDA của bus, chân SCL sẽ nối với dây SCL.
8
- Kết nối thiết bị vào bus I2C ở chế độ chuẩn (Standard mode) và chế độ nhanh (Fast mode).
- Mỗi dây SDA hãy SCL đều được nối với điện áp dương của nguồn cấp thông qua một điện trở
kéo lên (pullup resistor). Sự cần thiết của các điện trở kéo này là vì chân giao tiếp I2C của các
thiết bị ngoại vi thường là dạng cực máng hở (opendrain hay opencollector). Giá trị của các điện
trở này khác nhau tùy vào từng thiết bị và chuẩn giao tiếp, thường dao động trong khoảng 1K đến
4.7k.
- Trở lại với hình 1, ta thấy có rất nhiều thiết bị (ICs) cùng được kết nối vào một bus I2C, tuy nhiên
sẽ không xảy ra chuyện nhầm lẫn giữa các thiết bị, bởi mỗi thiết bị sẽ được nhận ra bởỉ một địa
chỉ duy nhất với một quan hệ chủ/tớ tồn tại trong suốt thời gian kết nối. Mỗi thiết bị có thể hoạt
động như là thiết bị nhận hoặc truyền dữ liệu hay có thể vừa truyền vừa nhận. Hoạt động truyền
hay nhận còn tùy thuộc vào việc thiết bị đó là chủ (master) hãy tớ (slave).
Chế độ hoạt động (tốc độ truyền):
- Các bus I2C có thể hoạt động ở ba chế độ, hay nói cách khác các dữ liệu trên bus I2C có thể
được truyền trong ba chế độ khác nhau:
1.Chế độ tiêu chuẩn (Standard mode).
2. Chế độ nhanh (Fast mode) .
3. Chế độ cao tốc High-Speed (Hs) mode.
1.2.5. MCP3008
9
IC Chuyển Đổi ADC 10 Bit
Điện áp 2.7 - 5.5V
Dòng điện 500uA
Dải nhiệt độ: -40 đến 85 độ
DIP16
10
HƯƠNG II: LÝ THUYẾ MÁY
TÍNH NHÚNG RASPBERRY PI 3
VÀ NGÔN NGỮ LẬP TRÌNH
PYTHON
2.1. Khái niệm Raspberry Pi
- Raspberry Pi là từ để chỉ các máy tính chỉ có một board mạch (hay còn gọi là máy tính nhúng)
kích thước chỉ bẳng một thẻ tín dụng, được phát triển tại Anh bởi Raspberry Pi Foundation – một
tổ chức phi lợi nhuận với tiêu chí xây dựng hệ thống mà nhiều người có thể sử dụng được trong
những công việc tùy biến khác nhau.
- Raspberry với mục đích ban đầu là thúc đẩy việc giảng dạy về khoa học máy tính cơ bản trong
các trường học và các nước đang phát triển.
- Raspberry Pi sản xuất bởi 3 OEM: Sony, Qsida, Egoman. Và được phân phối chính bởi các công
ty Element14, RS Components và Egoman.
- Nhiệm vụ ban đầu của dự án Raspberry Pi là tạo ra máy tính rẻ tiền có khả năng lập trình cho
những sinh viên , nhưng Pi đã được sự quan tâm từ nhiều đối tượng khác nhau.
- Đặc tính của Raspberry Pi xây dựng xoay quanh bộ xử lí SoC Broadcom BCM2835 (là chip xử
lí mobile mạnh mẽ có kích thước nhỏ hay được dùng trong điện thoại di động) bao gồm CPU,
GPU, bộ xử lí âm thanh /video , và các tính năng khác … tất cả được tích hợp bên trong chip có
điện năng thấp này.
- Raspberry Pi không thay thế hoàn toàn hệ thống để bàn hoặc máy xách tay. Ta không thể chạy
Windows trên đó vì BCM2835 dựa trên cấu trúc ARM nên không hỗ trợ mã x86/x64 , nhưng vẫn
có thể chạy bằng Linux với các tiện ích như lướt web, môi trường Desktop và các nhiệm vụ khác.
-Tuy nhiên Raspberry Pi là một thiết bị đa năng đáng ngạc nhiên với nhiều phần cứng có giá thành
rẻ nhưng rất hoàn hảo cho những hệ thống điện tử, những dự án DIY, thiết lập hệ thống tính toán
rẻ tiền cho những bài học trải nghiệm lập trình.
- Ngày 29/02/2012, Raspberry chính thức được phát hành với phiên bản 256 MB RAM, sau đó
được nâng cấp (model B và B +) lên đến 512 MB RAM và đúng 4 năm sau Raspberry Pi
Foundation chính thức ra mắt Raspberry Pi 3 với rất nhiều điểm cải tiến mới, đặc biệt là hỗ trợ
Wifi và Bluetooth sẵn trên bo mạch. Raspberry Pi 3 với CPU ARM Cortex-A53 Quadcore 1.2GHz
64-bit, RAM 1GB và đặc biệt hỗ trợ chuẩn Wifi 802.11n cùng Bluetooth 4.1, giúp nâng cao hiệu
năng công việc.
12
để hiển thị và sử dụng Raspberry một cách trực quan nhất. Chúng ta có thể thực hiện các tác vụ
tương đương như khi sử dụng chuột và bàn phím.
- Camera expansion: khe cắm này là để cắm modem camera vào Raspberry Pi. Khi sản xuất
Raspberry Pi thì nhà sản xuất còn sản xuất thêm một modem camera 5MP nhưng người mua không
được hỗ trợ mà phải mua thêm. Chúng ta có thể chụp hình, quay phim, ... làm việc tất cả các tác
vụ như trên một camera bình thường.
- Cổng HDMI: cổng này dùng để kết nối với các thiết bị có hổ trợ chuẩn kết nối HDMI. Có tới 14
chuẩn video được hỗ trợ và tín hiệu HDMI có thể dễ dàng chuyển đổi thành các chuẩn khác như DVI, RCA,
hoặc SCART. Nếu thiết bị của chúng ta không hổ trợ HDMI mà chỉ hổ trợ VGA thì chúng ta phải
sử dụng một dây cáp chuyển đổi từ HDMI sang VGA. Thường thì cổng này dùng để kết nối ra
màn hình, tivi, máy chiếu, để hiển thị
giao diện của hệ điều hành.
- Cổng kết nối Ethenet: dùng để kết nối internet, mạng Lan, truy cập SSH,...
- Cổng USB: dùng để kết nối với chuột, bàn phím, usb, usb 3g, usb wifi và các thiết bị có hổ trợ
cổng USB.
- STEREO AUDIO: dùng để kết nối với tai nghe, loa, và các thiết bị ân thanh có cổng Jack
3.5mm.
- GPIO: Raspberry Pi 3 cung cấp 40 cổng GPIO, giao tiếp SPI, I2C, Serial. Các cổng GPIO được
sử dụng để xuất/nhận giá trị 0/1 ra/vào từ bên ngoài. Giao tiếp SPI,I2C, Serial có thể được dùng
để kết nối trực tiếp với các vi điều khiển khác. Đặc biệt phù hợp cho những ai cần điều khiển các
thiết bị điện tử ngoại vi.
13
Hình 10. Sơ đồ chân GPIO của Raspberry Pi 3
- Các thiết bị đi kèm: Có 2 phụ kiện bắt buộc phải có để có thẻ chạy Raspberry là : nguồn cung
cấp và thẻ nhớ SD để cài hệ điều hành.
+ Ngoài ra , để sử dụng tốt hơn những ứng dụng của Raspberry chúng ta có thẻ lựa chọn thêm
những sản phẩm hỗ trợ cho Raspberry như:
Dây HDMI để kết nối với màn hình máy tính, cáp nối mạng hay camera…
Nguồn cho Raspbery 5V-2A.
Dây HDMI cabos 1.5m.
Vỏ hộp Pi2/B+.
Raspberry Pi Camera Board.
Kết nối wifi cho Pi : Wireless USB EP-N8508GS.
Màn hình cảm ứng 7 inch.
Thẻ nhớ.
14
2.3. Hệ điều hành của Raspberry Pi 3
- Muốn sử dụng được Raspberry Pi ta cần phải cài đặt hệ điều hành cho nó. Về cơ bản Raspberry
Pi chủ yếu sử dụng các hệ điều hành dựa trên nhân Linux.
- Điểm danh một số HĐH nổi tiếng chạy trên Raspberry Pi như:
- Các hệ điều hành hiện tại mà Raspberry Pi hổ trợ:
+ NOOBS (New Out Of Box Software): đây là hệ điều hành cơ bản nhất của R-Pi, không hổ trợ
giao diện mà chỉ dùng giao diện dòng lệnh.
+ Raspbian: được tạo nên từ hệ điều hành Debian của linux chuyên dùng cho các dòng máy tính,
có giao diện như 1 máy tính, hổ trợ cả về mạng, và giao tiếp vào ra.
+ Pidora: tạo nên từ phiên bản hệ điều hành Fedora của linux, cũng hổ trợ tốt về giao diện, mạng
và giao tiếp vào ra.
+ RaspBMC: tạo ra để chuyên dùng giải trí, sử dụng giao diện XBMC media center, giao diện
thường thấy trong các TIVI internet hiện nay.
+ OpenELEC: một phiên bản dùng giao diện XBMC Mediacenter khác, hổ trợ nhanh và thân
thiện cho người sử dụng.
+ RISC OS: phiên bản hệ điều hành rút gọn với tính năng hoạt động nhanh nhất trong các hệ điều
hành.
+ Arch: phiên bản hệ điều hành phát triển riêng cho các dòng kít dùng chip ARM.
15
2.4. Ngôn ngữ lập trình Python
Python là gì?
- Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo ra năm 1990. Python
hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động; do vậy nó tương tự như Perl,
Ruby, Scheme, Smalltalk, và Tcl.
- Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software
Foundation quản lý.
- Theo đánh giá của Eric S. Raymond, Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ
ràng, thuận tiện cho người mới học lập trình.
- Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu, như
nhận định của chính Guido van Rossumtrong một bài phỏng vấn ông.
Ban đầu, Python được phát triển để chạy trên nền Unix.
- Nhưng rồi theo thời gian, nó đã “bành trướng” sang mọi hệ điều hành từ MS-DOS đến Mac OS,
OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix.
- Mặc dù sự phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum
hiện nay vẫn là tác giả chủ yếu của Python. Ông giữ vai trò chủ chốt trong việc quyết định hướng
phát triển của Python.
16
Khối lệnh:
- Trong các ngôn ngữ khác, khối lệnh thường được đánh dấu bằng cặp kí hiệu hoặc từ khóa. Ví
dụ, trong C/C++, cặp ngoặc nhọn { } được dùng để bao bọc một khối lệnh.
- Python có một cách rất đặc biệt để tạo khối lệnh, đó là thụt các câu lệnh trong khối vào sâu hơn
(về bên phải) so với các câu lệnh của khối lệnh cha chứa nó. Ta có thể sử dụng dấu tab hoặc khoảng
trống để thụt các câu lệnh vào.
- Ví dụ, giả sử có đoạn mã sau trong C/C++:
#include <math.h>//...
delta = b * b – 4 * a * c; if (delta > 0)
{
// Khối lệnh mới bắt đầu từ kí tự { đến }
x1 = (- b + sqrt(delta)) / (2 * a);
x2 = (- b - sqrt(delta)) / (2 * a);
printf("Phuong trinh co hai nghiem phan biet:\n");
printf("x1 = %f; x2 = %f", x1, x2);
}
- Đoạn mã trên có thể được viết lại bằng Python như sau:
import math #...
delta = b * b – 4 * a * c if delta > 0:
# Khối lệnh mới, thụt vào đầu dòng
x1 = (- b + math.sqrt(delta)) / (2 * a)
x2 = (- b – math.sqrt(delta)) / (2 * a)
print "Phuong trinh co hai nghiem phan biet:"
print "x1 = ", x1, "; ", "x2 = ", x2
19
indentedStatementBlockForEachConditionFalse
Switch…case
- Python không có cấu trúc switch …case
While
- Cú pháp:
+ while điều kiện đầu :
câu lệnh
Ví dụ:
count = 0
while (count < 9):
print 'The count is: ', count count = count + 1
print "Good bye!"
Kết quả hiển thị của ví dụ trên:
The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!
Lệnh lặp For…in
- Cú pháp:
+ for vòng lặp in trình tự lâp: câu lệnh
Ví dụ:
for letter in 'Python':
print 'Current Letter : ', letter
fruits = ['banana' , 'apple', 'mango'] for fruit in fruits:
print 'Current fruit : ', fruit print "Good bye!"
Kết quả hiển thị của ví dụ trên:
Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : h
Current Letter : o
Current Letter : n
Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!
Hàm
- Khai báo hàm theo cú pháp:
def functionname (thông số 1, thông số 2,..): Câu lệnh
- Hàm nếu không trả dữ liệu thì mặc định sẽ trả về giá trị : None
Ví dụ khai báo hàm tính và trả về giá trị tổng của 2 tham số đầu vào:
def sum(a, b):
20
return (a+b)
Cách gọi hàm:
sum(1, 2) #trả về giá trị là 3
Hàm có hỗ trợ giá trị mặc định cho tham số khi không truyền vào. Ví dụ
def plus(c, d = 10):
return (c+d)
Nếu gọi hàm trên như sau:
plus(2) #kết quả trả về là 12
Xử lý chuỗi
- Một chuỗi có thể khai báo bằng dấu nháy đôi " hoặc đơn ' .
Ví dụ các chuỗi sau:
str1 = "Hello" str2 = 'world'
- Có thể truy xuất từng ký tự trong một chuỗi theo hình thức index.Ví dụ:
str1[0] , str1[1]
- Có thể sử dụng 3 dấu nháy (đôi hoặc đơn) để khai báo chuỗi trên nhiều dòng. Ví dụ
paragraph = """This is line 1 This is line 2
This is line 3"
21
HƯƠNG III: THIẾT KẾ PHẦN CỨNG VÀ
LẬP TRÌNH PHẦN MỀM
22
3.1.2. Kết nối phần cứng
- Để hiển thị LCD16x2 theo cách thông thường, bạn sẽ phải mất rất nhiều GPIO trên Pi (tối thiểu
4 GPIO cho các chân dữ liệu và 3 chân GPIO điều khiển LCD). Với mạch chuyển tiếp Module
I2C LCD, bạn chỉ cần dùng 2 chân I2C trên Pi (SDA và SCL) để giao tiếp với LCD16x2.
- Lý do là mạch LCM1602 sẽ đứng trung gian chuyển đổi tín hiệu dữ liệu gửi từ Pi qua I2C thành
tín hiệu dữ liệu hiển thị và điều khiển LCD.
- Bảng kết nối chân LCD với GPIO của Raspberry Pi 3
- Như trong hình, ta chỉ sử dụng 3 chân của cảm biến nhiệt độ LM35
Chân 1- nối VCC của nguồn +5V trên raspberry pi .
Chân 2- out
Chân 3- GROUND.
- Giải thích quá trình làm việc của mạch:
- Sau khi hoàn thành kết nối phần cứng, mạch đo nhiệt độ sẽ hoạt động như sau:
23
- Cảm biến nhiệt độ LM35 sẽ truyền tín hiệu đo được dưới dạng analog đến IC chuyển đổi tính
hiệu analog sang tín hiệu digital ( MCP3008).
- Sau khi nhận được tín hiệu trả về từ MCP3008 thì Raspberry sẽ ghi lại xử lý tín hiệu đó bằng
những phương trình toán học đã được viết sẵn trong chương trình code.
- Nhiệt độ cần đo sẽ được hiển thị trong màn hình LCD 16x2.
3.2. Thiết kế phần mềm
3.2.1. Cài đặt hệ điều hành Raspbian cho Raspberry PI 3
- Các phần mềm cần thiết cho quá trình cài đặt.
SD Formatter
- SD Formatter hỗ trợ người dùng thực hiện công việc định dạng thẻ nhớ, tương thích với nhiều
loại thiết bị khác nhau, giúp phục hồi lại dung lượng của thẻ nhớ và tăng cường khả năng lưu trữ.
- Phần mềm này có khả năng kết nối với các đầu đọc/ghi thẻ USB và ổ đọc thẻ của máy tính.
- Phần mềm này cũng cung cấp các chế độ định dạng thẻ nhớ khác nhau bao gồm: Quick là chế
độ mặc định, chỉ thực thi hệ thống tập tin siêu dữ liệu; Full (Erase OFF) là chế độ thực thi định
dạng đầy đủ; Full (Erase ON) cũng là chế độ định dạng đầy đủ và loại bỏ các phần mềm được cài
đặt trên thẻ.
- Tùy vào trường hợp cụ thể, người dùng nên sử dụng chế độ nào cho phù hợp.
- Các tính năng chính của SD Formatter:
+ Định dạng lại thẻ nhớ và khôi phục lại dung lượng ban đầu.
+ Cung cấp nhiều chế độ định dạng để lựa chọn.
+ Xóa dữ liệu đã được ghi trên thẻ.
+ Hỗ trợ với các đầu đọc hay ghi thẻ USB và ổ đọc thẻ của máy tính.
Phần mềm Win32 Disk Imager (WDI)
- Win32 Disk Imager là ứng dụng tạo bản sao cho thiết bị thay vì sao chép các tập tin trong thiết
bị đó. Nghĩa là ứng dụng cho phép khôi phục các nội dung trong đĩa về nguyên trạng thái gốc và
ghi hình ảnh khởi động.
- Win32 Disk Imager là ứng dụng di động, vì vậy người dùng không cần mất thời gian cài đặt.
Nghĩa là, không giống các trình cài đặt khác, Win32 Disk Imager không bổ sung các hạng mục
mới vào đăng ký và ổ cứng của Windows, và không để lại dữ liệu rác trong đĩa sau khi người dùng
xóa ứng dụng.
- Ngoài ra, Win32 Disk Imager còn hỗ trợ sao lưu các thiết bị U3 nhằm bảo vệ các cài đặt và tập
tin bên trong. Người dùng chỉ cần chọn thiết bị qua menu kéo xuống và đường dẫn thư mục tới
IMG với sự trợ giúp của trình duyệt tập tin.
- Các tính năng chính:
+ Không yêu cầu cài đặt, không để lại dữ liệu rác trong ổ đĩa.
+ Hỗ trợ tính năng ghi hình ảnh khởi động.
+ Hỗ trợ tính năng khôi phục nội dung trong đĩa về nguyên trạng thái gốc.
+ Hỗ trợ sao lưu thiết bị U3.
+ Tạo mã băm MD5.
DHCP Server
- DHCP là từ viết tắt của Dynamic Host Configuration Protocol (Giao thức Cấu hình Host Động).
- Nó là giao thức cấp phát địa chỉ IP cho các thiết bị trên một mạng. Mọi thiết bị kết nối vào mạng
đều cần một địa chỉ IP và địa chỉ IP đó thường được cấp phát bởi máy chủ DHCP (DHCP server)
tích hợp trên router.
- Trên các hệ thống mạng lớn, một mình router không thể quản lý tất cả các thiết bị kết nối vào nó
và do đó một máy chủ chuyên dụng sẽ chịu trách nhiệm cấp địa chỉ IP.
- DHCP không chỉ cấp địa chỉ IP, nó còn cấp các thông số cần thiết cho hoạt động của mạng như
subnet mask (mặt nạ mạng), default gateway (gateway mặc định), và dịch vụ DNS.
24
PuTTY
- PuTTY được hiểu là phần mềm sử dụng để điều khiển server thông qua mạng internet, Nó hỗ
trợ nhiều giao thức mạng, bao gồm SCP, SSH, Telnet, rlogin...
- PuTTY hỗ trợ nhiều biến thể trên "các thiết bị đầu cuối" từ xa an toàn, và cung cấp cho người
dùng trình điều khiển các SSH với khóa mã hóa, các giao thức, thuật toán mã hóa thay thế như
3DES , Arcfour, Blowfish, DES, và khóa công khai xác thực. Các lớp giao tiếp mạng hỗ trợ IPv6,
và các giao thức SSH hỗ trợ các chương trình nén openssh bị trì hoãn. Nó cũng có thể được sử
dụng với các kết nối cổng nối tiếp trong mạng LAN.
Lưu ý: Các phần mềm kể tên trên được sử dụng để phục vụ cho quá trình cài đặt HĐH
Raspberry Pi và quá trình Remote Decktop Connection để điều khiển trực tiếp Raspberry
Pi thông qua mạng Internet và địa chỉ IP của laptop .
3.2.3. Cài đặt HĐH Raspbian
Format thẻ nhớ:
- Định dạng lại thẻ nhớ và khôi phục lại dung lượng ban đầu.
- Mở phần mềm SD Fomatter chọn vị trị của thẻ nhớ (1) và tiến hành Format thẻ (2).
+ Bước 2: Tích vào ô Overwrite existing flie (1), nháy Write INI file (2) để xác định và nhấp chọn
Next (3)
Hình 24. Remote desktop connection Hình 25. Đăng nhập vào Raspberry Pi 3
- Khi giao diện màng hình laptop hiển thị như hình 26 dưới đây xem như quá trình Remote decktop
đã thành công
29
3.3. Viết code cho đề tài
- Lưu đồ giải thuật:
LCD_BACKLIGHT = 0x08 # On
#LCD_BACKLIGHT = 0x00 # Off
30
# delay
E_PULSE = 0.0005
E_DELAY = 0.0005
def lcd_init():
# Initialise display
lcd_byte(0x33,LCD_CMD) # ban xem lai nhung lenh co ban o
Buoc 2
lcd_byte(0x32,LCD_CMD) #
lcd_byte(0x06,LCD_CMD) #
lcd_byte(0x0C,LCD_CMD) #
lcd_byte(0x28,LCD_CMD) #
lcd_byte(0x01,LCD_CMD) #
time.sleep(E_DELAY)
# byte thap
bus.write_byte(I2C_ADDR, bits_low)
lcd_toggle_enable(bits_low)
32
HƯƠNG IV: KẾT QUẢ, KẾT LUẬN
VÀ HƯỚNG PHÁT TRIỂN
34
4.2.2. Kết luận
- Mặc dù đã hoàn thành nhưng sản phẩm của em vẫn còn các điểm hạn chế sau đây:
+ Các chân cắm còn nhiều đễ gây nhằm lẫn cho người xem.
+ Board mạch thiết kế chưa thẩm mỹ, chưa tận dụng hết các khoảng trống trên board mạch.
+ Sai số giá trị còn lớn.
- Tuy còn nhiều điểm hạn chế nhưng em vẫn cảm thấy rất phấn chấn vì đề tài này là lần đầu tiên
mở đường cho những nghiên cứu áp dụng Raspberry Pi thực tiễn trong ngành điện- điện tử.
4.2.3. Hướng phát triển
- Trong đồ án kế tiếp của mình em sẽ:
+ Thiết kế 1 board mạch hoàn chỉnh thẳm mỹ hơn.
+ Tiếp bước trên nền nghiên cứu giao tiếp cảm biến nhiệt độ với Raspberry Pi. Song song đó sẽ là
nhận dạng khuôn mặt thông qua chức năng xử lí ảnh của camera Raspberry Pi 3.
- Qua đây em cũng xin chân thành cảm ơn sự đồng hành và hỗ trợ rất tâm huyết và thân thiện của
các thầy trong khoa điện-điện tử đặc biệt là sự chỉ bảo tận tình của thầy Lương Hoài Thương giúp
em hoàn thành bài nghiên cứu này. Bài báo cáo còn rất sơ sài và chắc chắn còn nhiều thiếu xót,
mong quý thầy cô và bạn đọc góp ý chỉnh sửa để bài báo cáo này thiết thực hơn.
Cuối cùng, xin cảm ơn quý thầy cô và các bạn đã đọc bài báo cáo này.
35
36