问题标签 [servo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
raspberry-pi3 - 树莓派伺服和超声波传感器抖动
我想知道其他人在使用 Raspberry Pi(我拥有 3B)上的伺服电机和超声波传感器时是否遇到过同样的问题。
本质上,我在伺服电机 ( HS-422 ) 的顶部安装了两个相距 180° 的超声波传感器 ( HC-SR04 )以充当雷达。
这是一个示例代码。Servo 和 Sonic 类是由我制作的。它们功能齐全,并且使用 Joan 的pigpio。
问题:当我使伺服旋转角度(180次)时,一切正常。当我将我的超声波传感器与伺服器一起实例化并返回它们distance()
时,一切都开始滞后,伺服器移动非常缓慢。
我试图打印距离,看看是否是伺服抖动问题,但我的怀疑得到了证实:一切都滞后了。
好像 RPi 太慢了。
有时,我会获得 20° 的“正常”速度,然后再次减速。这向我证实,这不是gpio
图书馆问题,也不是传感器问题。
有没有办法解决这个问题?RPi 真的落后了吗?
c++ - Arduino/C++ IF/ELSE 语句
[稍后编辑] 我有一个 Arduino Uno 和一个 RFID-RC522、一个伺服电机和一些 LED + 我还做了一个铝箔三明治/开关。这是铝制开关之前的代码,一切正常:
因此,如果 RFID CARD/TAG 为“A0 B9 8D 7C”,LED_V 灯亮,蜂鸣器短音,伺服(此处称为 bariera)转到 120 度。
如果 RFID CARD/TAG 不是“A0 B9 8D 7C”,LED_R 会亮起,蜂鸣器长音且 serv 不执行任何操作。
我还做了一个铝箔开关(两张用纸板隔开的铝片,按下时((digitalRead(IESIRE)== 0)应该:LED_V灯,蜂鸣器短音,伺服(这里命名为bariera)转到120度。
这是包含开关的整个代码(#define IESIRE 6):
请忽略 else if 语句和其他东西,我对编码还很陌生,我正在尽力而为。因此,如果按下开关(这转换为digitalRead(IESIRE)==0)
)伺服需要转到 120 度,无论其他语句如何。
我希望这是有道理的,而且更明确。
android - control servo using android
Asked question master, how to coding in arduino for controlling servo using android via bluetooth? Code below does not work, servo only runs between 48 - 56.
python - 树莓派3+温度传感器+伺服电机
我有树莓派 3 并试图创建智能温室模型。如果温度太高,这个模型应该打开窗口。
我是用Python编写代码的新人,找到了几个例子:1.用于温度传感器和2.用于伺服电机旋转。
谁能帮我用伺服电机?例如,如果温度为 20°C,我想将伺服移动到 30°,如果温度为 21°C,则移动 40° 伺服,依此类推。
我有 Python 代码:
我在互联网上找到的关于伺服电机的部分示例。我需要将“while”替换为“if”。我自己试过,但转子一直旋转到相同的角度。任何人都可以帮助我处理这部分代码吗?
第二个问题,如何在树莓派上的终端“sudo pythonservo.py 11 17”中每 10 分钟自动运行一次这个命令,并且当树莓派打开时?
谢谢你的帮助!
arduino - 如何将 2 个引脚连接在一起,然后在环中分离它们?
我有 - 例如 - 针脚 1,它有一个电流输入(因此在设置中设置为输入)和针脚 2,它必须路由到针脚 1(因此有针脚 1 的电流输出 - 这可能与使用 Arduino 的内置电流输出不同 - 并在设置中设置为输出)。
然后,在循环过程中,我需要将这两个引脚彼此分离(这样电流仍会流入引脚 1,但不会流出引脚 2),同时两个伺服器将移动。
例如,我想是这样的:
但我不知道如何让他们在剩下的时间里互相路由。
提前致谢!
arduino - Arduino Uno:如何让它在图 8 中连续运行?
我的任务是设计和实施软件,使您的 Shield-Bot 在“数字 8”中连续运行,其中两个回路的直径至少为 1 英尺。
我把下面的代码放在一起,第一次正确地制作了一个数字 8,但是在每次绕它旋转之后慢慢地失去形式。我需要以相同的方式进行每次旋转。
arduino - Arduino伺服和红外遥控器
当我按下遥控器中的一个按钮时,我试图从伺服器获得连续(180 到 0 和返回 0 到 180)的运动,并且只有在我按下另一个按钮时才停止。到目前为止,我已经让它连续移动,但是当我按下“停止”按钮时它并没有停止。我知道这是因为 while 循环。但是,我已经尝试过 switch-case,if 语句,到目前为止没有任何效果。请帮助,任何使它工作的建议表示赞赏。
python - 在python中访问函数并停止线程媒体和伺服子进程
我一直在对这个主题进行一些搜索,但我的问题似乎没有一个非常明确的答案。我目前正在做一个项目,用户单击一个按钮,一旦他调用一个python函数reply()
,该函数就会启动两个不同的线程,a
(代表音频)和r
(代表例程)这两个线程应该一起工作并且基本上根据叙述者的讲话指向地图中的一个方向:
我想知道是否有一种方法可以访问该函数并在用户单击停止按钮时为playaudio
和routine
函数停止这些线程,这样如果用户不再想看到它,他需要做的就是停止演示. 两个函数设置如下:
这些将通过Tkinter.Button
主屏幕上的元素启动,并将播放音频和控制伺服模块。
对于停止功能,我认为添加另一个按钮元素是一种解决方案,但在用户单击它时Tkinter
使用不同的功能退出。subprocess
对于实际stop()
功能,我尝试了一些方法,例如stop()
,destroy()
但音频或伺服继续运行,或者实际程序关闭。
所以我的问题是,我应该做些什么不同的事情?我真的很感激这个问题的任何反馈。
python - 如何使舵机缓慢到达所需的角度?
我找到了一个解决方案,使舵机逐步达到所需的角度,但这取决于舵机的当前角度。这是代码:
问题是如何知道伺服电流角度?
c# - 通过 C#、Windows 10 IoT 和 Magellanic.ServoController 控制伺服 - CPU 问题以及如何解决它们?
我目前正在学习 C#,我尝试的第一件事是构建一个通用应用程序,在 Windows 10 IoT 上运行它并通过它控制伺服电机。我的想法是有一个滑块来控制伺服的方向。为了控制伺服,我使用 NuGet 插件 Magellanic.ServoController (by Jeremy Lindsay)
基于滑块的计算和移动工作正常,我唯一的问题是,当我执行伺服的移动时,这个过程占用了 30% 的 CPU 容量(移动完成时的事件)。这导致我可以执行 3 次运动,之后 CPU 接近 100%,第 4 次运动将无法正确执行(因为硬件我使用树莓派 3)。
这是我使用的代码
我目前的猜测是某些代码提供程序未正确卸载或类似情况。
非常感谢您的帮助!
PS:这里是 NuGet 插件代码的链接:
https://github.com/jeremylindsayni/Magellanic.ServoController/blob/master/ServoController.cs