34| 13
|
[项目] 【Arduino 动手做】Arduino驱动的八种颜色绘画机器人 |
Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来编写、编译和上传代码到Arduino板上。Arduino还有一个丰富的库和社区,你可以利用它们来扩展Arduino的功能和学习Arduino的知识。 Arduino的特点是: 1、开放源码:Arduino的硬件和软件都是开放源码的,你可以自由地修改、复制和分享它们。 2、易用:Arduino的硬件和软件都是为初学者和非专业人士设计的,你可以轻松地上手和使用它们。 3、便宜:Arduino的硬件和软件都是非常经济的,你可以用很低的成本来实现你的想法。 4、多样:Arduino有多种型号和版本,你可以根据你的需要和喜好来选择合适的Arduino板。 5、创新:Arduino可以让你用电子的方式来表达你的创意和想象,你可以用Arduino来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。 ![]() ![]() |
你有没有想过,机器人也能创作出令人着迷的画作和艺术作品?在这个项目中,我尝试用一个基于 Arduino 的绘画机器人来实现这个梦想。目标是让机器人能够独立绘画,并使用参考图作为指导来复制艺术品。我利用 CAD 和数字制造技术,打造了一个坚固的底盘,并在其上安装了一个机械臂,可以将画笔浸入 7 个颜料容器中的一个,然后在画布上作画。 该机器人采用步进电机和伺服电机等常见部件制成,可用于任何类型的油漆。 继续创建您自己的 Arduino 驱动绘画机器人,如果您喜欢这个项目并决定构建自己的版本,请在“绘画挑战”中为该项目投票。 ![]() ![]() ![]() |
## 步骤1:设计概述 喷漆机器人的设计灵感来源于Roomba扫地机器人的结构,主要由两大系统组成: 驱动系统由两个连接轮子和被动滑翔器的步进电机组成。这使得机器人能够沿着画布向任何方向移动。 刷子系统由第三个步进电机(将刷子定位在油漆容器上方)和伺服电机(将油漆刷浸入油漆中)组成。 该机器人最多可同时携带7种不同颜色的物品。该设计最初是在Autodesk的Fusion 360上完成的。之后,这些部件被导出为合适的格式,以便进行激光切割或3D打印。 机器人底盘的设计充分考虑了可扩展性,配备了多个安装点和模块化部件。这使得同一底盘可以用于各种其他应用。例如,该底盘可以用来创作精美的绘画艺术作品。 ![]() ![]() ![]() |
## 第 2 步:所需材料 以下是制作您自己的 Arduino 驱动喷漆机器人所需的所有组件和零件清单。所有零件应该都很容易在当地五金店或网上找到。 电子产品: Arduino Uno x 1 Towerpro MG995伺服电机x 1 NEMA17步进电机x 3 CNC 防护罩 V3 x 1 11.1 V 锂聚合物电池x 1 硬件: M4螺母和螺栓 M3螺母和螺栓 轮子(直径 7 厘米 x 2) 3D 打印机灯丝(如果您没有 3D 打印机,本地工作区应该有一台 3D 打印机,或者可以以相当便宜的价格在线打印) 亚克力板(3毫米) 油漆 油漆刷 工具: 3D打印机 激光切割机 不包括工具,该项目的总成本约为 60 美元。 ![]() ![]() |
## 步骤3:数字化制造的零件 该项目所需的大部分部件都是根据需求定制的,因此我决定利用数字化制造部件的强大功能。这些部件最初是在 Fusion 360 上构建的,然后使用 CAD 模型进行激光切割或 3D 打印。打印材料为 PLA,填充率为 40%,周长为 2,喷嘴直径为 0.4 毫米,层高为 0.1 毫米。由于部分部件形状复杂且有悬垂部分,因此需要支撑。不过,支撑很容易拆卸,可以使用一些切割工具轻松移除。您可以为灯丝选择自己喜欢的颜色。激光切割的部件由 3 毫米厚的透明亚克力板切割而成。 您可以在下面找到零件的完整列表以及设计文件。 注意:从现在开始,将使用以下列表中的名称来指代各个部件。 3D打印部件: 步进支架x 2 层间隔物x 4 臂连接器x 1 被动滑翔翼x 2 油漆托盘架x 2 油漆托盘x 2 激光切割零件: 底板x 1 顶板x 1 刷臂x 1 总共有13个3D打印部件和3个激光切割部件。制造所有部件所需的时间约为12小时。 附件 下载 {{ file.name }}激光切割.rar下载 下载 {{ file.name }}stls.rar下载 ![]() ![]() |
## 步骤4:构建底盘和驱动系统(底层) 所有零件制造完成后,即可开始组装喷漆机器人的底层。底层用于驱动系统,并容纳电子设备。首先,使用提供的螺钉将两个步进电机安装到两个步进电机支架上。接下来,使用 8 个 M4 螺母和螺栓将两个步进电机支架固定到底板上。步进电机安装完成后,即可将两个轮子安装到步进电机的轴上。您还可以使用 M3 螺母和螺栓以及一些支架将 Arduino 安装到位,以便轻松操作 Arduino。固定好 Arduino 后,将 CNC 防护罩安装到 Arduino 上。机器人前后各有两个孔。将被动滑翔机穿过这些孔,并用胶水固定。这些部件可防止机器人机身刮擦画布表面。 您还可以使用 M4 螺母和螺栓安装两个后层垫片。 注意:不要先连接前面两个,因为最终你必须将它们移除。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
## 步骤5:安装油漆架(顶层) 驱动系统搭建完成后,即可开始组装顶层,它用于支撑用于移动油漆刷并将油漆刷浸入各种油漆容器的涂漆臂。首先,安装两个油漆托盘支架。支架内侧的槽口与前层的两个垫片对齐。组装好的部件用两个螺母和螺栓固定在顶层和底层。该部件还用四套螺母和螺栓固定在顶板上,进一步加固。 然后使用每侧两个螺母和螺栓将油漆托盘固定到油漆托盘支架的底部。 将顶板滑入到位,并使用另外两个螺母和螺栓将后层垫片固定到顶板上。使用提供的螺栓将旋转步进电机安装到顶板的中心,轴朝向顶部。这样,机器人的底盘就搭建好了,我们可以开始组装喷漆臂了。 ![]() ![]() ![]() ![]() ![]() |
## 步骤6:构建绘画臂和刷子组件 要组装喷漆臂,首先用 4 个螺母和螺栓将喷漆臂连接器连接到激光切割的刷臂上。接下来,用另外 4 个螺母和螺栓将伺服电机安装到另一端。确保伺服电机的轴朝向喷漆臂连接器的另一端。将喷漆臂连接器推入顶部步进电机轴中。 使用伺服器的长喇叭,并用橡皮筋或扎带将油漆刷固定在上面。我建议使用橡皮筋,因为它能使刷子组件具有一定的柔韧性,而柔韧性是系统正常工作所必需的。确保刷子安装到位,这样一旦喇叭连接到伺服器,刷子几乎不会在地板或纸张表面滑动。 至此,喷漆机器人的硬件就完成了,可以开始进行接线和编程了。 ![]() ![]() ![]() ![]() ![]() |
## 步骤8:理论简介 关于理论 在二维网格上定位点时,最常见且最简单的方法是提供该点的笛卡尔坐标。这可以通过指定一个元组来实现,通常为(x, y),其中 x 是 x 坐标(即点在 x 轴上的投影到原点的距离),y 是点的 y 坐标(即点在 y 轴上的投影到原点的距离)。通过这种方式,任何复杂的图像或形状都可以用一系列点来描述,这样当你“连接这些点”时,图像就形成了。这是一种描述点相对于原点位置的便捷方法。然而,在本项目中,我们使用了不同的系统。 二维网格上的点也可以用极坐标来描述。在这种方法中,点的位置用另一个元组来描述,通常表示为(theta, r),其中 theta 是 x 轴与连接原点和点的半线之间的夹角,r 是原点和点之间的距离。 附图中提供了两种转换公式。虽然了解这些公式确实有帮助,但无需完全理解。 ![]() |
## 步骤9:对Arduino进行编程 该程序采用面向对象技术编写,使其易于使用。首先创建一个机器人对象,其参数是画布的宽度和高度(使用尺子或卷尺以厘米为单位测量这些值,并替换 paintRobot.ino 脚本第 4 行中的值)。面向对象编程技术为进一步开发提供了空间。 然后为您提供3个简单的功能: gotoXY采用笛卡尔坐标并将机器人移动到该位置。(例如 robot.gotoXY(100, 150)) brushControl采用布尔值:false表示画笔离开画布,true表示画笔放置在画布上。(例如 robot.brushControl(true)) pickPaint接受整数 -4、-3、-2、-1、1、2、3、4,用于指示机器人将画笔浸入相应的颜料容器中。(例如 robot.pickPaint(3)) 下面附带的程序可以让机器人移动到随机位置并随机选择颜色,最终创造出一幅美丽而独特的艺术作品。当然,你也可以轻松修改程序,让机器人画出任何你喜欢的图案。 注意:代码上传后,您可能需要重新定位连接到刷子的伺服喇叭。当 p 附件 下载 {{ file.name }}绘画机器人.rar下载 ![]() ![]() |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed