智慧感測與應用實務| 09 :文字處理、多執行緒、水銀開關、繼電器、移位暫存器、七段顯示器
建立一份檔案CNN.txt ,放入一段文字,並將該檔案放置於樹莓派內
開啟樹莓派 於同路徑下寫入CNN.py
寫入以下資料
可以印出文字
split 切割字串
正則運算式
https://www.tutorialspoint.com/python/python_reg_expressions.htm
_____________________________________________
20190402 10:56
▉類別class
運用類別可以簡化程式碼
在檔案前面加__,存取等級變成private ,所以無法取得
______________________________________
▉存取等級
public
private>>兩個底線_ 例:xxx.__color
protected>>一個底線_ 例:xxx._color
_______________________________________
▉多執行緒
很多時候我們需要兩個程式碼同時運行,這時候就需要用到多執行緒
單執行緒: 以下圖片先跑完i迴圈,才跑j迴圈
更改成多執行緒:同時執行兩行程式碼
__________________________________________
查看樹莓派 狀態
在樹莓派內輸入 top
可以看到樹莓派內部資料
__________________________________________
輸入 pinout 可以看樹莓派電路安排
__________________________________________________
▉水銀開關
傾斜開關 — 由水平或垂直擺放決定是否通電的開關
▉繼電器
一種開關,由小電流控制開關大電流
▉移位暫存器74HC595
功能:減少腳位使用量
參考
https://openhome.cc/Gossip/CodeData/mBlockArduino/mBlockArduino18.html
低電位拉回高電位 會存入 移位寄存器 最左邊格
再一次 會存入 移位寄存器 最左邊格往右移動 然後存入8格滿
▉七段顯示器
測顯示器是否正常
先詢問店家 該七段顯示器是 共陰(Common Cathode)還是共陽(Common Anode),因為會決定接線方式,我使用的是共陰,故正中間上下方均為接地
測試led有無故障,其中一條接地並插在7段顯示器正中央,另外一頭接在GPIO 26孔位
並撰寫以下程式驅動
執行結果: 其中數字的一條LED亮起,再測試其他條LED是否正常(注意:不可兩條線路都連接七段顯示器,否則會短路)
連接更複雜的線路
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
pinDS = 17
pinSTCP = 27
pinSHCP = 22
GPIO.setup(pinDS, GPIO.OUT) #DS
GPIO.setup(pinSTCP, GPIO.OUT) #STCP
GPIO.setup(pinSHCP, GPIO.OUT) #SHCP
data = [
#A B C D E F G GP
[1, 1, 1, 1, 1, 1, 0, 1], #0
[0, 1, 1, 0, 0, 0, 0, 1], #1
[1, 1, 0, 1, 1, 0, 1, 1], #2
[1, 1, 1, 1, 0, 0, 1, 1], #3
[0, 1, 1, 0, 0, 1, 1, 1], #4
[1, 0, 1, 1, 0, 1, 1, 1], #5
[0, 0, 1, 1, 1, 1, 1, 1], #6
[1, 1, 1, 0, 0, 0, 0, 1], #7
[1, 1, 1, 1, 1, 1, 1, 1], #8
[1, 1, 1, 0, 0, 1, 1, 1] #9
]
try:
for i in range(len(data)):
GPIO.output(pinSTCP, 0)
for j in range(len(data[i])):
GPIO.output(pinSHCP, 0)
GPIO.output(pinDS, data[i][j])
GPIO.output(pinSHCP, 1)
GPIO.output(pinSTCP, 1)
time.sleep(1)
except KeyboardInterrupt:
pass
time.sleep(2)
GPIO.cleanup()
執行結果: