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)

相关推荐

  • 万千星辉颁奖典礼 ,刑事侦缉档案陶大宇郭可盈结局

    新京报讯 1月8日晚,TVB《万千星辉颁奖典礼2022》隆重举行,TVB翡翠台和埋堆堆APP全程现场直击。郑则仕、吴启华、任达华、黄日华以及苗侨伟等知名演员亮相助阵。其中,《刑事侦缉档案》剧组陶大宇、梁荣忠、郭可盈和张国强重聚引发回忆杀,让观众直呼:我的童年回来了。 《上车家族》荣获最佳剧集。图为主演江美仪(左)、林敏骢。 附:2022TVB颁奖礼获奖全名单…

    2023-06-03
  • 中国移动专属流量包括哪些app(中国移动专属流量包括哪些APP)

    9.6亿人,每人只花1元钱,就是9.6个亿!这绝对是真金白银,谁拥有都可以实现人生财富自 由。可是中国移动,说送就送,只要是中国移动用户,就可以免.费.领.取1T的移动云盘。 这样慷慨大方,欧美都不敢这样做,日韩也只能望尘莫及、自叹不服。 据相关数据显示,截止2022年1月,全国14亿多人口中,有9.61389亿在使用中国移动。其中4.0127亿户正在使用5…

    2023-05-29 知识百科
  • 流量用的多用什么套餐划算

    我有一张用了8年多的移动卡,绑定了各种信息。这张卡难以断舍离,所以换成8元保号套餐,但没流量。 我还有一张用了3年多的19元的联通大王卡,这张卡没啥通用流量,只是有腾讯定向流量,方便打游戏! 这样两张卡的套餐组合起来,一看就很划算。我应该没什么烦恼吧! 直到上个月,我的话费突然上涨到100多块钱!我的烦恼就来了[泪奔] 问题出在哪里呢,明明套餐已经比较划算了…

    2023-05-24 知识百科
  • 手机卡没流量又想用流量怎么办(手机卡没有流量怎么办)

     随着网络技术的发展,现代人的出行已经越来越离不开网络,浏览网页打发时间、移动支付、场所扫码等等这些都离不开网络。但在外面有时找不到公共WIFI,手机流量少、信号差就成了的问题。你可能会想要是能够有移动随行的WIFI信号该多好,我走到哪它就跟到哪,这样就不用为网络信号烦恼了。而随身WIFI便是针对这种需求的产物。   作为生产随身WIFI的专业户,飞猫智联在…

    2023-05-25 知识百科
  • 瑜伽垫哪个牌子好,最好的瑜伽垫:品牌、特性、评价

    近期大火的刘畊宏毽子操已被无数人刷屏,几乎成为人人相传的居家锻炼方式,也使瑜伽垫成为跟练的必备用品之一。本期对比测评了Keep、奥义、青鸟这3款百元瑜伽垫,一起来看看实测体验吧~ 产品外观 值得一提的是,这3款瑜伽垫均采用TPE合成橡胶材质,这类材质属于环保材料,兼具良好的柔韧性和防滑性,实用性及安全性都优于一般的NBR材质瑜伽垫。 测评对比 表面工艺对比:…

    2023-05-23
  • 破壁机哪款好,最好的破壁机:买之前先了解

    本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:EthanUncle (全文8千字,需要占用您15-20分钟阅读时间,帮您选对破壁机,码字不易,望三连支持。) 大家好,我是隔壁老王。一、前言大家真的了解破壁机吗?破壁机到底和豆浆机、榨汁机有什么区别?会是智商税吗? 很多关注老王我的朋友看到夏天的时候我会做很多的特色饮品来分享,但一直不知道我用的是…

    2023-05-14
  • 以建军大业为使命 ,推动历史发展的历史事件

    热血战争巨制《建军大业》将于7月28日内地公映,该片由刘伟强执导,韩三平任总策划兼艺术总监,黄建新任监制。今日片方曝光雄师缔造者主题海报,刘烨、朱亚文、黄志忠、王景春、马天宇、小爱、杨大鹏、叶筱玮、释小龙、李现等十位演员以英气军装造型出镜,表情严肃、目光坚定,一展建军伟大事业中十大革命先驱的风采。 众星英气十足 《建军大业》展建军先驱风采 作为中影“建国三部…

    2023-06-07 知识百科
  • 黑马广告联盟(黑马广告联盟计价方式)

    网络中大大小小的网站多如牛毛,而一些中心网站却很难获得收益,而2898流量广告联盟的成立意在帮助中小网站提供了额外的收入来源,集合中小网站资源组成流量广告联盟,通过2898站长资源平台流量联盟来实现流量变现,网站广告获得更多收益。那么,今天2898站长资源平台小编就针对流量联盟来做具体的分析。   1、流量联盟产业链 流量联盟指集合中小网络媒体资源…

    2022-01-26
  • 篮球的基本规则和打法(篮球的基本规则和打法视频)

    为了让大家了解一点篮球规则,特写一篇推文供大家参考! 参赛人数:场上队员每队5人,替补每队7人共12人,但可根据要求减少或增加球员。(NBA每队参赛人数15人) 得分:三分线外侧投篮3分,三分线内内投篮、上篮或扣篮得均2分,被对方犯规获得罚球没球1分。 开始方式:赛前两球队,每队派一人在中线跳球。 换人:在有人犯规、暂停、争球时可换人,换人在20秒内完成。 …

    2023-05-28 知识百科
  • 电容笔是什么(电容笔是什么笔)

    ?随着平板电脑的不断更新升级,功能软件越来越多,承担的用途越来越广,配合电容笔的使用可以实现很多的用途,今天就来给大家介绍一下,电容笔有什么用?苹果电容笔和普通电容笔有什么区别?它的工作原理是什么?以及如何选择自己所需要的电容笔? 电容笔有什么用? 电容笔给人们的工作和生活带来了极大的便利,而且随着科技的进步,现在的电容笔已经不再只是简单的替代手指操控功能,…

    2023-05-24
  • 中国网球女单全军覆没 中国网球女单何时才能扭转局势

    北京时间5月3日,马德里网球大师赛结束第四比赛日争夺。女单第二轮,郑赛赛连丢9局,以0-6、4-6不敌两届赛会冠军、3号种子哈勒普,遭遇对后者的三连败。随着郑赛赛遭到淘汰,中国女单又一次全军覆没。另外,种子选手大坂直美和卡·普利斯科娃爆冷出局,阿扎伦卡因伤退赛。 女单第二轮其他比赛,11号种子布拉迪以6-2、6-1横扫前法网冠军奥斯塔彭科,强势晋级16强,接…

    2023-06-03
  • 免费提供短视频带货素材(带货短视频下载)

    (搜索标题可查看视频教程) 好今天来写一个我们从选品,到混剪到发布的一个全流程的过程,除了教你怎么样用我们这个如意剪的软件大量剪辑原创视频呢,我们还教你怎么样去选品。因为我自己也是做带货的嘛,然后这里有些订单要发的,但不多但是每天都有。 那我们来看一下,怎么样从选品到发货哈,首先我选品是分两个地方来选品,一个是,一个是这个罗盘就是小店才有哈,如果你是没有小店…

    2023-03-28