亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

迷你电梯

组件和用品

Arduino Mega 2560
× 1

必要的工具和机器

拼图

应用和在线服务

Arduino IDE

关于这个项目

这是一个工作的 5 层电梯。它有 3 英尺高。我们为此付出了很多努力。

让我们切入正题……这就是它的工作原理!

快速链接:

  • 代码
  • 接线图(即将推出)

灵感

几年来,我们一直在使用 Arduino 和嵌入式处理/物联网,但我们完成的大多数项目(以及我们见过的大多数项目)都非常简单。很长一段时间以来,我们一直在寻找“真实”的东西。

今年夏天,我参加了一个很棒的夏令营,Project Ember。它在旧金山湾区,太棒了!孩子们用电动工具设计和建造大型木结构。一旦我知道我可以做到这一点,我就想将实体建筑与 Arduino 结合起来,这就是结果!

方法

解决这个问题最困难的部分是电机和地板检测技术。真正的电梯可能使用一个巨大的空调电机,每个楼层的位置都有传感器。我们当然可以使用更小规模的这种方法,但在每层楼放置传感器需要大量布线,而且我们会担心灵敏度和对齐等问题。另一方面,步进电机可以精确定位……但我们必须确切地知道我们在哪里以及我们必须走多远才能做到这一点。

幸运的是,我们在早期的“花式日历”项目中也做了类似的事情。在那里,我们已经想出了如何使用步进电机,更有趣的是,将它们的位置保存在非易失性存储器(Arduino 上的 EEPROM)中。所以我们将在这里使用相同的方法。这样我们根本不需要任何位置传感器,我们只需依靠我们计算步进电机移动步数的能力。

另一个设计问题是电梯呼叫按钮。它们需要通过瞬时接触开关点亮,但灯需要独立于按钮进行控制。我们在 eBay 上找到了一些合适的。

材料

带有单独灯的按钮(我们从 eBay 购买,它们应该看起来像:

  • 一个 Arduino Mega2560 – 我们选择它是因为它有更多的 GPIO 引脚用于项目中的所有花里胡哨。购买官方 - 您可能可以买到更便宜的仿制品/兼容设备。
  • 显示箭头的 8×8 LED 矩阵购买(亚马逊)
  • 显示楼层编号的七段显示器购买 (SparkFun)
  • 用于移动汽车的步进电机和驱动板购买 5 件装 (Elegoo) 注意:您只使用一个,但您可能需要更多。你可以重复使用他们进来的盒子。🙂
  • Mega2560 原型板,用于连接我们的电线购买 (BangGood) 我们将接头拆焊在顶部,您不必这样做。
  • 螺丝端子 (10×2) 购买 (frys.com)您需要 4 个
  • 线轴

您可以在当地的 Home Depot 或其他家居装修商店找到以下所有材料:

  • 用于电梯和汽车的纤维板和 3/4 平方英寸的模具。
  • 用于固定电机的铝制角支架
  • 各种螺丝
  • 软管用作线轴内的衬套
  • 线(我们使用重型尼龙风筝线)

构建

我们用纤维板制作了轴和车,并用模塑来加固角落。

我们从电梯井开始。我们将 3 块纤维板切割成 36 英寸 x 8 英寸的侧面和背面(正面是敞开的)。然后使用 4 块 3/4" 方形模具,36" 长,我们将纤维板拧在一起制成垂直轴。顶部和底部的方形纤维板将所有东西都固定住。

下一个是电梯轿厢。它使用相同类型的结构,带有纤维板墙、天花板和地板,以及松木成型支撑。它几乎是轴的整个宽度,但位于松树前后(因此它的宽度大于深度)。我们在车顶安装了一个眼钩,这样它就挂在一根绳子上。

确保不要过早在轴上放置底部,因为您需要能够进出汽车!测试完成后,可以添加底部。

电机位于电梯顶部。我们将一个普通的木线轴(来自缝纫线)连接到电机的轴上。这有点棘手。电机轴有一个平坦的边缘,但当然线轴上的孔是圆形的。因此,我们在卷轴上钻出一个孔,并用螺钉固定住电机轴的平坦边缘。此外,线轴上的孔比电机轴大。为了充当衬套来占据空间,我们使用了一根非常短且尺寸合适的橡胶软管。

然后我们将电机安装到一块角铝上,并将其拧到轴的顶部。为了支撑线轴的另一侧,我们将螺钉穿过第二块角铝。这使得电梯的重量不会将线轴从电机轴上拉下来,它会保持水平。

我们使用了更多的纤维板来制作按钮面板。在左侧,我们使用了一个与轴高度相同的板作为呼叫按钮。我们使用交替的红色和绿色按钮。红色为下降,绿色为上升。顶楼只有一个红色,底部只有一个绿色。我们的“电梯内”面板在右侧。除了按钮的5个孔外,我们还为LED矩阵和七段显示器切了孔。

我们安装了 4 个螺丝盒。两个在呼叫面板上,两个在“内部”电梯面板旁边。

接线

接线很棘手,因为有很多!我们选择使用 Arduino Mega 原型开发板,部分原因是我们已经有了一个 :-)。但真正的动机是,有这么多电线,我们担心如果我们只使用标准的 Arduino 引脚连接,某些东西会不可避免地断开连接。使用原型屏蔽,我们可以直接焊接电线并避免这种风险。此外,它还为我们提供了一个方便放置电阻之类的东西,这是我们 7 段显示器所必需的。

也就是说,我们不希望所有这些不同的面板硬连线在一起,因为如果我们犯了错误,就很难修复。所以每根电线上都有某种可拆卸的末端。我们在开关面板和Arduino之间使用了螺丝块,对于7段和LED矩阵,电线的一端仍然是快速断开引脚。

对于按钮面板,我们制作了我们自己的线束,使用完美贴合按钮端子的压接母铲形连接器。因为每个按钮需要两个接地(一个用于按钮,一个单独用于灯),如果我们将它们全部连接到 Arduino,将会有很多地线。所以相反,我们用一个漂亮的定制线束将它们全部连接在一起。信号针(一个用于开关,一个用于每个按钮上的灯)都是独立的,一直延伸到螺丝块。

最后,螺丝块给我们带来了另一个优势——我们使用实芯线焊接到原型屏蔽上,但我们使用绞线将压接连接器连接到按钮背面。螺丝块为我们提供了一个无需焊接即可从一个切换到另一个的地方。

编程

我们对代码进行了多次修订,但这是当前版本。软件中最复杂的部分是确定电梯轿厢应该去哪里的逻辑。如果在2楼,里面有人想上3楼,有人想从4楼下来,从1楼……你先去哪里?

另一个复杂的部分是步进电机库的正常工作方式是,在电机移动期间,没有任何东西调用 Arduino 的“loop()”函数。然而,当电梯在运行时,有人按下按钮应该是可行的。所以你不能一步到位——你需要一次移动一点,检查一路上是否有按钮按下(以及目的地可能发生的变化)。

您可以在此处下载我们的 Arduino 草图。

上传代码:

您需要下载这些库:

  • LED 控制系统
  • SevenSeg

上传代码:

  • 选择合适的图板:查看此图片
  • 选择端口:类似,但您转到“端口”。在 MacOS 上,它类似于 /dev/cu.usbmodem1411,而在 Windows 上,它类似于 COM2。
  • 上传您的代码。

如果是,恭喜!继续测试。如果没有,请返回到第 5 步。如果这再次不起作用,请仔细检查您的接线。如果那个 没有用,请使用顶部的链接与我们联系。

  • 下载 Arduino IDE。 arduino.cc
  • 打开代码。
  • 要安装库,请参阅本教程。
  • 电梯应进行自检。所有呼叫按钮应依次亮起,然后是五个电梯内按钮,然后是七段显示器应循环,然后矩阵应显示向上和向下箭头。完成后,7 段显示器将显示电梯轿厢的最后已知楼层编号。

测试/校准

因为步进电机需要知道每层楼的确切位置,所以您需要手动告诉它——一次。它会在非易失性存储器中记住这一点(意味着即使断电它也会保存它)。

校准:

  • 按住右侧面板上的顶部和底部按钮。矩阵应显示 C(用于校准)。
  • 使用顶部和底部的按钮手动将汽车移动到七段所示的楼层。当它位于正确的位置时,按下中间按钮。
  • 对所有五个楼层重复步骤 2。完成后,矩阵应关闭。

后续步骤

像这样的项目永远不会真正完成!我们想用激光切割零件重建电梯和井道的结构。我们使用手持式拼图来做这件事,所以我们的切割并不是那么笔直……这部分是导致我们“摩擦问题”的原因。同时,我们会设计更好的电机支架,得到更好更快的电机。

在电子方面,我们要求在每次电梯门打开时添加铃铛或铃声,就像许多真正的电梯一样。我们也会这样做。

对此项目有任何想法或建议,请在评论中告诉我们!

版本历史

注意:Google Drive 链接会随着每个版本自动更新。

版本2:修复了当前楼层外呼电梯可能导致软件挂掉,需要按复位键的BUG。

代码

Arduino LED 矩阵库
https://github.com/shaai/Arduino_LED_matrix_sketchhttps://github.com/shaai/Arduino_LED_matrix_sketch
SevenSeg 库
https://github.com/sigvaldm/SevenSeghttps://github.com/sigvaldm/SevenSeg
Arduino 草图

制造工艺

  1. 电梯
  2. 迷你 Boss 战
  3. Arduino Spybot
  4. FlickMote
  5. 自制电视 B-Gone
  6. 主时钟
  7. 找到我
  8. Arduino Power
  9. Tech-TicTacToe
  10. Arduino Quadruped
  11. 7 段阵列时钟
  12. Arduino Joystick