arduino控制伺服电机程序, 什么是机器学习

在本教程中,我们将学习伺服电机的工作原理以及如何使用 Arduino 和 PCA9685 PWM 驱动器控制多个伺服电机。

概述

伺服电机的种类很多,其主要特点是能够精确控制轴的位置。伺服电机是一个闭环系统,它使用位置反馈来控制其运动和最终位置。

arduino控制伺服电机程序, 什么是机器学习

图2

在本教程中,我们将详细介绍业余伺服电机。我们将解释这些伺服系统的工作原理以及如何使用 Arduino 控制它们。

arduino控制伺服电机程序, 什么是机器学习

图8

我们只需要将舵机的控制引脚连接到 Arduino 板的任何数字引脚,将地线和正极线连接到外部 5V 电源,并将 Arduino 地线连接到舵机地。

Arduino伺服电机控制代码

现在让我们来看看控制伺服电机的 Arduino 代码。代码非常简单。我们只需要定义伺服所连接的引脚,将该引脚定义为输出,然后在循环部分生成具有特定持续时间和频率的脉冲,如前所述。

/*伺服电机控制 – 50Hz 脉冲串发生器作者:Dejan,https://howtomechatronics.com*/#define servoPin 9void setup() {pinMode(servoPin, OUTPUT);}void loop() {// A pulse each 20msdigitalWrite(servoPin, HIGH);delayMicroseconds(1450); // Duration of the pusle in microsecondsdigitalWrite(servoPin, LOW);delayMicroseconds(18550); // 20ms – duration of the pusle// Pulses duration: 600 – 0deg; 1450 – 90deg; 2300 – 180deg}

经过一些测试后,总结出这个伺服系统的脉冲持续时间与角度有以下关系:持续时间为 0.6ms 的脉冲对应于 0 度位置,1.45ms 对应于 90 度,2.3ms 对应于 180 度。

我将万用表与伺服串联连接以检查电流消耗。我注意到的最大电流消耗在堵转时高达 0.63A。那是因为这不是原来的 TowerPro MG996R 舵机,而是更便宜的复制品,显然性能更差。

arduino控制伺服电机程序, 什么是机器学习

图9

尽管如此,让我们来看看使用 Arduino 控制伺服系统的更方便的方法。那是使用 Arduino 伺服库。

/*使用 Arduino 伺服库控制伺服电机作者:Dejan,https://howtomechatronics.com*/#include Servo myservo; // 创建伺服对象来控制伺服void setup() {myservo.attach(9,600,2300); // (pin, min, max)}void loop() {myservo.write(0); // 告诉伺服器转到特定角度delay(1000);myservo.write(90);delay(500);myservo.write(135);delay(500);myservo.write(180);delay(1500);}

在这里,我们只需要包含库,定义伺服对象,并使用 attach() 函数定义伺服连接到的引脚以及定义脉冲持续时间的最小值和最大值。然后使用 write() 函数,我们只需将伺服的位置设置为 0 到 180 度。使用这个库,我们可以同时驱动多达 12 个舵机或使用 Arduino Mega 板驱动 48 个舵机。

Arduino 和 PCA9685 PWM/伺服驱动器

还有另一种使用 Arduino 控制伺服系统的方法,那就是使用 PCA9685 伺服驱动器。这是一个 16 通道 12 位 PWM 伺服驱动器,它使用 I2C 总线与 Arduino 通信。它有一个内置时钟,因此它可以驱动 16 个自由运行的伺服系统,独立于 Arduino。

arduino控制伺服电机程序, 什么是机器学习

图10

更酷的是,我们可以在单个 I2C 总线上以链式连接多达 62 个这些驱动器。因此理论上我们可以仅使用 Arduino 板上的两个 I2C 引脚来控制多达 992 个伺服系统。6 个地址选择引脚用于为每个附加驱动器设置不同的 I2C 地址。我们只需要根据这张表连接焊盘。

arduino控制伺服电机程序, 什么是机器学习

图11

这是电路原理图,我们可以再次注意到,我们需要为伺服系统单独供电。

arduino控制伺服电机程序, 什么是机器学习

图12

现在让我们来看看 Arduino 代码。为了控制这个伺服驱动器,我们将使用可以从GitHub下载的 PCA9685 库。

PCA9685 Arduino 代码

/*使用 Arduino 和 PCA9685 驱动程序控制伺服电机作者:Dejan,https://howtomechatronics.com库:https://github.com/NachtRaveVL/PCA9685-Arduino*/#include #include “PCA9685.h”PCA9685 driver;// PCA9685 输出 = 12 位 = 4096 步// 20ms 的 2.5% = 0.5ms ; 20ms 的 12.5% = 2.5ms// 4096 的 2.5% = 102 步;4096 的 12.5% = 512 步PCA9685_ServoEvaluator pwmServo ( 102, 470 ) ; // (-90deg, 90deg)// 第二个伺服// PCA9685_ServoEvaluator pwmServo2(102, 310, 505); // (0deg, 90deg, 180deg)void setup() {Wire.begin(); // Wire must be started firstWire.setClock(400000); // Supported baud rates are 100kHz, 400kHz, and 1000kHzdriver.resetDevices(); // Software resets all PCA9685 devices on Wire linedriver.init(B000000); // Address pins A5-A0 set to B000000driver.setPWMFrequency(50); // Set frequency to 50Hz}void loop() {driver.setChannelPWM(0, pwmServo.pwmForAngle(-90));delay(1000);driver.setChannelPWM(0, pwmServo.pwmForAngle(0));delay(1000);driver.setChannelPWM(0, pwmServo.pwmForAngle(90));delay(1000);}

首先我们需要包含库并定义 PCA9685 对象。然后使用 Servo_Evaluator 实例定义驱动器的脉冲持续时间或 PWM 输出。请注意,输出为 12 位,或者分辨率为 4096 步。因此,0.5ms 或 0 度位置的最小脉冲持续时间将对应 102 步,而 2.5ms 或 180 度位置的最大脉冲持续时间将对应 512 步。但如前所述,这些值应根据您的伺服电机进行调整。在我的例子中,从 102 到 470 的值对应于 0 到 180 度的位置。

在setup部分,我们需要定义 I2C 时钟速率,设置驱动程序地址并将频率设置为 50Hz。

在loop循环部分,使用 setChannelPWM() 和 pwmForAngle() 函数,我们只需将伺服设置为所需的角度。

我将第二个伺服器连接到驱动器,正如我预期的那样,它的定位与第一个不同,这是因为我使用的伺服器是廉价的版本,它们不太可靠。然而,这不是一个大问题,因为使用 Servo_Evaluator 实例我们可以为每个伺服设置不同的输出设置。我们还可以调整 90 度位置,以防它不是正好在中间。这样所有的舵机都将工作相同并以准确的角度定位。

使用 Arduino 和 PCA9685 驱动程序控制许多伺服系统

我们将再看一个示例,该示例使用多个链接的 PCA9685 驱动器控制许多伺服系统。

arduino控制伺服电机程序, 什么是机器学习

图13

为此,我们需要将驱动器相互连接并连接适当的地址选择焊盘。下面是电路原理图:

arduino控制伺服电机程序, 什么是机器学习

图14

现在让我们来看看 Arduino 代码。

/*使用 Arduino 和 PCA9685 驱动程序控制伺服电机作者:Dejan,https://howtomechatronics.com库:https://github.com/NachtRaveVL/PCA9685-Arduino*/#include #include “PCA9685.h”PCA9685 driver;// PCA9685 outputs = 12-bit = 4096 steps// 2.5% of 20ms = 0.5ms ; 12.5% of 20ms = 2.5ms// 2.5% of 4096 = 102 steps; 12.5% of 4096 = 512 stepsPCA9685_ServoEvaluator pwmServo(102, 470); // (-90deg, 90deg)// Second ServoPCA9685_ServoEvaluator pwmServo2(102, 310, 505); // (0deg, 90deg, 180deg)void setup() {Wire.begin(); // Wire must be started firstWire.setClock(400000); // Supported baud rates are 100kHz, 400kHz, and 1000kHzdriver.resetDevices(); // Software resets all PCA9685 devices on Wire linedriver.init(B000000); // Address pins A5-A0 set to B000000driver.setPWMFrequency(50); // Set frequency to 50Hz}void loop() {driver.setChannelPWM(0, pwmServo.pwmForAngle(-90));delay(1000);driver.setChannelPWM(0, pwmServo.pwmForAngle(0));delay(1000);driver.setChannelPWM(0, pwmServo.pwmForAngle(90));delay(1000);}

所以我们应该为每个驱动程序创建单独的 PCA9685 对象,为每个驱动程序定义地址并将频率设置为 50Hz。现在只需使用 setChannelPWM() 和 pwmForAngle() 函数,我们就可以在任何驱动器上设置任何伺服以定位我们想要的任何角度。

本文来自投稿,不代表展天博客立场,如若转载,请注明出处:https://www.me900.com/283760.html

(0)

相关推荐

  • 摩羯男看心上人的眼神,摩羯男喜欢你的肢体动作

    很多人都有经历过暗恋,那种酸甜苦辣的感觉,总是会不自觉的想要更靠近对方一点点。而12星座男就是暗恋你,才会不自觉的做出什么行为呢?   与你有关的事情,他总是会特别关心 代表星座:白羊男、巨蟹男、天秤男、魔羯男 暗恋你的这些星座男,才会不自觉的特别关心所有与你有关的事情!只要身边的朋友不小心提到你的名字,这些星座男就会竖起耳朵,不放过任何消息,听说…

    2022-03-14
  • lv上海专卖店,lv上海专卖店品质奢华新款手袋

    LV果真是”爆款制造机“,路易威登在?月尾推出了Bubblegram 系列手袋,独特的造型、明亮的糖果色系,在这个活力满满的夏天,真是so sweet! Over the moon 继承了豌豆包的半月造型,时髦感拉满,低调可日常,随手也可凹造型;共出了四个颜色,鲜有的火龙果色、奶奶的雪白色、温柔的雾霾蓝、靓丽的BANANE黄、还有酷酷的黑。最重要的是包包自重…

    2023-04-24
  • 百度网游风云榜,网游风云榜:最新最热的网游排行榜

    有时候特别喜欢看网游竞技类的小说,最近在书旗小说又重温了一本,顾漫的《微微一笑很倾城》,还是觉得很精彩,回想一下,过去20年来,其实有着不少的经典网游小说。下面根据印象说一说。 1、《全职高手》 作者:蝴蝶蓝 在所有网游小说中,蝴蝶蓝的《全职高手》人气高得简直吓人,在出圈这方面,感觉也只有南派三叔的《盗墓笔记》可与之相比。而《全职高手》也是首部盟主数量达到千…

    知识百科 2023-05-13
  • 龙跃武器外观美轮美奂,剑魂这个职业厉害吗

    剑魂这个职业,被称为武器大师,每一把鬼剑士武器,都能被剑魂所运用。不过,要论站街帅气值光剑排名第一,其他系的鬼剑士武器,都没有光剑帅气。纵观游戏发展史,可能,剑魂站街最帅气的光剑,当属这三把! 第一把:圣耀救赎光剑,当前剑魂最为普遍的一把武器,也是站街比较帅气的光剑!当既帅气伤害又高两者合二为一,让剑魂这个职业,对圣耀救赎光剑爱不释手。圣耀光剑的外形独特,尤…

    2023-06-06
  • 移动流量卡全国通用流量(移动流量卡全国通用流量卡)

    现实生活中很多人没有拉宽带,这些人最常见的就是外出务工租房的打工人,他们有时会更换地方,而三大运营商办理宽带,合约期最常见的是2年,而且费用很贵,没有电视、电脑的情况下,很多用户没有办理,这样一来他们每个月消耗的流量更多。 但是现在三大运营商为了盈利,给你推荐的套餐都是非常昂贵的,作为商家肯定是想要绞尽脑汁盯着客户口袋的钱,三大运营商也不例外,如果你直接去营…

    2023-05-24 知识百科
  • 湖南经视新闻 ,第二届湖南旅游发展

    第二届湖南旅游发展大会即将在郴州召开,4月29日开始,湖南经视精心策划,在《经视新闻》推出特别报道《恋上“全球郴”》,为东道主办好第二届旅游发展大会宣传造势。报道组先后走进汝城、宜章、资兴、苏仙区、北湖区五个县市区,引领观众在“五一”小长假来一场说走就走的轻旅行,向世界发出来自湖南郴州的诚挚邀约。 山水融情,挖掘地域人文,探寻诗与远方 寻找诗与远方,是当下人…

    2023-06-05
  • 在线网站推荐几个(10个网站推荐)

    哈喽大家好呀,今天给大家分享7个高质量网站,每一个都是好东西,建议大家永久收藏! 02. 一键logo设计 一键logo设计是一个在线快速设计logo的平台,我们可以输入logo名字以及口号,再选择行业、风格、色彩、字体等就可以快速帮助我们设计了,简单又实用。 03. 10分钟邮箱 10分钟邮箱提供了一个你能使用10分钟的邮箱账号,我们可以用它来注册登录一些…

    知识百科 2023-04-09
  • 男子掐死临盆妻子案件背后的惊心故事

    刚刚生下儿子的产妇,只因不答应丈夫的顺产要求,执意要进行剖腹产,便被丈夫拦腰斩断后,装进黑色的行李箱抛尸河中。 之后又对河堤附近进一步搜索、勘查,功夫不负有心人,两个小时后,终于在河道中,打捞到女尸的下半身。 法医将尸体拼凑起来,鉴定出女子身高大约在一米七五左右,年龄约在20到25之间,女尸的下半身装在某物流 公司的编织袋中。 于是警方立即对这个物流公司进行…

    2023-06-03 知识百科
  • 苹果手机检测软件(iphone检测软件)

    【手机中国新闻】11月10日,苹果向iPhone用户推送了iOS 16.1.1系统。仅过去20天左右,iOS 16.1.2正式版又来了。 12月1日,苹果向用户推送了iOS16.1.2正式版,带来了多项新内容,其中修复了多个错误,并增加了对iCloud共享照片库、Matter、Live Activities的支持。本次更新为iPhone提供了重要的安全更新和…

    知识百科 2023-04-24
  • 派出所行政处罚影响三代(行政拘留会不会影响子女政审)

    2023年全国两会前夕,全国政协委员周世虹建议,取消对罪犯子女考公的限制,废除有关直系亲属、旁系亲属等有过被刑事处罚等处分而影响考生或被政审人政审的规定。 周世虹委员终于把之前民间传得沸沸扬扬,但一直没有明确宣示规则的“一人犯罪,影响三代”的问题,摆放在了全国两会这个国家议事平台之上。目前我国参军、公考、军队文职、考编的政审,受这个规则影响到很多人。 拿军队…

    知识百科 2023-05-24
  • 小册子打印怎么设置(word小册子打印怎么设置)

    小册子:把A4纸横着放,左边一部分内容,右边一部分内容。然后用钉子从中间装订,就成了一个小册子。 工具:Word2016、 Adobe Reader 第一步:在【页面设置】中,把word文档设置成【横向】 第二步:另存为PDF文档的格式 第三步:点击【文件】 第四步:点击【打印】 第五步:在打印窗口中点击【小册子】 注:如果是现成的PDF文档,直接从第三步开…

    2023-05-28
  • 桃花源记很污的解释(桃花源记很污的解释句子)

    凡是读过初中的莘莘学子都学过这千古名篇,老师要求同学背诵,故都记忆犹新。当破解了桃花源千古未解之谜后,才知教材中的理解和分析都是浮光掠影的,不知潜入文内探究其蕴含的深意,从而不明真相,以致作出了不符文章客观实际的曲解。老师和编教材的都没错,实在是此千古隐文谜文潜伏很深、幽蔽极严、隐藏至密、谜底难破,导致无人能解。 因有文献和遗址双重验证,足以证明桃花源就在衡…

    知识百科 2023-04-02