工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->微机单片机电路图->单片机综合电路图->基于PIC单片机及图像处理技术设计的智能台球机器人

基于PIC单片机及图像处理技术设计的智能台球机器人

作者:angelazhang时间:2015-06-05

  • 设计摘要

台球源于英国,它是一项在国际上广泛流行的高雅室内体育运动。随着各种运动的兴起发展,台球以其内涵高雅、放松身心的特点越来越受大家欢迎。依靠单片机技术的日益成熟,基于单片机的小型化高精度控制过程的广泛应用,色度学、先进光电成像技术、计算机技术和图像处理技术的飞速发展和电机驱动技术、传感器技术以及控制技术的不断发展,我们计划设计可以与人对打的台球智能机器人,使人们可以在即使一个人的情况之下也可以享受台球带来的娱乐、休闲。

 

我们这次设计的智能台球机器是以PIC单片机为核心的控制系统,结合了图像处理技术,PIC单片机控制电机系统,以及机械机构设计技术等方面的知识,利用了各种芯片来实现对台球系统的图像采集处理技术,同时,使用各种电机来控制机器人的运动和球杆的挥洒角度和力度系统。在系统结构上本设计的系统可以分为两个方面:图像处理系统、智能运动系统。智能运动系统又包含两个内容:运载系统和球杆系统。图像处理系统采集桌面台球的各种信息;智能运动系统通过各种电机实现机器人的运动和挥球运动。

 

  • 系统总体机构

该智能台球机器人由3部分构成:图像采集处理系统、智能运载系统和智能球杆系统。

5184972a9d20b-thumb.jpg

(一)、系统总体布局与原理框图

通过microchip公司生产的32位PIC单片机对CMOS采集过来的图像信息分析处理,然后向各个电机驱动电路发送相应的指令信息,控制电机的转向和转速,执行小车的运动,球杆瞄准,以及控制球杆击球的力度各项操作,完成一个智能台球机器人的自动捕捉和击球全过程。其原理框图如下所示:

5184972ab7c06-thumb.jpg


(二)、系统的技术特点

该智能台球机器人结合了图像处理系统,PIC单片机控制电机系统,以及机械机构系统等方面的知识,是一个跨学科,多领域知识交叉的产品设计。智能台球机器人主要是由图像处理系统、电机驱动和测速系统,以及机械机构系统来协调完成智能击球过程的。

 

图像采集上对比CCD摄像头的特点CMOS摄像头不需要用视频采集卡就能输出数字信号,内带A/D转换,系统体积较小。

 

图像处理上利用CPLD和DSP协调的模块,大大减少需要传输的数据,加快了系统的传输速度,提高了上位机的工作效率。

 

运载系统主要利用伺服电机驱动,伺服电动机机械特性和调节特性均为线性, 动态响应快, 控制精度高, 可靠性高, 是自动控制系统中一种很好的执行元件。

 

球杆系统主要通过步进电机W1控制球杆的转角来对击球角度的瞄准,步进电机是数字控制电机,电机的转速、停止的位置取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,非超载状态下,根据上述线性关系,再加上步进电机只有周期性误差而无累积误差,因此步进电机适用于单片机控制。伺服电机W2控制球杆击球的速度,利用伺服电机高精度、高可靠性的性能以实现准确击球入袋的任务。

(三)、系统硬件组成及工作原理

1、 图像处理系统

1.1 图像处理系统的原理框图

根据智能摄像机的工作原理,结合以前的数字图像处理研究的成果,本图像采集系统设计包括图像采集、图像存储、数据处理三个部分。对比CCD与CMOS图像传感器的优缺点,决定采用CMOS数字图像传感器来构建系统的数字化采集单元。

 

系统原理如图1-1所示,通过摄像头获取桌面球的位置与颜色信息,通过CPLD采集控制器和FIFO帧处理器来进行图像存储,并将数字信号传输到DSP数字信号处理器进行处理,采集球的位置信息和距离信息。将其传输给单片机进行控制,来实现电机的运动。

   

5184972ab80b9-thumb.jpg

图1-1 图像处理系统框图

 

1.2 图像处理系统的主要部件

1.2.1 CMOS图像传感器

我们采用的CMOS数字摄像头是OV6620。

 

 OV6620采用PAL制式(国内的普通电视机制式),每秒25帧,分辨率为356*292,内部集成了AD转换模块和视频分离模块,省去了1881视频分离芯片。当然,也可以当模拟摄像头来使用,比如调焦时,这时可以将视频信号端接至OV6620的VTO端即可。

OV6620的优点:供电电压低,简化电路;内部集成AD和视频分离模块,简化电路,并且使得采集程序简单,采集质量高;视频信号转换在内部进行,减轻CPLD控制器负担。

 

OV6620共有32个引脚,但我们真正能用到的不多。我在做智能车时仅仅用到13个引脚,其他引脚并未使用。现在把常用的引脚列出来: Y0~Y7(数据输出端,接单片机IO口)、VSYNC(场中断信号端)、HREF(行中断信号端)、VCC(接5V)、GND(接地)、VTO(接视频采集卡调焦),其他可能会使用到的引脚:PCLK(像素同步信号端)、FODD(奇偶场信号端)。

 

5184972ac2c93-thumb.jpg

图1-2 OV6620结构图

 

1.2.2 帧存储器

美国Averlogic公司的大容量FIFO AL422B作为采集-处理的共享数据RAM。AL422B的存储容量为3MB。由于目前1帧图像信息通畅包含640*480个像素,每个像素占用1~3B,而市面上很多视频存储器由于容量限制,无法存储1帧图像的完整信息,其工作频率达50MHz。AL422B应用的要点如下:
     1、384k*8b FIFO,支持VGA/CCIR/NTSC/PAL和HDTV分片率
     2、独立的读/写操作可接受不同的I/O数据率
     3、高速异步串行存取,读写时钟周期为20ns
     4、输出使能控制,自行刷新数据
     5、工作电压可为5V或3.3V


       

图1-3 FIFO AL422B结构图

1.2.3  CPLD视频采集器

这一部分的核心控制是由可编程门阵列FPGA发展为图像采集处理的高速化、小型化、智能化开辟了新的空间。核心控制CPLD选用Altera公司的EMP7128SL85-15,主要用它来完成FIFO写控制,通知DSP读数据信号的产生等功能。EPM7128SL85-15具有2500个可用逻辑门,128个宏单元,8个逻辑块,读写速度为15ns,带有67个可供用户使用的I/O引脚,PLCC封装,可通过JTAG接口实现在线片成。通过硬件描述语言(VHDL)在集成开发环境MAX PLUS Ⅱ下完成逻辑设计,提高了系统的可靠性,又降低了成本。CPLD的核心任务是是实现AL422B芯片的需要。

 

1.2.4  DSP数字信号处理器

采用TI公司的TMS320VC5402 DSP读取AL422B中的视频数据,并经过软件对其进行实时处理,处理后数据量将大大减少。TMS320VC5402 DSP主要特点如下:

 

先进的改造型哈佛结构,操作速率可达100MI/S。先进的多总线结构,3条16b数据存储总线和1条程序存储总线;40b算术逻辑单元,包括1个40b桶形移位器和2个40b累加器;一个17*17乘法器和1个40b专用加法器,允许16b带符号的惩罚;8个辅助寄存器及1个软件栈,数据/程序寻址空间1Mb*16b,内置4k*16bROM和16k*16bRAM;内置可编程等待状态发生器,锁相环时钟产生器,2个多通道缓冲串行口,1个8b并行于外部处理器通信的HPI口,2个16b定时器以及6个通道DMA控制器;低功耗,工作电源有3V和1.8V。

 

2、 智能运动系统

2.1 运载系统

2.1.1 运载系统的原理框图

通过前面的图像处理系统计算出的击球点的位置,计算出小车的行进路线输出给小车的驱动系统,使小车行驶到指定地点。


5184972abcedb-thumb.jpg

2.1.2 运载实现系统的主要部件

1、 机器人小车驱动系统机器人小车驱动系统由控制器、功率变换器及电动机三个主要部分组成。

 

 ( 1) 电机数量的选择为了让小车能灵活转弯采用三轮小车, 前轮是拖动轮, 两个后轮分别用两台电机驱动。当分别改变两台电机方向时, 可以使小车前进、后退和转弯。    

            

 ( 2) 电机种类的选择电动小车采用伺服电动机驱动系统。伺服电动机机械特性和调节特性均为线性, 动态响应快, 控制精度高, 可靠性高, 是自动控制系统中一种很好的执行元件。加上合适的驱动系统, 完全可以完成机器人的各种功能。

 

2、 车速及路程计算模块的选择

采用开关型霍尔集成片, 在车轮上均匀地固定多个磁铁, 车轮转动时产生脉冲, 通过脉冲的计数,对速度进行测量。用转速乘以车轮的周长, 就是小车行驶的路程。由于霍尔传感器体积小, 灵敏度高,传送过程中无抖动现象且检测安装简单, 广泛应用于电机测速系统。

 

3、 电源选择方案

根据小车需要不停地运动, 采用单一电源供电方案, 电方式比较简单,但由于电动机起动瞬间电流很大, 而且PWM 驱动的电动机电流波动较大, 会造成电源电压不稳, 影响其他电路的正常工作。此方案将电机驱动利用光电耦合器进行连接。这样可以解决由于PWM 驱动的电动机电流波动对系统稳定性的影响, 从而提高了系统的可靠性。

 

2.2 球杆系统

2.2.1 球杆系统的原理框图

根据图像处理分析所得的桌面各球分布情况,和单片机编程语言中所设定选择各球的顺序,确定了目标球的位置。小车运行至球杆能够击到白球的距离范围内,此小车移动过程中,球杆收至与球桌边缘平行的方向,电机W1和W2均停止转动。

 

到达击球范围内时,小车停止运行,根据图像处理结果,以小车所在边缘为基线,分析球杆所应该旋转的角度,把该信息赋予PIC32单片机,然后,通过单机片发送脉冲信号到步进电机驱动器M1,控制步进电机W1完成相应角度的旋转。旋转过程中,为了提高步进电机运行到位的,从起始到接近所需角度的过程中,可以用连续高频脉冲缩短时间,然后在接近预定值的时候,则选用间断低频脉冲控制电机点动到位,中断其运行。

 

接着,根据图像处理结果,分析其桌球运动的路径长度,在单片机中预设相应的长度范围,将其所需力度分为从高到低分为五档;接着,通过单片机接收力度档位信息,发送相应的脉冲到伺服电机驱动器M2,使伺服电机W2分别以不同的速度连续转动一周,结束之后中断其运行。

 

由于电机W2的转动,带动曲柄滑块机构的球杆做急回运动,快速击球,然后较缓慢地返回原位置。

 

击球完毕,白球获得预定方向的速度接着进行击打彩球入袋,然后各球按照后续运动轨迹运行至动能为零静止。

 

等待桌面各球静止,重新扫描桌面情况,进行新一轮的图像处理分析,选择下一个击球目标,球杆旋转收回到与球桌边缘平行,小车运行至下一个目标的击球距离范围。

5184972acbb20-thumb.jpg


图2-2-1

球杆击球路径分析

 

图2-2-2 球杆系统原理框图

2.2.1 球杆系统的主要部件

步进电机W1

W1用于旋转调整球杆部分的角度。

 

步进电机是数字控制电机,将脉冲信号转换成角位移,电机的转速、停止的位置取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,非超载状态下,根据上述线性关系,再加上步进电机只有周期性误差而无累积误差,因此步进电机适用于单片机控制。步进电机通过输入脉冲信号进行控制,即电机的总转动角度由输入脉冲总数决定,而电机的转速由脉冲的信号频率决定。

 

直流伺服电机W2

W2用于控制球杆击球的速度。

 

伺服电动机机械特性和调节特性均为线性, 动态响应快, 控制精度高, 可靠性高, 是自动控制系统中一种很好的执行元件。加上合适的驱动系统, 完全可以按照准确的转速和转向完成各种功能。

 

步进电机驱动器L297芯片

步进电机的驱动是根据单片机产生的控制信号进行工作。因此,通过向步进电机驱动电路发送信号就能实现对步进电机的控制。

 

L297芯片是具有20管脚的双列直插式塑胶封装的步进电机驱动器。它最多可产生四相驱动信号,能用半步(八拍)和全步(四拍)等方式驱动单片机控制双相两极或四相单极步进电机。其核心是脉冲分配器,L297还设有两个PWM斩波器来控制绕线组电流。是想爱你恒流斩波控制。适用于双极性两相步进电机或单极性四相步进电机的控制。L297只需从上位机接受方向(正、反转),模式(半步、基本步距),时钟(步进脉冲)3个输入信号。其工作初始状态是ABCD=0101

 

L297驱动器M1的输出控制步进电机W1。

 

伺服电机驱动器BA6688L和BAL6686芯片

由单片机产生的PWM信号经接收通道进入信号解调电路BA6688L的12脚进行解调, 获得一个直流偏置电压, 该直流偏置电压与电位器的电压比较, 由BA6688L 的3脚输出,送入电机驱动集成电路BAL6686, BAL6686 的输出信号驱动伺服电动机W2。改变PWM 信号的占空比,可以控制电动机的转向和转速。

 

标准球杆

球杆击球端设置为圆球状光滑表面结构;中间部分套在固定的小车基座上;在小车基座的两固定端设计为一个曲柄滑块机构,控制球杆击打白球。

 

图2-2-3 小车基座上的球杆设计


3、单片机的选择

单片机选用microship公司的Cerebot 32MX4系列单片机。该Cerebot 32MX4的主要特点是具有一个全新Microchip® PIC32™微控制器。PIC32可提供工作频率80MHz的32位MIPS处理器内核、512KB的编程FLASH、32KB的RAM内存以及众多的外围设备。这些设备包括USB控制器、定时器/计数器、串口控制器、A/D转换器以及更多的设备。该板具有大量的I/O接口和电源选项,其中也包括USB电源。它同时还具有与Microchip MPLAB开发软件相兼容的内置编程、调试电路。 Cerebot 32MX4拥有九个Digilent Pmod™外围模块连接器。可连接的Digilent Pmod包括H-bridge驱动、模数和数模转换器、蜂鸣器、滑动开关、按键开关、LED指示灯、以及易于连接的转换器。

 

主要 用来实现对dsp数字信号处理器的部分数据进行处理,与单片机获得的其他系统信息进行综合分析,输出系统所需的控制信号,对其他部分的运动进行分析和控制。

 

三、软件流程

(一)系统软件流程

5184972b07f62-thumb.jpg

5184972b0c907-thumb.jpg


在每次工作之前都要对单片机进行初始化设置,然后再由单片机控制系统的运作,总流程如右图所示:

先启动图像处理系统,对采集到的信息进行分析和处理。得到击打台球的位置。根据图像处理系统的结果,通过单片机启动伺服电机,使小车运行到指定位置,然后控制步进电机调节球杆的角度,通过机械方式打击出球。

 

 

(二)、图像处理系统的软件流程

在CMOS摄像机开始输出信号之前,需要对OV6620的寄存器进行配置,使其输出系统所需要的图像格式。

 

在每次系统设定工作都要对CMOS寄存器进行设置,我们通过单片机对其进行初始化设置,主要是设置表中的寄存器。系统流程图如图2。系统执行上电加载DSP程序,初始化程序后,单片机初始化OV6620和AL422B芯片。然后DSP即发送开始采集指令给CPLD,实现总线控制权交接,CPLD获得总线控制权。通过CMOS采集一帧图像解码后存到FIFO存储器中,当一帧数据写入帧缓存后,CPLD关闭CMOS输出,放弃总线控制权,并发送信号给DSP,进入图像处理程序。DSP通过缓存器和CLPD获得图像数据,同时处理后数据传输到PIC进行电机控制部分。

 

我们采取的是一种基于DSP和CLPD结构的图像采集和处理系统设计方法。CPLD实质上起到总线控制器的作用,DSP制作图形算法使用,图像采集独立自主进行,不参与采集过程,节省了DSP的时间,实时性好,实现了模块化设计的思想。系统软件对图像进行灰度、边缘提取、反色的算法。

(三)、智能化系统的软件流程

1.、小车系统软件流程

1、1 伺服电机驱动电路

下图为伺服电动机驱动电路, 本系统有两组驱动电路, 分别负责两个后轮电动机的驱动, 控制电机的转向及转速(转角)。首先由单片机产生的PWM信号经接收通道进入信号解调电路BA 6688L的12脚进行解调, 获得一个直流偏置电压, 该直流偏置电压与电位器的电压比较, 由BA6688L 的3脚输出,送入电机驱动集成电路BAL6686, BAL6686 的输出信号驱动伺服电动机。改变PWM 信号的占空比,可以控制电机的转向和转速。            

      

                       

伺服电动机驱动电路

 

1、2 测速检测电路的设计与实现

霍尔集成传感器是将霍尔元件、放大器、施密特触发器以及输出电路集成在一块芯片上, 为用户提供一种简单化的和比较完善的磁敏传感器。霍尔传感器测速的原理: 传感器的位置固定在靠近小车车轮的适当位置, 小车的轮上装几个磁铁, 每当磁铁转过霍尔传感器时, 引起磁场的变化。霍尔集成传感器分为线性型和开关型两大类, 本系统中选用的是开关型霍尔集成传感器SS44E。SS44E 传感器的信号放大器将霍尔元件产生的幅值随磁场强度变化的霍尔电压放大后再经信号变换器, 驱动器进行整形,放大后输出幅度相等, 频率变化的方波信号脉冲, 计算脉冲的个数, 即可确定旋转物体的速度。如我们在小车的轴上安装了4块磁铁, 则车轮旋转一周霍尔传感器计数4个脉冲。用1m in计量的脉冲数除以4就是小车的转速。

 

2、球杆系统软件流程

在步进电机控制电路开始工作之前,需要对驱动器L297的主要参数进行初始化,然后对它进行将要运算控制的配置。

 

当导路小车到达击球距离范围内静止的时,单片机中断,并跳转到步进电机W1驱动电路,首先,单片机对步进电机驱动器M1进行初始化,然后驱动步进电机驱动器对步进电机W1进行初始化,单片机把相应频率的脉冲信号传送至驱动器M1,通过驱动器的缓存配置,控制电机W1按照要求的N个脉冲进行逆时针或者顺时针步进运行,直到旋转相应的α角后,电机W1驱动电路中断;单片机中断,跳出到伺服电机驱动电路W2,对伺服电机驱动器M2进行初始化,然后驱动伺服电机驱动器对伺服电机W2进行初始化,单片机把相应频率的连续脉冲信号传送至驱动器M2,通过驱动器的缓存配置,控制电机W2作顺时针连续旋转,直到旋转满一周后,电机W2驱动电路中断,电机W2旋转过程中带动机械曲柄滑块机构做急回运动,快速击打白球,使得白球运动击打彩球入袋。击球完毕,再次驱动电机W1逆向旋转α角,至原初始与球桌边缘平行的位置。则一次单片机控制击打制定目标球过程结束。

 

 该球杆系统中,通过对图像处理后的目标结果进行定位,然后采用了高精度的单片机控制步进电机电子电路,伺服电机带动球杆机械运动和机构传动进行击球,实现了一个较为智能化的智能桌球机器人。

 

     

 

图3-2-1 控制步进电机W1旋转球杆角度的软件程序流图

      

图3-2-2 伺服电机W2控制球杆击球的软件程序流图




评论

技术专区