【Arduino 动手做】带 2 个轮子的移动机器人

在这里插入图片描述
《Arduino 手册(思路与案例)》栏目介绍:
在电子制作与智能控制的应用领域,本栏目涵盖了丰富的内容,包括但不限于以下主题:Arduino BLDC、Arduino CNC、Arduino E-Ink、Arduino ESP32 SPP、Arduino FreeRTOS、Arduino FOC、Arduino GRBL、Arduino HTTP、Arduino HUB75、Arduino IoT Cloud、Arduino JSON、Arduino LCD、Arduino OLED、Arduino LVGL、Arduino PID、Arduino TFT,以及Arduino智能家居、智慧交通、月球基地、智慧校园和智慧农业等多个方面与领域。不仅探讨了这些技术的基础知识和应用领域,还提供了众多具体的参考案例,帮助读者更好地理解和运用Arduino平台进行创新项目。目前,本栏目已有近4000篇相关博客,旨在为广大电子爱好者和开发者提供全面的学习资源与实践指导。通过这些丰富的案例和思路,读者可以获取灵感,推动自己的创作与开发进程。
https://blog.csdn.net/weixin_41659040/category_12422453.html

在这里插入图片描述
构建您的第一个低成本 2 轮移动机器人,并了解如何使用激光切割技术设计每个机器人结构。

阅读本文后,您将了解到:

如何创建两轮移动机器人。
如何创建 JLCPCB 屏蔽来连接所有设备。
使用 Arduino 为机器人编程以避开障碍物。
超声波传感器的工作原理。
TCRT5000线从动传感器的工作原理。
如何计算 18650 电池移动机器人的自主性。
如何组装两轮移动机器人的控制电路。
立即使用 Arduino UNO 和各种资源构建您的 2 轮移动机器人。

使用超声波传感器,使机器人能够检测并避开障碍物。该计算基于声音在空气中传播的速度。
声音在空气中的传播速度为340 m/s。Arduino 触发传感器发出声音信号,并测量信号来回到接收器的时间 (t)。
根据速度数据(340m/s)和时间(t),我们能够计算出机器人与物体之间的距离。
距离由下面的等式确定。
距离 = 0.034*(t/2)
根据这个方程,机器人确定距离,如果靠近障碍物,则改变其轨迹。
最后,我们有用于线路跟随器功能的TCRT5000传感器。两个传感器固定在移动机器人底座的下部区域。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
项目代码

#define Motor1A 2
#define Motor1B 3
#define Motor2A 4
#define Motor2B 5

#define echoPin 10
#define trigPin 11

long tempo = 0;
byte distancia = 0;

void setup() 
{
  
  pinMode(Motor1A, OUTPUT);
  pinMode(Motor1B, OUTPUT);
  pinMode(Motor2A, OUTPUT);
  pinMode(Motor2B, OUTPUT);

  pinMode(echoPin, INPUT);
  pinMode(trigPin, OUTPUT);
}

void loop() 
{
  
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  tempo = pulseIn(echoPin, HIGH);

    delay(300);

  distancia = tempo * (0.034/2);
  
  if(distancia >= 10)
  {
    frente();
  }

    else
    
  
  {
    parar();
    delay(500);
    direita();
    delay(1000);
    parar();
  }
  
}

void frente()
{
  digitalWrite(Motor1B, LOW);
  digitalWrite(Motor2B, LOW);
  
  digitalWrite(Motor1A, HIGH);
  digitalWrite(Motor2A, HIGH);
}

void re()
{
  digitalWrite(Motor1A, LOW);
  digitalWrite(Motor2A, LOW);
  
  digitalWrite(Motor1B, HIGH);
  digitalWrite(Motor2B, HIGH);
}

void parar()
{
  digitalWrite(Motor1A, HIGH);
  digitalWrite(Motor2A, HIGH);
  
  digitalWrite(Motor1B, HIGH);
  digitalWrite(Motor2B, HIGH); 
}

void direita()
{ 
  digitalWrite(Motor1B, LOW);  
  digitalWrite(Motor2A, LOW);  
  
  digitalWrite(Motor1A, HIGH);  
  digitalWrite(Motor2B, HIGH);
}

【Arduino 动手做】带 2 个轮子的移动机器人
项目链接:https://www.hackster.io/moreirarobotics/mobile-robot-with-2-wheels-acdd03
项目作者:Robotics Arduino

项目代码:https://www.hackster.io/code_files/543379/download

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驴友花雕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值