双向控制舵机(树莓派版)

文章目录

  • 前言
  • 1、舵机参数
  • 2、功能测试
  • 参考文献

前言

为了实现垃圾分类和倾倒功能,于是购买了180度舵机
避坑提示:360度舵机无法像180度舵机一样控制角度,它只能控制旋转方向和速度,所以别买360度的舵机。

1、舵机参数

我买的舵机参数如下:
工作电压:3.5V-6V
接线:红线(接高电平)、棕线(接地)、橙线(信号线)

**工作原理:**舵机的控制信号为周期是20ms(频率就是50HZ)的脉宽调制(PWM)信号,其中脉冲宽度从0.5ms-2.5ms,相对应舵盘的位置为0-180度,呈线性变化。也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,直到给它提供一个另外宽度的脉冲信号,输出轴才会改变角度。

初始位置(0°) =>脉冲宽度 => 0.5ms => 占空比= 0.5ms / 20ms = 2.5%
中间位置(90°)=> 1.5 ms的脉冲宽度 => 占空比= 1.5ms / 20ms = 7.5%
最终位置(180°)=> 2.5 ms的脉冲宽度 => 占空比= 2.5ms / 20ms => 12.5%
所以占空比范围:2.5%~12.5%

角度angle和占空比dutyCycle的转换:dutyCycle = 2.5 + angle/180*10

2、功能测试

说明:

  1. servo_pin=17,针对是水平方向,输入一个度数,舵机转轴上的指针就水平转到对应的位置。
  2. servo_pin=18,针对是垂直方向,输入一个度数,舵机转轴上的指针就垂直转到对应的位置。

在这里插入图片描述
在这里插入图片描述

实现控制代码control.py

import RPi.GPIO as GPIO
from time import sleepGPIO.setmode(GPIO.BCM)  
GPIO.setwarnings(False)# servo_pin 舵机信号线接树莓派GPIO17
def complex_change(servo_pin):   GPIO.setup(servo_pin, GPIO.OUT, initial=False)p = GPIO.PWM(servo_pin, 50)    # 初始频率为50HZp.start(angleToDutyCycle(90))  # 舵机初始化角度为90sleep(0.5)p.ChangeDutyCycle(0)   # 清空当前占空比,使舵机停止抖动return p# 旋转角度转换到PWM占空比
def angleToDutyCycle(angle):return 2.5 + angle / 180.0 * 10if __name__ == '__main__':print('当前为90度')while True:angle = int(input('旋转度数:'))if angle >= 0 and angle <= 180:# 水平转动p=complex_change(17)p.ChangeDutyCycle(angleToDutyCycle(angle))# 垂直方向回正p=complex_change(18)p.ChangeDutyCycle(angleToDutyCycle(0))sleep(0.1)p.ChangeDutyCycle(0) # 清空当前占空比,使舵机停止抖动else:print('旋转度数在0-180之间!')

舵机初始角度为90度,你可以把转轴上面的指针调到垂直方向,表示90度

参考文献

  1. 【树莓派-网络监控(3)角度遥控】基于python3控制两自由度舵机,实现摄像头拍摄角度的遥控
  2. 树莓派 — 控制舵机

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/85838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

194、SpringBoot -- 下载和安装 Erlang 、 RabbitMQ

本节要点&#xff1a; 一些命令&#xff1a; 小黑窗输入&#xff1a; rabbitmq-plugins enable rabbitmq_management 启动控制台插件 rabbitmq-server 启动rabbitMQ服务器 管理员启动小黑窗&#xff1a; rabbitmq-service install 添加rabbitMQ为本地服务 启动浏览器访问“h…

gym_unity学习笔记

最近学了一段时间gym_unity&#xff0c;把一些资料留在这里 实例 实例gym_unity训练RollerBall&#xff1a;https://blog.csdn.net/alibutter/article/details/120908687实例gyn_unity训练3DBall&#xff1a;https://zhuanlan.zhihu.com/p/554927641?utm_id0 源码&#xff1…

基于香橙派和SU-03T 使用Linux实现语音控制刷抖音

硬件介绍 SU-03T之前在小车的时候使用过&#xff0c;详见&#xff1a;语音小车---6 最终整合_mjmmm的博客-CSDN博客 按照下图进行接线&#xff1a; 项目需求 通过语音指令来控制安卓手机刷抖音&#xff0c;可以实现视频切换和点赞等功能&#xff1a; 1. 开机播报“你好&a…

Go 并发可视化解释 - sync.Mute

在学习 Go 编程语言时&#xff0c;您可能会遇到这句著名的格言&#xff1a;“不要通过共享内存来进行通信&#xff1b;相反&#xff0c;通过通信来共享内存。” 这句话构成了 Go 强大并发模型的基础&#xff0c;其中通道&#xff08;channels&#xff09;作为协程之间的主要通信…

6条优势,anzo capital昂首资本相信MT5替代MT4的原因

投资者都知道MT5是在MT4基础上升级换代的多资产平台&#xff0c;MT5于2010年6月首次发布。anzo capital昂首资本认为MT5将完全取代MT4&#xff0c;就像MT4取代之前版本一样&#xff0c;因为有以下6条优势&#xff1a; 一.市场深度(DOM)数据。在MT4中&#xff0c;DOM几乎没有用…

什么是生成对抗网络 (GAN)?

什么是生成对抗网络 &#xff08;GAN&#xff09;&#xff1f; 钦吉兹赛义德贝利 一、说明 GAN&#xff08;Generative Adversarial Network&#xff09;网络是一种深度学习模型&#xff0c;由两个神经网络——生成器和判别器组成。生成器负责生成虚假的数据&#xff0c;而判别…

yarn安装依赖时报错 error An unexpected error occurred:

一切起因是因为前一天安装了volta管理node&#xff0c;第二天启动项目&#xff0c; 显示error An unexpected error occurred: “https://registry.npmmirror.com/webpack-aliyun-oss/-/webpack-aliyun-oss-0.2.6.tgz: Request failed “404 Not Found””. 项目启动时发现报错…

【WSN】基于蚁群算法的WSN路由协议(最短路径)消耗节点能量研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【虚拟化】虚拟机vcpu绑核物理机

文章目录 一、NUMA二、虚拟机xml配置解析 参考文章 第一篇&#xff1a;KVM虚拟化CPU技术总结 第二篇&#xff1a;虚机cpu和mem的配置&#xff08;cputune和numatune&#xff09; 第三篇&#xff1a;libvirt 中cpu, numa 的配置 第四篇&#xff1a;如何提高虚拟机性能&#xff1…

安全学习_开发相关_JavaEE过滤器监听器简单了解

文章目录 Web应用运行流程图 JavaEE-过滤器-Filter过滤器概述&作用过滤器相关安全测试场景 JavaEE-监听器-Listener监听器作用&#xff1a;监听器相关安全测试场景 过滤器和监听器&#xff0c;主要对安全测试有影响的是过滤器&#xff0c;监听器只是在对代码进行逻辑分析时…

2020-2023中国高等级自动驾驶产业发展趋势研究-中国高等级自动驾驶发展近况

1.2 中国高等级自动驾驶发展近况 通过对中国高等级自动驾驶行业的观察和分析&#xff0c;亿欧汽车认为&#xff0c;除技术解决方案提供商外&#xff0c;如今的车企、政府、资本同样在产业链中扮演重要角色。此外&#xff0c;车路协同技术的发展也为高等级自动驾驶的发展提供了更…

Web自动化框架中验证码识别处理全攻略,让测试更得心应手!

前言&#xff1a; 随着Web应用程序的不断发展&#xff0c;自动化测试已成为项目开发中必不可少的一环。然而&#xff0c;验证码的出现却经常会使自动化测试变得更具挑战性。为了解决这个问题&#xff0c;我们需要一种方法来自动识别和处理验证码&#xff0c;从而提高自动化测试…

leetcode面试题0808有重复字符串的排列组合

描述 输入一个长度为 n 字符串&#xff0c;打印出该字符串中字符的所有排列&#xff0c;你可以以任意顺序返回这个字符串数组。 例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA和CAB。 数据范围&#xff1a;n<10 要求&#xff1a;空间复…

引领初创企业的数字化转型:选择适合的低代码平台

初创企业在初期各项架构都还不完善&#xff0c;对于应用程序的需求多样&#xff0c;但是又要考量成本。所以&#xff0c;低代码平台就是在综合考量成本和需求的情况下的一个突出的选择。下面我们就六个方面为您介绍&#xff1a;初创企业选择的Zoho Creator低代码平台。 1、功能…

机器学习笔记 - k-NN算法的数学表达

一、概述 所有的机器学习算法都是有假设前提的。k-NN算法的假设前提是相似的输入有相似的输出。其分类规则是对于测试输入x,在其k个最相似的训练输入中分配最常见的标签。 k-NN 的正式定义: 对于一个待测试数据。 将的个最近邻的集合表示为 。的正式定义为 ,并且。(意思就是…

Linux第一次作业

一&#xff0c;作业问题&#xff1a; 二&#xff0c;问题解答&#xff1a; 1. 2.文件管理命令练习 3.vi/vim练习 3.1 3.2 3.3 3.4

消除达人游戏小程序开发流程:专业性与创新的结合

在移动互联网时代&#xff0c;达人游戏小程序逐渐成为了用户追逐娱乐的一种方式。为了满足用户对于达人游戏的需求&#xff0c;开发一款专业且具有创新性的达人游戏小程序显得尤为重要。本文将从需求分析、技术选型、系统设计和用户体验等多个方面&#xff0c;深入探讨达人游戏…

2023.9.23-最强实战:Typora+mkdocs构建自己的知识库博客

最强实战&#xff1a;Typoramkdocs构建自己的知识库&博客-2023.9.23 winodws-ecs-rsync-mkdocs-typora-百度网盘同步空间数据维护方案 目录 实验环境 win10 typora v1.7.4 mkdocs, version 1.5.2 vscode v1.82.2 阿里云轻量服务器实验软件 链接&#xff1a;https://pan.…

005:vue2使用vue-type-writer实现打字机效果

Vue Type Writer是一个Vue.js 2打字机效果组件&#xff0c;支持像打字机一样模仿键入文本。 文章目录 1. 效果2. 安装使用 1. 效果 2. 安装使用 npm 安装 npm install vue-type-writer --save完整代码 <template><div class"app-container home"><…