舵机控制的机械爪

article/2025/8/18 18:27:34

 

■ 背景


先驱威锋白超发送过来机械爪购买样品连接 机械爪子汇总机器人机械手臂配件大扭力舵机控制驱动板diy夹持器 。利用其中一种完成 双轴机械臂前端抓持机械结构。

▲ 由舵机控制的各种机械爪

▲ 由舵机控制的各种机械爪

手边有一个从白超订购过来的平行机械爪,其中舵机来自于 海灵智电 提供的20公斤-厘米的舵机。

▲ 平行机械爪控制平行机械爪的舵机

▲ 平行机械爪控制平行机械爪的舵机

下面对于这款机械爪的安装和控制进行初步测试。

 

01舵机控制信号模块


实验电路使用在 使用STC8H1K的高级PWM的正交编码器计数方式 中的基于STC8H1K28单片机的电路板。

1.控制电路板1

▲ 实验电路原理图

▲ 实验电路原理图

序号符号功能
1+5V工作电压
2GND电源地线
3CHAP2.0 PWM1P 2 PWM5
4CHBP2.2 SS 2 PWM2P 2 PWM7
5INT0P3.2 INT0 SCLK 4 I2CSCL 4

使用其中的INT0来输出控制舵机运动的PWM信号。

2.单片机软件2

  • 单片机基础配置: Fosc=35MHz,UARB:460800 bps

(1) 配置周期

对于脉冲输出的HZ50_PERIOD的常数为:

#define HZ50_PERIOD             3760

对于nPulseCount = 280对应输出 1500us;所以对应nPulse从 200-400大约对应1000-2000us的脉冲输出。

Delay(10);//----------------------------------------------------------------------
while(++n50HzCount >= HZ50_PERIOD) {n50HzCount = 0;
}if(n50HzCount > nPulseCount) OFF(PWM_PIN);
else ON(PWM_PIN);

(2) 输出Servo控制脉冲

▲ 输出PWM波形

▲ 输出PWM波形

 

02舵机控制


1.舵机控制参数范围

舵机的脉宽控制参数 nPulseCount通过串行命令PWM来设置。通过试凑可以找到改参数的最大和最小值范围。

  • MIN: 80 顺时针最大;
  • MAX:475 逆时针最大
  • MIDDLE:278
if(strcmp("hello",                (char *)STD_ARG[0]) == 0)printf("%s is ready !\r\n", VERSION_STRING);
else IFARG0("pwm") {sscanf(SDA(1), "%d", &nPulseCount);
}

▲ 机械爪在舵机控制下运动

▲ 机械爪在舵机控制下运动

 

※ 结论


关于机械爪之间的距离与舵机角度之间的关系可以参见下面的博文:

  • 机械爪角度与距离之间的关系

  1. 实验电路的AD工程文件:AD\Test\2020\STCTest\STC8H1K28Encode.SchDoc\ ↩︎

  2. C51工程文件:C51\STC\Test\2020\CLAWSTC8HSERVO\ClawSTC8HServo.uvproj ↩︎


http://chatgpt.dhexx.cn/article/Mvs2qAKX.shtml

相关文章

一、智能车舵机控制

前言: 本文章主要是近期有关舵机知识的总结,将分别从舵机的控制原理,控制流程和代码实现流程几个方面作简要介绍,由于时间紧急,难免有疏漏错误之处,欢迎留言指正 一、舵机的控制原理: 我们本次智…

单片机PWM舵机控制

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、PWM是什么?二、如何控制舵机? 一、PWM是什么? PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩…

快速学习Stm32舵机控制板控制多个舵机运动以及调速

本次分享stm32对多个舵机的控制,之前讲解过单个舵机的控制。以及控制原理,定时器的使用和pwm的输出来控制一个舵机的角度转向。这次就和大家分享一下多个舵机的控制以及调速。利用单片机实现对 8 个舵机的同时控制,掌握多个舵机控制程序实现方…

51单片机舵机控制

51单片机舵机控制系统 概述硬件设计程序设计PWM波的产生矩阵按键功能与数码管显示参数传递完整程序 外加模块 概述 在这篇博客中,将介绍一个基于51单片机的舵机控制系统,其可以通过矩阵按键输入角度,舵机打到预定角度,并在数码管…

Arduino基础入门篇28—舵机控制

舵机是一种位置「角度」伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具、航模、机器人中已经得到普遍使用。舵机是一种俗称,其实是一种伺服马达。本篇通过官方驱动库来实现舵机控制。 1. 舵机介绍 结构组成 舵机实…

OpenMV输出PWM,实现对舵机控制

OpenMV的定时器官方函数介绍:Timer类 – 控制内部定时器 目录 OpenMV的PWM资源介绍 为什么要用OpenMV输出PWM OpenMV的PWM资源分配 资源 注意 建议 PWM输出代码 代码讲解 Timer Timer.channel tim.channel与Timer.channel区别 Timer.channel解析 OpenM…

舵机控制原理及常见问题

舵机控制 工作电压:3.5V/4,2V/4.8V —— 6V/6.8V/7.2V/8.4V(看具体型号参数) 切记:舵机不要接在电脑USB上调试,舵机启动瞬间大电流(10-24倍工作电流)可能会导致电脑死机 注意事项:PWM波形正确时&#xf…

第9章 舵机控制

有一种电机可以在程序的控制下,在一定范围内连续改变输出轴角度并且可以保持住。这种电机最早被用在航模和船模等遥控模型中,控制各种舵面的转动,这就是舵机。现在舵机除了运用在 遥控模型中,也大量的运用在各种机器人、机械臂的关…

Arduino入门001 - 舵机控制

Arduio基础入门篇001 - 舵机控制 一、舵机介绍 1,结构组成 一般来讲舵机主要由以下几个部分组成,舵盘、减速齿轮组、位置反馈电位计、直流电机、控制电路等。舵机的输入线共有三条,如图1所示,红色中间,是电源线&…

舵机控制(STM32F103C8T6)

前言 本文是以STM32F103C8T6作为主控芯片,通过PB6端口输出PWM,实现控制180舵机。 一、舵机控制原理 (一)概述 舵机是一种位置伺服驱动器器,是一种带有输出轴的小装置。当我们向伺服器发送一个控制信号时,…

Java 源代码怎么执行的

许多 Java 虚拟机的执行引擎在执行 Java 代码的时候都是解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)混合运行。 大体流程为: 编写 java 文件源码通过 javac 编译器将 java 源码编译为字节码流…

Java基础-java程序代码截取字符串及判断字符串是否包含某个字符(串)

文章目录 有一串字符串,是一串拼接码,如何截取获取想要的字段?判断字符串是否包含某个字符(串)indexOf方法 有一串字符串,是一串拼接码,如何截取获取想要的字段? public class Inte…

编写高质量JAVA程序代码的建议

--------------------------------------------------------------------------------------------------- 前言:原著《改善JAVA程序的151个建议》有151个建议,我在拜读的过程根据自己的理解合并了其中的几个,并将每个建议的核心要义进行了一…

java简单记事本代码_简单记事本的java程序代码

展开全部 天啊, 冖_Na0 为什么会有62616964757a686964616fe4b893e5b19e31333262343038我编的记事本代码呢???呵呵……你肯定是“请教”过我的吧?? 呵呵……我自己编了一个,不过呢,没…

IntelliJ IDEA 写java程序代码

快捷键 注释 单行:选中代码 ctrl/ 再来一次就是取消 多行:选中代码 ctrlshift/ 再来一次就是取消 格式化 CtrlAltL

Android studio如何运行java程序代码

先看Java程序类 public class GGG {public static void main(String[] args) {System.out.println("我是java程序");} }就是这么简单的一个java程序,在之前studio上可以直接运行,但是像现在升级studio后就发现运行报错: 首先java…

怎样使用lntelliJ IDEA 编写Java程序代码?

下面使用IDEA创建一个Java程序,实现在控制台上打印HelloWorld!的功能,具体步骤如下。 1.创建Java项目 进入New Project界面后,单击New Project选项按钮创建新项目,弹出New Project对话框,如下图所示。 New Projeet 对…

Java学习代码合集

其实我学习java最根本的原因是:我是一个挺关注外在的人,虽然是个程序员,所以我很喜欢写出那些带有漂亮的界面的程序,因为C总是控制台,我不是很喜欢,在这份java代码合集中,我会记录自己学习Java界…

Java开发常用代码

一.获取UUID UUID uuid UUID.randomUUID(); String str uuid.toString(); // 去掉“-” String s str.replaceAll("-", "");二.获取固定格式的时间字符串 第一种 //获取当前时间对象 Date d new Date(); //创建日期格式化类对象,”yyyy/MM/dd HH:mm…

一个简单的Java例程

编写一个程序,输出如下: 1.在IDEA中新建一个helloworld类,注意Java中严格区分大小写 2.在文件中添加如下代码: 源代码如下: public class helloworld{public static void main(String[] args){System.out.println(&q…