# SelfDirveCar_OpenCV_MLP_RaspberryPi
**基于树莓派与Opencv和MLP神经网络搭建的自动驾驶小车(Self driving car based on raspberry pie and opencv and MLP Neural Network)**
本项目采用的机器学习的MLP算法,本质上是一个多分类问题。系统复杂度低,集成性高。
## 说明
本项目使用arduino,树莓派等硬件模块,设计了一种采用摄像头,并使用MLP神经网络做出行为决策进行路径识别的自动驾驶小车。主要设计方法如下,用arduino、树莓派和摄像头等模块为主的硬件环境搭建小车。小车将摄像头采集到的数据发送到上位机。上位机保存图像作为神经网络训练集,调用OpenCV,numpy等工具进行处理。上位机搭建神经网络并训练模型。上位机接收图像数据,加载训练模型,解算图像得出控制参数发送给小车。
最终,通过对相关软件和硬件的开发,实现了对小车硬件环境的搭建和上位机软件环境的搭建。经过测试,验证了小车可以使用摄像头进行图像采集并由上位机处理保存,上位机可以训练MLP神经网络得到模型,通过调用网络模型小车可以在特定路径下做出沿当前路径行驶、转弯或停止等决策。
这个项目是基于OpenCV和树莓派的一个自动驾驶小车的系统设计与实现。项目整体分为两个部分,基于树莓派的硬件部分与基于opencv的算法部分。
OpenCV在该项目中主要使用在2个方面:
1、对输入图像的处理,调用了CV中的灰度化、感兴趣的区域选取等方法;
2、神经网络算法 ,调用了opencv的ML库中的多层感知机模型(MLP)来对输入图像进行分类。
树莓派在该项目中主要用在2个方面:
1、配合树莓派摄像头收集信息,
2、通过socket与上位机通讯。
另外,项目中的小车的硬件还使用了arduino、蓝牙、电机驱动器等模块。目的是通过蓝牙连接arduinoh和我的电脑,使我的电脑可以通过蓝牙发送指令给arduino来控制小车的前进、后退等行为。
想要实现这个项目,首先,自然需要搭建好一个小车。
该小车在搭建使用的硬件模块清单如下:
树莓派3b+, 树莓派原装摄像头, 包含电机的小车车体, 电机驱动模块,arduino nano开发版, 蓝牙主机模块, 蓝牙从机模块。
小车整体硬件主要的部分为以上所示但要做完整的小车搭建,还是需要一些其他实验工具来为小车做焊接固定、调试模块等工序的。
因此诸如电烙铁、螺钉、USB转TLL模块也是需要准备的。
## 自动驾驶小车的搭建
小车的硬件环境设计使用arduino为控制核心驱动电机运转,树莓派控制摄像头传感器采集路况信息,用于实现电机驱动小车运转以及传感器采集数据。此外在硬件方面还包括电源和蓝牙模块,用于给小车供电以及接受上位机数据。
### 小车硬件的整体设计
本设计的项目总体设计图如图 所示。
<img src="C:\Users\zhangzhiyong\AppData\Roaming\Typora\typora-user-images\image-20200319204806868.png" alt="image-20200319204806868" style="zoom: 67%;" />
图 自动驾驶小车系统总体设计图
小车以 arduino 和树莓派为核心,并搭载有摄像头感器模块,蓝牙等硬件模块作为下位机的硬件部分,用 PC 机端相关程序为作为上位机。 Arduino 和 树莓派之间采用串口进行通信,Arduino 主要用于负责小车的运动控制,通过串口接收来自树莓派所发来的控制信息,树莓派主要负责图像的接收和发送,还有与上位机间的信息传递,树莓派与上位机之间通过无线局域网络进行连接。PC 机主要负责接收树莓派传来的图像数据,并利用 PC机对神经网络进行训练,预测小车的运动方向并返回给树莓派。
### 小车底层驱动的搭建
在获取到一个小车的车体后,就可以开始搭建小车的硬件模块了。下面是一些主要的部件。
### 电源
电源模块主要由三块18650的电池构成和LM2596S DC-DC稳压降压模块构成,电源总电压12.8V。其中DC降压模块带有显示功能,可以显示当前电压以及输出电压的大小。186650电池如下左图所示,LM2596S DC-DC稳压模块如右图所示。
<img src="C:\Users\zhangzhiyong\AppData\Roaming\Typora\typora-user-images\image-20200319205413823.png" alt="image-20200319205413823" style="zoom: 50%;" />
### 底层驱动
小车使用减速直流电机,如图2.2.2-1所示,使用TB6612FNG驱动模块,如图所示。通过写好的arduino程序,可以实现arduino控制器发送PWM波驱动TB6612FNG驱动器控制两路电机,利用差速转向,实现小车前进、后退、转向的功能。并且还可以通过打开串口接收由主机蓝牙模块发送过来的控制参数调整小车各引脚电平和PWM波的变化,来实现远程控制小车的功能。
点击驱动如下左图所示,TB6612FNG驱动模块如下右图所示。
<img src="C:\Users\zhangzhiyong\AppData\Roaming\Typora\typora-user-images\image-20200319205528969.png" alt="image-20200319205528969" style="zoom: 50%;" />
使用开源硬件arduino作为小车的底层驱控制核心,实现对小车方向进行控制,诸如,前进后退,差速转向等。arduino实物图如下:
<img src="C:\Users\zhangzhiyong\AppData\Roaming\Typora\typora-user-images\image-20200319205707973.png" alt="image-20200319205707973" style="zoom: 67%;" />
硬件原理图如下:
<img src="C:\Users\zhangzhiyong\AppData\Roaming\Typora\typora-user-images\image-20200319205724763.png" alt="image-20200319205724763" style="zoom: 67%;" />
### 蓝牙通信
在采集训练数据训练神经网络训练和自动驾驶途中,都对小车的远程控制有一定要求,因此在这里采用蓝牙模块,来实现对小车的远程控制。其中小车搭载HC-06蓝牙(如图所示)从机接收模块,上位机接HC-05蓝牙主机(如图所示)发送模块。通过串口助手,USB转TLL等工具配置好蓝牙模块后,即可在主机端采集发送数据,从机端接收到数据。之后,便可在上位机端编程,实现上位机通过HC-05蓝牙主机模块发送控制信号,HC-06蓝牙从机模块接收到控制信息发送给arduino后,控制小车进行指定的动作。
蓝牙HC-06如左图所示,蓝牙HC-05如右图所示。
<img src="C:\Users\zhangzhiyong\AppData\Roaming\Typora\typora-user-images\image-20200319205901443.png" alt="image-20200319205901443" style="zoom:50%;" />
### 树莓派与摄像头
数据采集与处理模块在系统的硬件设计上,主要包含由树莓派摄像头Pi camera构成的数据采集模块以及有树莓派构成的数据处理模块。其中树莓派摄像头主要功能为采集视频和图像数据,树莓派主要功能包括,驱动摄像头运转以及通过socket网络通信,传输视频和图像数据到上位机做进一步处理。
树莓派实物如左图所示,树莓派摄像头如右图所示。
<img src="C:\Users\zhangzhiyong\AppData\Roaming\Typora\typora-user-images\image-20200319210059796.png" alt="image-20200319210059796" style="zoom: 33%;" />
### 小车实物
除了以上硬件模块,还需自购一块小车车体。以小车车体作为依托,完成硬件的连接,小车就算构建完成了。
小车构建完成的实物如下图所示:
<img src="C:\Users\zhangzhiyong\AppData\Roaming\Typora\typora-user-images\image-20200319210317681.png" alt="image-20200319210317681" style="zoom:50%;" />![image-20200319211131437](C:\Users\zhangzhiyong\AppData\Roaming\Typora\typora-user-images\image-20200319211131437.png)
其次,在小车硬件环境搭建好后,需要完成arduino驱动程序和树莓派端的数据采集与发送程序的编写。
小车arduino的驱动程序路径为: [SelfDirveCar_OpenC
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于树莓派与Opencv和MLP神经网络搭建的自动驾驶小车项目源码.zip本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于树莓派与Opencv和MLP神经网络搭建的自动驾驶小车项目源码.zip本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于树莓派与Opencv和MLP神经网络搭建的自动驾驶小车项目源码.zip本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于树莓派与Opencv和MLP神经网络搭建的自动驾驶小车项目源码.zip本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使
资源推荐
资源详情
资源评论
收起资源包目录
基于树莓派与Opencv和MLP神经网络搭建的自动驾驶小车项目源码.zip (915个子文件)
carcarcar.iml 398B
fourlun.ino 5KB
frame00677.jpg 21KB
frame00676.jpg 21KB
frame00670.jpg 21KB
frame00669.jpg 21KB
frame00673.jpg 21KB
frame00671.jpg 21KB
frame00667.jpg 21KB
frame00674.jpg 21KB
frame00668.jpg 21KB
frame00675.jpg 21KB
frame00672.jpg 21KB
frame00666.jpg 21KB
frame00685.jpg 20KB
frame00542.jpg 20KB
frame00543.jpg 20KB
frame00534.jpg 20KB
frame00529.jpg 20KB
frame00530.jpg 20KB
frame00531.jpg 20KB
frame00527.jpg 20KB
frame00532.jpg 20KB
frame00525.jpg 20KB
frame00526.jpg 20KB
frame00528.jpg 20KB
frame00533.jpg 20KB
frame00535.jpg 20KB
frame00524.jpg 20KB
frame00521.jpg 20KB
frame00523.jpg 20KB
frame00522.jpg 20KB
frame00686.jpg 20KB
frame00562.jpg 20KB
frame00540.jpg 19KB
frame00563.jpg 19KB
frame00722.jpg 19KB
frame00725.jpg 19KB
frame00723.jpg 19KB
frame00560.jpg 19KB
frame00724.jpg 19KB
frame00541.jpg 19KB
frame00678.jpg 19KB
frame00520.jpg 19KB
frame00752.jpg 19KB
frame00753.jpg 19KB
frame00549.jpg 19KB
frame00565.jpg 19KB
frame00550.jpg 19KB
frame00720.jpg 19KB
frame00561.jpg 19KB
frame00751.jpg 19KB
frame00721.jpg 19KB
frame00551.jpg 19KB
frame00459.jpg 19KB
frame00447.jpg 19KB
frame00460.jpg 19KB
frame00559.jpg 19KB
frame00446.jpg 19KB
frame00450.jpg 19KB
frame00437.jpg 19KB
frame00449.jpg 19KB
frame00434.jpg 19KB
frame00440.jpg 19KB
frame00433.jpg 19KB
frame00445.jpg 19KB
frame00458.jpg 19KB
frame00455.jpg 19KB
frame00452.jpg 19KB
frame00448.jpg 19KB
frame00465.jpg 19KB
frame00438.jpg 19KB
frame00443.jpg 19KB
frame00454.jpg 19KB
frame00462.jpg 19KB
frame00444.jpg 19KB
frame00453.jpg 19KB
frame00423.jpg 19KB
frame00457.jpg 19KB
frame00435.jpg 19KB
frame00441.jpg 19KB
frame00464.jpg 19KB
frame00461.jpg 19KB
frame00439.jpg 19KB
frame00429.jpg 19KB
frame00431.jpg 19KB
frame00463.jpg 19KB
frame00537.jpg 19KB
frame00430.jpg 19KB
frame00422.jpg 19KB
frame00442.jpg 19KB
frame00451.jpg 19KB
frame00432.jpg 19KB
frame00456.jpg 19KB
frame00419.jpg 19KB
frame00436.jpg 19KB
frame00519.jpg 19KB
frame00424.jpg 19KB
frame00428.jpg 19KB
frame00426.jpg 19KB
共 915 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
盈梓的博客
- 粉丝: 9560
- 资源: 2308
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于ssh员工管理系统
- 5G SRM815模组原理框图.jpg
- T型3电平逆变器,lcl滤波器滤波器参数计算,半导体损耗计算,逆变电感参数设计损耗计算 mathcad格式输出,方便修改 同时支持plecs损耗仿真,基于plecs的闭环仿真,电压外环,电流内环
- 毒舌(解锁版).apk
- 显示HEX、S19、Bin、VBF等其他汽车制造商特定的文件格式
- 操作系统实验 Ucore lab5
- 8bit逐次逼近型SAR ADC电路设计成品 入门时期的第三款sarADC,适合新手学习等 包括电路文件和详细设计文档 smic0.18工艺,单端结构,3.3V供电 整体采样率500k,可实现基
- 操作系统实验 ucorelab4内核线程管理
- 脉冲注入法,持续注入,启动低速运行过程中注入,电感法,ipd,力矩保持,无霍尔无感方案,媲美有霍尔效果 bldc控制器方案,无刷电机 提供源码,原理图
- Matlab Simulink#直驱永磁风电机组并网仿真模型 基于永磁直驱式风机并网仿真模型 采用背靠背双PWM变流器,先整流,再逆变 不仅实现电机侧的有功、无功功率的解耦控制和转速调节,而且能实
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功