话说很久以前,我将 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
全球首款3D打印一体式电动自行车上市
圆通快递多位“内鬼”贩卖公民个人信息,40万条公民个人信息被泄露
报告显示:中国能源消费将于2035年达峰 2045年前后天然气全球第一大一次消费能源
一氧化氮传感器在医用呼气分析仪中的应用
聊聊s域和z域之间的转换
用Python完成鸿蒙开发板外设控制
基于标志位的独立按键扫描方法分析
基于RFID技术的库架管理系统
电流检测电路设计图详解 —电路图天天读(150)
dfrobot模拟角度传感器简介
交流电源、直流电源和电子负载在测试中的定位和功能
利用烧结处理废旧电池的工艺流程
中国企业Micro LED技术竞争方面并不落后于人
建设工地为什么要安装扬尘污染防控在线监控系统
人工智能技术在造福人类之前需要干什么
我国LED产业发展现状以及未来3年LED行业还有什么机会
如何去分析BAW谐振器?
我国首架商飞新能源验证机灵雀H在郑州上街机场正式试飞成功
单片机调试有那些常见问题如何解决
英国宝马通过识别技术为用户提供保修广告