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

    文章

    6264

    浏览量

    121841
  • python
    +关注

    关注

    51

    文章

    4667

    浏览量

    83440
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2599

    浏览量

    65249

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    itop-RK3588开发板机器视觉开发OpenCV-Python的安装

    itop-RK3588开发板机器视觉开发OpenCV-Python的安装
    的头像 发表于 01-26 15:18 1270次阅读
    itop-RK3588<b class='flag-5'>开发板</b>机器视觉<b class='flag-5'>开发</b>OpenCV-<b class='flag-5'>Python</b>的安装

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

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

    【核桃派1B 开发板试用体验】+ Python编程篇

    在核桃派开发板其系统配置了Python软件,通过它完成编写和运行Python代码。 在使用Python时,可分为2种情况,即一种是通过​终端
    发表于 01-03 22:08

    鸿蒙千帆起】《开心消消乐》完成鸿蒙原生应用开发,创新多端联动用户体验

    《开心消消乐》已经完成鸿蒙原生应用开发,乐元素成为率先完成鸿蒙原生应用开发的 20+游戏厂商之一
    发表于 01-03 10:22

    【涂鸦T2-U开发板试用体验】涂鸦T2-U开发板初体验

    搭载专为信号处理扩展的指令,让信号辐射范围更广。T2-U 开发板还拥有丰富的外设能力,如 PWM、UART、SPI 等,多达五路的 32 位 PWM 输出,使芯片非常适合于控制高品质的 LED 产品
    发表于 12-22 10:59

    鸿蒙千帆起】桌游卡牌游戏品类首发!《三国杀》完成鸿蒙原生应用开发

    近日,作为鸿蒙生态游戏先锋合作伙伴之一,游卡网络宣布已完成《三国杀》系列游戏鸿蒙原生应用开发,成为鸿蒙生态首款TOP级桌游卡牌类标杆游戏。
    的头像 发表于 12-21 21:15 464次阅读
    【<b class='flag-5'>鸿蒙</b>千帆起】桌游卡牌游戏品类首发!《三国杀》<b class='flag-5'>完成</b><b class='flag-5'>鸿蒙</b>原生应用<b class='flag-5'>开发</b>

    【ELF 1开发板试用】+ python及脚本编程

    ELF 1开发板支持python的使用,其版本为V2.7.11。 在使用串口登录后,通过输入python及回车可启动python,见图1所示。 图1 启动
    发表于 11-28 10:24

    【ELF 1开发板试用】+ RGB LED及按键的控制

    在掌握串口登录后,就可以利用板载的系统进行相应的测试了,作为上最基本外设恐怕就非LED灯和按键莫属了,它们的控制均可归为GPIO口的使用。 在GPIO的输出设备中,最常用的便是LED灯。在ELF
    发表于 11-21 11:11

    #fpga开发板 Lattic-mipi开发板

    FPGA开发板
    明德扬科技
    发布于 :2023年10月25日 18:01:23

    如何使用Python和PinPong库控制Arduino

    与Arduino进行通信,以帮助您开发自己的电子项目。 一、为什么是PinPong库? PinPong库是一个用于控制开源硬件开发板的Pyt
    的头像 发表于 10-13 10:59 435次阅读
    如何使用<b class='flag-5'>Python</b>和PinPong库<b class='flag-5'>控制</b>Arduino

    w806开发板有dcmi外设吗?

    w806开发板有dcmi外设吗?
    发表于 09-22 07:01

    w806开发板什么软件开发

    w806开发板什么软件开发
    发表于 09-22 06:34

    迅为RK3568开发板Debian系统使用python 进行摄像头开发

    迅为RK3568开发板Debian系统使用python 进行摄像头开发
    的头像 发表于 09-14 16:58 641次阅读
    迅为RK3568<b class='flag-5'>开发板</b>Debian系统使用<b class='flag-5'>python</b> 进行摄像头<b class='flag-5'>开发</b>

    【Milk-V Duo 开发板免费体验】Python开发环境搭建

    执行如下命令: clean_all build_all pack_sd_image 得到新的img镜像文件,将img烧录到sd卡,插入开发板卡槽后重新启动。电脑上安装ndis驱动后,远程登录192.168.42.1,就可以在开发板
    发表于 08-06 15:49