1
每个决定使用 Arduino 进入机器人世界的人都面临着巨大的挑战。
这些挑战之一是从一些简单的应用程序开始,并且您可以在学习课程中看到在实践中工作的东西。
这样,可以以实际的方式学习并更快地吸收知识。
正是出于这个原因,我们决定开发 ArduinoRobot Ludos。
接下来,我们将介绍 Arduino 机器人 Ludos 及其结构细节。
该设计将使用PLA 材料的Ender 3 S1 打印机进行开发。
这是Creality开发的新模型。它能够打印不同的材料,并且在打印过程中具有出色的打印质量、准确性和运动稳定性。
接下来,我们将看到电子电路的操作。
创建它的目的是让您是初学者或教师,并且没有易于使用的机器人,可以使用简单的机器人套件,具有多种功能,并帮助您使您的课程更具教学性和实用性。
此外,他建议:
所有这些都将有助于组装您的第一个机器人,并允许您和您的学生将其各种资源与 Arduino 一起使用。
正如您在图 2 中看到的,Robot Ludos 具有立方体的形状。它允许您使用 Arduino 或其他控制板来创建您的项目。
此外,它的结构中还有以下组件:
除了这些组件之外,您还可以利用内部空间并利用其他几个模块和传感器来开发其他项目。
我们的目标是让您使用此工具包构建不同类型的项目和体验。它的零件少,易于组装,并且在单个机器人中具有多种功能。
以下是不同视角下 Ludos 机器人的完整视图。
现在,我们将使用 Robot Ludos 开发一个项目。我们将使用 Robot Ludos 开发超声波尺。如果您想访问完整的 Arduino Robot Ludos 文档并下载您的文档,请访问此 Arduino Robot Ludos 文档。
对于这个项目,我们将使用 Robot Ludos 的 3 个资源:按钮、超声波传感器和 16x2 LCD 显示屏。
下面我们将介绍将要开发的项目。
使用 Arduino 机器人 Ludos 开发超声波标尺。每次按下按钮时,机器人必须使用超声波传感器计算距离,并将其值显示在 16x2 LCD 显示屏上。
对于这个项目,我们将使用下面介绍的 JLCPCB Arduino 兼容印刷电路板。
您可以通过以下链接在第一个订单中以 2 美元的价格为您的项目获取Arduino JLCPCB兼容 PCB:赢得我的 Arduino 兼容 PCB。
访问链接并下载 JLCPCB Arduino 兼容印刷电路板的 Gerber 文件。
下面,我们展示了该项目的完整电子原理图。
现在,我们将展示这个项目的完整代码。
#include //Biblioteca I2C do LCD 16x2
#include //Biblioteca de Comunicacao I2C
LiquidCrystal_I2C lcd(0x27,16,2); // Configurando o endereco do LCD 16x2 para 0x27
#define botao 3
#define echoPin 9
#define trigPin 8
long tempo = 0;
int distancia = 0;
bool BotaoCabeca = 0, estado = 0;
void setup()
{
pinMode(botao, INPUT);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Wire.begin(); //Inicializacao da Comunicacao I2C
lcd.init(); //Inicializacao do LCD
lcd.backlight();
lcd.setCursor(2,0);
lcd.print("Oi, eu sou o");
lcd.setCursor(3,1);
lcd.print("Robo Ludos!");
delay(2000);
}
void loop()
{
BotaoCabeca = digitalRead(botao);
if(BotaoCabeca == 1 && estado == 0)
{
lcd.clear();
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
tempo = pulseIn(echoPin, HIGH);
distancia = tempo * (0.034/2);
if(distancia <= 65)
{
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
if(distancia > 65)
{
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
lcd.print("");
}
lcd.setCursor(0,0);
lcd.print("Distancia:");
lcd.setCursor(0,1);
lcd.print(distancia);
lcd.setCursor(3,1);
lcd.print("cm");
estado = 1;
}
if(BotaoCabeca == 0 && estado == 1)
{
estado = 0;
}
}
在 Arduino 机器人代码的第一部分,我们做了库的声明、名称定义和变量的声明。
#include //Biblioteca I2C do LCD 16x2
#include //Biblioteca de Comunicacao I2C
LiquidCrystal_I2C lcd(0x27,16,2); // Configurando o endereco do LCD 16x2 para 0x27
#define botao 3
#define echoPin 9
#define trigPin 8
long tempo = 0;
int distancia = 0;
bool BotaoCabeca = 0, estado = 0;
在此之后,我们将进入 void setup 函数。
void setup()
{
pinMode(botao, INPUT);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Wire.begin(); //Inicializacao da Comunicacao I2C
lcd.init(); //Inicializacao do LCD
lcd.backlight();
lcd.setCursor(2,0);
lcd.print("Oi, eu sou o");
lcd.setCursor(3,1);
lcd.print("Robo Ludos!");
delay(2000);
}
首先,按钮引脚和传感器引脚配置为数字输入和输出。之后,我们进行 Wire 和 LCD 初始化,并在 Arduino 机器人 Ludos 的 LCD 上打印消息:葡萄牙语“你好,我是 Ludos 机器人”,持续 2 秒。
之后会进入 void loop 函数,等待用户在 Arduino 机器人 Ludos 中按下按钮的那一刻。
void loop()
{
BotaoCabeca = digitalRead(botao);
if(BotaoCabeca == 1 && estado == 0)
{
lcd.clear();
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
tempo = pulseIn(echoPin, HIGH);
distancia = tempo * (0.034/2);
if(distancia <= 65)
{
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
if(distancia > 65)
{
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
lcd.print("");
}
lcd.setCursor(0,0);
lcd.print("Distancia:");
lcd.setCursor(0,1);
lcd.print(distancia);
lcd.setCursor(3,1);
lcd.print("cm");
estado = 1;
}
if(BotaoCabeca == 0 && estado == 1)
{
estado = 0;
}
}
最初,我们阅读了 Arduino 机器人 Ludos 上的按钮。
BotaoCabeca = digitalRead(botao);
在下面的条件中,条件检查按钮是否被按下并且之前被禁用。
if(BotaoCabeca == 1 && estado == 0)
如果这是真的,系统将触发超声波传感器并测量 Arduino 机器人 ludos 与您面前的某个物体之间的距离。
lcd.clear();
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
tempo = pulseIn(echoPin, HIGH);
行程结束后,系统会将 echo pin 以高逻辑电平通过的时间存储在tempo 变量中。
tempo = pulseIn(echoPin, HIGH);
通过计算出的时间和声音在空气中传播的速度为 340 m/s,我们可以使用平均速度公式计算距离。
distancia = tempo * (0.034/2);
从上面的等式中,我们得到了 Arduino 机器人 Ludos 和物体之间的计算距离。
然后系统检查距离是否大于或小于 65。如果该值更大,则 LED 将亮起。否则,LED 将关闭。
在下图中,我们展示了 Arduino 机器人 Ludos,显示了 59 厘米的距离值并且 LED 熄灭。
您是否看到使用 Arduino Robot Ludos 开发项目是多么有趣?
如前所述,您可以从 Arduino 机器人 Ludos 的装配结构中创建其他项目和想法。
现在,如果您想访问完整的 Arduino Robot Ludos 文档并下载您的文档,请访问此 Arduino Robot Ludos 文档。
我们感谢 JLCPCB 公司为我们提供印刷电路板以开发 Arduino 机器人 Ludos 项目的支持和合作。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !