OrangePi 另類玩法
OrangePi 除了可以用來當 Linux Server , Media Player , 懷舊遊戲機之外 ….. !
還可以用 python / C 寫一些程式用來控制 OrangePi 的 GPIO , 類似單片機 MCU
今次我分享自己用 python 寫的小程式 , 用 GPIO 來控制 8X8 LED 點陣光亮 ,把當前的時間, 星期用二進制方式顯示出來
例如 : 時間 16:35:42 我們用八組 2 進制來顯示
小時 16 , 分開十位及個位 即是1 &6 十位 1 二進是 0001個位 6 二進是0110
分鐘 35 , 分開十位及個位 即是3 &5 十位 1 二進是 0011個位 5 二進是0101
秒 49 , 分開十位及個位 即是 4& 9 十位 1二進是 0100個位 9 二進是 1001
星期 3 , 個位即是 3 個位3 二進是 0011
我用4 行代表二進制的4個位 , 用 7 列分別代表 [時(2列) 分(2列) 秒(2列) 星期(1列)]
大家可以看看以下的圖片, H2 及 H3 CPU GPIO 分佈圖,
我替供的程式碼是以 H3 GPIO 寫, 如果用 H2 CPU 的朋友要自己再更改 PORT 對應了
再來大家了解一下 8X8 LED 點陣 , 我用的是 1088BS 共陽點陣
大家可能會發現上圖和下圖描述的 “行” 及 “列” 有所不同 ? 上圖是我使用麵包條所以1088BS 插腳是由左至右方式插 , 下圖插腳是由下至上方式插 , 整塊1088BS 轉了90度 , “行” “列” 會互換了 , 如果你們是左右就參考上圖 , 上下的就參考下圖了 .
上圖是 “行””R” 為接地 , “列””C” 為正極 , 最好在正極接上一個1k電阻保護LED , 那麼下圖就是 “行””R” 為正極了 , “列””C” 接地
現在 OrangePi 要安裝 GPIO 資料庫 , 我用這個 pyH3 Python Library
https://www.instructables.com/id/Orange-Pi-One-Python-GPIO-basic/
還有很多 Library 用的 , 其他參考 !
https://pypi.org/project/OrangePi.GPIO/
當然引用時有不同的呼叫方法 !
以下是我寫的程序 , 不是寫得好好, 應該可以用 CALL FUNCTION 的方式去處理十個及個位轉二進制的 !
以後再修改一下
下載程式碼
稍為改良用了 call function 的程式碼
如果把 FILE 改為可執行檔
chmod +x bin2clock.py
./bin2clock.py
應該會發現如下圖 : 顯示時間是 14點15分43秒 星期五
顯示時間是 14點16分00秒 星期五
你們看見有7個1K電阻, 因為正極要拉一個電阻才能保護 LED 燈, 你們看見我寫了
1248 那一列是我弄燒了那列 LED 所以星期用了第八列做 , 同樣第四行都是燒了 所以跳過了
其餘那4個沒有電阻用釘書釘連接是陰極所以不用電阻 !