用Python控制鸿蒙开发板,YYDS!
话说很久以前,我将 MicroPython 的解释器给“挖”了出来,然后做了适配,成功运行于鸿蒙设备(Hi3861)之上。
然而,这在本质上也就只是一件装酷的事,除了写个 Hello World 体验资源受限设备上的 Python 语言程序设计之外,基本一无是处......
为了实现最初的梦想:通过 Python 降低鸿蒙设备开发的门槛。最近我又开始躁动起来,大刀阔斧的在之前工作的基础上做了 Python SDK 的设计和开发。终于,现在可以直接用 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
Enjoy it!
来源:鸿蒙技术社区
- 分享
- 举报
-
浏览量:5805次2021-06-28 13:41:26
-
浏览量:5197次2021-09-15 13:50:22
-
2022-11-07 14:56:46
-
浏览量:962次2023-05-16 14:05:36
-
浏览量:2685次2017-12-02 22:05:15
-
2023-05-15 16:10:49
-
浏览量:4534次2021-09-23 13:51:06
-
浏览量:4936次2022-11-07 14:06:56
-
浏览量:3382次2022-11-07 15:13:05
-
浏览量:5858次2021-09-24 13:45:50
-
2022-11-08 12:06:09
-
浏览量:3786次2022-10-11 15:31:51
-
浏览量:1605次2023-06-30 10:33:51
-
浏览量:7279次2018-06-14 23:13:10
-
浏览量:2984次2021-06-15 09:44:15
-
浏览量:4194次2021-07-09 13:47:54
-
浏览量:1165次2023-11-27 14:02:37
-
浏览量:4759次2022-06-11 13:46:26
-
浏览量:759次2024-02-23 16:58:46
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
ebaina_
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明