1、各位同学,下午好!,主要内容,第1部分:设计方案 第2部分:硬件设计 第3部分:软件设计 第4部分:调试,第1部分:设计方案,本设计中的主要模块 单片机主控电路 角度传感器 引导线检测模块 电机驱动模块 液晶显示模块组成,第1部分:设计方案,第2部分:硬件设计,整个系统由以下几个部分组成: C8051F330单片机主系统 步进电机驱动 角度传感器设计 路径检测 液晶显示,第2部分:硬件设计,步进电机驱动模块,第2部分:硬件设计,角度传感器设计模块,第2部分:硬件设计,角度传感器设计模块,第2部分:硬件设计,红外传感器ST168检测模块,第3部分:软件设计,开发工具开发语言:C51语言开发环境:
2、Keil uVision3,第3部分:软件设计,系统初始化,记录时间,向前行驶,走偏检测,纠正偏差,读角度值,行驶60cm?,减速,走步调整,-3+3,寻平衡测量,保持平衡,等5秒,向前行驶,走偏检测,纠正偏差,到达终点?,计时,显示时间,返回到起点,Y,N,Y,N,第3部分:软件设计,主要函数模块 系统初始化 走偏检测 寻找平衡时的走步调整,第3部分:软件设计,寻找平衡时的走步调整 此函数取得AD转换值,当离平衡位置越近时,每次走步越小,最终能快速达到平衡。 跷跷板正负大概5,那么向完全左倾时,AD转换值为325,在完全右倾时,AD转换值为614,那么平均每度相隔的值为(614-325)/1
3、0=28.9 大概就是30点/度,那么在平衡位置时的允许值是485-520,相差35,就是说平衡的预留值为1.2度,当跷跷板在此范围的时候都是平衡。,第4部分:调试,硬件调试 驱动电路的调试 此部分焊接了两组,分别驱动左轮和右轮,在调试时,发现只有右轮正常工作,而左轮出现了随机掉步的现象,于是估计是电动机两相绕组接错,脉冲发送丢失,或者是转矩太小。,第4部分:调试,硬件调试 角度检测模块调试 首先调节电位器使得LM358的正输入为1.2V,然后使得精密点位器上的重锤垂直向下,调节和其并联的电位器,使得AD620的输入相同,用示波器观察输出波形,使得小车在平衡位置,然后拨动精密电位器,输出波形有
4、微小变化,这个是不符合要求的。于是检查1,8脚跨接的电阻的大小,发现阻值太小,更换一电阻后再次拨动精密电位器观察输出波形,发现电压变化范围变大,调试完成。,第4部分:调试,软件调试 AD转换值检测 此部分同样使用在线调试,监视AD转换后的寄存器的值。 首先将小车放到跷跷板的最左端,运行程序,进行一次AD转换,读取转换值为325;然后将小车放到最右端,进行一次AD转换,读取转换值为614;最后将小车放到平衡的位置,使跷跷板平衡,再读取一次,转换值为488 然后将这些值写入到程序中。运行程序,小车能够最终找到平衡,调试完成。,结 论,本设计的特色和创新 硬件上采用一个精密电位器和一个普通电位器组成惠斯顿电桥作为角度传感器,没有采用专用的角度传感器芯片。在小车寻找平衡点的过程中使用了PD算法,能够快速找到平衡。,