【有奖直播课】鸿蒙驱动框架调试总结——火热报名中!

鸿蒙系统的驱动框架被称为HDF(HarmonyOS Driver Foundation),包括驱动加载,驱动服务管理和驱动消息机制。

HDF的驱动加载机制,包括按需加载和按序加载。按需加载的意思是可以配置启动的过程中哪些驱动加载,哪些驱动不加载;按序加载,就是按照优先级的顺序加载。

驱动服务管理是指驱动程序是不是可以被使用,如果可以被使用,是只能被用户态使用,还是只能被内核态使用,还是两个同时可以被使用。上面两项机制可以通过hcs格式的配置文件来实现,相对来说比较简单。

驱动服务的消息机制是指如何在用户态程序和内核态程序之间进行通信,包括用户态应用发送信息到驱动程序和用户态程序接收驱动主动上报事件。

2020年12月10日(本周四)晚20:00,我将为大家做一场鸿蒙驱动框架开发讲解的直播,主题是《HarmonyOS鸿蒙驱动框架调试总结》。主要探讨的是消息机制,大体的过程如下图所示,供大家参考。

在此次直播中,我会给大家展示鸿蒙驱动框架的基本结构以及如何进行驱动的开发。

主要内容包括如何进行内核态驱动程序的编写,如何把内核态驱动程序添加到系统中去,

如何进行用户态程序的编写,以及如何编译、下载。

最后,我们会根据根据程序运行结果来验证我们编写的驱动程序。

直播结束后,我会将相关代码提供给大家,一起交流学习。

>>>点击免费报名<<<

课程大纲:

1、鸿蒙系统简介以及鸿蒙相关开发资料网站介绍

2、张飞实战电子南极洲开发板介绍

3、鸿蒙驱动框架介绍

4、编写内核驱动程序样例

5、把驱动源码放入内核

6、编写用户态程序APP

7、编译、烧写、调试

讲师介绍:

张角——嵌入式研发工程师 张飞实战电子鸿蒙系统、嵌入式实时操作系统以及Risc-V单片机课程主讲老师。 专注单片机程序开发,鸿蒙系统驱动及应用开发,linux系统驱动及应用开发,同时对硬件电路设计,开关电源设计以及电机驱动设计有浓厚的兴趣。

直播抽奖:

免费报名+到会看直播,赢取HarmonyOS官方联名T恤、HarmonyOS官方开发板(HiSpark Wi-Fi IoT 智能家居套件) (中奖用户所填写收件人姓名、电话、地址需为真实信息,信息仅用于工作人员联系用户发放奖品。)

适合人群:

对鸿蒙系统开发感兴趣的学生、工程师以及其他相关人员  

>>>点击免费报名<<<

将树莓派打造成RFID和NFC的识别装置

用华为和苹果的朋友,应该知道自己的手机上基本都带NFC支付功能。

实际上NFC相关的场景不只是支付,还涵盖我们生活中的方方面面。比如IoT前哨站之前发过的一篇:DIY带数据的NFC“袖扣”

NFC(近场通信)基于RFID(射频识别)标准,两者都允许设备从被动令牌或电子标签接收数据(这意味着它不需要外部电源即可工作)。

市场上有现成的RFID和NFC识别设备出售,但可定制化程度不高。不过熟悉树莓派的朋友,可以凭借WaveShare的RFID/NFC扩展板,DIY一个更极客的识别装置。

和树莓派适配后的成品

开始之前,你需要一个能跑Raspberry Pi OS Lite(Buster)的树莓派,还有一个WaveShare NFC扩展板(大约人民币几十块)。

登录系统后,先更新系统。

sudo apt -y update && sudo apt -y upgrade

启用串行接口

该扩展版能够通过三个不同的接口进行通信:I2C,SPI和UART。

我们这里使用UART,因为它演示起来最简单。首先运行sudo raspi-config,进入“接口选项”,然后选择“串行接口”。

当系统询问你是否要登录控制台时,请选择“否”。当询问你是否要启用串行接口时,请选择“是”。

你需要立即重启,这将允许WaveShare HAT通过串行接口与我们的Raspberry Pi对话。

Waveshare HAT包含许多设置。请务必阅读说明!

配置并安装扩展板

如上所述,我们可以通过更改扩展板本身的某些物理开关来选择不同的接口。默认情况下,我们可以将其配置为UART / Serial,但具体接法最好到以下网址核对:

https://www.waveshare.com/wiki/PN532_NFC_HAT#Raspberry_Pi_examples

一般I1和I0处的跳线均应短接“ L”,D16和D20应短接,在DIP开关上,除RX和TX外,所有其他器件均应关闭。

仔细检查,然后将板子插到树莓派GPIO口上,启动。

然后执行如下命令:

sudo apt install rpi.gpio p7zip-full python3-pip
pip3 install spidev pyserial

wget https://www.waveshare.com/w/upload/6/67/Pn532-nfc-hat-code.7z
7z x Pn532-nfc-hat-code.7z

在尝试任何操作之前,需要编辑示例文件,以便我们使用UART。请根据自身要求将其注释或启用。

cd ~/raspberrypi/python
nano example_get_uid.py

pn532 = PN532_UART(debug=False, reset=20)

拿RFID令牌来测试一下

试试看!

如下所示启动示例代码:
python3 example_get_uid.py

如果一切顺利,屏幕将会显示与扩展板连接的信息。

现在,你可以将RFID令牌放在标有“ NFC”的HAT区域上。十六进制数字会开始在屏幕上滚动。这意味着,你的令牌已被检测到!

每个RFID令牌都有唯一的编号,因此可以用来标识不同人员的身份。

但是,该扩展板的功能远不止于此,因为它还支持NFC,并且可以与MIFARE Classic等通用标准进行通信,该标准允许卡上存储1kB的存储空间。

对应的example_dump_mifare.py文件在同一目录中(请确保你已正确设置串行连接)。

更进一步

现在,你可以读取RFID和NFC令牌上的唯一标识符了。

如前所述,如果你用的是MIFARE或NTAG2标准,还可以将数据写到卡上。

examples文件夹包含一些C程序,你可以试一下。

在卡上读取和写入少量数据,可以产生一些有趣的项目。在2018年的电磁场节上,整个游戏都是基于查找物理位置并使用MIFARE卡注册玩家的存在来进行的。

智能手机还可以使用NFC交换任何形式的数据,以及更多可能。

来自:Raspberrypi.org

编译:王文文

用树莓派和Lobe-python做智能垃圾分类

国外一个名叫Jen Fox的创客分享了一个由Raspberry Pi驱动的垃圾分类设备,该设备能告诉我们,当前的垃圾是可回收的,可堆肥的,还是有害的。

这个项目对初学者很友好,因为你不需要任何代码来训练机器学习模型,只需要稍微花点时间就可以将其加载到Raspberry Pi上。

这也是一个相当经济的装置,包括Raspberry Pi 4在内,价格不到70美元。

硬件:

Raspberry Pi 4B
树莓派摄像头模块
Adafruit 按钮
Adafruit LED

软件:

免编码的机器学习模型是用Lobe创建的,这是一个免费的桌面应用程序,可根据显示的对象自动训练图像分类器。

图像分类器认出了瓶盖

训练图像分类器:

基本上,你要上传一大堆的图片,然后告诉Lobe(分类程序)每一张图片显示的是什么对象。

比如哪些图片是可堆肥垃圾,哪些是可回收利用的物品,哪些是对生物有害的垃圾。当然,正如Jen所说,“你拥有的图片越多,模型识别起来越准确。”

接好摄像头模块的树莓派4B

你只需要编写少量代码就可以将图像分类器加载到树莓派上。Raspberry Pi摄像头充当图像分类器的“眼睛”,因此树莓派可以认出你要区分的垃圾种类。

将按钮和LED连接到Raspberry Pi的GPIO引脚,让它们与摄像头一起工作,并根据图像分类器识别“看到”的内容,点亮相应的LED。

将按钮和LED连接到GPIO引脚的示意图

当然,你要先找个盒子,最好可以安在墙上。

然后在纸板箱上钻一个方形的孔,以确保摄像头可以“看到”垃圾。

再钻几个孔,以便用户能看到LED灯,并可以接触按钮。

记得为Raspberry Pi的电源留出空间,以便接线。

Jen把盒子装在墙上,开始识别一个塑料袋

该项目源码地址:

https://github.com/IoToutpost/TrashClassifier

来自:Raspberrypi.org

编译:王文文

【鸿蒙直播】从零开发鸿蒙小游戏App

2020年11月4日(周三,晚20:00),我将为大家做一场鸿蒙App开发的直播,主题是《从零开发鸿蒙小游戏App》。我会从零开始手把手地带领大家开发一款运行在鸿蒙设备上的、曾经风靡全球的小游戏。我会对编写的每一行代码进行讲解。我们采用边做边学的方式,在做中学,在学中做,在直播过程中完成一个小游戏App的所有功能。

>>>点击免费报名<<<

讲师介绍:

就目前而言,鸿蒙App开发可用的平台有三个:智慧屏、智能手表、运动手表。

如果我们开发的是智慧屏或智能手表上的App,那么目前华为还没有开放基于X86的本机模拟器,因此,需要将编写的代码发送到远程的ARM处理器以运行代码,在本机上只能预览运行结果,而无法在本机上运行和调试代码。

如果我们开发的是运动手表上的App,那么既可以使用本机的预览器Previewer来预览代码的运行效果,也可以使用本机的模拟器simulator来运行和调试代码。在运动手表这个平台上,相关的设备和开发工具是最成熟、最完善的,给开发者的体验已经很棒了!

本次直播主要是在运动手表上使用JavaScript编程语言完成项目的编写,直播后会尽快将Java版的项目代码共享给大家。

学习有礼:

参加HarmonyOS公开课,抽官方定制周边! 

官方定制T恤等你来拿!还有机会赢取HarmonyOS官方开发板(HiSpark Wi-Fi IoT 智能家居套件)

直播前导课程:https://edu.51cto.com/course/25054.html

鸿蒙运动手表呼吸训练项目源代码下载:https://harmonyos.51cto.com/posts/1076

轻松掌握鸿蒙开发板外设

业界普遍认为物联网将是下一个爆点,生态圈会有上千亿美金的市场,而鸿蒙应该会成为这个市场的主角。

liteos-a是为物联网造出的一个轻量级内核,设计精巧,支持MMU,支持内核/APP空间隔离。支持POSIX接口,使得大量开源软件能够在liteos-a上直接使用,启动速度非常快。

10.28 晚8:00,我们将举办一场直播公开课,主题为《轻松掌握鸿蒙开发板外设控制》,这次我们主要基于liteos-a内核进行讲解。
本次直播的目的是让大家能够基于开发板快速上手鸿蒙操作系统,通过几个小案例让你快速轻松的上手鸿蒙设备开发。在直播间,老师会为你答疑解惑,以及如何基于已有的知识快速学习新的系统开发技能。

# >>>戳我报名<<<

你是否有这样的困惑?
1、想学习鸿蒙却不知从何学起?
2、理论知识扎实却不知如何上手操作?
3、学习中的疑问无从获得解答?
4、独自学习无人讨论?

放心,你的这些困惑,来直播间,帮你逐一解决。

课程亮点:
1、专业讲师 讲解+演示+答疑
2、结合案例具体讲解
3、快速上手鸿蒙设备开发
4、专业指导,不走弯路

直播课程大纲:

  1. Hi3861开发框架简介
  2. LED灯控制示例(案例讲解)
  3. 按键事件响应(案例讲解)
  4. 蜂鸣器控制示例(案例讲解)

适合人群:
学生、软件工程师、硬件爱好者

讲师介绍:
唐佐林-狄泰软件学院创始人

1.2005年毕业于东南大学计算机科学与工程系,同年保送南京理工大学模式识别与智能系统重点实验室学习计算机视觉。
2.2007年获取硕士学位(研究成果已申请专利,《全天时结构化道路多行道线检测方法》,公开号:CN101469991)
3.同年加入摩托罗拉中国研发中心南京分公司,担任CDMA手机研发工程师,负责摩托罗拉CDMA系列手机UI库的开发与设计,以及显示屏驱动的开发
4.2009年转入摩托罗拉中国研发中心成都分公司,担任Digital Radio对讲机研发工程师,负责蓝牙协议栈以及蓝牙驱动的开发
5.2010年凭借优秀的开发能力组建并加入摩托罗拉Diagnostic Tools Team
6.2013年正式成为摩托罗拉Diagnostic Tools Team软件架构师,负责所有诊断工具软件的架构,设计与开发
7.2016年离开摩托罗拉中国研发中心,全职进行课程研发,技术分享

学习有礼:
扫码免费报名+到会看直播,抽官方定制周边!
官方定制T恤等你来拿!还有机会赢取HarmonyOS官方开发板

树莓派计算模块CM4上市,最低单价25美元

树莓派基金会近日发布了第四代树莓派计算模块 —— Raspberry Pi Compute Module 4。

共有 32 个具体型号,售价从 25 美元起。最低配置 1GB RAM/Lite/无无线版本,最高配置 8GB RAM/32GB Flash/无线增强版,90 美元。对应着 4 种不同内存和是否有无线通讯功能。

CM4 核心模块配置如下:

1.5GHz 4 核心 64-bit ARM Cortex-A72 CPU
VideoCore VI 图形,支持 OpenGL ES 3.x
H.265 (HEVC) 4Kp60 视频硬解码
H.264 (AVC) 视频 1080p60 硬解码和 1080p30 硬编码
双 HDMI 接口分辨率高达 4K
单通道 PCI Express 2.0 接口
双 MIPI DSI 显示器和双 MIPI CSI-2 摄像头接口
1GB, 2GB, 4GB 或 8GB LPDDR4-3200 SDRAM
可选 8GB, 16GB 或 32GB eMMC Flash 存储
可选 2.4GHz 和 5GHz IEEE 802.11b/g/n/ac 无线网卡和蓝牙 5.0
支持 IEEE 1588 的千兆以太网 PHY
28 个 GPIO 引脚,6 个 UART、6 个 I2C 和 5 个 SPI

详细价格表:


为配合计算模块核心使用,官方推出了一款新的 IO 板。

配置如下:

两个全尺寸 HDMI 接口
千兆以太网接口
两个 USB 2.0 接口
MicroSD 卡插槽(仅 Lite 有)
PCI Express Gen 2 x1 插槽
带有 40 针脚的 GPIO 接口
12V 输入接口(如果不使用 PCIe,可支持最高 26V)
摄像头和显示器 FPC 接口
实时时钟

IO 板的官方定价为 35 美元。

这是迄今为止性能最强的树莓派计算模块,性能远超之前的树莓派 CM3+。基金会表示每年销售的 700 万个树莓派产品中,有超过一半的产品被用于工业和商业应用。

手把手教你,用App配置鸿蒙开发板网络

2020年10月20日(周二,晚20:00),连志安将做一场直播,主题是《如何用手机App配置鸿蒙开发板网络》。

需要说明的是,本人实现这个功能主要是用于学习,所涉及知识包括Hi3861的WiFi操作,AP模式、STA模式、按键功能、网络编程、JSON数据格式、手机APP开发。

免费报名,请戳:https://harmonyos.51cto.com/activity/10

先上原理:

目前主流的 WIFI 配置模式有以下 2 种:

1、智能硬件处于 AP 模式(类似路由器,组成局域网),手机用于 STA 模式

手机连接到处于 AP 模式的智能硬件后组成局域网,手机发送需要连接路由的 SSID 及密码至智能硬件,智能硬件主动去连接指定路由后,完成配网

2、一键配网(smartConfig)模式

智能硬件处于混杂模式下,监听网络中的所有报文;手机 APP 将 SSID 和密码编码到 UDP 报文中,通过广播包或组播报发送,智能硬件接收到 UDP 报文后解码,得到正确的 SSID 和密码,然后主动连接指定 SSID 的路由完成连接。

本直播主要讲如何实现第一种AP方式。

AP 是 (Wireless) Access Point 的缩写,即 (无线) 访问接入点。简单来讲就像是无线路由器一样,设备打开后进入 AP 模式,在手机的网络列表里面,可以搜索到类似 TPLINK_XXX 的名字(SSID)。

连接步骤:

1、Hi3861 上面有一个user按键,用户可以按下这个按钮,Hi3861会进入 AP 模式

2、手机扫描 WIFI 列表:扫描到Hi3861的SSID(目前是“Hispark-WiFi-IoT”)连接该智能硬件设备,通过手机APP发送我们要连接的热点的ssid和密码

3、Hi3861通过 UDP 包获取配置信息,切换网络模式连接 WIFI 后配网完成

具体代码实现过程,届时直播,免费报名请戳:https://harmonyos.51cto.com/activity/10

《学习有礼》

参加HarmonyOS公开课,抽官方定制周边,官方定制T恤等助学好礼等你来拿!

还有机会赢取HarmonyOS官方开发板(HiSpark Wi-Fi IoT 智能家居套件)(图片仅供参考,以实物为准)

Nvidia推出售价59美元的Jetson Nano 2GB开发板

自从第一台Raspberry Pi于2012年问世以来,单板计算机就变得越来越流行。

比如Nvidia这样的硬件大厂都在生产Jetson系列小型开发板。

其中 Jetson Nano是一款功能强大的小型计算机,专为支持入门级边缘 AI 应用程序和设备而设计。

完善的 NVIDIA JetPack™ SDK 包含用于深度学习、计算机视觉、图形、多媒体等方面的加速库,可助大家轻松上手。

2019年3月,NVIDIA发布的99美元的Jetson Nano

该开发板预装Ubuntu 18.04LTS系统,搭载英伟达研发的128核Maxwell GPU,可以将AI技术应用于各种智能设备。着实惊艳了一把。

2020年这款,价格更便宜,59美元。不过内存也相应少了2GB,去掉了板载存储。

目前树莓派的2GB版本是45美元,4GB内存版本是55美元。

Jetson Nano这个定价让它与高配的树莓派机型有了更直接的竞争,而英伟达表示,Jetson Nano还支持单接树莓派的高质量摄像头(谜之微笑)。

Mini Raspberry Pi ——受波士顿动力启发的四足机器人

波士顿动力的机器狗,每次升级都会让大家眼前一亮。

波士顿动力-机器狗

但大家能不能用开源软件DIY一只呢?

一个外国朋友就在Raspberry Pi 3B的基础上开发了“Spot Micro”四足机器人。

树莓派开发的机器狗

通过构建此项目,redditor/thetrueonion(又名Mike)用C++和Python自学机器人软件开发,让机器人行走并掌握速度和方向控制。

Mike受到了Spot的启发,而Spot是波士顿动力公司为工业开发的机器人之一,可以执行远程操作和自主感应。

它如何行走?

迷你“Spot Micro”机器人通过键盘调整三轴角度命令/身体姿势控制模式,可以实现“步行状态”或“小跑状态”。

前者是一种四阶段步态,一次有两条腿对称运动(就像小跑)。

后者是八阶段步态,一次腿部摆动,并且在两者之间进行身体移动以保持平衡(就像人类走路一样)。

在此广泛的演练中,Mike分解了如何使机器人行走,并按顺序将舵机连接到PCA9685控制板。

操作系统和框架

Ubuntu 16.04 + ROS

用到那些零件?


1、树莓派3B
2、舵机控制板:PCA9685,通过I2C控制
3、舵机:12×PDI-HV5523MG
4、液晶面板:16×2 I2C液晶面板
5、电池:2s 4000 mAh锂电池,直接连接至电源伺服器
6、UBEC:HKU5 5V/5A ubec,作为5V稳压器为Raspberry Pi,LCD面板,PCA9685控制板供电
7、“Spot Micro”的Thingiverse 3D打印文件

代码地址:

https://github.com/mike4192/spotMicro