基于鸿蒙系统 + 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小车,可以通过电脑、手机控制相关推荐

  1. 鸿蒙系统还会推出吗,华为明年所有自研设备都升级鸿蒙系统,还会推出基于鸿蒙系统的新机...

    不负期许,华为鸿蒙OS手机版如期而至.今日(12月15日),鸿蒙OS 2.0手机开发者Beta版本正式上线,支持运行安卓应用,P40.Mate 30系列可申请公测. 国内媒体报道称,华为消费者业务软件 ...

  2. 鸿蒙开源源码,基于鸿蒙系统开源项目OpenHarmony源码静态分析

    #ifndef __scc #define __scc(X) ((long) (X)) // 转为long类型 typedef long syscall_arg_t; #endif #define _ ...

  3. 基于鸿蒙系统的APP测试技术,快来入坑

    说到移动端的测试,可能大家能够想到的是在Android和Ios系统下来进行,那么随着华为鸿蒙系统的广泛应用,测试的关注点也有了新的领域.据官方的数据显示,华为鸿蒙系统已经被上亿的用户所使用,而搭载鸿蒙 ...

  4. 12-20210225华为海思Hi3518EV300在鸿蒙系统下测试WIFI(AP+STATION模式)

    12-20210225华为海思Hi3518EV300在鸿蒙系统下测试WIFI(AP+STATION模式) 2021/2/25 10:45 [HarmonyOS HiSpark_IPC_DIY开发套件] ...

  5. 基于Wemos D1避障WiFi小车及智能垃圾桶设计

    基于Wemos D1避障WiFi小车及智能垃圾桶设计 一.实验器材 主控芯片 Wemos D1 其他器材 HC-SR04超声波.L9110s电机.ESP82660WiFi模块.蜂鸣器 所需设备 TCP ...

  6. 安卓手机能用signal吗_现在的安卓手机可以直接更新成鸿蒙系统吗?还是必须购买新的手机?...

    现在的安卓手机可以直接更新成鸿蒙系统么?还是必须购买新的手机? 这个问题的决定者在于华为,从实际意义上面来讲的话,安卓手机的互刷是可以的,因为现在安卓手机底层架构都是一样的,我们互刷只是每个厂商的基于 ...

  7. 华为鸿蒙系统是指芯片吗_麒麟芯片+鸿蒙系统+国产屏幕,这样的华为手机你会买吗?...

    原标题:麒麟芯片+鸿蒙系统+国产屏幕,这样的华为手机你会买吗? 如今的华为手机确实受到了诸多的限制,虽然说目前很多厂商只是部分暂停合作,但对于华为的影响却是不言而喻的,因为一旦全面停止合作的话,华为也 ...

  8. 以前的的华为手机可不可以用鸿蒙系统_鸿蒙系统面世之后,以前的华为手机可以用鸿蒙系统吗?不好意思!...

    鸿蒙系统面世之后,以前的华为手机可以用鸿蒙系统吗?不好意思! 华为是我国第一大手机厂商,也是一家具有十足创新力的公司,有着相当多的专利技术,不过手机的方面依旧系统才是核心技术,而华为为了避免这样的垄断 ...

  9. 荣耀变鸿蒙系统,鸿蒙系统首批升级机型曝光!荣耀手机遗憾缺席,原因很简单...

    原标题:鸿蒙系统首批升级机型曝光!荣耀手机遗憾缺席,原因很简单 大家好,我是科技君的探讨,欢迎关注我,与我一起进行科技的探讨. 华为鸿蒙系统可以说是目前数码圈关注度最高的事件之一了.从早期公布,到官宣 ...

最新文章

  1. 一种巧妙的drawable.xml替代方案
  2. nginx和apache 配置
  3. C++11空指针(nullptr)
  4. 服务器操作系统用什么好,服务器操作系统一般用什么
  5. linux c 读取摄像头,Linux下onvif客户端获取ipc摄像头 获取能力:GetCapabilities
  6. day28 socket网络编程
  7. 大数据时代网络安全必读
  8. linux卸载交叉工具,linux-如何从crosstool-ng工具链名称中删除供应...
  9. @tap和@click的区别_计算属性---uview工作笔记001
  10. pxe dhcp offer之后没有_秒懂DHCP是什么
  11. java实现对称加密—数据库密码加解密
  12. cenos 安装 Docker
  13. “2016年度优秀软件工程造价师”“工信部行业标准《软件研发成本度量规范》2016年度应用示范单位” 评选活动正式启动...
  14. 删除magisk模块
  15. oracle sql列转行_Oracle列转行函数使用
  16. 高可用、全集成、定制化,蚂蚁金服自动化测试如何演进
  17. 街头卖艺里的故事,你还会相信吗?
  18. 串口异步通信——时序宽度测试
  19. android rndis win10,win10系统安装驱动Rndis的教程介绍
  20. 汉诺塔python创新设计大赛_机械创新设计大赛官网

热门文章

  1. sqlsever2019:数据库创建和数据表的内容查看
  2. stm32平衡小车硬件部分
  3. MIT新研究:AI仅靠看X光片就能准确识别患者种族,但没人知道为什么
  4. 报刊英语单词精华-1
  5. U盘识别不了解决方案
  6. 基于51单片机的自动售货机Proteus仿真
  7. 油田智能化远程监控系统_研华智能油井远程监控系统解决方案
  8. 文件系统性能测试工具 vbbench工具
  9. 55、网络交换机上各种接口你都认识吗
  10. C++编程小游戏---杀手