Hi3861智能小车(二) 原创 精华

细嗅蔷薇05
发布于 2022-6-3 20:52
浏览
1收藏

    原有功能不变,系统升级为OpenHarmony3,增加磁力计和陀螺仪模块,现在能够通过Wifi网络遥控小车,写了一个简单PC上位机程序。

Hi3861智能小车(二)-鸿蒙开发者社区

 

        小车要实现自动控制,首先要有能对自身运行情况感知的能力,通过对运行状态的反馈,再通过预设算法控制小车的运行,最终达成操控的能力。

 

        在原有简单驱动的基础上,添加如下新功能:

 

        第一部实现了通过超声波模块对障碍物的检测,因为采用的HC-SR04型号的超声波模块,可测的角度范围小,行驶过程容易刮蹭车身,所以在超声波模块下加了一个舵机,一次测3个方向,覆盖角度可以超过90度,这样监测前方障碍物基本没有问题。

 

Hi3861智能小车(二)-鸿蒙开发者社区

 

        磁力计,就是指南针,通过对地磁的监测获得地磁角,测得小车运行得方向。通过角度的变化,可以纠正行驶偏航,配合陀螺仪模块,可以粗略推算出小车行进轨迹。

 

        陀螺仪模块,可以获取小车的运行状态,行进的速度,行进的方向。如果小车是行进状态,加速度没有变化,这就说明翻车了或者是卡住了,就要停止行进,做出检查,做出处理。

 

Hi3861智能小车(二)-鸿蒙开发者社区

 

        普通玩具小电机的误差是挺大的,所以左右电机速度补偿控制,左右电机各自独立运行参数。

 

        联网的问题,再“碰一碰”没实现前,我把Wifi登录名和密码写在了代码里,当启动TCP服务端的时候,通过OLED显示连接IP地址和端口号,方便连接。

 

Hi3861智能小车(二)-鸿蒙开发者社区

 

        因为也是探索性的一次尝试性的制作,没有经验,完全是臆想加试错,一步步做。现在对小车系统有更深入的理解,也有更多的想法想要尝试一下。

 

        小车做到现在还没有解决的问题:

 

        磁力计模块,在单独运行的结果是非常令人满意的,5度左右的波动,但是跟小车各个组件放在一起,周围的磁场对它影响非常大,距离舵机太近了,现在是失效的。无耐啊,以后换个小车底盘,重新排线布局来解决。

 

        Hi3861这款芯片是非常不错的一款芯片,非常稳定,但是毕竟处理能力有限,如果加入太多需要实时处理的数据,它就有点吃不消了,右眼可见的延迟。要想不撞车,那就得像玉兔号一样,1小时走1米了。还有个问题就是端口太少了,我用2块Hi3861通过串口并联,2块Hi3861一起工作,性能不够硬件凑,好怀念多线程。但是组装完小车这个结构重心又太高了。所以用更强一点的处理器,比如Hi3861。

 

Hi3861智能小车(二)-鸿蒙开发者社区

 

        所以,最后这个小车平台,我会改造成一个简单得遥控小车。能实现简单得自主控制。

 

        下一个目标:

 

        换个更大的小车平台,更换强的开发板(Hi3516),用更好得配件,加上摄像头(Hi3518),最终实现一个真正能有一定工作能力的无人智能小车平台。

 

        代码说明:

 

        各个功能模块看文件名就能看出来,模块说明都写在了代码头部。主要功能部分在入口文件里,整体上就是流水账过程,没有做整理,比较方便看出流程,都是最核心的部分。自动驾驶部分优化的不好,Hi3861跑不起来,而且错误挺多的,就不放出来了。改改好了放在下一部里。

 

        上位机,用C#写的,代码实现的比较简单。

 

Hi3861智能小车(二)-鸿蒙开发者社区

        随后再改进,在更新。谢谢!

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
car_vector_v02.zip 23.04K 218次下载
CarWin_v2.zip 63.8K 202次下载
3
收藏 1
回复
举报
1条回复
按时间正序
/
按时间倒序
真是大聪明
真是大聪明

感谢博主

回复
2023-7-26 17:31:59
回复
    相关推荐