通过硬件PWM控制4个伺服电机 -- pi-3 领域 和 gpio 领域 和 pi-4 领域 和 rpi.gpio 领域 和 pwm 领域 raspberrypi 相关 的问题

Controlling 4 servo motors through hardware PWM


简体版||繁體版
0
vote

问题

中文

我正在研究一些时间关键的系统,将运行图像处理和控制4个SG90伺服电机。简而言之,我会做视觉伺服。

因为我会做视觉伺服,我不想使用软件PWM来控制&驾驶伺服电机。我正在使用覆盆子pi 4 4gb。

根据我的研究,PI 4上有两种PWM通道,可在GPIO12,GPIO13,GPIO18,GPIO19上获得。 (见官方 raspberry pi文件)

这里,有一些问题;

  • 我可以通过使用此PWM引脚独立地控制4个伺服电机。我的意思是,例如,用于伺服1,用于伺服2的GPIO13的GPIO12,用于伺服3的GPIO19和用于伺服4的GPIO10。这可能吗?
  • 有一些图书馆,猪皮和布线。哪一个适用于使用纯硬件PWM?
英文原文

I am working on a some time-critical system that will run image processing and controlling 4 SG90 servo motors. In short, I will do visual-servoing.

Since I will do visual servoing, I don't want to use software pwm for controlling & driving the servo motors. I am using Raspberry Pi 4 4GB.

According to my researches, there is two PWM channels on Pi 4, which are available on GPIO12, GPIO13, GPIO18, GPIO19. (See official Raspberry Pi Documentation)

Here, there are some questions;

  • Can I control 4 servo motors independently by using this PWM pins. I mean, for example, GPIO12 for servo1, GPIO13 for servo2, GPIO19 for servo3 and GPIO10 for servo4. Is this possible ?
  • There some libraries, pigpio and wiringpi. Which one is suitable for using pure hardware pwm?
              

回答列表

1
 
vote
vote
最佳答案
 

您只能使用PI的硬件PWM独立控制两个伺服电池。

gpio 12/18共享一个频道。 GPIO 13/19分享一个频道。

相同的设置适用于共享频道的GPIO。

e.g。如果SERVO1在GPIO18上以GPIO12和SERVO2为单位,则它们将获得相同的信号(相同的频率,脉冲宽)。

PIGPIO支持PI的硬件PWM功能。因此,您可以使用硬件PWM控制两个伺服单。

pigpio c硬件pwm 。

Pigpio还支持所有GPIO上的硬件定时PWM。这适用于伺服电脑。它与完全硬件PWM不如使用,但与使用PCA9685 PWM芯片的伺服帽相同。

pigpio c硬件定时伺服pwm

 

You can only control two servos independently with the Pi's hardware PWM.

GPIO 12/18 share a channel. GPIO 13/19 share a channel.

The same settings apply to GPIO which share a channel.

E.g. If servo1 is on GPIO12 and servo2 on GPIO18 they will get the same signal (same frequency, same pulsewidth).

pigpio supports the hardware PWM features of the Pi. So you could control two servos with hardware PWM.

pigpio C hardware PWM.

pigpio also supports hardware timed PWM on all GPIO. This is suitable for servos. It is not as flexible as fully hardware PWM but is pretty much the same as using a servo HAT with a PCA9685 PWM chip.

pigpio C hardware timed servo PWM

 
 
   
   

相关问题

3  如何使用Pigpio使用键盘控制伺服电机?  ( How to use pigpio to control a servo motor with a keyboard ) 
我的目标是使用 python模块 pigpio ,以实时时尚用键盘控制伺服电机。也就是说,当我按说出'W'键时,它顺时针旋转,当我按下逆时针时键旋转。我正在使用 RPI 2,塔式ProM伺服SG90 并将其连接到 PWM启用的引脚13 (BCM表示)。我的伺服有 not 已被修改,以便连续旋转。 我的请求是: 使...

0  如何使用RPI Python读/写/转换,到/从Arduino PPM和PWM伺服控制信号?  ( How to use rpi python to read write convert to from arduino ppm and pwm servo c ) 
我想创建一个arduino的rcpulsein库的python等效物,它与库的所有相同功能。我已经写了一个有很多错误的代码,但有一种我想做的框架。我一直在寻找一个甚至一个C ++到Python Transpiler,但我不确定他们的可靠性。 C ++代码和我的代码将在下面发布。如果有人可以清理这一点并编写ISR来阅读...

1  Pigpio图书馆的频率和循环长度是多少?  ( What is the frequency and cycle length of the pigpio library ) 
我有一个带有ESC和无刷电机的Raspi 3B。我可以使用 pigpio 以下命令: pi@raspberrypi:~ $ sudo bluetoothctl [bluetooth]# agent on Agent is already registered [bluetooth]# scan on [...]...

3  如何编程PWM一个任意波形以生成红外线流  ( How to program pwm an arbitrary waveform to generate infrared stream ) 
我使用了PIC来创建IR模式来调制频率(37kHz或58kHz)来控制不同的设备。我想尽可能多地移动到RPI。我将使用PIC生成37kHz或58kHz,但概述能够使RPI控制PIC信号的"ON" 和"OFF" 期间。 我想创建一个波形,在其中,逻辑'1'可以被列为2-600us时段,然后是1 600us低频。逻辑'...

1  脚本延迟仔猪问题  ( Pigpio problem with delay on scripts ) 
我正在尝试运行旧的覆盆子pi 2011.12作为控制RGB LED条带的服务器。为此,我正在使用PIGPIO,因为这是最好的解决方案(RPI.GPIO是基于软件的,它创造了闪烁)。但是,在尝试运行Python脚本时,我遇到了小延迟问题。 我的代码如下: #!/usr/bin/env python import ...

104  我可以使用GPIO进行脉冲宽度调制(PWM)吗?  ( Can i use the gpio for pulse width modulation pwm ) 
我可以使用gpio作为脉冲宽度调制输出? 如果是的话,我怎么样做它以及我可以拥有多少并发,不同的PWM输出? ...

1  前进时,1台电机慢慢地停止  ( 1 motor spradically stops when going forward ) 
我在"Linux User&开发人员" (第132页)机器人教程(我的源代码上方的软件可以找到 这里 )和硬件连接根据 adafruits pwm教程。 问题是 motorr (右电机,duh!)行为"奇怪" 。它按预期旋转向后。问题是前向动作,更精确地,当设置为转发:时,它表现得如此如此 仅在程序的开始时...

0  PWM在occidentalis v0.2中找不到  ( Pwm not found in occidentalis v0 2 ) 
我试图根据来自adafruit的本教程: 我正在运行 occidentalis v0.2 (从第1天开始,其中4个月前),从未有类似的问题。 这是问题: $ sudo ls /sys/class/rpi-pwm ls: cannot access /sys/class/rpi-pwm: No such file ...

2  使用覆盆子pi 3控制伺服,但不移动  ( Control servo using raspberry pi 3 but not moving ) 
对于学生项目f​​unbots( https://github.com/melvinma/funbots ),我们使用PWM控制伺服的问题。我们有限的工具来诊断问题,请帮助。 设置: Raspberry PI(一个型号3B和一个模型2B) 电机(Hitech HS-422和TowerPro SG92R) 软件:W...

2  用L293D控制两个电机  ( Controlling two motors with an l293d ) 
更新:我可以使用 tlc5940 控制两个电机? 所以有很多关于控制两个电机的谈话。 我的计划是两个构建一个RPI机器人,至少我需要让它控制Alteast两个电机。我不在乎速度太多了。 adafruit有一个漂亮的教程使用L293D IC 控制电动机。他们还提到它可以控制两个电机,但我需要从pi的另一个pwm输出...

27  如何控制RC伺服?  ( How can i control an rc servo ) 
我想通过 Python来控制来自GPIO引脚的小型RC伺服(5 V,500 mA)。 。 硬件 需要什么是电气连接? 我可以将多个伺服连接到覆盆子pi吗? 有什么限制吗?我需要用晶体管缓冲输出引脚吗? 我可以直接从覆盆子pi供电,或者我应该使用外部电源吗?我需要一个电容器来平滑伺服的生涩功率抽奖吗? 软件 ...

1  从内核模块中设置第二个PWM通道,无法在RPI 3 Model B +  ( Setting up the second pwm channel from kernel module not working on rpi 3 model ) 
我正在尝试在我的内核模块上设置覆盆子PI 3型号B +上的PWM通道(PMW0和PMW1)。我已成功使用所需的频率和可变占空比设置通道0,我正在获得GPIO 12和18个引脚上的预期输出。但是,对通道1执行相同的配置步骤,我无法从GPIO 13或19引脚获得任何输出。我认为也许只有一个频道可以一次工作,但禁用通道0并...

0  打开一个带调调并保持的LED  ( Turn on an led with dimming and stay on ) 
我想通过使用pwm逐渐启动LED。 然后在 lsmod1 我希望它保持在 lsmod2 。 lsmod3 但下面的脚本刚刚关闭。 这是可能的吗? ...

2  交流电源调光7W LED灯问题(RPizero + MPDM v4.1)  ( Ac mains dimmer dimming 7w led lamp problem rpizero mpdm v4 1 ) 
我正在尝试用覆盆子Pi Zers昏暗的7W LED用于家庭自动化。但它不按预期工作。 我跟着这个教程: https://www.youtube.com/watch?v=wqy4-ghqvzi。 我在覆盆子和我的LED之间有完全相同的连接,我也有相同的调光器。我尝试了他们的测试代码,它应该使用Pigpio硬件_PWM...

1  RPI Python GPIO PWM控制数字伺服JX 5521MG问题  ( Rpi python gpio pwm controlling digital servo jx 5521mg problem ) 
我订购了一个数字伺服 jx 5521mg 与我一起使用PI但是当我使用下面的代码时,伺服不移动,但内部有轻微的勾选或抽搐。 gpio pwm-ms gpio pwmc 192 gpio pwmr 2000 gpio -g pwm 18 100 我已成功使用与伺服模型的相同代码 fs5103r 所以我想知...

5  我可以用覆盆子pi和/或arduino控制这个esc /无刷电机吗?  ( Can i control this esc brushless motor with a raspberry pi and or arduino ) 
我的朋友,我一直在阅读关于控制来自Arduino或Raspberry PI的控制Esc /无刷电机的文章。我读过的文章谨慎,请注意控制此类系统取决于ESC的规格。例如,我读取了关于控制20A或30A ESC的谈话的谈话,但我们试图控制的ESC超出了这一点。 这里是我试图通过Arduino和/或Raspberry P...

3  GPIO18 +单声道音频输出上的LED条PWM  ( Led strip pwm on gpio18 mono audio output ) 
在RPI 3上,我想通过保持音频工作来控制带PWM(GPIO18)的WS2811 LED条带。 它看起来像RPI零(我不确定RPI 3)内置3.5mm插孔的左右通道连接到GPIO13和GPIO18。 是否有可能将音频降至1通道,以便我们可以在单声道模式下使用音频插孔,并为LED条带保持GPIO18? 我一直在尝试下...

1  I2S 3W D类放大器和2.2“SPI-DISPLAY(ILI9341) - GPIO 18问题  ( I2s 3w class d amplifier and 2 2 spi display ili9341 gpio 18 problem ) 
我想将Adafruit I2S 3W D类放大器分配电路板和2.2英寸TFT显示(ILI9341)连接到覆盆子PI零。 但是,似乎默认情况下,两个组件都使用GPIO 18(位时钟的放大器和背光的显示)。 所以我想将其中一个组件的连接改为另一个PWM-PIN(例如GPIO 12)。 但我找不到改变GPIO的地方。在我读...

1  覆盆子pi的强类型语言? [关闭]  ( Strongly typed language for the raspberry pi ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,以便仅通过编辑此帖子。 关闭 5年前。 ...

0  PIGPIO 3控制两个伺服器  ( Pigpio with pi 3 controlling two servos ) 
我是在覆盆子pi上使用gpio引脚的全新,我试图使用pigpio与python和键盘控制两个连续旋转伺服功能。 servos在这里: https://www.amazon.com/parallax- inc-continuous-旋转 - 伺服/ DP / B00B886KSE 问题是伺服似乎只是响应一半的时...

2  使用硬件PWM作为事件计时器?  ( Using hardware pwm as event timer ) 
在基于现代PC的Linux机器中,可以使用HPET和实时流程来获得合理的良好实时性能(+ -10us响应时间) 虽然Raspberry Pi硬件没有HPET设备,但它确实有硬件PWM。 因此,通过将其输出连接到另一个中断驱动的GPIO输入,可能会使用硬件PWN作为实时源。 我现在想知道这个连接是否也可以通过软件使用设...

1  PI4J ESC无刷电机没有运行稳定  ( Pi4j esc brushless motor is not running stable ) 
我想控制一个带有在覆盆子PI型号B +上运行的Java程序的无刷电机。 这是我使用的代码: package de.ye.boat_eng; import com.pi4j.wiringpi.Gpio; import com.pi4j.wiringpi.SoftPwm; public class ON impl...

0  更多软件PWM [重复]  ( More software pwm ) 
这个问题已经在这里有答案: 我可以使用gpio进行脉冲宽度调制(pwm)吗?< / a> (5个答案) ...

0  RPI PWM问题 - (重新)开始导致振荡销  ( Rpi pwm issues restart results in oscillating pin ) 
我正在建立一个由PI控制的桑拿控制机制,使用PWM和固态继电器控制。 工作正常,但经过一段时间,PWM崩溃了。 此时,当我运行程序并启动PWM时,它首先工作;改变占空比也很好。 然而,当我停止并重新启动PWM时,它会导致振荡引脚,没有预期输出。 这是TestCode: import RPi.GPIO as GPI...

1  试图用gpio驱动监视器背光  ( Trying to drive monitor backlight with gpio ) 
项目:我正在使用Google照片集成的PI Powered Photo Frame。 对象:我已经添加了一个PIR传感器,用于检测到任何活动时自动屏幕关闭,现在我希望控制与PI的GPIO输出的背光亮度。我的背光控制板使用363Hz频率和PWM,带3.5伏特驱动,这是我的需求。 技术信息:来自信号的电流绘制为20...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有