基于STM32的智能移动拍摄手臂设计_第1页
基于STM32的智能移动拍摄手臂设计_第2页
基于STM32的智能移动拍摄手臂设计_第3页
基于STM32的智能移动拍摄手臂设计_第4页
基于STM32的智能移动拍摄手臂设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

[23]中提出可以针对部分手臂出现问题的人设计整体系统,设计的系统可以在瘫痪上肢进行康复的时候提供必要的帮助,以便用来解决任务导向的部分活动。“软六指”是一种可穿戴的机器人多指设计,这样的设计主要用于脑卒中后病人的辅助装置,该装置与仿生手/手臂一起工作,以类似于机器人抓手的两个部分来抓取物体。1.3功能需求分析随着信息技术的持续发展,以及现代社会的不断进步,再加上最近几年人们对智能化应用的关注,移动拍摄手臂已经成为社会关注的焦点。作为现代智能社会的重要组成部分,它可以通过图像传输技术实现智能化建设。移动拍摄手臂系统能够有效的将摄像头前的画面进行拍摄并传输至手机上。与移动拍摄手臂只能远程运动控制俯仰的功能不同,本系统支持在不同复杂的地形中进行移动,采用履带作为底盘可以保持运动时手臂的稳定性,较少运动中的颠簸,使得画面具有的稳定性。该系统在功能化的构建中,采用了物联网的技术,其主要功能有:(1)图像视频传输:图传模块安装在机械手臂之上,摄像头拍摄的画面通过图传模块推流到自身IP上,手机APP连接进行视频数据接收。(2)远程控制:可以用手机远程控制手臂的移动,APP向单片机发送数据,单片机接收控制数据。(3)降低功率消耗:采用STM32F1系列单片机,而不采用PC机或树莓派等,大大降低了系统的能耗。1.4设计研究内容(1)使用STM32F103ZET6单片机处理数据并控制整个系统采用STM32F103ZET6的定时器输出PWM波驱动电机转动,通过C语言编程的方式实现软件PWM输出,实现软件控制占空比。(2)采用WIFI模块进行数据回传使用STM32的串口三接收手机APP发送的指令,将接收到的信息进行解包处理,提取功能帧进行下一步控制。(3)采用PWM控制机械手臂的角度舵机的旋转角度由PWM的占空比控制,180°的舵机由输出PWM的占空比来确定舵机的旋转角度。1.5章节小结这一章主要对与智能移动拍摄手臂系统有关的课题背景,以及国内外研究的研究现状进行了介绍。章节主要介绍了智能移动拍摄手臂系统相关的课题背景,国内外的研究现状,包括国外部分移动拍摄手臂系统制作的方案和移动拍摄手臂系统相关的专利、项目等存在的问题以及本设计研究的主要内容。第2章总体方案设计本系统设计的智能移动拍摄手臂,系统以STM32芯片作为核心,同时搭配电机模块、舵机模块、WIFI模块、摄像头模块进行系统搭建。首先使用摄像头模块进行图像采集,拍到的图像经过单片机,然后再通过无线模块传递到手机APP,这样就可以显示图像。另外手机端还可以控制小车地盘系统,控制数据到驱动模块,进而控制舵机的角度变换及小车的运动,真正的完成智能拍摄手臂系统的运行。图2.1总体方框图2.1单片机型号选择方案一:选用STC89C52等51系列单片机。该系列最高可配置8k字节闪存,512字节随机存取存储器,32位L/O口线,看门狗定时器,4kb的EEPROM,MAX810重置电路,3个16位定时计数器,4个外接中断,1个七向量四级中断结构(与51系常规MCU采用五尺量二次中断架构),全双工串行接口。此外STC89C52还能调低到0赫兹的静止逻辑式运行,并支持二个软件可供节电模式选择。在闲置状态,CPU将停止运行,内存,计数器,串口,终端将会继续运行选择。在掉电保护模式下,存储RAM额定内容,冻结振荡器。单片机的所有工作在下一个中断棍硬件复位之前停止。最大工作频率35兆赫,6吨/12吨,但其不足之处在于51系列单片机内部没有ADC模块,也没有PWM产生通道。因此,对ADC采集需要外置ADC转换芯片,而对于PWM,则需要手动模拟PWM输出,这对于一些需要ADC信息采集以及PWM输出的设计来说,是非常不方便的。方案二:选择MSP430/MSP432系列的MSP430/MSP432系列微控制器;MSP430和MSP432是TI的单片机,本文选择了MSP430和MSP432两种单片机作为进行组。MSP430是一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(MixedSignalProcessor),它具有高达16位的高精度ADC,主要应用于精确测量信号和需求低功耗的场合。每一种MSP430系列MCU都有更多的内部和外部的集成。其中,当程序失去控制时,监视器能快速重置;采用模拟比较电路对模拟信号进行比较,其输入输出端口数量多,P0,P1,P2端口既可以从外部的上升边缘也可以从下降边缘接受中断输入;10/12比特的硬体模数转换器,其转换率可达到200kbps可满足大部分资料收集的要求;可直接驱动多至160级的液晶;实现12比特的双通道数模转换;本文介绍了一种在串行总线上实现I2C硬件接口的存储器扩展。以及增加数据传输速度的DMA模块,MSP430系列单片机中的此类芯片,外部设置,使得该系统的单芯片解决方案变得非常便利。不过与STM32F1、STC89C52系列相比,它的价格还是比较高的。方案三:选择STM32系列微控制器。STM32F103C8T6包括64

Kb的

Flash、20

Kb的

SRAM、37个可编程输入输出、2个模数转换器、1位先进计时器,3位传统的16位计时器,2位看门后定时器,1位24位系统,3位串行接口,2位IIC,2位SPI,1位CAN器,它有四个计时器,每一个信道都可以被配置成为PWM输出,输入比较,等多种方式等。它的使用更加便捷,功能更加强大,跟STC89C52系列相比,它的价格并没有发生多大的改变,它的性价比非常高。而STM32F1系列则是当前最具代表性、最具代表性、同时也是最具稳定性的一款单片机芯片。在此基础上,选取STM32F103C8T6作为主控的芯片,对它进行性能上的分析。图2.2STM32实物图2.2无线通讯模块选择方案一:蓝牙模块,本身也是一种无线技术,通常使用的是2.4G频段,使用蓝牙方式进行设备传输时一般应用于短距离通信。使用蓝牙作为通信方式,数据能够稳定连接,而且系统本身的可靠性比较高。但是传输的距离一般限制在小于100米的范围内。方案二:WIFI方式,它本质上就是允许设备连到无线局域网的技术,有两个频段,2.4GHz和5GH。使用WIFI方式,就是把有线的网络信号转化为无线的信号,这样就可以完成在一定的区域内,WIFI设备不需要有线就能够连接到网络中,真正的方便使用。相比较于蓝牙,WIFI的数据传输的距离也更远,甚至可以达到几百米。经过两个模块的比较,智能移动拍摄手臂系统选择WIFI模块通信。图2.3WIFI模块实物图第3章系统硬件电路设计3.1系统电源设计本系统设计的智能移动拍摄手臂,整体以STM32F103C8T6为主控芯片,对系统进行了硬件设计。系统中传感器、单片机模块、输出模块是兼容5V和3.3V供电的,供电采用三节18650锂离子电池串联然后经过降压,然后再进行供电的。3.2各模块硬件电路设计3.2.1微控制器概述以及型号选择单片机(Single-ChipMicrocomputer)是指一种集成电路的芯片,它是一种小型的,功能完备的微机系统。单片机在现代工业中发挥着重要的作用,它们通常被用于控制系统和嵌入式设备中。它们可以通过编程来执行各种任务,如控制电机、传感器和其他外部设备的操作。单片机也常用于智能家居和物联网设备中,以实现各种智能化应用,如智能家电、智能门锁、智能摄像头等。已被广泛用于工控领域。同时,随着单片机技术的不断发展,它们的性能越来越强大,功耗也越来越低,能够满足越来越多的应用需求。STM32F103C8T6芯片属于是容量为中等的增强型的芯片,它是基于ARM为核心的微控制器,做高频率可以达到72MHz。含有7个定时器和9个通信接口。它含有丰富的输入输出端口,可以适用于多个场合。图3.1STM32的引脚图3.2.2图像采集模块的选择摄像头模块采用慧静电子的,高清摄像头的供电电压5V,连接方式为USB免驱动,硬件像素30W,焦距的设置方式为手动调焦。图3.2摄像头模块实物图视频模块采用慧静电子生成的图传模块,该方案免去了自定义传输方案,采用通用的视频传输方案,增加了模块的通用性。3.2.3电机模块的选择电机模块分为两部分,分别是电机驱动和电机这两部分。采用的电动机驱动有L298N和TB6612,常用的电动机有直流,空心杯电动机等。一般情况下,电动机只需接通电源即可转动,正时接正可以接通,逆时接逆可以接通。若要用MCU的输入输出端口来控制电动机,则必须要有电动机的驱动。这是因为IO端口的功率不够,不能驱动电机,还会烧毁。所以要用合适的电机驱动器来驱动电机并使用单片机产生PWM波来调速。方案一:采用三极管作为驱动电路,这种方法要求三极管周边的电容,电阻值按照电动机的参数进行选择,并且要亲自动手焊接有关的电路,但是如果选择这种方案会比较不便。第二种方法是选择TB6612。TB6612FNG可以带动两个电机的转动,相对于传统的L298N,性能大幅度提升的TB6612FNG模块,体积也缩小了不少。在标称温度下,晶片基本上没有加热。而且还拥有100khz的PWM控制频率。但是价格相对L298N更加昂贵。方案三:选用L298N。L298N是一款能够承受高压动电动机,既能驱动直流电动机,也能驱动步进电动机。一片驱动晶片,可以同时操纵两台直流减速马达,使其在6伏至46伏之间,输出电流为2安,并具备过热自断及回馈侦测的功能。由L298N直接控制电动机它的控制电平是由主控芯片的I/O输入来设置的,只需为电动机正向,反向转动,操作简便,稳定性能比较好。能够满足大电流驱动的直流电动机的要求。L298N很便宜,同时L298N有小体积版本,采用小体积版本L298N驱动车轮上的电机绰绰有余。选择电机:方案一、空心杯电动机:中空杯状电机是由一种中空杯状的有刷电机和一种中空杯状的无刷电机构成的。无刷电动机,在四旋翼无人驾驶飞机上被广泛应用以及需要高转速的项目中,体积小,转速高,但是需要的电流大,价格相对昂贵;其中的有刷电机则相对来说体积更大,其他方面与无刷区别不是很大。方案二、TT直流电机:TT马达是生活中常见的电机,其体积相对较小,转速满足车轮的基本要求,价格低廉,易驱动。方案三、步进马达:步进马达是一种特别的马达,它把脉冲讯号转化为机械动作,步进电动机是一种开环控制,不需要任何附加反馈,走步电动机,一旦知道了步进电动机每次转动的角度,就能够精确地控制电机的运动位置。步进电机有许多不同的磁场,不同的线路,就一个四相步进电机而言。四相指的是电机里面有4对磁极,另外还有一个公共端电源,ABCD是四线的连接器。四相电动机可以有六根导线,也可以有五根导线。所以有成为六线四相制和五线四相制。方案四、减速电机:减速电机是一种由减速机和电机组成的整体。这种一体化设备也可以称为驱动马达或齿轮马达。通常都是由专业的减速器生产厂家进行整体组装,与电动机整体配套供应。它具有效率高,可靠性高,使用寿命长,结构简单,占地少,维修方便,适合面广等优点。安装方式可分为展开型,同轴型和分流型三种。根据变速器的传动形式,减速马达可分为同轴斜齿轮,平行轴,等多种。适用于很多方面,在各行业中的各种普遍机械的减速机。经过对比,在本项目中拟采用L298N作为电极驱动,采用直流减速电机作为控制小车的动力机构。图3.3电机驱动电路图3.2.4舵机模块的设计舵机是一种进行位置伺服的装置,一般来说舵机主要应用在需要不停的进行角度变换,仍然可以进行保持的系统中。使用舵机主要是应用在一些需要输出某一具体控制角度的场景中,舵机本身可以根据控制信号来进行一定的角度输出。一般的输出角度有90度、180度、360度。这几种舵机除了输出角度存在差异外,其它的性能参数基本上没区别。舵机的工作原理就是:接收机进行发出信号传给舵机,这时候电路板上的IC驱动无核心的马达就会进行转动,通过齿轮进行动力传输到摆臂,同时对应的位置传感器发回讯号,可以用来判断是否到达指定位置。SG90舵机,主要是依靠PWM方式控制。对于舵机的角度控制,需要MCU产生一个大小为20ms的脉冲信号,然后再用0.5ms到2.5ms的高电平进行控制。图3.4舵机实物图图3.5舵机电路连接图第4章系统程序设计4.1整体程序设计框架首先系统上电之后开始进行各个模块的初始化,包含延迟功能的初始化,发光二极管的初始化,马达引脚IO的初始化,无线图像传送模组的初始化,串口三的初始化和定时器2的四个声道的输出PWN初始化。在完成了初始化后,计时器2被接通,并且完成了编码系统的初始化,并进行了主循环。对于主循环来说,如果WIFI图传模块收到了被控制指令,代码将会解析指令,并拆分帧头帧尾,根据中间的功能帧和数据帧来对车体和舵机进行控制。4.2各模块程序设计4.2.1电机PWM转动PWM,英文名为“PulseWidthModulation”,它是利用一种微处理机构的数字的信号来控制模拟电路的一种高效率技术,它被广泛地应用于测绘,通话,功率的控制,转化等几个领域。换句话来说,电机本身有两根线,分别与电源的正负两极相连,如果两极对调,就可以实现反向,如果电极的两端都与电源的正负极相连,那么这个时候的电机就是在全速运行,而且速度不能控制,在很多时候,我们并不期望电机能全速运行,只是想要按照我们所需要的速度运转,这个时候,就需要使用PWM来对电机进行调速。图4.1PWM波形脉宽调制包括两个基本参数,频率和占空比两个方面,频率区间,即循环的倒数。并且它需要有一定的频率才能驱动,不同类型的电动机,它的驱动信号的频率的范围也是不一样的。假定电压为5伏,输出为40%,输出电压只有2V,如果加到电动机上的电压降低,电动机的转动速度就会降低。STM32单片机具有非常强大的功能,它的通用计时器具有PWM的输出特性,通过对相应的寄存器进行配置,就可以实现对PWM信号的输出。以下是配置定时器3并以PB5输出PWM的代码:voidTIM3_PWM_Init(u16arr,u16psc){ GPIO_InitTypeDefGPIO_InitStructure; TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure; TIM_OCInitTypeDefTIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;//TIM_CH2 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽输出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure);// 在控制定时器输出的PWM时,只需调用TIM_SetCompare2(TIM_TypeDef*TIMx,uint16_tCompare2);此函数即可,该函数的功能是,配置特定定时器x的通道2的CCRx寄存器,在定时器的CNT寄存器的数值<CCRx寄存器数值的时候,定时器输出高电平,反之则输出高电平。改函数的内部实现如下:voidTIM_SetCompare2(TIM_TypeDef*TIMx,uint16_tCompare2){/*Checktheparameters*/assert_param(IS_TIM_LIST6_PERIPH(TIMx));/*SettheCaptureCompare2Registervalue*/TIMx->CCR2=Compare2;}4.2.2舵机PWM转动转向装置又称RC伺服装置,一般应用于机器人工程,也可应用于远程控制车辆,飞机等各种型号的航空模型。一种类似于舵机的伺服系统,一般是由一个小马达,一个电位器,一个内嵌的控制系统以及一个齿轮箱构成的。由于一个内置器的电势计,连续地采样并测量了马达的输出轴的位置,并把它和一个由微处理器设置的目标的位置来进行比较。通过对该误差的分析,得出了电动机输出轴的真实位置,并对其进行了修正。如此,可构成闭环控制。该舵机主要包括如下部件,主要是四个方面的部件。在收到脉冲命令的时候,DC马达就会开始旋转。然后驱动减速齿轮组,再驱动下面连接的电位计。然后通过控制面板上的电位计,判断出操纵杆的转动角度,从而形成了一个闭环。通过将PWM信号传输到所述操纵器的所述信号线路而对所述操纵器的输出进行控制,通常情况下,输出轴的位置取决于PWM的周期和占空比。以下例子说明,当我们给操纵器发出了一个脉冲宽度为1.5ms的讯号时,操纵器的输出轴会移动到一个中点。当脉宽为1毫秒时,操纵器的输出轴会移动到零度角的最小位置,当脉宽为两毫秒时,它的输出轴会移动到最小,需要指出的是,在不同的型号和型号伺服马达中,最高于最低的位置的夹角可以有所不同。很多服务器只转动大约170度,但是1.5毫秒宽度的服务器脉冲典型地把服务器设定在中间位置,典型地是规定的全域的一半。4.2.3通信部分程序设计装置间的通讯模式可分为两类,并联通信和串联通信,串行通信的区别是,根据它的传送方向,它可以划分为三种类型,一种,半双工,一种和全双工在这里,singleton指示只支持单向的数据传输,半双工使得数据可以从双向上载输出。但在一定时间内只能向一个方向传送数据,这其实就是一种单向的单向通讯,本发明不需要将接收机和发射器分离,而是将接收器和发射机组合起来,共用一个口,然而全双工则可以实现数据的双向传输,因此,所谓的全双工通信,就是需要两种不同的单工信方式的结合。图4.2三种通信方式从通讯的形式来看,它们可以分为同步通信和异步通信。同步通信频带,时钟同步信号来传输,比如说,SPI、IIC通信接口。无时钟同步信号的异步通信,如UART,单总线等。在进行同步通信的时候,发送端和接收端之间会有一个信号线路,以时钟为动力,将两个人之间的信息相互配合,实现数据的同步。比如,在通讯过程中,双方一般都会制定一个标准,那就是在时钟信号的上升和下降两个标准。在异步通信中,并不把时钟讯号用作资料同步,而是把资料讯号直接插入资料讯号中,或是把资料封包起来,以资料帧式传送资料。为了保证更好的同步,另外还需要在数据传输速率上达成协议,较为常见的波特率为4800bps、9600bps、115200bps等。在前者,大多数数据信号传输的是有效的数据,然而在后者,将包含不同的标识符。所以同步通信的效果是非常高效的,但是在同步通信中,双方所容许的时钟的误差是非常小的。稍微的时钟错误就会造成数据混乱,异步通信双方的时钟允许误差很大。在本次项目中,采用异步通信的方式进行数据传输,具体实施的方式如下,首先初始化串口,打开串口中断,编写中断服务函数,在主函数里进行服务操作。以下是串口接收中断的处理函数:voidUSART3_IRQHandler(void)//串口接收指令函数{ unsignedcharrec_data; if(USART_GetITStatus(USART3, start++; } elseif(start!=0&&rec_data==0xff) //如果收到包尾 { mode[0]=buf[0]; //给状态存储数组赋值 mode[1]=buf[1]; mode[2]=buf[2]; start=0; mode1=1; //指示主函数循环检测一次 } elseif(rec_data==0xff&&start==0) //如果收到的是包头 start++; }}4.3小结本章节主要介绍了工程计划的总体架构和各组成部分的规划。可以通过查阅相关的元器件数据手册,使用手册,从而了解每个元器件的工作原理,其对应的时序逻辑以及模块对应的串口协议,首先画出了整个编程流程,然后用Keil5进行了详细的编程。从电机速度控制、舵机角度控制、通信部分程序设计等程序模块入手,先编程实现各个模块的功能,再将各个模块合并调通,实现整体功能。第5章系统介绍与调试5.1系统介绍智能移动拍摄手臂,它其实是以STM32作为一个主线的,另外用舵机、电机、摄像头、WIFI模块等作为了一个外接固件,该系统以较低的履带式运载车和较高的智能摄像臂作为了基础的构架。实现了作业现场的摄像和操纵工作的顺利进行。在此,控制的模组,对推车的运动以及它的角度的控制。该系统采用了无线通讯模块,实现了对移动电话的数据传送和对移动电话的处理事项。另外,通过对小车运动的控制,避免了障碍物,并能够将摄像机返回影像传送到移动终端上实时显示并由控制端监视运行。它能够协助人类执行由于灵动性和其他限制难以执行的任务。比如说自然灾害的当场的摄像。该系统采用按键来控制系统,移动它的方向与它的摄像头录像方向,分别有上按键与下按键等来控制,若小车需要向前移动,可由向前移动的按键来控制;若小车需要后退,可由向后移动的按键来控制;若小车需要向左侧转弯,可由向左移动的按键来控制;若小车需要后退,可由向右移动的按键来控制。若需要摄像头向右侧偏转,可通过向右偏转的按键来实现;若需要摄像头向左侧偏转,可通过向左偏转的按键来实现,其他方向同理。从理论上来说和人工相比,使用机器人来替代人工,在对被困人员搜救,对位置环境的探索,信息的传输等多个方面,具有更安全,更方便的优势。它可以替代人们在一些恶劣条件下的摄影,也可应用于流水作业中,以取代往复的运动,节省人类体力。5.2调试(1)按下电源开关,指示灯亮起,WIFI通信模块指示灯亮起后熄灭图5.1整体上电后图片(2)将装置的WIFI通信模块和手机端进行连接。在手机端显示WIFI已连接,这时候表示连接成功。图5.2WIFI通信模块图5.3手机端WIFI连接图(3)图像采集由摄像头来完成。图5.4摄像头连接图(4)通过手机控制端进行监控和操作,手机端可以实时显示摄像头拍到的画面。图5.5远程操控图5.6手机界面显示图如图所示:手机屏幕左侧方向键用来控制小车的移动方向,屏幕右侧方向键用来控制摄像头的拍摄角度。若想让小车前进,只需按下手机屏幕左侧方向键中的向上的箭头,从而控制小车前进。后退时需要按下屏幕左侧方向键中的向下的箭头,这样小车就会后退。当想让小车向左转弯时按下屏幕方向键中向左的箭头,由于小车履带的转速差,小车就会实现转弯。同理,当想让小车向右转弯时,只需要按下方向键中向右的箭头就可以实现。若需要拍摄偏右方向的场景时,需要按下手机屏幕右侧按键中的向右的箭头来调整摄像头的角度,这样摄像头就会旋转到右侧,其他方向同理。人们可以控制小车向控制方向行进、躲避途中的障碍物,而且摄像头返回的图像信息也会实时传输至移动终端显示,这样人们就可以通过控制端进行监控和操作。第6章总结与展望本篇论文主要介绍了一种以STM32为核心的智能型照相机械臂的设计与制作,本文首先阐述了本课题的研究背景和国内外有关文献综述。论文的第二章是对课题的总体硬件设计进行了详细的阐述,第三部分是对课题的总体设计。文章的第四部分介绍了设计的实现与调试,包括硬件电路的焊接和软件程序的编写,最终实现了基于STM32的智能移动拍摄手臂的功能。在实际测试中,该设计的拍摄手臂能够准确地按照用户指令进行姿态调整,并且可以通过手机端进行遥控操作,大大提高了拍摄效率和便捷性。文章的第五部分是对设计的总结和展望,指出了该设计中还存在的问题和不足,同时也提出了进一步改进的方向和思路,以期达到更好的实用效果。这个项目的研究具有很强的实际意义。意图是在特别的情形下,手动控制拍摄手臂进行角度变换。本设计采用STM32F103ZET6作为主控,WIFI图传模块作为摄像头画面传输部分,该系统以直流电动机为驱动,以无线模块与移动电话进行通讯。第一部分是关于线路支路的设计,主控制器和部分传感器使用3.3伏的电源。5伏电源下,无线图传模块更稳定,但也能在3.3伏电源下工作。后半部分对软件程序设计,实物调试等环节进行了详细的阐述,其目标是对以STM32为基础的智能移动拍摄手臂设计的正确性与可行性进行了验证。另外,在设计上还有许多需要改进的环节。首先,整个电路都可以用PCB来完成,而不是像洞板那样,需要花费大量的时间来完成,这样既能提高设计效率,又能保证系统的稳定性,不会出现杜邦路线因维护时间太长而松动,断线的现象,使用印刷电路板的设计更接近于一体,更具整体性和集成性。其次,使用电池组作为电源,将两节干电池分别调到五伏,三伏,这样整体的电源将会得到较好的输出。总之,本论文提出的基于STM32的智能移动拍摄手臂设计是一项具有实用性和可行性的研究,能够为拍摄领域提供一种新的思路和解决方案,具有一定的创新性和应用价值。参考文献李明喆,刘萧键.基于STM32的智能移动拍摄手臂[J].数字技术与应用,2019,37(03):14-15.白焕鑫,刘文飞,孟鑫,薛茜艺.基于STM32的智能物料搬运小车[J].科技与创新,2022(16):44-47+51.陈淑艳,陈文家.履带式移动机器人研究综述[J].机电工程,2007(12):109-112.梁锋,王志良,解仑,徐文学.多舵机控制在类人机器人上的应用[J].微计算机信息,2008(02):242-243+229.张勇.六自由度机械手参数化建模及运动仿真[J].机械管理开发,2023,38(04):4-6.吉洋,霍光青.履带式移动机器人研究现状[J].林业机械与木工设备,2012,40(10):7-10.杨草原,张超.模块化移动机械手臂设计[J].机械研究与应用,2019,32(03):115-118.王绪全.六自由度机械手臂及移动机器人控制系统研究[D].燕山大学,2016.赵永涛.基于单片机的机械手臂控制系统设计[J].农业工程与装备,2022,49(05):24-26.陈心怡,张春雨,朱丽华.基于单片机的六自由度机械手臂控制系统设计[J].铜陵学院学报,2021,20(02):106-109.郗郡红.搭载机械手的智能轮式小车目标识别及抓取控制研究[D].天津科技大学,2015.吴南.自动机械手臂控制系统设计[J].轻工科技,2019,35(08):77-78.冯泽.基于STM32的图像采集与去抖动模糊的研究[D].上海师范大学,2015.刘萧键,李明喆,李金鹏,张国恒.基于嵌入式的智能移动机械手臂[J].电子世界,2018(02):155-156.张维君,陈威.同步控制机械手臂的研究[J].舰船电子工程,2021,41(05):90-95.邓远旺,吴家洲,邱玉兰,俞志强.基于DSP带机械手臂履带式移动机器人[J].科技广场,2014(07):78-81.李维军,韩小刚,李晋.基于单片机用软件实现直流电机PWM调速系统[J].机电一体化,2004(05):49-51.吴洪艳,徐东萍,甘尚艳.基于图像识别的智能垃圾分类小车设计[J].现代信息科技,2023,7(03):143-146.张兴武,赵庆志,张林华,夏汝岩,王政皓,孙小飞.基于STM32F103的嵌入式图像采集系统[J].山东理工大学学报(自然科学版),2018,32(05):23-26.马经权,王中刚,康国旗.基于STM32F103的图像采集系统设计[J].无线互联科技,2017(11):46-47.KimOnyoo,LimJung-Eun,KimWooYeung.AStudyOnTheApplicationOfMobileArmSupportInIndividualsWithCervicalCordInjuries[J].ArchivesofPhysicalMedicineandRehabilitation,2022,103(12).HoshinoSatoshi,KuriharaYuta.MobileRobotLocalizationThroughOnlineSLAMwithModifications[J].jrobomech,2022,34(4).IrfanHussain,GionataSalvietti,GiovanniSpagnoletti,MonicaMalvezzi,DavidCioncoloni,Si-moneRossi,DomenicoPrattichizzo.Asoftsupernumeraryroboticfingerandmobilearmsupportforgraspingcompensationandhemipareticupperlimbrehabilitation[J].RoboticsandAutonomousSystems,2017,93.LongTao.DesignofSweepingRobotBasedonSTM32SingleChipMicrocomputer[J].JournalofPhysics:ConferenceSeries,2023,2456(1).HansJohnDcruz,K.Baskaran.Anovelnon-isolatedthree-portbidirectionalDC-DCconverterforoff-gridsolarpoweredchargingforelectricandhydrogenvehicleusingSTM32microcontroller[J].InternationalJournalofHeavyVehicleSystems,2022,29(3).附录程序代码Main.c#include"stm32f10x.h"#include"Time_test.h"#include"uart.h"externintspeed_left,speed_right; /*speed=0~5*///电机调速度volatileu32time;//ms计时变量externvolatileu8motor0_angel,motor1_angel,motor2_angel,motor3_angel,motor4_angel,motor5_angel;u8mode[3],mode1=0;/**函数名:main*描述:主函数*输入:无*输出:无 */voiddianji(u8i)//进入小车控制指令{ switch(i) { case1: //前进 speed_right=4; speed_left=4; break; case2: //后退 speed_right=-4; speed_left=-4; break; case3: //左转 speed_right=-2; speed_left=4; break;case4: //右转 speed_right=4; speed_left=-2; break; case0: //停止 speed_right=0; speed_left=0; break; }}voidduoji(u8i)//进入云台控制指令{ if(mode[2]>180) mode[2]=180; switch(i)//云台控制只用12两个,其他4个备用,可以扩展机器手控制(自己研究购硬件) { case1: motor0_angel=mode[2]; //取角度 break; case2: motor1_angel=mode[2]; break; case3: motor2_angel=mode[2]; break; case4: motor3_angel=mode[2]; break; case5: motor4_angel=mode[2]; break; case6: motor5_angel=mode[2]; break; }}voidother(u8i)//进入备用控制(自行升级备用指令){ switch(i) { case2: //LED大灯控制(不用) if(mode[1]==0x00) //取操作对象 ledon; //取操作状态 elseif(mode[1]==0x01) ledoff; break; case3: //报警器控制(不用) if(mode[1]==0x00) beepon; elseif(mode[1]==0x01) beepoff; break; case4: //自定义控制指令(不用) if(mode[1]==0x00) zidingyion; elseif(mode[1]==0x01) zidingyioff; break; }}intmain(void){ /*配置系统时钟为72M*/ SystemInit(); /*led端口配置*/ ALL_GPIO_Config(); /*usart3串口配置*/ USART3Conf(9600); TIM2_NVIC_Configuration(); //NVIC_Configuration(); TIM2_Configuration(); /*TIM2开始计时*/ START_TIME; while(1) { if(mode1==1) //每次收到指令执行一次{ mode1=0; if(mode[0]==0) //电机运动 dianji(mode[1]); elseif(mode[0]==1) //舵机行程 duoji(mode[1]); elseif(mode[0]>=2&&mode[0]<=4)//其他行程 other(mode[0]); } }}/*************************************************************************************协议规定:包头类型位数据位数据位结束位0XFF0X**OX**0X**0XFF各命令说明:类型位数据位数据位功能0X000X010X00前进0X000X020X00后退0X000X030X00左转0X000X040X00右转0X000X000X00停止0X000X050X00左前0X000X060X00右前0X000X070X00左后0X000X080X00右后0X010X01角度舵机10X010X02.舵机20X010X03.舵机30X010X04.舵机40X010X05.舵机50X010X06.舵机6*****************************************************/Usart.c#include"uart.h"//UARTfunction//UART3TxDGPIOB10RxDGPIOB11voidUSART3Conf(u32baudRate){ NVIC_InitTypeDef NVIC_InitStruct;//定义一个设置中断的结构体 USART_InitTypeDefUSART_InitSturct;//定义串口1的初始化结构体 GPIO_InitTypeDefGPIO_InitStruct;//定义串口对应管脚的结构体 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);//打开串口管脚时钟 //USART3_Tx_PinConfigure GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;//输出引脚 GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;//设置最高速度50MHz GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;//推挽复用输出 GPIO_Init(GPIOB,&GPIO_InitStruct);//将初始化好的结构体装入寄存器//USART3_Rx_PinConfigureGPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;//GPIO模式悬浮输入GPIO_InitStruct.GP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论