如果您以前从未编写过代码,那么进入DIY Arduino机器人领域可能会令人生畏。如果您不能对微控制器进行编程,无论您的想法多么宏大,机器人都不会做很多事情。
幸运的是,有许多方法可以对Arduino进行编程而无需编写任何代码。今天,我们正在使用Xod来研究基本的机器人技术,Xod是一种基于开源可视化程序的基于节点的Arduino兼容IDE。
无代码机器人
今天的项目使用了一些标准的业余机器人技术来创建一个距离感应机器人手臂的原型。业余机器人通常将伺服和超声波距离传感器结合使用,您将添加一个LCD屏幕。
完成的项目将在LCD屏幕上记录距离值,并将伺服臂移入
有点想像力,这是一个机械臂,如果您离得太近,它会试图抓住您。
硬件要求
您将需要:
该项目需要很多组件,但是任何好的Arduino入门套件都应具备您所需的一切。我在Elegoo Uno R3入门套件中找到了所需的一切。另外,上面列出的每个组件都非常便宜,并且可以在所有业余爱好电子零售商处购买。
设置LCD屏幕
添加LCD屏幕,10k电位计和220欧姆电阻
设置LCD可能会在您第一次使用LCD时就令人生畏,但是继续参考该图,您会发现!为了简化起见,我将LCD和Arduino引脚设置为与Arduino官方LCD教程中的引脚完全相同,因此如果卡住了,也请参考。
添加伺服和超声波传感器< /
现在将HC-SR04超声波传感器添加到面包板上。将 VCC 和 GND 引脚连接到面包板的5v和接地轨。将 Trig 引脚连接到Arduino引脚 7 ,将 Echo 引脚连接到 8 。
下一步,连接您的伺服器。接线颜色在这里可能有所不同,但通常红色连接到 5v 引脚,并棕色或黑色连接到 GND 引脚。数据线通常为黄色或橙色,连接至引脚10 。
最后,接地面包板的导轨连接到Arduino的 GND 引脚之一。而已!一切都准备就绪。
下载Xod IDE
下载:适用于Windows,Mac和Linux的Xod IDE
用Xod闪烁
首次打开Xod时,您将看到教程项目。或者,您可以在帮助菜单下将其打开。在左侧的项目浏览器中展开 welcome-to-Xod 集合,然后选择 101-upload 。
此节点设置用于测试代码是否成功上传到Arduino。它的功能与Arduino IDE中的眨眼草图相同。 clock 节点每秒创建一个信号。这连接到触发器节点,该节点在每次接收到信号时在true和false之间来回切换。触发器的输出连接到 led 节点,将其关闭然后再打开。
单击led节点,您将看到Inspector窗格更改为显示其参数。如上图所示,将 Port 更改为13,这是Arduino上带有板载LED的引脚。请注意,Xod会自动将13变成 D13 。您无需自己键入D,但是如果您这样做,则对本教程没有影响!
要测试其是否可以通过USB连接Arduino,请前往 Deploy> Upload to Arduino ,然后选择正确的电路板类型和COM端口。
如果您看到Arduino LED闪烁,那就很好了!如果没有,请检查板卡和端口号,然后再次测试,然后再继续。
对LCD进行编程
通常,我们现在将进入漫长的编码过程,但是由于我们正在使用Xod,我们不会编写任何东西。在项目浏览器中,选择 text-lcd-16×2 -您可以在 xod / common-hardware 下找到它。将其拖到您的程序中,然后使用Inspector如图所示用销钉对其进行设置。
L1 是LCD的第一行, L2 是第二个,目前,我们已经对“ Hello World"进行了硬编码,以检查一切是否正常。将您的程序部署到Arduino,以查看其工作情况。如果您看不清文字,请尝试旋转10k电位器来调整LCD对比度。
现在,要设置距离传感器,并使其与LCD屏幕对话。
将 hc-sr04-ultrasonic-range 节点拖到您的项目中,并设置 TRIG 和 ECHO 分别固定到 7 和 8 ,以匹配您之前的设置。
您会找到 concat 项目浏览器中 xod / core 下的节点。将其拖动到超声波距离传感器节点和LCD节点之间。您将使用它来将范围传感器的读数与您自己的一些文本连接起来(这是一个组合词)。
此图显示了正在发生的情况。范围传感器节点的 Dm 输出已插入 IN2 ,您可以看到Inspector将其标记为已链接。在 IN1 框中输入“距离:" 。现在,将concat节点的输出链接到LCD节点的 L1 。
保存并部署修改后的程序。 LCD的第一行现在显示了距离传感器的读数!
Servo Setup
要使伺服器正常运行,需要三个部分,因此,我们要一一逐一地进行介绍。首先将 map-clip 节点从 xod / math 拖动到程序中。该节点从距离传感器节点的 Dm 输出中获取信息,并将其映射到伺服器可以理解的值。
渐变节点位于 xod / core 获取map-clip节点的输出值,并以定义的 rate 对其进行平滑。这样可以防止任何不必要的伺服运动。比率2是一个很好的平衡点,但是您可以在此处尝试不同的值,以使伺服器反应得更快或更慢。
最后,是 servo 节点,将在 xod-dev / servo 下找到,获取淡入淡出节点的输出值。将端口更改为 10 。您可以将 UPD 保留在 Continuously (连续)上,因为我们希望根据范围传感器对伺服器进行连续更新。
测试出来
No-Code Arduino Robot
Xod允许任何人对Arduino板进行编程,而无需考虑编码知识。 Xod甚至可以与Blynk DIY IoT应用程序配合使用,从而使完全免费的DIY智能家居成为现实。
即使使用Xod这样的工具,学习编码对于DIY项目也很重要。幸运的是,您可以在智能手机上学习代码以掌握基础知识!