单片机机器人

单片机机器人当生活中的快递种类越来越多,配送速度越来越快的时候,人们的生活也越来越方便快捷。从开始的网购衣物、美妆、食品等,到后来的电子产品、家电、生鲜等,再到如今的药品、外卖、同城配送等服务,越来越多的物品在快递行业内展开快速配送服务,让生活更便捷。面对如此大量的物品分拣压力,智能化的分拣机器人需求越来越大,逐渐趋于高效、轻便、智能的方向发展。面对小区、高校、商场等小规模场景,为其提供快递、外卖、果蔬等物品的分拣,故设计该自动分拣智能小车机器人。该分拣机器人包括单片机系统、传感器识别系统、电源系统、分拣装置等几部分,

当生活中的快递种类越来越多,配送速度越来越快的时候,人们的生活也越来越方便快捷。从开始的网购衣物、美妆、食品等,到后来的电子产品、家电、生鲜等,再到如今的药品、外卖、同城配送等服务,越来越多的物品在快递行业内展开快速配送服务,让生活更便捷。面对如此大量的物品分拣压力,智能化的分拣机器人需求越来越大,逐渐趋于高效、轻便、智能的方向发展。面对小区、高校、商场等小规模场景,为其提供快递、外卖、果蔬等物品的分拣,故设计该自动分拣智能小车机器人。该分拣机器人包括单片机系统、传感器识别系统、电源系统、分拣装置等几部分,实现对物品的分拣功能。

该类自动分拣智能机器人可以根据识别到的物品,有针对性的、智能的将该物品放到指定位置。比如,应用到快递分拣站中,通过流水线上的机器扫描包裹上的条形码,读取出该包裹的下一站目的地,然后经过流水线上的分拣装置,将该包裹放到我们设计到智能分拣机器人上,此时机器人将会运送包裹至快递电动车上或箱货车上。亦可以将该类机器人在其他行业,比如分拣水果、分拣外卖或商场、超市的室内配送物品等领域。

总而言之,我们这次设计的自动分拣智能小车机器人,是将所需要分拣的物品放置在机器人上,该机器人可以判断该物品是属于哪一类,并将物品运送到指定位置,完成卸货动作。

设计的内容是:机器人小车行驶到指定的上货点,人为放入物品后,经过传感器识别和单片机处理及判断,给机器人小车发送相应的指令信息,机器人小车在接收到控制信息之后,机器人小车将该物品运送到指定的位置并分拣到机器人外。

本设计需要的模块和传感器有:循迹避障模块、物品识别模块、定位卸货模块、无线交互模块、单片机控制系统、电源模块等。

该自动分拣智能机器人需具备物品识别功能,主要是针对颜色或重量识别。机器人底盘上装有循迹避障模块,可以让机器人自动运行到指定位置。机器人的结构上装有卸货的装置,可以将物品分拣到指定区域。单片机的控制系统由单片机和周边电路组成,预留无线交互模块接口和显示装置的接口,并板载整个系统的电源供电电路,为整个机器人提供合适的电源电压。

该系统的控制部分是整个系统的核心,其功能包括:货物分拣、跟踪运动、避障、数据通讯、控制等。目前,主要采用80C51内核单片机、 ARM内核单片机、 AVR内核单片机等电子产品。

微处理机是一种集成了 CPU, ROM, RAM, I/O端口等接口的微处理器,它的界面特性很好,适用于工业控制,所以也被称为 MCU。单片机种类繁多,型号也多。目前的 CPU有8位、16位、32位和64位的 CPU,大部分都是 RISC技术,芯片上的 I/O十分丰富。有的微控制器具有 A/D,“看门狗”, PWM,液晶显示驱动,函数发生器,键盘控制等多种功能。它的价格也会随着功能的不同而变化,这就给了开发商更多的自由选择。同时,该系统还具备了低压、低功耗等优点。随着大规模集成电路的出现,单片机在便携式产品中被广泛的应用。

单片机的型号与生产厂家众多,而我们日常实验室使用的单片机多为8位和32位单片机。包括80C51内核的宏晶STC公司的STC89、STC12、STC16、STC32等系列单片机、Atmel公司AT89系列80C51单片机,ARM内核的ST公司的STM32、STM8系列,TI公司的TM4系列等。除此之外还有Arduino系列单片机,MSP430系列,AVR系列等。由于种类繁多,硬件和编程软件各不相同,故在选型上需要综合考虑各种因素。

深圳市宏晶公司研制的STC12C5A60S2高速单片机,抗干扰能力强,兼容80C51单片机代码,使用起来更方便。

STC12C5A60S2单片机的正常工作电压范围是3.5V~5.5V,工作的频率最高可达35MHz,而使用者的应用程式则有8 K至62 K字节,以及1280字节的 RAM。。

该类型的单片机在硬件资源上,双列直插单片机有40个I/O引脚,而贴片封装的单片机有44个I/O引脚。I/O管脚具有很好的驱动性能,每针可以提供20 mA的电流,但是总单片机的电流不能超过120mA。除此之外,STC12类型的单片机,还有定时器、时钟输入口、外部中断、PWM、ADC、全双工异步串口、SPI等丰富的硬件资源。

A/D功能,该单片机有8个通道有ADC功能,每个通道都是10bit的精度,这就意味着可以采集到的数据是0~1023这个范围之间,其精度可算是同水平的单片机种的佼佼者。主要引脚有P10、P11、P12、P13等共8个引脚。

D/A功能,DAC是将数字量转换成模拟量,共有2个通道,每个通道也都是10bit的精度。假如单片机使用3.3V供电,那该系列单片机的10bit精度,就是可以控制引脚每次变化约0.8mV。

PWM功能,PWM是控制电机、舵机、遥控器等外设的重要功能,该单片机有4个通道,可以输出高精度的PWM信号,其中两个是使用PCA可编程计数器阵列产生的。

UART功能,UART是通用异步收发传输器,是单片机与单片机、单片机与PC电脑、单片机与外设等最常用的通信方式。不仅性能稳定,而且速度较快,重要的是操作人员读取数据非常方便。该型号的单片机有2个UART,其中有1个是USART。

SPI功能,SPI是一种同步串行总线通信方式,接线方式有很多种,接线引脚数量也不同,但是其通信速度比UART要快很多,一般应用在存储器、ADC、LED等模块上,也是常用的通信方式,该系列单片机的SPI功能有1个,足以应对多种外设。

IIC功能,IIC是一种集成电路的总线协议,由飞利浦公司发明,该通信协议有软件IIC和硬件IIC,但是两种通信协议都是大同小异。该总线形式可以挂载很多IIC外设,而且只需要两根线即可,一条时钟线路,一条数据线路。无硬件 IIC的STC12C5A60S2,如果使用软件IIC,则可以使用很多。

除了以上功能,该单片机还有1个ISP驱动,1个IAP等等常用的功能。而单片机最基本的定时器、计时器、看门狗、中断等功能也是应有尽有。

单片机机器人

STC12C5A60S2的每一个功能部件都是按照一个时钟的顺序运转的,因此,它的时钟频率对 MCU的运算速度有着很大的影响,而它的性能也会对 MCU的稳定性产生很大的影响。目前,常见的时钟电路有两种,一种是内置的,一种是外一种。这里我们使用了一个外部的时钟模式。

STC12C5A60S2芯片内置了振荡器,由反向放大器组成,其中XTAL1、XTAL2被分成两部分,分别用作振荡电路。时钟又分为内外两部分,XTAL1和XTAL2管脚都有一个外部的时序,而内部的振荡电路本身就会发生自激振动。本系统所用的计时器件是由一个由石英晶体与电容构成的并联谐振回路构成的。时钟频率 FOSC采用12 MHZ,C1和C2的电容均为30 pF,其容量可用于微调,如图2-2所示。

 单片机机器人

STC12C5A60S2单片机在开机操作时,即当发生故障时,即发生故障时,必须重置,从而使 CPU和其它功能组件保持在预定的初始状态。PC初始化状态为0000 H。单片机在此状态下运行该程序。在程序发生故障(例如“跑飞”)或由于操作失误导致系统“死锁”时,即使 RST管脚是高电平,也要按下复位键,以使STC12C5A60S2芯片脱离“跑飞”和“死锁”的状态,重启。

单片机的复位方法有很多种,其中最常见的是上电复位和手动键电平复位。这一次,我们使用了人工的按钮电平重置方法,电路见图2-3。上电重置是利用一个外部重置回路的电容充电而完成的,该重置电路生成的重置信号(高电平)通过重置电路与重置电路相连,在获得内部重置操作所需的信号之前,重置按键 RST将人工输出电平进行一次重置。C3在通电时相当于短路,有时会受到干扰而导致误重,所以可以在复位端增加解耦电容,使复位电路更可靠。

电控系统包括单片机控制的外设、电路设计和硬件模块三大部分,是整个机器人的核心所在,不仅包括用于计算和发送指令的“大脑”,还包括连接整个硬件的“经络”和运动的“四肢”。既然需要一个完整的、优良的机器人系统,那就需要对每个部件和模块的选型,有很多要求,不仅能满足执行各种指令的动作,还需要达到所需要的精度,只有每个部分都能运转良好,才能使机器人发挥出该有的优势。

以下分为了多个部分,进行了方案的论证。

3.1电机的选型

底盘上的电机是整个智能分拣机器人的移动运行设备,可以使智能分拣机器人进行前、后、左转、右转、自旋等移动的动作,是智能分拣机器人的运动保障。

机器人上可使用的电机有很多种,包含有刷直流减速电机、无刷直流减速电机、步进电机、伺服电机等等,并且每一个电机的参数指标都不同,型号种类繁多。考虑到本次设计的智能分拣机器人的要求,需要能进行电机转速的控制、并且有一定的速度、扭矩不能太小、体积不能太大等综合因素,最终设计多了以下几种方案。

方案一:有刷直流减速电机。该类型电机是直流电机加减速器组合而成,只需要通入直流电源,即可让电机进行旋转,而减速器是为了增加电机的扭矩、降低转速的,可以用过改变减速器的减速比或者齿轮组,即可在不改变电机电压的情况下,改变其转速和扭矩。扭矩与转速的关系则是:转速越低,扭矩越大。

有刷直流减速电机控制需要使用三极管或MOS管,也可以使用专用的芯片进行驱动并控制。控制的方式一般有V-M直流调速和PWM直流调速两种系统控制方案。V-M双闭环直流调速系统是工业生产中使用最多的传动装置之一。具有调速范围广、稳定性好、响应快、抗干扰能力强等好处,在直流调速系统中最为完善。其缺点是只能单向导通,运行要求条件严格,且对其他电子设备可能会造成干扰。PWM直流调速是一种应用于单片机和其它微机的控制技术,它可以通过数字信号来实现对模拟电路的控制,既节约了能耗,又降低了成本。采用数字方式对模拟信号进行控制,从而减少了系统的成本和功率消耗。

方案二:无刷直流减速电机。该类型电机是采用无刷电机和减速器组成,电机响应快、扭矩大、质量轻、成本高,控制需要使用BLDC电子调速器,内部由单独的单片机系统控制3路H桥电路进行驱动,并且电子调速器上包含电流采样电路、电机保护电路等,整体来说电子调速器设计较难,尤其是使用FOC矢量控制算法的,更为复杂。即使目前有成品的电子调速器,而且是使用单片机产生PWM波控制,但是其无法修改内部参数以适应本机器人的功能。无刷直流减速电机虽然有更好的性能和精度,但是使用难度和成本过高,故放弃该方案。

方案三:步进电机。步进电机相对于其它控制用途电机的最大的不同在于,它接受并转换为相应的角度或线性位移的数字控制信号,其自身是实现数字图形转换的执行单元。该系统具有开环位置控制功能,通过输入脉冲信号,可以得到预定的位移增量,因此,通过对脉冲的数目、频率和线圈的相序进行控制,可以实现所需要的角度、速度和方向。但是步进电机的转速较慢,同时控制4个轮子的话,就需要多个驱动器,而且每个步进电机的驱动,均需要较多的IO引脚进行控制,性价比较其他而言,不合适。

综上所述,选择有刷直流减速电机更为合适,性价比是最高的。

3.2电机驱动系统硬件设计

电机驱动是驱动和控制直流减速电机正常运行的重要部分,除了给直流减速电机提供大的输出电流,还能提供可靠的控制和良好的安全保护。电机驱动芯片可以选择的型号和种类特别多,一般实验室内常用的有L293N、L293D、L9110等等,本课题直接选用最常使用的模块,L298N电机驱动模块,该模块使用方法简单,驱动电流大,带有电路保护功能。

L298N是直流电动机的一种驱动晶片,输入电压高,输出电流大,工作电压高,内置两个 H型全桥驱动器,既能驱动直流电动机,又能驱动步进电动机。TTL逻辑级信号控制,可与 MCU直接相连。如图3-1所示,为芯片的接脚原理图。

正在上传…重新上传取消

图3-1 L298N芯片引脚接线图

电机的正反向转动时由两个单片机的I/O接口的高低电平来决定的。在该机器人中所用的电机驱动信号的特定规则是:全为低电平(“0”)则电机停止;IN1为高电平,IN2为低电平的时候电机能正向旋转;IN3为低电平,IN4为高电平的时候电机能反向旋转。全高电平(“1”)是电机悬空(这个时候电机无法得到操控,有可能小车会因为惯性而飞车)。

当单片机P1.0引脚控制L298N的ENA引脚,信号为高电平时,L298N电机驱动左电机输出电路开关打开,P1.1引脚输出信号高电平控制IN1,P1.2引脚输出信号低电平控制IN2,则L298N驱动芯片的OUT1口输出一个该芯片的VCC高电平电压,OUT2输出低电平0V,这时左电机的旋转方向为正转。同理,单片机的P1.3引脚输出信号高电平来控制L298N芯片的ENB引脚,单片机的P1.4引脚输出信号低电平来控制IN3引脚,单片机的P1.5信号输出高电平来控制IN4引脚,则右电机旋转的方向为反转。因为机器人的左右两边电机是镜像安装的,所以这样机器人便能前进了。在程序中,可以这样定义:

(1)控制左边直流电机旋转方向正转:{ENA = 1 ;  IN1 = 1 ;  IN2 = 0 }

(2)控制左边直流电机旋转方向正转停转:{ENA= 0 ;  IN1 = 0 ;  IN2 = 0 }

(3)控制左边直流电机旋转方向正转反转:{ENA = 1 ;  IN1 = 0 ;  IN2 = 1 }

(4)控制右边直流电机旋转方向正转正转:{ENB = 1 ;  IN3 = 1 ;  IN4 = 0 }

(5)控制右边直流电机旋转方向正转停转:{ENB = 0 ;  IN3 = 0 ;  IN4 = 0 }

(6)控制右边直流电机旋转方向正转反转:{ENB = 1 ;  IN3 = 0 ;  IN4 = 1 }

(7)控制左边直流电机旋转方向正转刹车:{ENA = 1 ;  IN1 = 1 ;  IN2 = 1 }

(8)控制右边直流电机旋转方向正转刹车:{ENB = 1 ;  IN3 = 1 ;  IN4 = 1 }

3.3循迹模块的硬件设计

本设计使用了红外对管循迹模块,TCRT5000型红外反射式感应器.TCRT5000红外反射式感应器是利用红外线发射二极管持续地将红外线辐射到外部,再通过物体反射到接收器上,把接收到的红外线信号用电压比较电路进行处理,然后用插针把数字信号输出到外界。该模块在使用时,可以通过旋拧上面的电位器旋钮来调节检测场地黑线和白色背景的灵敏程度,在本次设计的自动分拣智能机器人中,则用于检测自动分拣机器人是否行驶在白色地面背景上布置好的黑线上,最后通过程序判断调整自动分拣机器人自身的位置来保持沿黑线循迹行驶。

正在上传…重新上传取消

图3-2 TCRT5000红外反射传感器原理图

如图3-2为TCRT5000红外反射传感器原理图,图中红外对接管用于发射和接收红外信号。平时电源接通时,电源指示灯有电流通过,指示灯亮。图中10K的可调电阻就是芯片上的可调旋钮,用于改变阻值而调整感应的灵敏度。LM3939是一个比较器,当正端电压大于负端,输出高电平,切换指示器没有打开。正极电压比负极低,输出低电平0,开关指示灯形电流流通,灯亮。在实际中,当红外线被黑线吸收,接口管未接收到足够红外线,接收管未接通,那么,比较器的正端电压必然比负的端子电压大,输出高电平。当传感器在白色地面上,红外接收管接收到红外线,接收器形成通路,比较器正端电压为0。而负端连接滑动变阻器,其电压一定大于0,所以比较器输出0,开关指示灯亮。根据其检测到黑线输出1,未检测到黑线输出0的特点,左循迹传感器输出连接单片机P3.6接口,右循迹传感器输出连接单片机P3.7接口,在代码中可这样设计:

(1)判断两边未检测到黑线:{P3_6 == 0 ; P3_7 == 0 } 执行 前行

(2)判断左边检测到黑线:{P3_6 == 1 ; P3_7 == 0 } 执行 左转

(3)判断右边检测到黑线:{P3_6 == 0 ; P3_7 == 1 } 执行 右转

(4)判断两边都检测到黑线:{P3_6 == 1 ; P3_7 == 1 } 执行 停车

3.4避障模块的硬件设计

避障模块和循迹模块所采用的传感器模块原理一样,同样使用了红外线发射二极管和红外线接收二极管。红外线二极管发出的红外线与前面的障碍相撞,由红外线接收二极管所吸收。此时电压比较器输出低电平0;当前方未遇到障碍物,红外接收二极管管不导通,电压比较器输出高电平1。该模块检测距离约2~30cm,检测的角度大约是37度,可通过调节精密电位器旋钮来调整检测前方障碍物的距离。

本设计采用了红外发射式对管传感器仅用于检测障碍物,市面上虽有更好的超声波测距传感器、激光测距传感器、TOF测距传感器等模块,但由于自动分拣智能小车机器人的模拟环境是在仓库等工作环境,甚至是在无人的仓库环境中工作,所以使用红外对管传感器检测障碍物就已经足够了。另外,使用自动避障行驶容易造成在仓库的工作环境中机器人群组的意外失误,比如,一个机器人避障成功,其他的机器人就需要重新规划路线,从而增加了管理系统的负担。所以,为了方便服务器总控系统的线路计算,本设计检测到障碍物后,机器人将只执行停车指令,故用红外对管传感器检测模块就已足够。

本设计中,左边避障传感器输出信号接单片机的P3.4引脚,右边避障传感器输出信号接单片机的P3.5引脚,在单片机的程序中可以如下设置:

(1)判断机器人左方遇到障碍:{ P3_4 == 0 ; P3_5 == 1 },执行,停车;

(2)判断机器人右方遇到障碍:{ P3_4 == 1 ; P3_5 == 0 },执行,停车;

(3)判断机器人两方都遇到障碍:{ P3_4 == 0 ; P3_5 == 0 },执行,停车;

四、定位及分拣系统的硬件设计

定位卸货系统由定位系统和舵机卸货系统构成,定位系统用来判断小车是否行驶到指定的卸货点,舵机卸货系统则是用于操作货物卸下。

4.1定位系统的硬件设计

定位系统主要是为了让自动分拣智能机器人在相应的位置卸载货物。可以使用的方案有很多,例如全球卫星定位系统、北斗卫星定位、光电识别、红外线识别、图像识别、信标识别等等方法。以下将对几种方案做一下分析。

4.1.1机器人定位的要求

本次设计的自动分拣智能机器人的主要应用场景是室内、厂房、仓库、货运站、超市、商场等地方,这些应用场景绝大部分都是室内环境,这样对于机器人的定位系统的要求就有了很大要求,首先室内定位需要精度高、识别速度快、误差小、模块本身体积小、质量轻、功耗低等性能指标。

室内定位不同于室外定位,室外空间宽阔,障碍物相对来说可以少一些,而室内定位,则不能使用卫星定位系统或基站信号定位等,这类定位方法只能是在空旷位置可以得到很高精度,在室内或遮挡地方,是不行的。识别速度快即是为了让机器人快速定位,以提高效率。而误差小则是针对在装卸货物时而言,毕竟在室内,空间条件有限,在装卸货物时,如有较大误差,很有可能撞到货架或者其他货物,导致经济损失。体积小、质量轻、功耗低是指针对于该模块本身而言,这次设计的自动分拣智能机器人的体积自身很小,负重能力不强,毕竟是作为验证理论而设计的作品,而且供电用的电池,也是容量有限,为了让机器人能更久的运行,所以低功耗也是一项可以参考的性能指标。

4.1.2定位系统方案选择

本次设计的自动分拣智能机器人的定位系统方案有:光敏传感器定位、颜色识别定位、图像识别定位三种。以下是详细分析。

方案一:光敏传感器定位。

光敏传感器种类比较多,是一种由半导体材料制作而成的光强与阻值有一定关系的传感器。常用的光敏传感器有光敏电阻、光敏二极管、光敏三极管等传感器类型。光敏电阻(photoresistor or light-dependent resistor)在一定的波长下,它的电阻会快速降低。这是因为在光中所生成的载流子都参与了传导,并受到外电场的影响而发生漂移,电子跑到电源的正电极,空穴跑到电源的负电极上,使得感光电阻的电阻值急剧降低。光敏电阻在测量、控制、光变换等方面的应用(将光的变化转换为电的变化)。

光敏电阻的基本特性包括:伏安特性、光照特性、光谱特性、频率特性和光谱温度特性等。

伏安特性:即在特定的光线下,感光电阻上的电流与感光电阻上的电压之间的关系,随着电压的增加,其光电流增加。

光照特性: 光照特性指光敏电阻输出的电信号随光照度而变化的特性,光照越强,它的电阻值越低;

光谱特性:是指光敏电阻对不同波长光的灵敏度的反应;(紫外光波长:400nm以下,可见光波长:400-760nm,红外光:大于760nm),下图为不同材料的光谱特性,如图硫化镉的峰值在可见光区域,而硫化铅的峰值在红外区域,因此在选择光敏电阻时要考虑所处光源种类。

频率特性:光敏电阻器在外部光线的剧烈变化下,不能迅速作出响应,需要一定的缓冲时间。由于感光电阻的延迟特性因其材料的不同而不同,其频率特性也不尽相同。下表为光强变化的相对敏感度与变化量的关系,可见硫化铅的使用率远高于硫化铊。但是,由于大部分感光电阻器具有很大的延迟,所以不适合在需要快速反应的情况下使用。

光谱温度特性:是指感光电阻器在不同温度下的频谱响应,随着气温的上升,其暗阻降低(光敏电阻在室温和全暗条件下测得的稳定电阻值称为暗电阻)。下面是一张由硫化铅制成的感光电阻器的光谱线。如图所示,当温度升高时,其峰会向较短的波长方向运动。因此,有时为了增加硫化铅感光电阻器的敏感度或接收远红外线,通常都会采用冷却的方法。

光敏二极管是一种采用PN结单向导电性能的结型光电器件,也叫光电二极管,一种可以把光学信号转换为电子信号的检测装置,通过在PN结加上反向电压,光敏二极管用的材料通常是硅、锗等。光敏三极管类似于普通晶体三极管,其内部有两个PN结,它的发光结和光敏二极管一样具有感光性能,而光敏三极管的感光性能和一般的三极管一样,因而比光敏二极管的感光性能更好。它能将光信号转换成电信号。信号电流也被放大,即放大。光敏三极管的材质和光敏二极管的材质一样,也分 PNP和 NPN两种。

经过对以上光敏半导体进行的分析,发现光敏电阻和光敏二极管较于光敏三极管来说,比较适合做定位系统。

方案二:颜色识别定位。

颜色传感器有很多种,有光敏材料制作而成的,也有CMOS材料制作而成的,都是半导体材料制作而成。它们的应用领域、精度等各不相同,本次找来了网上大家机器人上常用颜色识别传感器来进行分析。常用型号有TCS230、TCS3200、TCS34725三种,这三种颜色识别传感器的工作原理大致相同。这种感测器是由64个光电二极管组成的单片晶片。二极管共有四种,16种具有红色滤光片的光电二极管;16个带绿滤光片的光电二极管;16个具有蓝色滤光片的光电二极管;剩下的16个则没有滤光片,能传输所有的光线讯息。在晶片内部,这种光电二极管呈十字状排列,可使入射光的非均匀性最小化,提高了色彩辨识的准确性;而16个同色光电二极管是平行排列,且在二极管中均匀分布,能有效地避免色彩定位上的错误。

该类型的颜色识别传感器需要进行复杂的编程才能进行通信,有固定的通信协议,可以控制该传感器使用哪种滤波器进行颜色采集,还需要与传感器通信,才能正确的识别出物品颜色。若要用该类型的传感器制作机器人的定位识别系统,则需要制作色标,色标的种类与排序,与物品的数量有关,而且识别速度快,亦可作为机器人的定位系统。

方案三:图像识别定位。

图像识别可以利用摄像头,对采集到的图案、文字或其他信息进行数据处理,然后输出图像的判断结果,反馈给单片机,最后单片机控制机器人停止并卸货。此方案设计较为复杂,并且当图案复杂时,处理速度会有所缓慢。

综上所述,本次使用光敏电阻方案进行定位。

4.2机器人卸货装置

自动分拣智能机器人的分拣装置,采用了舵机拨动物品的方案来实现的。选择舵机作为分拣装置的运动部件主要有以下几点考虑。

第一,使用舵机,比使用其他类型的电机性价比更高。价格方面,舵机可以选择的价位很多,但是绝大多数的舵机均能符合所需要的参数,例如扭矩、电压、角度等等。控制方面,舵机只需要一根信号线即可,而其他类型电机,至少需要两根线才行。并且舵机是不需要驱动器的,其他类型电机,都需要专用的驱动器才能对电机进行控制。

第二,舵机的体积比其他类型电机的体积小很多,这样可以更好的利用机器人上的空间。

第三,角度控制方面,舵机更容易。舵机自身是带有角度反馈的一种减速电机,旋转的角度大小只与PWM信号的占空比有关系,而其他类型的电机,基本都需要使用额外的传感器对电机旋转的角度进行反馈,才可以得到准确的角度值。

综上所述,所以选择舵机,作为机器人的分拣装置。而分拣装置的结构部分,可以使用激光切割机制作成的亚克力零件或者是玻纤板零件,还有一些地方可以使用3D打印制作成的零件,进行连接。

五、程序设计

程序设计部分是自动分拣机器人的软件控制部分,机器人的运行、识别、控制、运算等都是依靠单片机上运行的代码指令,与机器人硬件相互通信完成的。本部分主要是针对总体运行的代码和控制部分进行介绍的,其他传感器代码在上文已经介绍过了。

5.1初始化配置

机器人的执行机构和传感器采集部分比较多,所以需要对整体的机器人进行初始化配置和初始化一下,以保证每部分均能正常工作。

首先是初始化中断,要求开启外部中断,将外部中断1设定为下行边缘。第二,需要将定时的模式设置一下,并且装载初值和打开定时器中断开关。第三步,配置UART串口的初始化部分,因为UART串口也需要使用定时器为其产生波特率,所以将定时器的模式、装载数据配置好,使串口的通信波特率为9600、8位、无校验、1位停止位。配置好串口后需要延时一段时间,以便单片机配置好串口后再进行后面的操作。第四步则是通信方面的配置,以保证传输过来的数据接收和发送完整。最后,将机器人运行的主要逻辑指令,写到主函数的循环函数中。

5.2 机器人运动子函数

在编程时,使用全局定义,将机器人电机分别分为左电机前进、左电机后退、左电机停止、右电机前进、右电机后退和右电机停止。这样做的方法,是有利于后续使用的时候,能尽可能的便捷、快速。

正在上传…重新上传取消

图5-1电机引脚定义

定义好电机运动方向之后,需要建立子函数,将PWM调速和电机运行方向两个内容放到同一个子函数当中,例如,机器人前进时,需要左右两个电机的PWM给出电机的转速和左右两边电机的旋转方向,这样才能在调用子函数时,控制机器人所运行的方向是正确的。

5.3舵机卸货程序

舵机只需要一根信号线和两根电源线便能控制运行的电机,是由50Hz的PWM,调整工作循环,使操舵转动的角度。50 Hz的信号,也就是20 ms的一个脉冲,在1 ms的高电平下,舵机在0°,高电平在1.5 ms,在90°,高电平为2ms时,舵机处于180度。脉冲的高电平从1ms逐渐增加到2ms的过程中,舵机会从0度慢慢旋转到180度,这样便能使用舵机将货物从机器人上将货物卸载下来。

5.4货物识别

货物使用了三个不同颜色正方体表示的,机器人通过使用TEMT6000环境光检测传感器进行颜色识别的。不同颜色的物品,在自然光下,反射出来的光强是不同的,所以利用该传感器,可以判断是何种颜色的物品,经过单片机的ADC数据采集和处理之后,机器人将物品运输到指定位置,并将物品卸载下来。

今天的文章单片机机器人分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/8480.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注