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)

相关推荐

  • 白大夫洁面仪怎么用(白大夫洁面仪广告视频)

    来源:文汇报 戴了近一年的口罩,有的人脸部貌似已有些“承受不住了”,还有的人依然经历着皮肤时好时坏的状态。步入冬季,干燥的气候让原本就问题频发的“口罩脸”雪上加霜。这些年,不少大型三甲医院皮肤科“出品”的护肤品可谓名声在外,在社交媒体上更被捧为“网红护肤品”,带货者众多。 “网红护肤品”背后到底藏着什么防护“秘诀”。本期邀新华医院皮肤科专家讲解秋冬护肤要点。…

    2023-05-24
  • 汽车票价查询网,汽车票价查询网站比价搜索

    作为经常网购的你,肯定知道购买东西前进行比价的好处。因为通过比价,可以查询商品的历史最低价。如果当前价格和历史最低价相差太远,一般情况下会找找别家,或者择日再购。 接下来我对队列中排在更后一点的商品进行查价,而结果却是直接不显示跟其他店铺比价的列表了。如图: 所以得出结果,是先看商品是否属于「全网同款低价」,若不是就看是否为「淘宝同款低价」,都不是就直接不显…

    2023-04-26
  • 益节保洁机器人,益节保洁机器人:家庭清洁更轻松,更省时

    通讯员:葛宇锋 浙江机电职业技术学院智能制造学院的学生团队,研发出了一款全新的爬楼扫地机器人,解决保洁人员在高层清洁工作问题。 该项目团队于一年前组建,由一群来自不同专业、年龄的年轻人组成。经过数月的研发和测试,他们先后经历了许多困难和挑战。该机器人由机身、电机、传感器、控制器等部分组成,性能非常优异,能够实现自主规划清洁路线、避障、自动充电等功能。在整个发…

    2023-05-18
  • 提醒服务怎么创业(服务业创业项目)

    其实在生活中,有很多行业大家都是可以去探索的,只要找对合适的项目,就可以去投资赚钱,那服务业如何创业?接下来,我们就来给大家讲解一下这方面的内容。 1.茶饮吧 随着消费者心中消费观念发生的转变,对于餐饮的需求已经从以为只为饱腹而演变成了享受美食,因此,茶饮也渐渐成为了我国消费者日常休闲饮料的首选。茶饮店一般不需要太大,而且操作简单,适合大部分的大学生创业者们…

    2021-12-06
  • 5g纯流量上网卡移动(移动流量卡上网卡怎么办)

    5g纯流量上网卡移动(移动流量卡上网卡怎么办)5g纯流量上网卡移动(移动流量卡上网卡怎么办)5g纯流量上网卡移动(移动流量卡上网卡怎么办)5g纯流量上网卡移动(移动流量卡上网卡怎么办)

    点击右上角关注我们,每天给您带来最新最潮的科技资讯,让您足不出户也知道科技圈大事! 在本月初,工信部向四家公司颁发了5G通信业务运营拍照,这标志着中国正式进入5G时代。各大运营商的商用业务也在如火如荼准备当中,当然相信很多人关心的是5G通信的套餐资费究竟如何。 在今天上午的中国移动5G+发布会上,中国移动官方公布了首款5G+套餐,其中包含200GB流量、10…

    2023-06-04 知识百科
  • 超级会员红钻联合活动官网,超级会员联合黄钻

    5月18日消息,近日腾讯的SVIP服务全新升级,最高**由8级变为9级,目前腾讯已开启QQ SVIP 9内测,功能强大,升级条件较为苛刻。 看了这些是不是很想升级?这次腾讯推出的SVIP 9升级条件颇为苛刻,如果想升级,那么你的会员成长值需要超过10万点。而后,用户需要开通12个月超级会员才可以享受到SVIP 9内测资格,每天限量1000名,很多小伙伴都表示…

    2023-02-15
  • 传说中的嫦娥奔月,嫦娥奔月的神话故事阿布故事

    大家一定听过嫦娥奔月的神话传说:嫦娥被逄蒙所逼,无奈之下,吃下了西王母赐给丈夫后羿的两粒仙药后飞到了月宫。 嫦娥最早叫姮娥,湖北江陵王家台15号秦墓中出土的秦简《归藏》,其中的《归妹》说:昔者恒我(姮娥)窃毋死之药于西王母,服之以(奔)月。将往,而枚占于有黄。有黄占之曰:“吉。翩翩归妹,独将西行。逢天晦芒,毋惊毋恐,后且大昌。”恒我遂托身于月,是为蟾蜍。 西…

    2023-06-03
  • 现在比较热门的专业有哪些(近年来比较热门的专业)

    现在比较热门的专业有哪些(近年来比较热门的专业)现在比较热门的专业有哪些(近年来比较热门的专业)现在比较热门的专业有哪些(近年来比较热门的专业)现在比较热门的专业有哪些(近年来比较热门的专业)

    未来十年二十年都受欢迎的5个专业,发展热门,好就业 咱们上大学的目的就是想要找一份好的工作,而咱们选专业的时候选择一份热门专业,在找工作的时候可能会更有优势。但是咱们在选专业的时候是参照的当年的数据,而咱们毕业的时候要3年或5年以后了,这个时候可能市场满了或者快满了,这个时候咱们就欲哭无泪了。所以说选择专业看他的可持续性也很重要。本期袁老师就为你总结了五类热…

    2021-12-11 知识百科
  • 贵州道真,贵州道真仡佬族聚居地

    多彩妹摆贵州 News Watch 仡佬语:这个贵州高原土著风情你得知道点儿 A colorful day, a wonderful start! 多彩的一天,美好的开始!跟着耳朵去旅行,欢迎收听“多彩妹摆贵州”。今天多彩妹带大家走进贵州高原的土著,揭开仡佬族的神秘面纱,了解与众不同的仡佬族语言。 仡佬(gē lǎo)族,族源和古代僚(lǎo)人有关,民族语…

    2023-04-25
  • 108键盘图(键盘键位图高清108键示意图)

    一、前言:安静的机械键盘 静音机械轴亮相 说起机械键盘,大多数人第一印象就是有着噼里啪啦的声音,确实,机械键盘因为架构而产生的声音相比普通的薄膜键盘要大,不过机械键盘要比薄膜键盘的手感好上不少,这让一些文字工作者和游戏玩家钟爱。 ikbc G-108在外观方面保持了一贯的简约风格,采用Cherry原厂静音红轴,同时完美支持MAC系统,而且键位布局上与Mac键…

    2023-04-04
  • 网络推广是做什么的(互联网推广是做什么的)

    【合肥网络推广外包】什么是网络推广?企业常见的八种推广方式 在网络时代,合肥企业需要十八般武艺样样精通,当然其中就包括也要懂得互联网推广。相对来说,互联网推广做的好的企业通常更容易获得成功!即然互联网推广如此关键,今天就和大家一起聊聊关于网络推广的话题讨论。 一.互联网推广 1、什么是网络推广? 互联网推广就是指以互联网为基础,运用信息和互联网媒体的易用性来…

    2022-01-29
  • 试用期满对公司的建议(给领导不痛不痒建议10条)

    一、不注意身体。领导一心扑在工作上,经常废寝忘食,不注意休息,不注意劳逸结合。身体是革命的本钱,这样长期下去,把身体累垮了,是单位的损失。 二、不关心家人。领导把全部精力都放在工作上,以单位为家,以事业为重,对自己的家庭和家人关心不够,没有尽到一个做丈夫(妻子)、做父亲(母亲)的责任。   三、工作缺乏魄力。领导决策太过于谨慎,特别是决策重大问题时…

    2021-12-06