Professional Documents
Culture Documents
Làm Quen V I Sơ Đ Nguyên Lý C A Board TH C Hành (Schematic)
Làm Quen V I Sơ Đ Nguyên Lý C A Board TH C Hành (Schematic)
BÀI MỞ ĐẦU
1
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Chúng ta phải nhớ các bus lable này để khai báo khi lập trình, kết hợp với tra cứu tại địa chỉ
www.pinout.xyz để xem chức năng của từng chân; ví dụ trong trường hợp chúng ta tìm hiểu chân
số 12.
Chân kết nối vật lý là chân số 12, thứ tự trong thư viện GPIO/BCM là 18, thứ tự trong thư viện
Wiring Pi lại là chân 1 …..
2
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Chúng ta sẽ thực hành gồm 15 tuần, 13 bài, 25 câu gồm bài tập có lời giải và không có lời giải
Bài mở đầu. Nghiên cứu về schematic và các kết nối với Raspberry Pi
Bài mở đầu. Viết chương trình hiện dòng chữ “Hello World” hiện lên terminal.
Bài 1. Làm quen với GPIO (General Purpose Input Output) [P.1].
3
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Bài mở đầu. Viết chương trình hiện dòng chữ “Hello World” hiện lên terminal
Bài tập kinh điển
Chúng ta có 2 cách để thực hiện bài trên.
1. Các bạn mở teminal (tổ hợp phím Ctrl + Shift + T) trên bàn phím
Trên Teminal gõ “python” hoặc “python3” môi trường python sẽ hiện ra, các bạn gõ
dòng lệnh
print("Hello World")
2. Các bạn tạo 1 file có phần mở rộng là py. (ví dụ: hello.py)
Mở file vừa tạo bằng trình chỉnh chửa text (nano, cat, vi, hoặc notepad) gõ dòng lệnh
print("Hello World")
Sau đó lưu file lại, ra teminal gõ lệnh python hello.py
[Thảo luận]
Trong lúc lập trình với ngôn ngữ python, với những bài toán đơn giản, số lượng câu lệnh
ít, kết quả tính toán không nhiều ta có thể thực hiện luôn trên teminal. Với những bài toán lớn, để
dễ quản lý và debug, chúng ta nên chọn phương án tạo file và lưu file (Tùy các bạn)
Bài 1. Làm quen với GPIO (General Purpose Input Output)
1. Viết chương trình blinking LED theo chu kỳ 1s.
[Bài tập tự làm]
2. Viết chương trình điều khiển các đèn LED, đèn nền LCD sáng, tối theo các chu kỳ khác
nhau.
4
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Bài 1.1. Làm quen với GPIO (General Purpose Input Output) [P.2]
1. Viết chương trình đọc nút bấm, BT1 đèn sáng, BT2 đèn tắt, BT3 đèn nhấp nháy chu kỳ
1s, BT4 (lần 1 đèn sáng, lần 2 đèn tắt liên tục). hiển thị trạng thái của đèn lên terminal.
[Bài tập làm thêm]
2. Viết chương trình bấm BT_1 điều khiển role 1, role 2, đèn LED với các kịch bản khác
nhau
Trên board có 4 nút bấm khác nhau, xem các
màu này được nối vào Bus nào trong Raspberry
Pi, để chúng ta tác động vào.
Có thể tham khảo các chức năng của các pin tại:
https://pinout.xyz/
5
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Code
6
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
7
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
8
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
9
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Code bài 2
10
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
11
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
12
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
13
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Code bài 2:
1. Viết chương trình điều khiển tốc độ động cơ DC bằng nút bấm. Mỗi lần bấm BT1 tốc độ
động cơ tăng thêm 20%, bấm BT2 giảm 20% và quay theo chiều kim đồng hồ. Bấm BT3
tốc độ động cơ tăng 20%, bấm BT4 giảm 20% và ngược chiều kim đồng hồ. Hiển thị tốc
độ (tương đối theo %) lên terminal mỗi lần bấm
Hiểu một cách đơn giản thì điều chế PWM là thay đổi duty cycle (khoảng thời gian tín hiệu ở
mức cao) trong một chu kỳ cố định, qua đó làm thay đổi điện áp trung bình cấp ra ngoại vi.
15
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Code bài 2
16
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
17
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
18
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
1. Viết chương trình đọc giá trị cảm biến ánh sáng, hiển thị trạng thái sáng-tối lên LCD (lấy tay
che cảm biến để mô phỏng hiện tượng trời tối)
2. Viết chương trình mô phỏng công tắc đèn đường, khi trời tối bật role 1, sau 2s bật tiếp role 2,
khi trời sáng thì tắt cả 2 role đồng thời (giải thích vì sao)
Cảm biến ánh sáng là các thiết bị quang điện chuyển đổi năng
lượng ánh sáng (photon) cho dù ánh sáng nhìn thấy được hay tia
hồng ngoại thành tín hiệu điện (electron).
Cảm biến ánh sáng loại CdS do sử dụng nguyên tố kim loại nặng
Cd nên hầu hết các nước châu Âu không cho phép sử dụng trong
các ứng dụng thương mại.
19
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Code bài 1:
20
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
21
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Code bài 2
1. Bấm BT1 servo quay góc 10, bấm BT2 quay góc 50, bấm BT3 quay góc 120.
2. Viết chương trình điều khiển servo, quay từ 0-180 độ và quay ngược lại (liên tục).
3. Bấm BT4 thì servo quay 1 góc 10 độ, quay hết 180 thì quay về 0 và tiếp tục như thế
Code bài 1:
23
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Code bài 2:
24
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
25
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
1. Viết chương trình bấm BT1 thì đo khoảng cách từ cảm biến siêu âm (liên tục), hiển thị
khoảng cách đo được lên LCD (Không dùng thư viện có sẵn)
[Bài tập tự làm]
2. Viết chương trình bấm BT1 thì mô phỏng cảm biến lùi của oto, khi khoảng cách nhỏ hơn 4cm
thì bật role cảnh báo (cài số lùi)
Code bài 1:
26
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
27
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Code bài 2:
28
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
29
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Ánh sáng hồng ngoại được phát ra từ mọi vật liệu có nhiệt độ, từ mặt trời, bóng đèn cho đến các vật
dụng trong phòng. Điều đó có nghĩa là có rất nhiều ánh sáng hồng ngoại gây nhiễu xung quanh
chúng ta. Để ngăn tín hiệu nhiễu này ảnh hưởng đến tín hiệu IR (hồng ngoại), kỹ thuật điều chế tín
hiệu được sử dụng. Trong điều chế tín hiệu IR, bộ mã hóa trên bộ phát IR chuyển đổi tín hiệu nhị
phân thành tín hiệu điện. Tín hiệu điện này được gửi đến đèn LED truyền. Đèn LED truyền sẽ chuyển
đổi tín hiệu điện được điều chế thành ánh sáng hồng ngoại. Sau đó, bộ thu IR giải mã tín hiệu ánh
sáng hồng ngoại và chuyển đổi trở lại thành nhị phân trước khi truyền thông tin đến khối giải mã lệnh
Tín hiệu IR được điều chế thành một chuỗi các xung ánh sáng được bật và tắt ở tần số cao được gọi
là tần số sóng mang. Tần số sóng mang được sử dụng bởi hầu hết các remote phát hồng ngoại là 38
kHz, vì nó rất hiếm trong tự nhiên và do đó có thể loại bỏ được nhiễu từ môi trường xung quanh.
Bằng cách này, bộ thu IR sẽ biết rằng tín hiệu 38 kHz được gửi từ máy phát mà không phải là từ môi
trường xung quanh. Diode thu nhận được tất cả các tần số của ánh sáng hồng ngoại, nhưng thông
qua bộ lọc thông dải nó chỉ cho phép bước sóng có tần số 38 kHz đi qua. Cách chuyển đổi dữ liệu nhị
phân kết hợp với sóng mang được xác định bởi giao thức truyền tín hiệu tiêu chuẩn. Có nhiều giao
thức truyền dữ liệu IR. Trong đó: Sony, Matsushita, NEC và RC5 là những giao thức tương đối phổ
biến.
2 mức logic 0 và 1 trong giao thức NEC được định nghĩa như sau:
Mức logic 1: là một xung CAO có chu kỳ 562,5 us và một mức THẤP có chu kỳ 1.687,5 us.
Mức logic 0: là một xung CAO có chu kỳ 562,5 us và một mức THẤP có chu kỳ 562,5 us.
Khi xung ở mức cao, chúng được chia ra thành các xung nhỏ hơn có chu kỳ 26,3 us (38kHz).
Code bài 1:
30
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
31
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Code bài 2: Tương tự bài 1 nhưng trong main có thêm đoạn sau:
Code bài 3: Tương tự bài 1 nhưng trong main có thêm đoạn sau:
32
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
1.Viết chương trình đọc giá trị cảm biến DHT11 (Không dùng thư viện có sẵn) hiển thị nhiệt độ, độ
ẩm lên terminal
2. Viết chương trình mô phỏng điều hòa nhiệt độ, khi nhiệt độ cao thì bật quạt và role, nhiệt độ thấp
thì để mình quạt, thấp nữa thì tắt hết
Chuẩn giao tiếp 1 dây (1 wire) do hãng Dallas giới thiệu. Trong chuẩn giao tiếp này chỉ
cần 1 dây để truyền tín hiệu và làm nguồn nuôi, tuân thủ mối liên hệ giữa master và slave 1 cách
chặt chẽ.
Các bước giao tiếp:
- MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trong khoảng thời gian
>18ms. Khi đó DHT11 sẽ hiểu MCU muốn đo giá trị nhiệt độ và độ ẩm.
33
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
- MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào.
- Sau khoảng 20-40us, DHT11 sẽ kéo chân DATA xuống thấp. Nếu >40us mà chân DATA
ko được kéo xuống thấp nghĩa là ko giao tiếp được với DHT11.
- Chân DATA sẽ ở mức thấp 80us sau đó nó được DHT11 kéo nên cao trong 80us. Bằng
việc giám sát chân DATA, MCU có thể biết được có giao tiếp được với DHT11 ko. Nếu
tín hiệu đo được DHT11 lên cao, khi đó hoàn thiện quá trình giao tiếp của MCU với
DHT.
- DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte. Trong đó:
Byte 1: giá trị phần nguyên của độ ẩm (RH%)
Byte 2: giá trị phần thập phân của độ ẩm (RH%)
Byte 3: giá trị phần nguyên của nhiệt độ (T 0C)
Byte 4 : giá trị phần thập phân của nhiệt độ (T 0C)
Byte 5 : kiểm tra tổng.
- Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá trị độ ẩm và nhiệt độ là chính
xác, nếu sai thì kết quả đo không có nghĩa.
Code bài 1:
34
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
35
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
36
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
1. Viết chương trình bấm BT1 chụp 1 ảnh từ camera và hiện ảnh lên màn hình.
2. Bấm BT2 quay lại video vào lưu tại thư mục video, khi không bấm nữa thì dừng quay; Bấm
BT3 lần 1 thì bắt đầu quay video và lưu, bấm lần 2 thì dừng quay
3. Bấm BT4 lần 1 thì stream camera (không lưu) bấm lần 2 thì dừng
4. Viết chương trình bấm BT1 thì stream camera đồng thời hiển thị các thanh trượt để điều chỉnh
ngưỡng màu của ảnh thu được trong không gian HSV.
5. Viết chương trình bấm BT1 thì 1 cửa sổ hiện stream camera, 1 cửa sổ khác lọc hết những đối
tượng khác, chỉ giữ lại những vật có màu đỏ; Bấm BT2 thì vẽ đường bao (màu đỏ) lên các đối
tượng màu đỏ.
37
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
6. Viết chương trình bấm BT1 thì hiện cửa số hiện stream camera, 1 cửa sổ khác lọc hết các đối
tượng khác, chỉ giữ lại vật có màu xanh và đỏ; Bấm BT2 thì vẽ đường bao màu đỏ lên đối
tượng màu đỏ, đườngbao màu xanh lên đối tượng màu xanh.
Với bài tập này chúng ta phải cài thêm gói thư viện xử lý ảnh của opencv-python, các bạn
download tại đây: https://github.com/diy-hus/opencv
Sau khi giải nén ta có tên: opencv_python-3.4.13.47-cp37-cp37m-linux_armv7l.whl
Dùng lệnh pip3 install opencv_python-3.4.13.47-cp37-cp37m-linux_armv7l.whl để cài đặt.
Nếu vẫn tiếp tục báo lỗi các bạn gõ dòng lệnh sudo apt-get install libatlas-base-dev trước rồi tiếp
tục cài lại sau.
CHÚ Ý: Sau buổi học các bạn phải xóa hết những gì các bạn đã download về và sử dụng dòng
lệnh pip3 uninstall opencv_python-3.4.13.47-cp37-cp37m-linux_armv7l.whl để gỡ gói thư
viện đã cài đặt (là một trong những yêu cầu lúc đi thi cuối kỳ)
Code bài 1:
Code bài 2:
38
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Code bài 3:
39
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Code bài 4:
Code bài 5:
40
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
Code bài 6:
41
Tài liệu hướng dẫn thực hành “kiến trúc máy tính” lưu hành nội bộ
42