gpt4 book ai didi

c++ - Arduino DualShock 4 C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:14:57 25 4
gpt4 key购买 nike

我正在尝试使用 DualShock 4(PS4) 控制 Arduino uno 板。我在对操纵杆进行编程时遇到困难 PS4.getAnalogHat(LeftHatY)我想用操纵杆控制电机;我希望电机在我按下时前进(++i),当我按下时(--i)后退,当我不移动操纵杆时没有速度。我能够在一个方向上移动电机并且速度增加,但我无法让另一个方向工作。我似乎无法在操纵杆值之间建立联系 (PS4.getAnalogHat(LeftHatY) > 137 || PS4.getAnalogHat(LeftHatY) < 117)和电机值(0 - 255)。

我正在使用 USB Shield 和 Motor Shield。

我需要帮助来弄清楚第一个 if 语句。

这是我目前的代码:

if (PS4.connected()) 
{
if (PS4.getAnalogHat(LeftHatY) > 137)
{
M3->setSpeed(255));
PS4.setLed(Green);
PS4.setLedFlash(100 ,100);
}
}

我希望 M3 的值随着操纵杆角度的增加而增加:

for (int i=0; i<=255; ++i)
M3->setSpeed(i);

最佳答案

您需要添加min(117)max(137) 公差条件才能移动电机。然后,将摇杆的可能值映射到电机的速度范围

if (PS4.connected()) 
{
int analogValue = PS4.getAnalogHat(LeftHatY);
if (analogValue > 137 || analogValue < 117)
{
int motorValue = y = map(x, 117, 137 , 0, 255);
M3->setSpeed(motorValue);
PS4.setLed(Green);
PS4.setLedFlash(100 ,100);
}
}

一些错误处理可能会更好,但您可以从它开始。

关于c++ - Arduino DualShock 4 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43194587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com