同步仿生机械臂设计(实物)
- 格式:docx
- 大小:821.36 KB
- 文档页数:4
同步仿生机械臂设计(实物)
本设计利用安装在人手臂部的加速度传感器采集运动信号,单片机智能运算后发出控制指令,实现机械臂与人臂的同步运动。
系统将在采集传感器的输出模拟量经过单片机的处理产生PWM 波,使用PWM 波驱动舵机实现准确定位,使机械臂实现四自由度的运动。
而且还可通过编程和仿生来完成各种预期的作业任务,在构造和性能上兼有人和机器各自的优点,体现了其智能和适应性。
主要研究内容有两点:(1)利用51单片机编程(C 语言)实现对三轴加速度传感器的数据采集。
(2)编程(C 语言)产生PWM 波,并通过改变其占空比来控制舵机的转动角度。
该系统以STC12C5A60S2单片机为核心,STC12C5A60S2单片机中集成了高精度的A/D 转换器,可将加速度传感器采集的模拟量转换为数字量,数字量经过单片机的处理后产生PWM 波,驱动机械臂上的伺服舵机。
1. MMA7260传感器:由于本设计是一款同步的机械臂,所以要随时准确的确定手臂的位置,而三轴加速度传感器是一种可以对物体运动过程中的加速度进行测量的电子设备,典型互动应用中的加速度传感器可以用来对物体的姿态或者运动方向进行检测。
人手臂的运动角度,传感器将输出不同的电压,从而确定人手臂的状态。
图1MMA7260三轴加速度传感器35元
2.A/D转换:将采集到的传感器输出的模拟量转换成数字量。
3.STC12C5A60S2单片机:处理A/D转换输出的数字量,输出PWM波。
单片机系统实现对
舵机输出转角的控制,必须首先完成两个任务:首先是产生基本的PWM周期信号,本设计是产生20ms的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输出,并且调整占空比。
图表2
图3STC12C5A60S2开发板94元
4.MG996舵机:用做机械臂的关节力量来源,接受PWM波信号,分析其占空比,转动不
同的角度。
舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。
图4MG996舵机70元5.PWM程序
#include <reg51.h>
#include<intrins.h>
sfr CCON = 0xD8;
sfr CMOD = 0xD9;
sfr CL = 0xE9;
sfr CH = 0xF9;
sfr CCAP0L = 0xEA;
sfr CCAP0H = 0xFA;
sfr CCAPM0 = 0xDA;
sfr CCAPM1 = 0xDB;
sbit CR = 0xDE;
unsigned char duty = 0xe5;
void timer0_int (void) interrupt 1 using 1 {
TH0 = 0xff;
TL0 = 0xb9;
}
void timer0_init(void)
{
TMOD = 0x01;
TH0 = 0xff;
TL0 = 0xe0;
TR0 = 1;
ET0 = 1;
}
voidpwm_init(void)
{
CMOD = 0x4; // Use timer0
CL = 0x0;
CH = 0x0;
CCAP0H=CCAP0L=duty; //Duty Cycle
CCAPM0 = 0x42; // PWM mode
CR = 1; //Start PCA Timer.
}
void main (void)
{
pwm_init();
timer0_init();
EA = 1;
while(1){
CCAP0H=duty;
} }。