亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

DIY 2D 运动赛车模拟器

组件和用品

Arduino Nano R3
× 1
SG90 微伺服电机
× 2

必要的工具和机器

烙铁(通用)

应用和在线服务

Arduino IDE

关于这个项目

SimTools 是一种通用的运动模拟器软件,能够控制多个硬件接口,包括 Arduino。该组合用于视频中介绍的项目。硬件部分仅包括 Arduino Nano 微控制器和两个便宜的 SG90 微型伺服电机。我们只需要上传下面给出的代码。

在 SimTools 软件的帮助下,所需的游戏数据通过串口传输到 Arduino。接下来 Arduino 激活伺服电机,相应地移动模拟平台。这是一个小规模的两轴模拟器。要制作真正的模拟器,需要添加电机驱动器和大型伺服电机。

“https://www.xsimulator.net/”页面上有很多此类DIY模拟器的示例以及施工图和技巧。视频中描述了 SimTools 设置过程,但您也可以下载 PDF 用户手册:https://simtools.us/wp-content/uploads/2019/06/SimToolsUserManual-v2.4.pdf

SimTools 将在“演示”模式下运行,直到注册了有效的许可证。当 SimTools 处于演示模式时,Live for Speed 插件完全可以进行测试。 (Live for Speed 的演示也适用于测试 SimTools。)您可以在 https://www.lfs.net/downloads

找到更多信息并下载 Live for Speed

SimTools 下载链接:

https://www.xsimulator.net/community/marketplace/motion-simulation-software-simtools.63/

代码

  • 代码
代码C/C++
//************************************************* ****************************************************// RC伺服模型//原始代码由EAOROBBIE(罗伯特林赛)//完全由aarondc修改//用于Sim Tool Motion Software的免费使用//******************** ****************************************************** **********************#include //#define DEBUG 1 // 注释掉这一行以删除 debuggin Serial.print linesconst int kActuatorCount =2; // 我们正在处理多少个执行器 // 从 Sim Tools 发送的用于标识每个执行器的字母(“名称”)// 注意:这里的字母顺序决定了剩余常量 kPins 和 kActuatorScaleconst char kActuatorName[kActuatorCount] 的顺序={ 'R', 'L' };const int kPins[kActuatorCount] ={4, 5}; // 执行器连接的引脚const int kActuatorScale[kActuatorCount][2] ={ { 0, 179 } , // 右执行器缩放 { 179, 0 } // 左侧执行器缩放 }; const char kEOL ='~'; // 行尾 - 我们的执行器值的分隔符 const int kMaxCharCount =3; // 一些保险...伺服执行器Set[kActuatorCount]; // 我们的 Actuatorsint 数组 actuatorPosition[kActuatorCount] ={90, 90}; // 当前执行器位置,初始化为 90int currentActuator; // 跟踪从串口读入的当前执行器int valueCharCount =0; // 我们读取了多少个值字符(必须小于 kMaxCharCount!!// 为我们的状态机设置一些状态// psReadActuator =来自串行端口的下一个字符告诉我们执行器// psReadValue =来自串行端口的下一个 3 个字符告诉我们 valueenum TPortState { psReadActuator, psReadValue }; TPortState currentState =psReadActuator;void setup(){ // 将执行器连接到引脚 for (int i =0; i  0).void serialEvent() { char tmpChar; int tmpValue; while (Serial.available()) { // if我们正在等待执行器名称,在这里获取它 if (currentState ==psReadActuator) { tmpChar =Serial.read(); // 在我们设置的执行器名称数组中查找我们的执行器#ifdef DEBUG Serial.print("读入"); Serial.println(tmpChar); #endif for (int i =0; i  9)) tmpValue =0; actuatorPosition[currentActuator] =actuatorPosition[currentActuator] * 10 + tmpValue; valueCharCount++;否则休息; } // 如果我们读取了值分隔符,则更新执行器并开始寻找下一个执行器名称 if (tmpValue ==kEOL || valueCharCount ==kMaxCharCount) {#ifdef DEBUG Serial.print("read in "); Serial.println(actuatorPosition[currentActuator]); #endif // 缩放新位置,使值在 0 到 179 之间actuatorPosition[currentActuator] =map(actuatorPosition[currentActuator], 0, 255, kActuatorScale[currentActuator][0], kActuatorScale[currentActuator][1]);# ifdef DEBUG Serial.print("缩放到"); Serial.println(actuatorPosition[currentActuator]); #endif updateActuator(currentActuator); currentState =psReadActuator; } } }}//将当前Actuator位置写入传入的Actuator void updateActuator(int thisActuator) {actuatorSet[thisActuator].write(actuatorPosition[thisActuator]);}

示意图


制造工艺

  1. 用于 Raspberry Pi 的 DIY 红外运动传感器系统
  2. DIY LUMAZOID Arduino 音乐可视化器
  3. 使用 Arduino 和智能手机的 DIY 电压表
  4. DIY 虚拟现实滑板
  5. 运动感应水枪
  6. DIY Arduino RADIONICS 治疗MMachine
  7. 使用 RFID 的 DIY 创意
  8. DIY 3 轴 CNC VMC
  9. DIY Arduino + GY-906 红外测温仪
  10. 飞行模拟器的 DIY 方向舵踏板
  11. DIY Arduino 高度测量机
  12. DIY 简单方波发生器,频率高达 1MHz