大家好,又见面了,我是你们的朋友全栈君。
舵机控制原理。
分为数字舵机和模拟舵机。
数字舵机,又称伺服电机。
舵机的控制原理
舵机一般由三根线组成。灰线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操作系统级别的控制,系统
的运行会执行时间片轮转的方法。所以精度难于控制,因而通过设置程序的优先级,就可以在一定的范围稳定地完成任务。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151103.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...