基于鸿蒙系统 + Hi3861 的wifi小车,可以通过电脑、手机控制
基于鸿蒙系统 + Hi3861 的WiFi小车
首先,我们得有一套WiFi小车套件,其实也是Hi3861 加上电机、循迹模块、超声波等模块。
小车安装完大概是这样:
3.13.1 电机驱动
我们这里先只做最简单的,驱动小车的电机,让小车跑起来。
电机的驱动板如下图,目前电机驱动芯片用的是L9110S芯片。
典型的应用电路如下图:
我们可以看到,如果要控制电机,我们芯片至少需要2路PWM信号,一路用于控制正转,一路用于控制反转。
然后我们小车有两个轮子,需要两个电机,所以我们需要 4 路PWM信号。
查阅小车资料,可以知道,目前Hi3861 芯片用来控制电机的4路PWM分别是:
知道了PWM通道和对应的GPIO口,我们就可以开始编程了。
首先PWM初始化部分:
void pwm_init(void){GpioInit();//引脚复用IoSetFunc(WIFI_IOT_IO_NAME_GPIO_0, WIFI_IOT_IO_FUNC_GPIO_0_PWM3_OUT); IoSetFunc(WIFI_IOT_IO_NAME_GPIO_1, WIFI_IOT_IO_FUNC_GPIO_1_PWM4_OUT); IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_PWM0_OUT); IoSetFunc(WIFI_IOT_IO_NAME_GPIO_10, WIFI_IOT_IO_FUNC_GPIO_10_PWM1_OUT); //初始化pwmPwmInit(WIFI_IOT_PWM_PORT_PWM3);PwmInit(WIFI_IOT_PWM_PORT_PWM4);PwmInit(WIFI_IOT_PWM_PORT_PWM0);PwmInit(WIFI_IOT_PWM_PORT_PWM1);}
控制小车前进、后退、左转、右转、停止的函数:
void pwm_stop(void){//先停止PWMPwmStop(WIFI_IOT_PWM_PORT_PWM3);PwmStop(WIFI_IOT_PWM_PORT_PWM4);PwmStop(WIFI_IOT_PWM_PORT_PWM0);PwmStop(WIFI_IOT_PWM_PORT_PWM1);}//前进void pwm_forward(void){//先停止PWMPwmStop(WIFI_IOT_PWM_PORT_PWM3);PwmStop(WIFI_IOT_PWM_PORT_PWM4);PwmStop(WIFI_IOT_PWM_PORT_PWM0);PwmStop(WIFI_IOT_PWM_PORT_PWM1);//启动A路PWMPwmStart(WIFI_IOT_PWM_PORT_PWM3, 750, 1500);PwmStart(WIFI_IOT_PWM_PORT_PWM0, 750, 1500);}//后退void pwm_backward(void){//先停止PWMPwmStop(WIFI_IOT_PWM_PORT_PWM3);PwmStop(WIFI_IOT_PWM_PORT_PWM4);PwmStop(WIFI_IOT_PWM_PORT_PWM0);PwmStop(WIFI_IOT_PWM_PORT_PWM1);//启动A路PWMPwmStart(WIFI_IOT_PWM_PORT_PWM4, 750, 1500);PwmStart(WIFI_IOT_PWM_PORT_PWM1, 750, 1500);}//左转void pwm_left(void){//先停止PWMPwmStop(WIFI_IOT_PWM_PORT_PWM3);PwmStop(WIFI_IOT_PWM_PORT_PWM4);PwmStop(WIFI_IOT_PWM_PORT_PWM0);PwmStop(WIFI_IOT_PWM_PORT_PWM1);//启动A路PWMPwmStart(WIFI_IOT_PWM_PORT_PWM3, 750, 1500);}//右转void pwm_right(void){//先停止PWMPwmStop(WIFI_IOT_PWM_PORT_PWM3);PwmStop(WIFI_IOT_PWM_PORT_PWM4);PwmStop(WIFI_IOT_PWM_PORT_PWM0);PwmStop(WIFI_IOT_PWM_PORT_PWM1);//启动A路PWMPwmStart(WIFI_IOT_PWM_PORT_PWM0, 750, 1500);}
最后,要使用pwm功能,我们需要修改
vendor\hisi\hi3861\hi3861\build\config\usr_config.mk 文件,把PWM功能打开,增加一行 CONFIG_PWM_SUPPORT=y 。如图:
3.13.2 WiFi控制部分
我们在小车上面简单编写一个UDP程序,监听50001端口号。这里使用的通信格式是json,小车收到UDP数据后,解析json,并根据命令执行相应的操作,例如前进、后退、左转、右转等,代码如下:
电脑端,使用C#编写一个测试程序,可以手动输入小车的IP地址,也可以不输入IP地址,这样,电脑端程序会发送广播包给小车,也可以起到控制的功能。
小车的源码,C#控制端的代码均开源,大家可以自由修改,发挥自己的想象,创造出更厉害炫酷的DIY产品。
基于鸿蒙系统 + Hi3861 的wifi小车,可以通过电脑、手机控制相关推荐
- 鸿蒙系统还会推出吗,华为明年所有自研设备都升级鸿蒙系统,还会推出基于鸿蒙系统的新机...
不负期许,华为鸿蒙OS手机版如期而至.今日(12月15日),鸿蒙OS 2.0手机开发者Beta版本正式上线,支持运行安卓应用,P40.Mate 30系列可申请公测. 国内媒体报道称,华为消费者业务软件 ...
- 鸿蒙开源源码,基于鸿蒙系统开源项目OpenHarmony源码静态分析
#ifndef __scc #define __scc(X) ((long) (X)) // 转为long类型 typedef long syscall_arg_t; #endif #define _ ...
- 基于鸿蒙系统的APP测试技术,快来入坑
说到移动端的测试,可能大家能够想到的是在Android和Ios系统下来进行,那么随着华为鸿蒙系统的广泛应用,测试的关注点也有了新的领域.据官方的数据显示,华为鸿蒙系统已经被上亿的用户所使用,而搭载鸿蒙 ...
- 12-20210225华为海思Hi3518EV300在鸿蒙系统下测试WIFI(AP+STATION模式)
12-20210225华为海思Hi3518EV300在鸿蒙系统下测试WIFI(AP+STATION模式) 2021/2/25 10:45 [HarmonyOS HiSpark_IPC_DIY开发套件] ...
- 基于Wemos D1避障WiFi小车及智能垃圾桶设计
基于Wemos D1避障WiFi小车及智能垃圾桶设计 一.实验器材 主控芯片 Wemos D1 其他器材 HC-SR04超声波.L9110s电机.ESP82660WiFi模块.蜂鸣器 所需设备 TCP ...
- 安卓手机能用signal吗_现在的安卓手机可以直接更新成鸿蒙系统吗?还是必须购买新的手机?...
现在的安卓手机可以直接更新成鸿蒙系统么?还是必须购买新的手机? 这个问题的决定者在于华为,从实际意义上面来讲的话,安卓手机的互刷是可以的,因为现在安卓手机底层架构都是一样的,我们互刷只是每个厂商的基于 ...
- 华为鸿蒙系统是指芯片吗_麒麟芯片+鸿蒙系统+国产屏幕,这样的华为手机你会买吗?...
原标题:麒麟芯片+鸿蒙系统+国产屏幕,这样的华为手机你会买吗? 如今的华为手机确实受到了诸多的限制,虽然说目前很多厂商只是部分暂停合作,但对于华为的影响却是不言而喻的,因为一旦全面停止合作的话,华为也 ...
- 以前的的华为手机可不可以用鸿蒙系统_鸿蒙系统面世之后,以前的华为手机可以用鸿蒙系统吗?不好意思!...
鸿蒙系统面世之后,以前的华为手机可以用鸿蒙系统吗?不好意思! 华为是我国第一大手机厂商,也是一家具有十足创新力的公司,有着相当多的专利技术,不过手机的方面依旧系统才是核心技术,而华为为了避免这样的垄断 ...
- 荣耀变鸿蒙系统,鸿蒙系统首批升级机型曝光!荣耀手机遗憾缺席,原因很简单...
原标题:鸿蒙系统首批升级机型曝光!荣耀手机遗憾缺席,原因很简单 大家好,我是科技君的探讨,欢迎关注我,与我一起进行科技的探讨. 华为鸿蒙系统可以说是目前数码圈关注度最高的事件之一了.从早期公布,到官宣 ...
最新文章
- 一种巧妙的drawable.xml替代方案
- nginx和apache 配置
- C++11空指针(nullptr)
- 服务器操作系统用什么好,服务器操作系统一般用什么
- linux c 读取摄像头,Linux下onvif客户端获取ipc摄像头 获取能力:GetCapabilities
- day28 socket网络编程
- 大数据时代网络安全必读
- linux卸载交叉工具,linux-如何从crosstool-ng工具链名称中删除供应...
- @tap和@click的区别_计算属性---uview工作笔记001
- pxe dhcp offer之后没有_秒懂DHCP是什么
- java实现对称加密—数据库密码加解密
- cenos 安装 Docker
- “2016年度优秀软件工程造价师”“工信部行业标准《软件研发成本度量规范》2016年度应用示范单位” 评选活动正式启动...
- 删除magisk模块
- oracle sql列转行_Oracle列转行函数使用
- 高可用、全集成、定制化,蚂蚁金服自动化测试如何演进
- 街头卖艺里的故事,你还会相信吗?
- 串口异步通信——时序宽度测试
- android rndis win10,win10系统安装驱动Rndis的教程介绍
- 汉诺塔python创新设计大赛_机械创新设计大赛官网