gpt4 book ai didi

c# - 用压降控制遥控车

转载 作者:太空狗 更新时间:2023-10-29 15:56:28 26 4
gpt4 key购买 nike

所以我和我的搭档需要一些帮助;我们正在研究一个电气工程学位的期末项目。我们的问题是,类里面没有人真正懂很多编程。我们需要帮助或一些关于如何对此进行编程的一般想法。

项目:

我们有一辆巨型卡车,带有两个 IR(红外线)传感器,通过电压检测它的路径。有了这个,我们使用一个自由比例电路板作为“大脑”,同时我们有一个 nerf“导弹炮塔”来射击打开的门(我们需要进行编程以记录红外传感器的电压降。

编程:

我们正在努力并非常努力地为此创建代码

  1. 在程序开始时需要一个延迟功能来将怪物卡车设置在地面上,之后我们需要它沿着红外传感器在地面上读取的设定电压标准直线行驶。
  2. 当它经过一扇敞开的门时,它会有一个很大的 V 压降读数,我们需要它停止射击,然后跟随它的路径。

我知道有很多问题要问,但我们非常需要帮助,我们的老师虽然在电气方面的一切都超越了他的年龄(让我想起了回到 future 的 doc),但缺乏 c 编程这里的许多人拥有使用 C 编程技能的大量知识。最后,一旦我们开始工作(5 月中旬),如果可以的话,我也会发布视频并向大家展示。感谢您为此提出的任何意见和想法,感谢大家抽出时间!!

最佳答案

您的代码可能如下所示:

  // Give yourself some time to set the robot down
<sleep_for_some_interval>;

// Keep reading the sensors and reacting until
// some amount of time passes, or a button is pressed, etc.
while(<keep_running_condition>)
{
// Update sensor readings
int leftDist = <ConvertToDistance>(<read_left_voltage>);
int rightDist = <ConvertToDistance(<read_right_voltage>);

// React to sensor readings
if(leftDist > <door_threshold> &&
rightDist > <door_threshold>)
{
// A door has been detected.
<stop>
<shoot>
<move_forward_fixed_amount>
}
else if(leftDist > <turn_threshold>)
{
// Left distance is beyond the threshold,
// need to turn left
<turnLeft>;
}
else if(rightDist > <turn_threshold>)
{
// Right distance is beyond the threshold,
// need to turn right
<turnRight>
}
else (<terminate_condition>)
{
// Something happened (a sensor condition, etc)
// that tells us that we need to end
// the program
break; // This will exit the while loop
}
else (...)
{
// Other conditions...
}
else
{
// Default reaction (happens if none of the previous
// conditions are met)
<goForward>
}
}

// Shutdown the robot
<stop>
// ...

显然,比较可能需要有所不同,但基本思想是不断读取您的传感器,然后列出要检查的条件以及满足条件时要采取的操作。

注释/提示:

  • 为了“在程序开始时延迟...”,您将调用类似sleep 的内容。/usleep
  • 确保您以正确的顺序检查您的条件(首先检查最严格的条件)在上面的示例中,如果我将“turnLeft”检查移动到顶部,我可能最终会向左转而不是对门。
  • 上面代码的编写方式,每次通过循环只会发生一个 react 。 (这将防止你不小心尝试做两件事,而你应该只做一件事,例如左转和开火)
  • 编写一个可以将电压转换为距离的函数可能会有所帮助
  • 如果您采取复杂的操作(例如检测到门后的 react )并将它们移到它们自己的函数中,您的代码将更清晰、更易于维护。
  • 确保使用某种形式的 revision control ,即使您只是定期压缩您的开发目录。当您发现代码中引入了错误时,这将非常有帮助。

关于c# - 用压降控制遥控车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/723696/

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