OrangePi 另類玩法

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 對應了

CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90

再來大家了解一下 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個沒有電阻用釘書釘連接是陰極所以不用電阻 !