話說很久以前,我將 MicroPython 的解釋器給“挖”了出來,然后做了適配,成功運行于鴻蒙設備(Hi3861)之上。
詳見前一篇帖子:《使用 Python 開發鴻蒙設備程序(0-初體驗)》
然而,這在本質上也就只是一件裝酷的事,除了寫個 Hello World 體驗資源受限設備上的 Python 語言程序設計之外,基本一無是處。..。..
為了實現最初的夢想:通過 Python 降低鴻蒙設備開發的門檻。最近我又開始躁動起來,大刀闊斧的在之前工作的基礎上做了 Python SDK 的設計和開發。終于,現在可以直接用 Python 來控制鴻蒙開發板外設了。
我之前的帖子《《《鴻蒙開發板外設控制》》直播圖文版(2020.10.28)》中涉及的案例都可以用 Python 完成!
大家看完這篇帖子后,可以嘗試使用 C 和 Python 來實現相同的功能,體會一下不同。
OK!我們進入正題,直接上 Python 代碼學習!
在這里給大家做一點點概念上的科普,幫助大家更好的理解代碼。GPIO(General Purpose Input/Output)即:通用型輸入輸出的簡稱。
其物理表現形式為:可接收或輸出電信號的引腳,使用者可根據需要將其作為輸入(GPI)或輸出(GPO)使用。并且, 一般情況下,開發板上都有多個 GPIO 引腳供使用。
當 GPIO 作為輸出使用時,輸出的電信號為高電平(1)或者低電平(0),因此,只要在電路上稍加設計就可以接入外設(如:LED 燈,電動機,等),并通過程序控制外設的狀態。
有了這些概念之后,上面的示例的代碼理解起來就簡單了!無非就是將 LED 燈(一種外設)接入第 7 號 GPIO 引腳,并通過程序設置第 7 號引腳輸出高電平,點亮 LED 燈。
如果只是單純的通過代碼點亮一個 LED 燈,是真的不難,但也是真的挺無聊。所以,再給大家一個稍微復雜一點的示例:通過開關控制 LED 燈的狀態。
“Show me the code!”
這個示例看起來挺嚇人的,比上一個示例復雜了一些。然而,本質卻依舊是 GPIO 外設控制。
在硬件連接上,第 11 號 GPIO 引腳接入了一個按鍵,其目的是接收按鍵的信號,既然是接收信號那么顯然 GPIO 基本功能應該設置為“輸入”(與連接 LED 的第 7 號 GPIO 基本功能設置相反)。
并且,將初始狀態設置為高電平(pull up)態,當引腳電平從高電平轉為低電平(按鍵被按下)時觸發中斷。
最后,設置中斷觸發后調用的函數為 button_callback,當這個函數被調用時會通過 GPIO_7 改變外接 LED 燈的狀態。
整個過程如下圖所示:
相信大家已經迫不及待想要動手實戰,體驗一下 Python 操作外設的快感了。
OK!方法如下:
下載附件中的 libdtpython.a 并存儲到 /code/vendor/hisi/hi3861/hi3861/build/libs。
編寫 Python 代碼并使用工具 Txt2CStr.exe 轉換為 C 數組。
將轉換后的代碼加入附件中的 demo 工程中編譯并執行。
注意:
由于在 Python 中提供了 i2c 相關接口,因此,需要改動文件 user_config.mk
路徑:/code/vendor/hisi/hi3861/hi3861/build/config/usr_config.mk
配置:CONFIG_I2C_SUPPORT=y
代碼已經開源,記得給個星星哦!
https://gitee.com/delphi-tang/python-for-hos
責任編輯:haq
-
操作系統
+關注
關注
37文章
6834瀏覽量
123344 -
python
+關注
關注
56文章
4797瀏覽量
84720 -
鴻蒙系統
+關注
關注
183文章
2634瀏覽量
66365
原文標題:用Python控制鴻蒙開發板,YYDS!
文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論