# Liangshan Pi Car **Repository Path**: starry-m/liangshan-pi-car ## Basic Information - **Project Name**: Liangshan Pi Car - **Description**: 基于梁山派的智能小车 - **Primary Language**: C - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2023-02-18 - **Last Updated**: 2023-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于立创梁山派的智能小车制作 ## 一、功能需求分析 立创开发板官方的扩展版里面集成了许多功能,对于智能小车来说是完全够了的。但是鉴于以前做小车完了挺久的红外循迹,所以这次我去掉了红外循迹,改用OPEN MV做循迹以及其他视觉任务。 还有,作为一块扩展版怎么能没有屏幕呢!所以我把NRF24L01所使用到的spi接口也连上了屏幕。 大致就这么多了。 ## 二、硬件分析 ### 展版上所使用到的资源如下: `串口0 -----用于在程序运行时打log` `串口5 -----用于和OPEN MV通信` `串口6 -----用于蓝牙模块通信` `SPI3-------用于NRF24L01通信及屏幕显示` `TIMER1和2--用于控制N20电机` `TIMER5-----用于定时任务开启` `ADC0-------用于测量电池电压` `GPIO-------用于按键、灯、超声波模块以及其他模块的控制引脚` ### 不足之处: 板上我使用的是AMS1117-5.0降压(因为便宜),一开始使用没有问题。但是当我接入OPEN MV时,用电量大增,1117发热严重,甚至出现过短暂断电,这些都是过载引起的。。。 ## 三、软件实现 在借鉴了官方的工程以及B站UP的开源资料,我移植了蓝牙遥控、手柄遥控、陀螺仪遥控、超声波避障、超声波跟随以及目标追踪(还有一点问题)这些功能。 程序分两块运行,也算是分时调度了,哈哈。一块是主程序while循环下面,需要实时的做按键检测,以及通过NRF24L01与遥控手柄进行通信。另一块我用定时器开了个1秒的定时中断,用于屏幕信息的刷新显示、 电池电压检测(当电压低于某一值时蜂鸣器报警)及运行指示灯闪烁。 小车启动流程为:上电运行后按下一次按键,开始指示灯亮,才会允许小车运动。再次按下,小车停止。 初始模式为蓝牙控制,可通过手机蓝牙控制(其实也可以用手柄上的蓝牙进行通信控制,但我手上只剩下一块蓝牙模块了,遂放弃),遥控手柄上可进行控制模式切换。 在手柄遥控模式下小车受手柄摇杆控制前进转向后退;在陀螺仪控制模式下小车受手柄上陀螺仪控制;在避障模式下,小车自动向前行驶,当前方检测到障碍物时,后退一下,并转向;在跟随模式下,会与前方物体保持一定距离(在一定范围内);在目标追踪模式下,会先识别一个物体,然后跟随目标转动。 具体效果见演示视频~( ̄▽ ̄)~* ## 四、实物展示 车车~~~ ![车1.jpg](/Picture/车1.jpg) ![车2.jpg](/Picture/车2.jpg) 遥控器~~~ ![遥控手柄.jpg](/Picture/遥控手柄.jpg) 屏幕 ![屏幕.jpg](/Picture/屏幕.jpg) 演示视频B站链接:https://www.bilibili.com/video/BV1LY411v7FX/ 参考资料链接:https://gitee.com/ChengHHHHHH/OpenMV4P-micro_mass-produced https://www.bilibili.com/video/BV1WG4y1U7s6/ https://lckfb.com/project/detail/lckfb_lspi?param=baseInfo ## 完结咯~~~