75浏览
查看: 75|回复: 2

[项目] 【Arduino 动手做】一款出色的 4 轮驱动越野机器人

[复制链接]
通往越野机器人的道路 - 我们最近的两个项目 - Spinel Crux V1 和 The Spinel Crux L2 在我们社区内外都取得了革命性的成功。我们构建了一个手势控制机器人,并制作了一个附加组件——一个机械臂并固定在它上面。我们的项目在各种比赛中获得了第一名,并在各种杂志的头版上取得了成功。

这一次,我们决定亲自动手。我们打造了一个越野 4 轮驱动机器人,它可以穿越崎岖的地形,并且可以使用手机或笔记本电脑进行远程控制。

看啊,荒芜之地斗士
使用 Arduino 的出色越野机器人。这个是 WiFi 控制的,这意味着它可以从任何有 WiFi 连接的地方进行控制。这辆车有坚固的破轮胎,使他能够在任何类型的地形中爬行。

Arduino 还是 Raspberry Pi 用于您的项目?
Raspberry Pi 有一个新版本 - Raspberry Pi Pico,它类似于 Arduino,在市场上可供业余爱好者使用。这个板子非常简单,从开始,开始构建您的项目!如果您对下一个项目是否需要购买 Raspberry Pi 或 Arduino 感到困惑,请不要害怕。在这篇文章中 - Raspberry Pi Pico 或 Arduino,我们详细解释了所有内容,以便您可以选择最适合您的项目的。

视频演示
这是 Badland Brawler 的演示视频,可以体验一下。


视频教程
视频教程将很快添加到我们的 YouTube 频道中。订阅我们的频道以获取完整的视频教程。

在本视频系列中,我们将解释有关越野 4 轮驱动遥控机器人的所有信息,使用 Android 智能手机/笔记本电脑对其进行控制,并将向您展示如何自己制作 Badland Brawler 机器人。

制作自己的越野 4 轮驱动 RC 怪物卡车
看过演示视频吗?真的喜欢这个 Badland Brawler 吗?想打造这款坏蛋越野 4 轮驱动 RC Rock Crawler 机器人吗?

让我们深入研究下面的机器人教程部分并开始构建它。为方便起见,我们将这篇文章分为不同的步骤,以使此机器人教程易于遵循和故障排除。

我们将为您提供拾取和放置机器人的设计、代码,以及该项目中使用的所有产品的链接,包括这个很酷的机器人套件。

我们的项目教程页面中也提供了机器人构建套件的链接,以便您可以购买任何您想要的机器人构建套件,并根据您的需要构建自己的 DIY 机器人。

获取您的组件
要自己构建一个,您必须获得一个具有 WiFi 连接的 Arduino 板、一个机器人底盘和一些传感器。

Arduino MKR1000 或任何支持 WiFi 的 Arduino 板
12V 电池
直流电动机
四轮驱动越野 RC 岩石爬行机器人底盘
L293D 电机驱动器 IC
安装了 RootSaid – WiFi Command Center 的 Android 手机
WiFi 网络
让我们开始吧
现在让我们开始构建您自己的 RC 怪物卡车。

【Arduino 动手做】一款出色的 4 轮驱动越野机器人图1

【Arduino 动手做】一款出色的 4 轮驱动越野机器人图3

【Arduino 动手做】一款出色的 4 轮驱动越野机器人图2

驴友花雕  中级技神
 楼主|

发表于 2025-6-17 16:41:01

【Arduino 动手做】一款出色的 4 轮驱动越野机器人

项目代码

  1. #include <SoftwareSerial.h>
  2. #include <Wire.h>
  3.               
  4. SoftwareSerial HC12(10, 11);
  5. int lr,x,y;
  6. int bf;
  7. int sw;
  8. String input;
  9. int boundLow;
  10. int boundHigh;
  11. const char delimiter = ',';
  12. void setup() {
  13.    
  14. Serial.begin(9600);
  15. HC12.begin(9600);
  16. pinMode (2, OUTPUT);
  17. pinMode (3, OUTPUT);
  18. pinMode (4, OUTPUT);
  19. pinMode (5, OUTPUT);
  20. pinMode (6, OUTPUT);
  21. pinMode (7, OUTPUT);
  22. }
  23. void loop() {
  24.   if(HC12.available())
  25.   {
  26.   input = HC12.readStringUntil('\n');
  27.   if (input.length() > 0)
  28.       {
  29.         Serial.println(input);
  30.       
  31.        boundLow = input.indexOf(delimiter);
  32.         x = input.substring(0, boundLow).toInt();
  33.    
  34.         boundHigh = input.indexOf(delimiter, boundLow+1);
  35.         y = input.substring(boundLow+1, boundHigh).toInt();
  36.    
  37.         boundLow = input.indexOf(delimiter, boundHigh+1);
  38.         lr = input.substring(boundHigh+1, boundLow).toInt();
  39.         boundHigh = input.indexOf(delimiter, boundLow+1);
  40.         bf = input.substring(boundLow+1, boundHigh).toInt();
  41.    
  42.         sw = input.substring(boundHigh+1).toInt();
  43.   
  44. delay(10);
  45.       
  46. }
  47. //Robot Movement
  48. if (bf <= 50)
  49. {
  50. backward();
  51. }
  52. else if (bf >= 900)
  53. {
  54. forward();
  55. }
  56. else if (lr <= 50)
  57. {
  58. right();
  59. }
  60. else if (lr >= 900)
  61. {
  62. left();
  63. }
  64. else
  65. {
  66. stop();
  67. }
  68. }
  69. }
  70. void forward() {
  71. analogWrite(5, 255);
  72. analogWrite(6, 255);
  73. digitalWrite(2, LOW);
  74. digitalWrite(3, HIGH);
  75. digitalWrite(4, LOW);
  76. digitalWrite(7, HIGH);
  77. Serial.println(" Moving Forward");
  78. }
  79. void backward() {
  80. analogWrite(5, 255);
  81. analogWrite(6, 255);
  82. digitalWrite(2, HIGH);
  83. digitalWrite(3, LOW);
  84. digitalWrite(4, HIGH);
  85. digitalWrite(7, LOW);
  86. Serial.println(" Moving Backward");
  87. }
  88. void stop() {
  89. analogWrite(5, 0);
  90. analogWrite(6, 0);
  91. digitalWrite(2, LOW);
  92. digitalWrite(3, LOW);
  93. digitalWrite(4, LOW);
  94. digitalWrite(7, LOW);
  95. Serial.println(" STOP ");
  96. }
  97. void right() {
  98. analogWrite(5, 255);
  99. analogWrite(6, 50);
  100. digitalWrite(2, LOW);
  101. digitalWrite(3, HIGH);
  102. digitalWrite(4, LOW);
  103. digitalWrite(7, HIGH);
  104. Serial.println(" Moving Left");
  105. }
  106. void left() {
  107. analogWrite(5, 50);
  108. analogWrite(6, 255);
  109. digitalWrite(2, LOW);
  110. digitalWrite(3, HIGH);
  111. digitalWrite(4, LOW);
  112. digitalWrite(7, HIGH);
  113. Serial.println(" Moving Right");
  114. }
  115. void backright() {
  116. analogWrite(5, 255);
  117. analogWrite(6, 50);
  118. digitalWrite(2, LOW);
  119. digitalWrite(3, HIGH);
  120. digitalWrite(4, LOW);
  121. digitalWrite(7, HIGH);
  122. Serial.println(" Moving Left");
  123. }
  124. void backleft() {
  125. analogWrite(5, 50);
  126. analogWrite(6, 255);
  127. digitalWrite(2, LOW);
  128. digitalWrite(3, HIGH);
  129. digitalWrite(4, LOW);
  130. digitalWrite(7, HIGH);
  131. Serial.println(" Moving Right");
  132. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2025-6-17 16:43:38

【Arduino 动手做】一款出色的 4 轮驱动越野机器人

【Arduino 动手做】一款出色的 4 轮驱动越野机器人
项目链接:https://www.hackster.io/jithinsa ... with-arduino-489daa
项目作者:吉辛·萨纳尔
项目视频 :https://www.youtube.com/watch?v=Xbf2r-UUpSc
项目代码:https://rootsaid.com/off-road-robot-arduino/

【Arduino 动手做】一款出色的 4 轮驱动越野机器人图1

【Arduino 动手做】一款出色的 4 轮驱动越野机器人图2

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail