指标
1.手机作遥控器控制智能小车
2.实时视频传输
3.基于车道线检测的自动驾驶
1.安卓手机遥控器
原理(两种可选方案)
a.通过网络实现
树莓派连手机热点,cardrive.py脚本搭建简单的支持socket协议的服务器,手机端的安卓app作为客户端连接服务器发送前进后退左转右转请求并设定速度,树莓派收到请求后识别用PWM调速、执行相应的命令
b.通过蓝牙实现
实现
a.
cardrive.py
按键控制.apk
b.
问题
a.手机热点连接范围有限,超过距离会出现断开连接无法控制的情况,改用校园网是否会好
2.实时视频传输
原理
mjpg-streamer将摄像头采集到的图像以流的形式通过基于ip的网络传输至浏览器,我们可通过手机或PC的浏览器如华为浏览器(手机)、Firefox、Chrome来访问,并以Stream或Javascript的形式来观看动态图像即视频,或以Static的形式来观看某一时刻的静态图像即照片
USB摄像头与树莓派主板相连,直接置于车身两舵机上
关于mjpg-streamer:mjpg-streamer - 每一天为明天@liitokala - CSDN博客 https://blog.csdn.net/Wuhzossibility/article/details/6427254
实现
树莓派安装并检测使用mjpg-streamer
将命令打包成可执行的sh文件streamer.sh
将可执行的sh文件设置为开机自启动
【教程】树莓派程序开机自启动方法总结 - 简书 https://www.jianshu.com/p/86adb6d5347b
问题
第三步写好的sh文件无法执行:
终端进入sh文件所在目录,chmod 777 streamer.sh 以增加权限设该文件为可执行
第四步报错/bin/bash^M: 坏的解释器:没有那个文件或目录:
我自己喜欢在windows下写好脚本再发送到树莓派,在win下编辑的时候,换行结尾是\n\r , 而在linux下 是\n,所以才会有 多出来的\r,用指令:sed -i 's/\r$//' build.sh 会把 build.sh 中的\r 替换成空白,成功!检验,开机自启!