基于Arduino制作一款自动家庭清洁机器人

自动地板清洁剂并不是什么新鲜事,但它们都有一个共同的问题。它们对于它们所做的事情来说都太昂贵了。今天,我们将制作一款自动家庭清洁机器人,其成本仅为市场上的一小部分。这个机器人可以检测它前面的障碍物和物体,并可以继续移动,避开障碍物,直到整个房间被清理干净。它附有一个小刷子来清洁地板。
所需组件:
arduino uno r3。
超声波传感器。
arduino motor driver shield。
轮驱动机器人底盘。
计算机对arduino进行编程。
电机电池。
为arduino供电的移动电源
鞋刷。
苏格兰布里特磨砂垫。
注意:除了使用电池,您还可以像我们一样使用长 4 股线。虽然这不是一个非常优雅或实用的解决方案,但如果您不打算每天在现实世界中使用它,则可以这样做。确保电缆的长度足够。
hc-sr04 超声波传感器:
超声波传感器用于以高精度和稳定的读数测量距离。它可以测量从 2 厘米到 400 厘米或从 1 英寸到 13 英尺的距离。它在空气中以40khz的频率发射超声波,如果物体挡住了它的方式,那么它将反弹回传感器。通过使用撞击物体并返回所需的时间,您可以计算距离。
超声波传感器使用一种称为“echo”的技术。“回声”只是一种反射的声波。当声音在到达死胡同后反射回来时,您将有一个回声。
当我们使“触发”引脚高约10us时,hcsr04模块在超声波范围内产生声音振动,这将以声速发送8个周期的声波突发,撞击物体后,它将被回波引脚接收。根据声音振动恢复所需的时间,它提供适当的脉冲输出。如果物体距离很远,则需要更多时间才能听到回波,并且输出脉冲宽度会很大。如果障碍物近在咫尺,那么回声将被更快地听到,输出脉冲宽度将更小。
我们可以根据超声波返回传感器所花费的时间计算物体的距离。由于声的时间和速度是已知的,我们可以通过以下公式计算距离。
distance= (time x speed of sound in air (343 m/s))/2.
该值除以 2,因为波向前和向后传播覆盖相同的距离。因此,到达障碍物的时间仅为总时间的一半
所以以厘米为单位的距离 = 17150*t
地板清洁机器人组装:
将 arduino 安装在机箱上。确保您的机箱由金属制成时不会短路任何东西。最好为arduino和电机控制器扩展板买一个盒子。使用螺钉将电机与车轮和底盘固定。您的机箱应该可以从工厂开始选择执行此操作,但如果没有,您可以即兴制作不同的解决方案。环氧树脂不是一个坏主意。将鞋刷安装在机箱前面。为此,我们使用了m-seal环氧树脂和钻孔螺钉的组合,尽管您可以使用任何其他对您来说可能更容易的解决方案。将苏格兰布里特磨砂垫安装在刷子后面。我们使用了穿过底盘的轴来支撑它,尽管这也是即兴的。弹簧加载轴可用于伴随它。安装电池(或机箱背面的电缆)。环氧树脂或电池座是做到这一点的好方法。热胶也不错。
接线和连接:
这款自动家庭清洁机器人的电路非常简单。如下所述,将超声波传感器连接到arduino,并像任何其他扩展板一样将电机驱动器屏蔽放在arduino上。
超声波的trig引脚连接到arduino上的第12个引脚,echo引脚连接到第13个引脚,电压引脚连接到5v引脚,接地引脚连接到接地引脚。echo引脚和trig引脚允许arduino与传感器通信。电源通过电压和接地引脚输送到传感器,三角和回波引脚允许它使用 arduino 发送和接收数据。
电机屏蔽应至少有 2 个输出,并且它们应连接到 2 个电机。通常,这些输出标记为“m1”和“m2”或“电机1”和“电机2”。将电池和移动电源分别连接到电机护罩和 arduino。不要交叉连接它们。电机屏蔽应具有输入通道。如果您使用的是电线,请将它们连接到交流适配器。
编程说明:
打开 arduino ide。将本教程末尾给出的完整 arduino 代码粘贴到 ide 中。将arduino连接到计算机。在“工具/端口”中选择端口。单击上传按钮。
测试机器人。如果它变得太少或太多,请尝试延迟直到完美。
在进入代码之前,我们需要安装adafruit 电机屏蔽库来驱动直流电机。由于我们使用的是 l293d 电机驱动器扩展板,因此我们需要从此处下载 afmotor 库。然后将其添加到arduino ide库文件夹中。确保将其重命名为 afmotor。了解有关安装此库的更多信息。
代码很简单,很容易理解,但在这里我们解释了它的几个部分:
下面的代码设置机器人。首先,我们包括了用于驱动带有电机驱动器盾牌的电机的 adafruit 库。之后,我们定义了三角引脚和回声引脚。它还设置电机。它将三角引脚设置为输出,将回显引脚设置为输入。
#include
#define trigpin 12
#define echopin 13
af_dcmotor motor1(1,motor12_64khz);
af_dcmotor motor2(2, motor12_8khz);
void setup() {
pinmode(trigpin, output);
pinmode(echopin, input);
}
下面的代码告诉arduino循环以下命令。之后,它使用传感器发送和接收超声波。一旦超声波反弹回来,它就会计算它与物体的距离,在注意到物体在设定的距离内后,它会告诉 arduino 相应地旋转电机。
void loop() {
long duration, distance;
digitalwrite(trigpin, low); 
delaymicroseconds(2); 
digitalwrite(trigpin, high);
delaymicroseconds(10);
digitalwrite(trigpin, low);
duration = pulsein(echopin, high);
distance = (duration/2) / 29.1;
if (distance < 20) { 
motor1.setspeed(255);
motor2.setspeed(0);
motor1.run(backward);
motor2.run(backward);
delay(2000); //change this according to how the robot turns. 
这使得机器人通过旋转一个电机并保持另一个电机停滞来转动。
下面的代码使机器人向同一方向转动两个电机,以使其向前移动,直到它检测到上述边界中的物体。
else {
motor1.setspeed(160); //change this according to how fast your robot should go.
motor2.setspeed(160); //change this to the same value as you put in above.
motor1.run(forward);
motor2.run(forward); 
}
#include
#define trigpin 12
#define echopin 13
af_dcmotor motor1(1,motor12_64khz);
af_dcmotor motor2(2, motor12_8khz);
void setup() {
pinmode(trigpin, output);
pinmode(echopin, input);
}
void loop() {
long duration, distance;
digitalwrite(trigpin, low);
delaymicroseconds(2);
digitalwrite(trigpin, high);
delaymicroseconds(10);
digitalwrite(trigpin, low);
duration = pulsein(echopin, high);
distance = (duration/2) / 29.1;
if (distance < 20) {
motor1.setspeed(255);
motor2.setspeed(0);
motor1.run(backward);
motor2.run(backward);
delay(2000); //change this according to how the robot turns.
}
else {
motor1.setspeed(160); //change this according to how fast your robot should go.
motor2.setspeed(160); //change this to the same value as you put in above.
motor1.run(forward);
motor2.run(forward);
}

红外二氧化碳传感器ZG09的测试原理及智能温室控制系统中的应用
带有可湿性侧面的无引脚DFN封装助力于实现PCB焊点的AOI
基于ARM-Linux的微惯性单元数据采集与处理
自动驾驶系统:激光雷达的网络性能优越 针对局部的渐进稀疏技术
西数蓝盘SSD250G怎么样
基于Arduino制作一款自动家庭清洁机器人
美国已安装了超过200万套光伏系统,预计2023年将超过400万套
PCB元器件摆放的小技巧分享
浅谈节能隧道烘箱的发展前景
5G手机问世时间点 主要取决于手机的芯片平台的成熟度
据IDC预计,2021年全球物联网支出将恢复两位数的增长率
芯科科技无线多协议产品阵容迎向物联网应用新局
机器人智能物流解决方案:助力实现智慧生产
RK3568与RK3588的区别
京东发布2018年第二季度财报,无界零售业绩大爆发
RT-Thread联合百问科技出品ART-Pi Smart开发板
IDx发布支持里程碑式批准的AI测试医疗数据
钙钛矿光伏设备太阳光模拟器IV测试仪
CIOE2023|金秋九月,相聚鹏城,与中图仪器共赏光电行业盛会
智能防眩目前照灯系统控制器(ADB)