技术文档.docx
- 文档编号:14415698
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:11
- 大小:119.42KB
技术文档.docx
《技术文档.docx》由会员分享,可在线阅读,更多相关《技术文档.docx(11页珍藏版)》请在冰点文库上搜索。
技术文档
探月小车的软件设计与任务实现
制作单位
首钢工学院
目录
一.硬件基本原理分析3
1.ARM和AVR之间串口通信协议3
2.PWM电机驱动3
3.红外检测寻迹4
4.红外测温4
5.图像拍摄4
二.软件部分4
1.小车行进的PID算法4
2.拍照4
3.测温5
4小车的自检…………………………………………………………………………………..
5行进过程中的提示音………………………………………………………………………..
三.月球车程序流程5
1.开机脚本5
2.程序流程5
3.程序线程5
四.月球车程序主要函数6
五.小车使用说明7
探月小车的硬件设计与任务实现
摘要
探月小车可基本划分为软件和硬件部分。
探月小车依靠ARM与AVR单片机间的串口通信协议来完成数据的传送,实现小车完成指定任务的控制。
鉴于此次竞赛为嵌入式我们着重加强软件方面的调试与创新,依靠已有的求实代码我们进行了大量的改动与重写实现了速度的极限,并得到了大量的调试数据和最佳运行参数。
通过创新我们相继开发出了小车运行的PID算法和行进过程提示音以及对于GRB图像识别、多套任务调用、自动识别出错等方面进行了探索,我们对于软件方面已经基本熟悉,得到了相当多的提高,实现了探月小车的的识径、拍照、测温、拐弯等基本功能。
对于探月小车的各个操作步骤、ARM的交叉编译、单片机工作原理等有了更深的认识,我们也对于新时期的中国探月做出了自己的贡献。
关键词:
PID提示音速度软件
一、赛事背景:
迈入21世纪的中国早早地拉开了千年的探月梦想——“嫦娥工程”,人们纷纷开始了月球车的畅想,一时间各类探月小车的设计方案风靡世界。
在这种时代背景下,作为高职生的我们也希望能为国家做点事,对探月小车的探月流程进行了设计与思考。
通过模拟月球环境,让探月小车完成寻轨、拍照、测温、回传数据等任务,为国家的未来探月提供一定量的参考。
一.硬件部分
1.ARM和AVR之间串口通信
ARM与AVR单片机之间的串口通信可以仿照以太网通信里面的数据打包的概念,每
次传输都是以一个数据包为基本单位。
发送包和接收包的数据格式分别。
发送包格式
详细说明如下
0xAA:
数据包包头字节
0x06:
数据长度(不包括包头和长度字节)
PWM_L:
左轮电机PWM值,范围0~255
PWM_R:
右轮电机PWM值,范围0~255
DIR_L:
左轮电机方向,1为正向,0为反向
DIR_R:
右轮电机方向,1为正向,0为反向
EN_L:
左轮电机使能,1为使能,0为不使能
EN_R:
右轮电机使能,1为使能,0为不使能
接收包格式
0xAA:
数据包包头字节
0x06:
数据长度(不包括包头和长度字节)
左轮电机速度:
2个字节表示,按高字节-低字节顺序排列
右轮电机速度:
2个字节表示,按高字节-低字节顺序排列
模拟量1:
预留出来的左轮电机电流检测的模拟量
模拟量2:
预留出来的右轮电机电流检测的模拟量
其中,左右轮电机速度是所检测出来的编码器脉冲频率,这个频率是减速箱减速之前的,由于电机的减速比为80:
1,而电机转动一圈输出两个脉冲周期,通过这两个字节的脉冲频率值可以很容易的换算成电机的当前速度V(r/s)。
串口通信原理:
串口平时产生高电平,根据波特率得到时间片段,起始位,数据位,停止位。
发端的和接收端通过同一个波特率得到串口信息。
2.PWM电机驱动
AVR单片机使用PWM来控制月球车行进速度
PWM发生电路是采用三角波发生器产生的三角波放大后与一路可调直流电压(电流调节器输出的uk)进行比较,则电压比较器输出的是一系列方波信号。
如果改变uk的大小,那么方波脉冲宽度将会改变,从而达到脉宽调制的目的。
单片机把pwm处理过的脉冲发给直流电机,在直流电机中单位时间内产生的高电平的的比例来控制月球车的速度。
3.红外检测寻迹
红外检测使用8个红外检测元件,红外发光发射地面根据地面反射光的强度,得到一个电压值,这个电压值和红外传感器中一个可变电阻控制的比较电压相比较,比比较电压大的认为是黑色,比比较电压小的电压认为是白色,通过AD转换把模拟信号转换成数字信号,然后传递给arm芯片,arm芯片根据出来的8个检测到的信号来判断小车行进的方向。
红外检测元件
4.红外测温
任何发热的物体都会发射非可见光红外线,而温度越高,发射的红外线的强度就越大,因此我们可以通过红外传感器接受到的红外线的强度来判断物体或者环境的温度,arm把测温电路得到的模拟信号转换成数字信号,然后按照一定的比例来计算温度的大小。
5.图像拍摄
摄像头通过ARM专用的摄像头接口,通过软线把把图像信息直接传给ARM处理。
程序通过fetch_picture函数读取/dev/下摄像头驱动文件直接得到图像信息。
二.软件部分
1.小车行进算法
•Y=kX3+kd(X2-X1)+kt(X3-X2)+A
•其中k是比例系数,x是平均权,根据传感器x=temp*1.0/(*sum)-REF_VALUE;sum是黑色数目,
•if(flagSensor[i])temp+=(i+1);
•REF_VALUE是一个定值4.5
2.拍照
小车拍照的时候可能会出现延迟,所以小车停止之后,拍照五次,多次向保存图像的内存地址中写入当前摄像头拍照得到的数据,把图像延迟取消掉,试图像变得更加清晰。
[CORD]
//连续多次采样摄像头,消除图像延迟
for(i=0;i<5;i++)fetch_picture(pCamFb);
TransImage(ipAddr,7001,CAMERA_WIDTH,CAMERA_HEIGHT);
sleep
(1);
3.测温
intbeep_init(void)
{
fd_beep=open("/dev/pwm",0);
if(fd_beep<0){
perror("openpwm_buzzerdevice");
return0;
}
return1;
}
voidbeep(intcnt)
{
inti;
for(i=0;i { ioctl(fd_beep,PWM_IOCTL_SET_FREQ,1000); usleep(400*1000); ioctl(fd_beep,PWM_IOCTL_STOP); usleep(200*1000); } 三.月球车程序流程 1.开机脚本 Linux开机运行脚本,在/etc/init.d/脚本包含autorun脚本文件,在脚本中加入/home/bin/car_control,使小车开启的时候就运行这条命令开启car_control程序。 2.程序流程 (1).小车加电。 (2).小车开启加载linux内核和文件系统。 (3).小车运行/etc/init.d/autorun脚本中的最后一句的程序名称/home/bin/car_control (4).程序运行连接裁判服务端,如果连接不成功则退出程序,反之继续程序。 (5).然后判断裁判时候开始启动小车按钮,或者小车上的button按钮。 一直循环等待。 (6).小车加载设备,如果不能打开设备自检不成功则退出程序,反之继续程序。 (7).初始化程所有数据。 (8).进入程序主函数进入while循环寻迹,拍照,测温。 (9).测量温度和拍摄图像达到3次以上程序退出 3.程序线程 1.向单片机发送数据的线程 程序通过这个线程向单片机发送数据。 1.[CORD] //创建一个新的线程来专门负责向单片机发送命令 pthread_create(&send_motor,NULL,(void*)&send_motor_handler,NULL); 2.[CORD] //创建一个串口线程互斥量 pthread_mutex_init(&mutex_COMbuf,NULL); 3.[CORD] //创建一个和上位机连接的临时线程 intStartMoonCar(char*ipaddr,intport) { ipaddr_g=ipaddr;port_g=port; pthread_create(&startMoon,NULL,(void*)&StartMoonCar_Handler,NULL); return0; } 四.月球车程序主要函数 1.寻迹 2.拍照和识别 图像识别主要用于小车判断图像中心,根据颜色所在图像的比例判断小车行进的距离,然后停止拍照或者测温。 图像处理函数主要用来控制,小车到停止位置的时候然后前进的距离,和控制小车前进的方向。 3.测温 五.小车使用说明 二、硬件设计 探月小车一共可以分为CMOS视频信号采集、热电堆式红外传感器、反射式光电循迹传感器、AVI单片机和ARM芯片五个模块。 如图下: 1、对于CMOS视频信号采集其基本原理就是在CMOS传感器中,每个象素都会邻接一个放大器及A/D转换电路,用类似内存电路的方式将数据输出。 CMOS工艺的数据在传送距离较长时会产生噪声,因此,必须先放大,再整合各个象素的数据。 景物通过镜头(LENS)生成的光学图像投射到图像传感器(SENSOR)表面上,然后转为电信号,经过A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再通过USB接口传输到电脑中处理,通过显示器就可以看到图像了。 采用的是并行快速数据接收,通过并行接收每次直接将收到的一组八位数据发到ARM。 2、热电堆式红外传感器 3、反射式光电传感 红外光电传感器利用红外线在不同颜色的物体表面具有不同的反射率性质的特点,在路线识别上是采用了八个光电传感器,其中发射和接受放在一起,和地面铁的很近,尽量减小外界的干扰。 在小车行驶过程中光电传感器的发射管不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接受光接受;如果遇到黑色则红外光被吸收,小车上的接收管接收不到红外光。 单片机就是通过是否收到发射回来的红外光为依据来确定黑线的位置和小车的行走路线。 有光时产生低电平,无光时产生高电平。 然后单片机产生一组高地电平的信号量,再通过AD转化器来转换成01一样的二进制通过提供一个基准电压来判断收到的信号量是该发出高电平还是低电平,大于它就是高电平,小于它就是低电平来判断是否在黑线上运行。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 技术 文档