各位小伙伴,longtimenosee!我是蜀鸿会唐佐林,鸽了那么久,决定再次回归社区,重启PythonforOpenHarmony系列的技术教程。希望大家能够关注这个系列,一键三连哦!1.前世今生话说这事还得追溯到4年前。。。2020年,还是视觉算法工程师的我收到华为的召唤:学习鸿蒙技术,打造鸿蒙系统,推动鸿蒙生态发展。这个召唤让我非常开心,毕竟能在初期就参与一个未来可期的系统开发是非常难得的!没有一点点迟疑,我立即就加入了当时还...
大家好,自从去年(没错,是去年)发布了Py4OH第一个正式版之后,我开启了佛系开发模式,没有继续更新了。有小伙伴可能会问:这一年你干嘛去了,为啥没继续更新嗯。。。还是有必要解释一下!Py4OH作为OpenHarmony轻量级设备上的Python开发平台,其目标是能够胜任工业应用程序的开发及部署,因此在稳定性上就会有要求,而稳定性只能通过时间验证。。。这一年里,我利用业余时间在多种场合下对Py4OH进行了应用开发测试,...
2022-10-07 20:43:12 1.7w浏览 17点赞 12回复 11收藏
大家好,我是唐佐林,感谢社区的邀请,能够有机会分享这次直播《开源时代操作系统学习与实践》,欢迎大家报名交流。直播已结束,戳链接查看完整回放👉:https:zhibo.51cto.comliveDetail103大家肯定知道操作系统非常重要,作为进阶专业的程序员肯定要掌握操作系统的相关知识。那么怎么学习?直接啃Linux内核?或者直接吃OpenHarmony核心实现?我能说的只有,源码如山倒,理解如抽丝!!这类系统要么成熟,经过各种场景考验;要...
2022-05-12 16:51:14 1.6w浏览 13点赞 49回复 7收藏
你是不是被设备开发环境搭建惹恼过?你是不是因为一堆编译错误而崩溃过?你是不是对烧写设备时需要的那5分钟感到无语?……现在,另外一种开发选择真的来了!!!!大家好,我是唐佐林。怀着无比激动的心情,再再再次向大家介绍我的这个Python开源项目。并且这次是带着诚意来的,直接上手的Python完整版已经可下载使用了。不像前几次那样,说好了是Python,可是最终还是需要编译C代码,还是需要烧写设备。。。现在,可以彻底屏...
2021-11-13 09:46:00 3.8w浏览 40点赞 66回复 32收藏
通过前面两篇贴子的介绍,相信大家已经掌握如何使用Python操作GPIO和I2C了。那么今天我们可以更进一步,通过Python中的GPIO和PWM接口使蜂鸣器发声。当然,如果只是实现这个功能就太无聊了,所以我们可以扩展一下,做个稍微有意思一些的东西。嗯。。。想想做点啥呢?!翻箱倒柜一番之后,我找到了下面这块扩展板。这是小熊派鸿蒙开发套件中的“智慧安防”扩展板,板子上搭配了一个红外传感器和一个蜂鸣器。基于这个板子,可以开...
2021-10-08 14:37:05 2.0w浏览 16点赞 2回复 7收藏
直播回放:https:harmonyos.51cto.comactivity96直播图文:鸿蒙设备开发(物联网开发)在本质上仍属于嵌入开发的范畴!因此,嵌入式开发中涉及的技术依然适用,同时,嵌入式开发中固有的问题也依然存在。为了让鸿蒙设备开发的体验更加友好,引入Python开发方式。在鸿蒙设备上Python以原生App的形式存在,其职责是执行Python脚本文件,并把对设备操作的请求传递到鸿蒙系统,由系统执行具体的操作,进而达到“使用Python语言操作...
2021-09-26 12:03:59 1.6w浏览 9点赞 5回复 8收藏
在上一篇帖子《使用Python开发鸿蒙设备程序(1GPIO外设控制)》中,已经成功的使用Python对GPIO上的外设进行了控制。这其实不是什么大不了的事,从功能的角度也着实不值得炫耀!然而,这却是非常重要的一步:在鸿蒙上用使用Python进行物联网编程是可行的!!!既然可行,加上Python语言天生的优势(易于掌握,开发效率高),那么真的值得持续打造,将鸿蒙上的Python进行到底。所以呢?所以,今天的主题就是利用GPIO搭配I2C对外...
2021-09-21 22:51:40 2.7w浏览 27点赞 4回复 10收藏
话说很久以前,我将MicroPython的解释器给“挖”了出来,然后做了适配,成功运行于鸿蒙设备(Hi3861)之上(详见前一篇帖子:《使用Python开发鸿蒙设备程序(0初体验)》。然而,这在本质上也就只是一件装酷的事,除了写个HelloWorld体验资源受限设备上的Python语言程序设计之外,基本一无是处。。。为了实现最初的梦想:通过Python降低鸿蒙设备开发的门槛。最近我又开始躁动起来,大刀阔斧的在之前工作的基础上做了PythonSDK的...
2021-09-09 21:57:36 3.5w浏览 49点赞 22回复 27收藏
大家好!失踪3个月后,我终于又双叒叕可以回到鸿蒙社区闲庭漫步了,一种回家的感觉油然而生(此处应该响起萨克斯独奏版的《回家》)。有同学可能会问:“你消失到哪里去了?”嗯,为了养家糊口必须继续现在的工作呀!奋斗人的996大家都懂的,只希望不久的将来可以专职做鸿蒙方面的工作吧。。。不过,办法总比困难多,为了能在兴趣和工作之间找到契合点,我一直琢磨着如何在鸿蒙上玩计算机视觉和人工智能相关的东西。通过一段时...
2021-07-06 12:05:12 1.9w浏览 16点赞 9回复 5收藏
大家好!我又双叒来冒泡了!开年以来工作巨忙,少有时间逛社区,想必大家都快把我忘干净喽。。。。为了不被遗忘,为了鸿蒙宇宙的繁荣,为了抱大腿,我想我还是应该分享点啥!但想来想去,还真没什么拿得出手的东西(囧)!PS:社区各位大佬太厉害,我除了来学习也只能来学习了。所以,绞尽脑汁后决定给大家分享一点计算机视觉技术在HarmonyOS上的应用方法了。本周三(2021.04.14)晚20:00,我会在51CTO给大家直播分享以下几个方...
2021-04-12 16:09:18 2.1w浏览 15点赞 13回复 9收藏
2021春节前夕,华为发布了HUAWEIDevEcoDeviceTool2.0Beta1,整体提供了异常强大的功能。得知消息后,我在第一时间带着无比兴奋的心情下载尝鲜,但结果却是血雨腥风般的体验。。。整个开发环境的主要问题依旧是安装配置非常复杂,Linux下的各种步骤加在一起共有28步,并且安装配置过程还得解决软件之间的依赖问题!我自认算是个嵌入式开发老手,但这开发环境的安装配置着实让我感受到了困难!试想,如果是新手,那么这大概率会是...
2021-03-04 15:08:21 9.7w浏览 22点赞 25回复 22收藏
鸿蒙系统的编译构建是基于Gn和Ninja完成的,那么Gn和Ninjia有什么关系呢?具体又是如何工作的呢?想必大多数热衷于应用开发的同学都还没有深究过,那么今天就借此机会带着大家扒一扒Gn和Ninja。我们先来说说Ninja吧!Ninja是借由GoogleChrome项目而诞生的一个构建工具,它的诞生目标是为了速度。换句话说,在GoogleChrome项目的开发过程中,开发者们认为同类型的其它构建工具不给力,所以才会考虑重新开发更高效的工具。要说同...
2021-01-27 16:03:21 4.3w浏览 23点赞 8回复 20收藏
直播回放:https:edu.51cto.comcourse26379.html写在前面:每年的过年前夕,手中的项目一定会告急。。。而自己又缺乏三头六臂七十二变等特技,所以只能在鸿蒙社区先消失一阵子了。今天再看社区的帖子,发现大家的进步可不一般,各种案例示例层出不穷,一片欣欣向荣的景象!在这样的氛围下,我又来了分享的欲望,希望自己的一点积累能为鸿蒙宇宙添砖加瓦。直播主题回顾:考虑到很多同学可能是新手,这里首先要谈谈交叉编译的概念...
2021-01-14 15:19:38 1.8w浏览 12点赞 5回复 6收藏
1.自我介绍大家好,我是唐佐林,华为认证的鸿蒙系统课程开发者,同时也是一名执着的技术爱好者和音乐爱好者,希望可以在社区和大家一起成长。2.我和鸿蒙的故事说起和鸿蒙的缘分,还得感谢嵌入式大神韦东山老师。今年8月底的时候和韦老师电话,讨论怎么把我最近开发的项目抽象成课程,做技术分享。然后韦老师告诉我他进驻华为了,我一惊,想着莫非韦老师去华为工作了?!韦老师解释说,因为自研操作系统鸿蒙要发布,所以需要老师...
2020-12-16 16:13:39 1.9w浏览 4点赞 4回复 0收藏
接触鸿蒙设备开发有一段时间了,也是时候好好挖一挖鸿蒙设备程序的启动流程了。破冰问题:鸿蒙设备程序从哪里开始运行的?相信大家都已经非常清楚了,鸿蒙设备程序需要指定入口函数,具体表现在代码层面就是通过语句SYSRUN(appentry);指定,其中appentry是设备程序入口函数名;而整个鸿蒙设备的启动流程也可以顺理成章的挖掘出来。如下图:这看起来非常完美了,解决了所有问题!可是,我觉得还是有不清楚的地方,即:MODULEINIT...
2020-12-10 09:53:00 2.4w浏览 14点赞 11回复 13收藏
到目前为止,鸿蒙设备开发的“官方指定语言”还是C语言!这看起来是一件正常的事,毕竟鸿蒙设备开发还是属于嵌入式开发的范畴,而在嵌入式开发中C语言又是当之无愧的首选,所以,大家也都接受了这个现实。。。。。。。上周末,有幸能和华为的大佬们进行面对面交流(其实我是去抱大腿的),我们都一致认为:如果设备开发能支持更简洁的开发方式(如:简单的语言,简单的开发环境),相信会有更多的开发者加入。。。那么现在,有...
2020-11-26 22:32:48 5.2w浏览 30点赞 16回复 15收藏
在上一篇帖子《实现S1,S2,User三个物理按键的独立事件上(解决思路分析)》中,通过读取HIADCCHANNEL2上的ADC值成功区分了S1,S2,User这3个物理按键。上图中的打印输出是分别按下User,S1,S2的效果,这看起来完全符合了我们区分按键的需求,但是。。。但是什么呢?有什么问题吗?我想说的是,但是问题非常明显:这三个键中的任意一个被按下都会多次触发按键事件(上图的实验通过打印输出响应按键事件)。因此,仅仅区分S1,S2,Us...
2020-11-17 22:45:26 1.9w浏览 12点赞 13回复 9收藏
上一篇帖子《实现物理按键的“长按事件”(按键通用框架V0.0.2)》中开源了DTButton–V0.0.2的完整代码,这个版本的实现完全封装了Hi3861的原生SDK,实现了开箱即用,所见即所得。然而,相信大家也发现了一个有趣的现象:S1,S2和User三个物理按键同时对应了GPIO5端口。程序中将GPIO5作为按键端口连接使用后,无论按下S1,S2,User中的哪一个都会触发事件,就好像“同一个GPIO按键有了3个不同分身”。为什么会这样呢?因为...
2020-11-11 15:13:34 2.2w浏览 11点赞 5回复 4收藏
我在之前的帖子《实现按键“按下事件”和“释放事件”的通用框架(V0.0.1)》中阐述了DTButtonV0.0.1的设计思路,并且也在帖子中开源了实现代码。实现这个框架的意图非常明显,就是为了偷懒,想要响应按键事件的时候可以一行代码搞定。也正是因为只想偷懒,V0.0.1版本在实现上非常的简单粗暴:快速实现功能即可,其它问题暂时不考虑。核心实现代码如下:有同学可能会说:这样实现有什么问题吗?看起来合情合理,用起来也没问题啊...
2020-11-06 14:54:31 2.2w浏览 13点赞 6回复 8收藏
1.这套开发板上面可以进行其他操作系统的移植么?答:理论上,可以在Hi3861上移植其它操作系统,只要目标操作系统适配到硬件,并且做好必要剪裁即可。Hi3861的本质是基于riscv架构的硬件系统,所以支持这种硬件架构的操作系统均可移植。2.GN脚本都学点什么,能快速入门。答:gn是一种现代化的跨平台编译构建工具,之所以强调“现代”是因为它能做的事别的工具也能做,如:make和cmake。这几种工具从年代上看有这样的进化关系:m...
2020-11-05 10:53:45 1.8w浏览 9点赞 5回复 6收藏