前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于树莓派的舵机控制原理

基于树莓派的舵机控制原理

作者头像
全栈程序员站长
发布2022-09-10 11:14:51
5550
发布2022-09-10 11:14:51
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

舵机控制原理。

分为数字舵机和模拟舵机。

数字舵机,又称伺服电机。

舵机的控制原理

舵机一般由三根线组成。灰线GND,红线电源,黄线信号线。舵机的控制,通过PWM波调制,发出控制电平,

产生控制电压与舵机内的电位器作比较,获得电压差输出。最后由电压差,决定舵机转向的角度。

SR-1501舵机,是一种不错的标准的机器人舵机。

数字舵机的代码编程控制。

一般原理:

当在20ms内,连续地通过gpio模拟输出高电平(即PWM波),在0.5ms~2.5ms时间内,舵机就能线性地转角0度—180度,

即(当给0.5ms高电平给舵机,它就会转为对应的0度,当给1.5ms高电平给舵机,它就会转为对应的90度角)。

SR-1501舵机总结:

基于SR-1501舵机,当给定一个合适的PWM波给舵机,舵机就会转向一个特定的角度。并且舵机会通过内部的调正,会固定在一个角度中,

即(只要输出一次转角的PWM波,舵机就会一直维持在那个角度中,直到下一次产生角度的变化,就算拔出信号线,也不影响角度的固定,除非拔掉电源线)。

基于树莓派16路舵机控制原理。

在Linux系统下,由于通过模拟PWM波的输出,需要通过内核控制物理硬件,很浪费时间,从而产生精度不能很好地控制。在linux系统中,

有一些定时器 ,如usleep()的api,settimer(),select().,都可以名义上的微秒级别的api,但是,实际上还是有所差别。

通过定时器settimer(),定义系统中断,产生一个定时周期,来处理16路舵机的控制。为了保持一定精度,由于基于Linux操作系统级别的控制,系统

的运行会执行时间片轮转的方法。所以精度难于控制,因而通过设置程序的优先级,就可以在一定的范围稳定地完成任务。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151103.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档