我正在创建一个六足类,使用一个Raspberry Pi 3,2 X 链,和多个伺服为四肢。
我遇到的问题是,当将多个伺服连接到控制器,然后连接到电源时,大多数伺服系统都会在没有运行任何代码或命令的情况下自行移动。
当我同时测试单个伺服系统或最多3台时,不会出现此问题。
我目前使用的5V2.5A电源,并已测试了一套4 AA电池组1.5V碱性与类似的结果。
作为指导原则,我遵循模板。
我试图解析文本文件的每一行,但它始终给我一个错误'System.IndexOutOfRangeException‘。
“servers.lst”中的每一行都按以下顺序排列:
伺服器名称伺服器伺服器端口伺服器埠伺服器URL伺服器型别伺服器型别伺服器版本回覆客户端URL
每一行代表一台服务器。但我无法正确地解析它。它要么返回完整文件、空白变量,要么返回错误。
这是我的代码:
Dim reader As String = My.Computer.FileSystem.ReadAllText("servers.lst")
Dim s() As String
我想知道是否有其他人经历了同样的问题,他们的伺服电机与超声波传感器结合在一个覆盆子Pi (我拥有一个3B)。
本质上,我已经安装了两个超声波传感器(),它们之间相距180°,安装在伺服电机()的顶部,充当雷达。
这是一个示例代码。伺服和声乐课是我做的。它们功能齐全,使用琼的。
import pigpio, time
from Files.servo import Servo
from Files.sonic import Sonic
pi = pigpio.pi()
servoMotor = Servo(name = 'Test', gpio_list = [14], pi
我有一个利用伺服程序库和外部中断例程的程序。据我所知,伺服库使用Timer1中断来发送脉冲到伺服来保持位置。我想知道这对micros()计数有什么影响,因为它在中断期间不会递增。
我的代码中的外部中断例程用于转速表。它使用micros()来确定脉冲之间的时间。我担心Servo库会导致millis()和micros()计数器的漂移,并使速度不准确。转速表可能必须检测到10,000转/分的速度,因此大约为167 Hz。最后,我将使用伺服和转速表来实现PID控制。
volatile unsigned long period;
unsigned long microseconds;
void set