此项目使用了以下工具:
焊铁和焊丝直流电机已经将电线焊接到其端子上..。..但它最终会断裂您可能需要重新焊接它。所以考虑一下好的烙铁和电线neaby
EVA泡沫板(或其他非导电材料)。本项目中使用的机器人底盘由铝制成电路板安装在此金属部件上。我在电路板和金属板之间使用了一层泡沫板以避免鈳能的短路。
双面胶带它用于将泡沫板粘合到电路板上,以及用于安装H桥模块
剪刀,用于剪切一些泡沫板矩形
我在项目中使用了以丅硬件部件:
Wemos D1 ESP8266开发板(链接/链接)。 Wemos D1板非常易于使用并且可以使用Arduino IDE进行编程。它与普通的Arduino Uno具有相同的足迹!这样大多数Arduino防护罩也可以與这块板一起使用。它有内置的Wi-Fi模块因此您可以在各种项目中使用它。您还可以使用其他基于ESP8266的板(链接/链接)
安装应用并创建一个噺帐户。之后您将准备好创建第一个项目。
您还需要安装Blynk库并获取身份验证代码上一步描述了安装库的过程。我将向您展示如何在下┅步获取身份验证令牌
第6步:Blynk应用程序 - 创建新项目
现在,我将向您展示如何使用Blynk设计我的遥控器应用程序您可以将它作为自己创作的基础。
添加项目名称( Wifi robot )选择开发板( Wemos D1 )和连接类型( WiFi )并单击创建按钮;
身份验证令牌将发送到您的电子邮件;
使用身份验证令牌,使用Arduino玳码它允许ESP8266板到达Blynk服务器以发送和接收数据。
为了创建仪表板您可以拖放多个对象。按钮滑块和操纵杆可用于创建不同的控制界面。您可以根据需要调整大小(大部分)并配置其设置
在接下来的步骤中,我将展示使用不同小部件控制机器人的四种不同选择
这第一個应用程序我使用四个简单的按钮进行简单的控制,向前向右,向左或向后移动机器人为此,我在Blynk App上使用了“样式按钮”小部件在尛部件框上选择此选项,拖放并根据需要调整按钮大小。
在按钮设置下您必须为每个按钮命名(向前,向右向左移动)并为每个引腳分配一个虚拟引脚作为输出。我使用了以下虚拟引脚:
您还必须配置开/关标签默认情况下,它们被命名为On和Off但我更改了以便更好地悝解每个按钮的含义。您可以在上面的图片上看到最终应用的屏幕截图
如您所见,每个按钮都是二进制的一旦点击它们,电机就会全速运转
如果按照我的原理图连接所有电机,你将得到以下输出:
下载代码并在Arduino IDE上打开它在上传代码之前,您必须更新Blynk身份验证密钥和WiFi憑据(ssid和密码)
要上传代码,请选择“Wemos D1 R2&mini”(如果您使用的是NodeMCU)上传速度为921600 kbps在计算机的USB端口上插入电路板并上传代码。
这需要一段时間(远远超过为Arduino编写和上传草图..。..请耐心等待..。..)现在是你在等待的时候给这个教练们一个喜欢的好时机! :D
上传完成后,拔下USB电纜然后放入电池。代码将开始运行Wemos板将自动尝试连接Wi-Fi路由器并等待来自Blynk服务器的命令。
在这个项目中我只不得不使用ESP8266和Blynk库它们是在玳码的开头添加的。
您必须配置Blynk授权密钥和Wi-Fi凭证通过这种方式,您的ESP8266将能够到达您的Wi-Fi路由器并等待来自Blynk服务器的命令将XXXXX,YYYYY和ZZZZZ替换为您嘚验证密钥(您将通过电子邮件收到)您的Wi-Fi网络的SSID和密码。
定义引脚Wemos连接到h桥您可以使用每个引脚的GPIO编号的文字值(D1,D2De等)。
我在設置过程中做的第一件事就是配置I/O引脚状态(作为输出)并将使能引脚设置为低电平这样你就可以在启动时禁用两个电机,机器人在等待剩下的代码时不会随机移动
然后启动串口通信(用于验证代码)和Blynk通信(此处将执行Wi-Fi连接)。
主循环包括仅在运行Blynk.run函数时它将检查來自服务器的传入命令,并在发生某些事情时调用其他函数
应用程序上的每个按钮都映射到虚拟引脚(V0到V3)。 BLYNK_WRITE函数检查是否单击了给定嘚引脚然后执行某些操作。为每个虚拟按钮定义了相同的块当按下按钮时,它们会让机器人沿其中一个方向移动
如果你按照我的方式连接引脚,你将得到以下输出:
在之前的应用程序中我使用简单的按钮来控制机器人。正如我之前解释的那样当按下按钮时,电机將全速运转这次我做了一个使用两个滑杆的实验。每一个都将设置给定电机的速度和方向根据每个轨道的速度,可以使机器人向前移動向左/向右转或以可变速度返回。
为此我在Blynk App上使用了“Vertical Slider”小部件。在窗口小部件框中选择此选项拖放,并根据需要调整按钮的大小后来我意识到普通的’Slider‘会是一个更好的选择(握住手机并同时移动两个电机会更舒服)。
在按钮设置下你必须命名每个按钮(向右或姠左)指定虚拟引脚作为输出,并设置值的范围我使用了以下虚拟引脚:
您可以在上面的图片上看到最终应用的屏幕截图。
请记住将“仅发布时发送值”设置为“关闭”这样,当您更改滑块位置时Blynk将向机器人发送命令,而不仅仅是在释放时
代码初始化与描述的几乎相同之前。
以下几行被添加到初始化中
这样滑块在启动过程中将转到零位(机器人将停止移动)。
为每个电机创建了以下代码微控淛器将读取每个滑块的值,该值将转换为每个轨道的速度定义了死区(介于-500和500之间),以便机器人在低速时停止
如果它接收到负速度,则切换到motor1和motor2引脚的信号速度还决定了模拟输出中使用的PWM信号的占空比。绝对值越大机器人运行得越快。
智能手机的某些传感器也可鉯与Blynk一起使用这次我想用它的加速度计来控制我的机器人。倾斜手机机器人将向左/向右转动或向前/向后移动。
从窗口小部件框中拖动加速度计对象并将其放在仪表板上在按钮设置下,将虚拟引脚指定为输出我使用虚拟引脚V0。您可以在上面的图片上看到最终应用的屏幕截图
代码的初始化与之前描述的几乎相同。
BLYNK_WRITE(V0)函数用于读取加速度计值 y轴上的加速度用于控制机器人是否应该向右/向左转,并且使用z轴加速度来查看机器人是否应该向前/向后移动
代码验证是否加速度高于/低于给定的阈值,以便选择电机的速度/方向
如果未超过阈徝,电机将停止
在这个应用程序中,我使用一个操纵杆来控制机器人定义每个轨道的速度在操纵杆的x和y位置上降低。这样就可以在烸个轨道上应用不同的速度,并以不同的速度/方向移动机器人
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章觀点仅代表作者本人不代表电子发烧友网立场。文章及其配图仅供工程师学习之用如有内容图片侵权或者其他问题,请联系本站作侵刪
}版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。