0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用Python完成鸿蒙开发板外设控制

OpenHarmony技术社区 来源:鸿蒙技术社区 作者:唐佐林 2021-09-28 09:22 次阅读

话说很久以前,我将 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

    文章

    6718

    浏览量

    123170
  • python
    +关注

    关注

    55

    文章

    4777

    浏览量

    84421
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2634

    浏览量

    66193

原文标题:用Python控制鸿蒙开发板,YYDS!

文章出处:【微信号:gh_834c4b3d87fe,微信公众号:OpenHarmony技术社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    航顺 HK32F407ZGT7 芯片的开发板:多功能外设助力多领域应用

    HK32F407ZGT7开发板 1.开发板简介 开发板是基于航顺芯片公司F4系列HK32F407ZGT7开发的一款开发板,Cortex-M4
    的头像 发表于 11-08 14:43 153次阅读
    航顺 HK32F407ZGT7 芯片的<b class='flag-5'>开发板</b>:多功能<b class='flag-5'>外设</b>助力多领域应用

    瑞芯微RK3566鸿蒙开发板Android11修改第三方输入法为默认输入法

    本文适用于触觉智能所有支持Android11系统的开发板修改第三方输入法为默认输入法。本次使用的是触觉智能的Purple Pi OH鸿蒙开源主板,搭载了瑞芯微RK3566芯片,类树莓派设计,是Laval官方社区主荐的一款鸿蒙
    的头像 发表于 09-24 09:43 337次阅读
    瑞芯微RK3566<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发板</b>Android11修改第三方输入法为默认输入法

    瑞芯微RK3566鸿蒙开发板OpenHarmony标准系统应用兼容性测试指导

    本文OpenHarmony标准系统应用兼容性测试指导,适用鸿蒙系统软件开发测试的新手入门学习课程,设备为触觉智能的瑞芯微RK3566开发板,型号Purple Pi OH。是Laval官方社区主荐的一款
    的头像 发表于 09-10 11:56 311次阅读
    瑞芯微RK3566<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发板</b>OpenHarmony标准系统应用兼容性测试指导

    单片机STM32可以Python写吗?可以的开发板有哪些?

    可以使用Python进行开发,并分析市面上支持Python开发的单片机及开发板。首先,传统的STM32单片机主要使用C语言或汇编语言进行
    的头像 发表于 09-05 08:00 2243次阅读
    单片机STM32可以<b class='flag-5'>用</b><b class='flag-5'>Python</b>写吗?可以的<b class='flag-5'>开发板</b>有哪些?

    linux开发板和单片机开发的区别

    硬件架构 Linux开发板和单片机开发在硬件架构上有很大的区别。Linux开发板通常基于ARM、x86或其他处理器架构,具有较高的处理能力和内存容量。而单片机开发则基于微
    的头像 发表于 08-30 15:30 607次阅读

    鸿蒙OpenHarmony开发板解析:【芯片解决方案】

    芯片解决方案是指基于某款开发板的完整解决方案,包含驱动、设备侧接口适配、开发板sdk等。
    的头像 发表于 05-10 15:42 1143次阅读
    <b class='flag-5'>鸿蒙</b>OpenHarmony<b class='flag-5'>开发板</b>解析:【芯片解决方案】

    鸿蒙OpenHarmony南向:【Hi3861开发板介绍】

    Hi3861开发板是一片大约2cm*5cm大小的开发板,是一款高度集成的2.4GHz WLAN SoC芯片,集成IEEE 802.11b/g/n基带和RF(Radio Frequency)电路。支持,并配套提供开放、易用的开发
    的头像 发表于 05-06 17:19 972次阅读
    <b class='flag-5'>鸿蒙</b>OpenHarmony南向:【Hi3861<b class='flag-5'>开发板</b>介绍】

    鸿蒙OpenHarmony【标准系统 运行】(基于RK3568开发板

    烧录完成重启开发板后,系统将会自动启动。开发板附带的屏幕呈现以下界面,表明系统已运行成功。
    的头像 发表于 05-06 15:38 434次阅读
    <b class='flag-5'>鸿蒙</b>OpenHarmony【标准系统 运行】(基于RK3568<b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony【标准系统 运行】 (基于RK3568开发板

    烧录完成重启开发板之后,系统将会自动启动……
    的头像 发表于 04-25 15:56 746次阅读
    <b class='flag-5'>鸿蒙</b>OpenHarmony【标准系统 运行】 (基于RK3568<b class='flag-5'>开发板</b>)

    OpenHarmony开发实例:【鸿蒙.bin文件烧录】

    如何使用HiBurn工具烧录鸿蒙的.bin文件到Hi3861开发板
    的头像 发表于 04-14 09:54 390次阅读
    OpenHarmony<b class='flag-5'>开发</b>实例:【<b class='flag-5'>鸿蒙</b>.bin文件烧录】

    ELF 1技术贴|如何将Python3.6.9移植到开发板

    在ELF1开发板的Linux4.1.15eMMC镜像中,默认预装了Python2.7。为了适应更多应用场景,有些小伙伴可能需要移植其他版本的Python,下面将以Python3.6.9
    的头像 发表于 02-22 14:06 399次阅读
    ELF 1技术贴|如何将<b class='flag-5'>Python</b>3.6.9移植到<b class='flag-5'>开发板</b>上

    盘点那些硬件+项目学习套件:Hi3861鸿蒙开发板及入门常见问题解答

    防、智能办公等方向,非常适合于竞赛项目的创新拓展,敬请期待。 ▋常见问题 1.学校搞毕设,这个板子学起来难不难? 答:不难的。Hi3861鸿蒙开发板的整个学习,因为并不太涉及底层代码,且我们配套
    发表于 02-01 16:55

    鸿蒙设备-开发板基础学习(BearPi-HM Micro)

    theme: minimalism 每当学习一门新的编程语言或者上手一款新的开发板,在学习鸿蒙设备开发过程中,带大家写的第一个程序,通过这个程序,我们可以对鸿蒙设备
    发表于 01-08 21:54

    利用星闪BS25开发板NL001测试官方sdk中的外设程序uart

    本文利用星闪BS25开发板NL001测试一下官方sdk中的外设程序uart,以便熟悉外设的基本操作。
    的头像 发表于 01-02 11:30 2735次阅读
    利用星闪BS25<b class='flag-5'>开发板</b>NL001测试官方sdk中的<b class='flag-5'>外设</b>程序uart

    利用星闪BS25开发板NL001测试SDK中外设程序

    本文利用星闪BS25开发板NL001测试一下官方sdk中的外设程序,以便熟悉外设的基本操作。
    的头像 发表于 12-22 10:49 1988次阅读
    利用星闪BS25<b class='flag-5'>开发板</b>NL001测试SDK中<b class='flag-5'>外设</b>程序