本文为原创文章,转载需要注明转载出处
前言:嵌入式开发是相比其他IT行业是比较难的行业,它不仅需要你去掌握软件的经验,还要去学习一些硬件的知识,
它是软件和硬件的一个粘合剂,起到一个至关重要的地位
嵌入式学习必须要沉下心来
实物图
这个项目是我在学校做的项目,发表了一篇论文,由于学校的是一个团队,机械加电控,主要讲了机械部分,电的知识只有一些,并没有讲很多关于电的知识,我很遗憾,很可惜,并不能将电和控制部分的东西展现出来,在这里,我把思路屡一下,发在这里。
【STM32】【C】【嵌入式】分享一下我的项目经验--基于stm32桌面主从机械臂设计(一弹)
【STM32】【C】【嵌入式】分享一下我的项目经验--基于stm32桌面主从机械臂设计(二弹)
【STM32】【C】【嵌入式】分享一下我的项目经验--基于stm32桌面主从机械臂设计(三弹)
代码还没更新完,github太卡了,码云一个小时上传20个文件
码云地址:https://gitee.com/rong11417/MasterSlaveArm
目录
摘要:
随着科技的发展,工业4.0的推进,机械臂应用也越来越广,它慢慢取代人工劳动,演化出各种各样的机械臂,比如码垛机械臂,焊接机械臂,装配机械臂,手术机械臂,等等,这些机械臂工作的稳定性和精度都是高于人的,并且它们可以从事危险的环境里。
机械臂主要由机械框架,硬件和软件等组成,这里主要硬件和软件的部分,本文旨在方案新颖,方案由两个三自由度机械臂,一个是主机械臂,另一个是从机械臂,类似于示教机械臂,主机械臂怎么运动,从机械臂就跟着怎么运动。
第一章 系统整体设计思路
1.1整体设计概述
从整个大体来看,本次设计略微有点复杂。首先一共有两个机械臂,一个主机械臂,一个是从机械臂,要想实现功能,需要用到两个stm32c8t6最小系统,一个是控制主机械臂,一个控制从机械臂,控制主机械臂的stm32最小系统的主要功能是通过采集主机械臂上的三个电位器的电压值和ADC值,计算出1个角度是多少个ADC的值,从而计算出对应的电机脉冲,然后通过蓝牙发送数据。控制从机械臂的stm32最小系统的主要功能是蓝牙接收传过来的数据,进行脉冲数据处理,然后转化为三个步进电机对应的脉冲,进而驱动从机械臂。
1.2整体设计逻辑原理图
1.3 单片机简介
stm32f103xx性能系列是一套全面的节能模式允许设计低功耗应用,在很多领域应用广。
主要特性:
■高性能ARM Cortex-M3 32位RISC内核,72MHZ频率,高速嵌入式闪存
■16mhz石英振荡器,内部8 MHz,内部32khz RC,PLL的CPU时钟,RTC专用32khz振荡器
■直接存储器存取,7通道DMA控制器,外设支持:定时器,ADC, SPIs,I2Cs 和USARTs
■低功率,休眠、停止和待机模式,VBAT供应的RTC和备份寄存器
■2 x 12位,1µs A / D转换器(16通道),转换范围:0至3.6 V,双样本和保持能力,与先进的控制计时器同步
■通信接口,最多2个I2C接口(SMBus/PMBus),最多3个USARTs (ISO 7816接口,LIN,IrDA功能,调制解调器控制),最多2个spi (18mbit /s),CAN接口(2.0B Active), USB 2.0全速接口等
1.4 stm32f103部分系统原理图
1.5 stm32f103系统架构图
第二章 元件及器件
2.1 42 步进电机
2.1.1 42步进电机概述
要控制机械臂,先得控制步进电机,我这里选用的步进电机是42步进电机。步进电机按转子类型来分,可以分为永磁式、反应式、混合式。42步进电机是混合式步进电机,也有听说过57步进电机。这个型号常见的是按照步进电机的尺寸来分类的,按照法兰尺寸,市面上常见的混合式步进电机有20/25/28/35/36/39/42/57/60/86/110/130,下面主要讲解42步进电机。
2.1.2 42步进电机的工作原理
步进电机(stepping motor)把电脉冲信号转换成角位移以控制转子转动的微特电机。在自动控制装置中作为执行元件。每输入一个脉冲信号,步进电机前进一步,故称之为脉冲电动机。
2.2 A4988 电机驱动
2.2.1 A4988电机驱动概述
a4988电机驱动常用来3d打印中,其常与ardiuno配合使用,在这里我将配合用stm32f103c8t6最小系统来配合a4988电机驱动控制42步进电机。
2.2.2 A4988 电机驱动实物图
2.2.3 A4988电机驱动连线图
1B 1A 2A 2B是连接42步进电机的。
MS1 MS2 MS3进行细分电路,来选择模式的,如下图
L |L| L是全步 每步1.8度,也就是一个脉冲1.8度。 如果给200个脉冲,就是360.理论上是这样的。
下面就是细分 H L L 1/2细分
L H L 1/4细分
H H L 1/8细分
H H H 1/16细分
VMOT 和下面的GND 连接的是一个外部供电电源 电压在8~35V
右下角的VCC和GND是与板子的对应管脚相连接
/ENABLE 控制电机是否能转 0代表可以转 1代表不能转
/RESET 和 /SLEEP 这两个管脚用一根杜邦线相连
DIR管脚控制的是 电机旋转方向 正转或反转 0代表正转 1代表反
STEP管脚是控制脉冲的 与板子 相连一个管脚 对其管脚进行控制机械臂左右步进电机与a4988驱动的连接方式
左步进电机连线
1B ------->蓝(blue)
1A-------->黄(yellow)
2A-------->绿(green)
2B-------->红(red)
右步进电机连线
1B ------->红(red)
1A-------->绿(green)
2A-------->黄(yellow)
2B-------->蓝(blue)
反正两个电机反着接
2.3 蓝牙 HC-06
2.3.1 蓝牙 hc-06概述
通常用的蓝牙是hc-05型号的,蓝牙(Bluetooth):是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4—2.485GHz的ISM波段的UHF无线电波)。蓝牙技术最初由电信巨头爱立信公司于1994年创制,当时是作为RS232数据线的替代方案。蓝牙可连接多个设备,克服了数据同步的难题。
2.3.2 蓝牙之间通信
pc端与单片机之间的通信,pc端需要通过usb转ttl串口的一个转换器,通过这个转换器与pc端和蓝牙相连接,蓝牙的RX对应的是转换器的TX,转换器的RX对应的蓝牙的TX,只有这两个相互交叉才可以读写数据,这一点很重要。
2.3.3电平选择
一般情况下,蓝牙不能正常工作的原因可能是电压低的缘故,大多数蓝牙模块的电压范围比较大,HC-06的蓝牙模块是3.3-6v,总之要看好蓝牙模块对应的技术手册,连接正确的电源。
2.3.4 蓝牙的主从关系配置
设置决定蓝牙模块自动连接工作后的角色,主角色(Master)会自动搜索配对连接,从角色(Slave)只被动接受连接,不会主动搜索,回环角色(Loopback),属于被动连接,接收远程蓝牙主设备数据并将数据原样返回给远程蓝牙主设备。如果两个HC05模块要建立连接,其中一个必须设置为主角色,另外一个可以设置为从角色或回环角色,如果一个HC05模块和电脑蓝牙或者手机蓝牙通信,一般电脑或手机可以主动建立连接,所以HC05可以使用从角色,出厂默认也是设置为从角色的。
2.3.5 蓝牙连接
1)HC06蓝牙模块与转接口连接好后,直接将USB转TTL转换器插入电脑,这个时候,HC06蓝牙模块快闪,就进入了设置模式。
2)打开串口调试助手,选择对应com口,如果没有的话,需要安装c340驱动,然后将波特率选择为原来设置好的波特率,出厂的时候是9600,打开串口。
3)将“发送新行”去掉勾选,输入AT,点击发送,发回来的是:OK。
4)设置蓝牙名字
发送:AT+NAMExxx,xxx为任意的应为,比如名字设置为me,则应该发送AT+NAMEme,返回:OKsetNAME,说明名字设置成功。
- 设置配对密码
发送:AT+PINxxx,xxx为任意数字,并且密码为四位数,比如设置密码为,1234,则发送AT+PIN1234,返回:OKsetPIN
- 设置波特率
发送:AT+BAUDx,x为1~c的数字。比如讲波特率设置为115200,则发送AT+BAUD8,返回对应的波特率
(7)设置主从模式
蓝牙一: 发送:AT+ROLE=S,将蓝牙设置成从机模式,从机模式下蓝牙快闪,从机
模式才能跟手机相连
蓝牙二:
发送:AT+ROLE=M,将蓝牙设置成主机模式 ,主机模式下蓝牙慢闪。
(8)连接测试 给两个蓝牙重新供电,一会后,两个蓝牙灯常亮,说明连接成功。