半边三角形

21,534

81

12

简介:半边三角形运动艺术

半正方形三角形或HST块是一些非常有趣的几何形状。例如,我们可以把它们作为绗缝的基本形式。如果你不知道绗缝是的,有些事我直到最近才知道,那你就得知道有很多人被子。在本质上,它是由个别纺织图案的组合,往往是重复的,以获得一些特殊的纺织产品。
然而,当我谈到这个话题时,我惊讶地发现,这些黑白色的正方形也是在一个叫做有限几何的几何分支中研究的。我不想深入到可能会吓到你的细节,你可以在下面的链接中阅读更多关于这种几何体的内容:

然而,对我来说重要的是所谓的钻石定理这表明在由4x4 HST块组成的有限平面中,它们可以以322,650个组合组成,并且每个组合具有一定的对称性。您可以尝试在线模型生成器在这个地址看看如何手动生成一些有趣的模式。

非常有趣也是Mark Jason Dominus撰写的Perl申请套件,他在引入他的书中高阶PERL. 在这些应用程序的帮助下,他设法得到了一些被子图案非常熟知和使用,您可以在下面看到的模式。*

*我已书面同意作者使用此图像

非常漂亮的对称!而这些对称性总是让人赏心悦目,这就是我们人类是如何形成的,喜欢事物的对称性:)

介绍够了,让我们继续更严肃的事情:)

本课题正是基于上述理论考虑,提出实现一种机电机构来显示,由90度旋转步进的HST元件,不同的模型。本质上,该机构由微控制器驱动的步进电机组成。让我们看看如何。。。

第一步:一些设计考虑

为了实现我的目标,我需要一些马达。我可以用伺服电机或步进电机。

伺服电机的优点:

  • 它们相对便宜;
  • 他们有一个简单的驱动器;
  • 它们具有很好的准确性(然而,这取决于电子部件的质量);
  • 它们在高速时具有高扭矩;

逐步电机优势:

  • 贱;
  • 驾驶相对简单;
  • 精度好(取决于旋转速度,精度越低,可能出现失步);低速时扭矩高;

最后,我选择了步进电机。为什么?因为:

  • 我不需要高速,相反,当模型逐渐改变时,在较低的速度下视觉效果更强,好像它们在互相滑动(我做了一些计算机模拟,这就是为什么我知道:);
  • 由于速度低,定位精度好,扭矩大;
  • 步进电机和驱动器套件非常便宜
  • 270度旋转可以非常容易地完成,与270度旋转的伺服电机相比,270度旋转的伺服电机更难找到并且比180度旋转的伺服电机(例如众所周知的SG90)更昂贵;
  • 停止时,步进电机根本不移动,执行器围绕固定位置有轻微的振荡运动。因为在我的项目中,旋转的部分相当大,由于惯性的作用,振荡运动会太明显,这根本不适合我。

最后但并非最不重要的是,我有许多28BYJ-485V步进电机+ULN2003驱动模块套件,所以这最终导致我使用步进电机:)我仍然不得不说,这个套件的缺点,然而,是每个步进电机需要四个微控制器输出和一个微动开关在每个电机上,以归位每个步进电机。

关于归航。

我把限位开关放在离零点稍远的地方。当开关启动时,电机停止,但由于它不是所需的零点,电机将不得不朝相反方向移动。多少钱?这一点,我将必须建立在这样一种方式,即在返回运动后,电机将在零点和归位开关不被启动。你可能觉得我把事情弄得太复杂了,但我这样做是有目的的。也就是说:只使用Arduino纳米模块的一个输入,就可以对每个电机进行归位。

是。在第一阶段,我以为我会使用Arduino Nano。但是,在制作软件时,我意识到Arduino纳米模块的RAM是不够的。这是因为当我定义了16个步进电机时,Arduino IDE中的编译器向我发出信号,我超过了RAM容量的24%。所以我必须重新调整自己,我选择了一个WEMOS D1 MINI模块来完成这项工作。一切都很好,直到我上传了WEMOS中的第一个版本。哎哟!WEMOS保持重置!搜索原因,我发现我使用的库,MCP23017ACCELSTEPPER库似乎与ESP8266不兼容。所以我终于转向了一个Arduino Mega。 I had at hand a mini Arduino Mega module, it is small but powerful :).
的确,Arduino Nano和Wemos D1 mini对于16台发动机几乎没有输出。甚至一个Arduino Mega都不足以达到这个目的,只有54个输出:)这就是为什么我使用了4个数字输出扩展器,每个扩展器有16个数字输出。最后我得到了我需要的I/O数量。

第2步:材料、组件

我在这个项目中使用了:

  • MDF板500mmx500mm,厚度为8mm1pc;
  • 3D印刷零件:电机支持16件,微型开关支持16件,HST型号支持2x8 PC,一堆线夹,几个模板 - 所有文件都在tinkercad.;

步骤3:电子示意图

您可以看到上面的电子图。图中只有四个电机,四个驱动器和输出扩展器,但其他3组组件与第一个相同的方式连接,只有数字扩展器的访问地址更改。您可以在下面的图像中看到地址选择输入如何链接到其他三个扩展器。

芯片地址001

芯片地址002

芯片地址003

我没有在图中显示Arduino Mega mini模块的所有输出,因为我只使用了6个连接:两个用于电源,两个用于I2C通信,一个用于归位开关,一个用于选择启动模式的按钮。整个Arduino Mega的图形太大了,它可能是方案的一半:)

否则,我认为该计划非常简单。虽然似乎有很多连接,但尤其是步进电机驱动程序,它们是重复且易于遵循的。

第四步:施工

建筑不是很简单,但我尽量使我的工作简单。:)

当我在网上订购切割的中密度纤维板时,我要求公司(因为他们也生产激光和数控切割)为我做一些孔,以便我能尽可能准确和容易地固定电机支架。我在下面附加了SVG模板文件。

当我在3D打印组件时(这个操作花费了我很多时间,因为我打印了许多不同的变体),我还负责软件部分。

然后我用3x12mm木螺钉将电机支架固定到MDF板上。

我用2.5x10mm木螺钉安装了电机的电机,我安装了步进电机的驱动器模块,并直接在MDF板上直接与2.5x10mm螺钉上的归位微电开关的支撑。

然后我用一些线夹把步进电机的电缆排列得很好。我用2x10mm的木螺钉固定了这些夹子。我还安装了热胶粘到中密度纤维板去膨胀机。

然后遵循最困难的部分,使焊接(根据前一步骤中的方案)。

下一步是在支撑方格中提供的位置安装2mm螺钉(见图)。

请注意,HST块支持具有两种类型,部分内容较短,部分较短,其中它们固定到电机轴,8件的另一种和8件的8个。它们交替地固定在电机轴上,否则正方形在旋转期间正方形将碰撞。这就是为什么我也使用2个不同长度的归位开关的致动螺钉,对于带较短的轴的平方体的短的14毫米的短,对于具有较长轴的平方体的平方米(参见下图)。

除了这些支持,我3D打印了一些模板,可以在安装HST支持之前安装,他们帮了我很多检查是否一切正常:电机的高度,限制器的高度,电线是否干扰运动,电机的旋转方向是否正常。当然,他们在软件设计阶段对我帮助最大。

然后我用喷墨打印机的帮助,颜色模型,我使用的白色照片自粘纸(下面有不同三角形的PDF文件)我将打印用精密切割器切割在边缘,并仔细修复它们在方形支持上

然后,我安装在电机轴上的广场,并使用对齐程序设置零位我想要的(更多的软件步骤)。

然后我将最终程序加载到Arduino Mega 2560 Mini模块中。done!

我在施工过程中拍了一些照片,希望对大家有所启发。

第5步:软件

在谈论加载到微控制器中的软件之前,我想向您展示一个HTML5应用程序,即我制作我在本文中提出的项目。应用程序如下图所示,您可以访问它在这个地址. 如果你用你的手机,最好用Chrome浏览器,并在设置中选中“桌面网站”,这样你可以看到它更好。

我使用了32种型号的HST块,随机更改,您也可以尝试HST块的不同颜色模型。我希望你能想看起来如何:)

关于软件。

我用过Accelstepper库MCP23017步进程序库(这是使用AccelStepper库和MCP23017扩展器的扩展)在setup()函数中创建程序时,步进电机被初始化,即归位,在循环中,通过步进电机的组合运动实现从一个模型到另一个模型的转换。代码并不复杂,我对源代码进行了注释,使其更易懂,您可以在这里下载github.

有些问题。

我选择了半步进步进电机,虽然我知道在这种情况下转矩较低,但在全步进的16个电机的运动,同时是太多的颠簸。即使是半步走,动作也不太流畅,但总比全步走要好得多。

你必须小心马达的旋转方向。我很惊讶,虽然我焊接电机以同样的方式,其中一些旋转方向相反的权利之一。因此,在软件初始化中,我必须使用顺序4、2、3、1或15、13、14、12(I/O扩展器的管脚编号),而不是顺序1、3、2、4,因此不要安装HST块支架,在没有它们的情况下启动组件,模拟按下限位开关,检查是否一切正常。

在启动时,为了使得支持与尽可能保持良好的对齐,您必须更新具有适当值的HOMINGComponation阵列。我把100个步骤放到每个电动机上,但最后我使用了下一个值{152,209,188,204,192,210,204,180,216,197,192,221,216,252,212,214}

为了找出这些值,我使用了一个单独的程序github。在Arduino Mega中加载程序后,打开Arduino IDE的串行监视器,然后可以执行以下操作:

-您可以通过从键盘输入大写字母“a”到“P”来选择特定的引擎,“a”是步进器0和“P”步进器15,当选择引擎时,如果它没有完成归位,那么它会这样做,

-您可以通过串行监视器传送“+”和“-”字符来移动电机,在一个字符处电机将走一步,您可以输入更多的符号以使电机走更多的步

-通过字符“R”的串行传输,您可以看到已存储的值,完成后,您可以复制将粘贴到主程序homegcompensation数组源中的值。

下面您可以看到下面的屏幕截图和图像在此设置过程中。

确实,这些值可能并不完美,在主程序中,归位需要稍微优化,但此设置仍然有用,因为您不会在以后重复编辑和主程序的重复加载中浪费时间。此对齐设置确实需要一点时间,但一旦完成,将保留很长时间。

在按钮的帮助下,我可以选择机构的两种操作模式:如果在启动时没有按下按钮,则在归位后,电机将在HSTModels.h中一个接一个地制作预定义的模型如果您按住启动按钮直到重设原点开始,那么随机数量的电机将旋转到随机位置,因此模型将完全随机。这些模式可以在下一步的视频中观看。

说到模特。
在HSTModels.h文件中,我定义了从第一步中显示图像中的73个模式。根据下面的图形,我根据半方三角形的3个位置定义它

0表示0度,1表示90度,2表示180度,3表示270度,因此下面的模型出现在HSTModels.h的数组中,如下所示

--> 1, 1, 2, 2, 1, 1, 2, 2, 0, 0, 3, 3, 0, 0, 3, 3

然而,在该程序中,我使用一定数量的步骤来在这些所需位置移动电动机轴。我知道步进了4076步旋转因此,在90度下,它意味着1019步骤IE1 * 1019在180度将是2038步,即2 * 1019步骤。等等

在我在每次mcp初始化后输入的代码中,这个命令TWBR=12;因此I2C总线上的通信速度为400 khz(这是关于MCP23017AccelStepper库github的建议),我希望电机运行更平稳,但不幸的是,一次16个电机对于I2C总线来说已经太多了。当所有的马达都转动的时候,运动是缓慢的,而且经常是急促的,如果它们转动的马达少了,那就没事了。你也会在视频中注意到这一点。

上传到Arduino Mega的程序在这里的许多地方都有文档记录,在instructable和互联网上,所以我认为没有必要介绍这一部分。

第六步:它在移动!

没有什么比视频演示更雄辩的了。。。

下面你可以看到一个相当长的视频与半方形三角形动力学艺术的运作:)

第七步:结论

还有什么比这个项目给我带来很多麻烦更让我头疼的呢

但它很有意思。

显然,采用28BZJ-48步进电机和ULN2003驱动器的方法是不可行的:)它需要太多的数字输出,并且扩展器的数量对于I2C总线来说太大,因为它需要高通信速度才能使步进电机顺利工作。

更多关于马达的信息。

我从不同的地方买了踏步机,它们之间的差别是显而易见的。尺寸不一样,例如轴的厚度不同,型号支架不合适,我不得不为一些电机轴打印“定制”:

电机的主体具有不同的尺寸,因此即使它们应该处于相同的高度,模型支架也处于不同的高度。

我已经在软件步骤中写到,一些具有相同初始化的电机朝相反方向旋转。更不用说机械剧了。可怕的!!!

有些马达的轴间隙太大,我不得不更换,但还是不太好。引擎有一个漂亮的反斜杠!!!在支持打印你可以看到一些环,其中我想把一些弹性线程,以减少这种反弹,但我放弃了,我不想复杂自己了:)

如果我要恢复这个项目(也许我会恢复它),那么我肯定会使用更高质量的步进电机,如17HS4401。以及一些专用的步进电机驱动器,如A4988。作为寻的限制器,我会使用霍尔YS-27传感器为例。有了这些,我还可以避免归航时的机械事故:)

一个Arduino Mega就足够了,我会放弃数字输出扩展器。我想那会很棒。也许将来…。

你怎么认为?有问题吗?

如果还有事情需要澄清,我将一如既往地听从您的安排:)

行动起来

二等奖
行动起来

第一个分享

    建议

    • 电池供电竞赛

      电池供电竞赛
    • 胶合板挑战赛

      胶合板挑战赛
    • 塑料竞赛

      塑料竞赛

    12讨论

    0
    雪人22.gk

    6周前

    和蔼可亲。在学校里,你的思想和行为都很重要。
    我要开始工作了。如果我是一个普通人,那么我将是一个普通人。
    vielen陷入困难的灵感。

    0
    hzys24型

    7周前

    你是个天才。对于与社区共享这一真正伟大的杰作来说,这很多很多。准备这是一项工作,让您为我们记录它。我会开发。建立这个。最佳的同伴

    0
    安德烈·尔代伊

    7周前回复

    哦,孩子!
    谢谢您!
    我知道我是一个天才,但谦虚不允许我对很多人这样说
    我喜欢分享我的项目,感觉很棒是如此欣赏。
    如果您需要使用此项目的帮助,我可以帮助您。

    0
    基塞林

    7周前

    真 的!这是非常“mezmeracing”。不要带走看到他们的LED灯闪烁的背景,他们有点增加了一些神秘。此外,他们的数字移动“缓慢”和“模式”实际上是一个好处。它让观察者有时间“想象”即将到来的数字。
    你得到了我的选票(不知道是什么,但无论如何你得到了)

    0
    _卡米尼

    8周前

    哇这太神奇了。我一定要试试这个。

    0
    安德烈·尔代伊

    8周前回复

    谢谢您!
    如果您在施工过程中有任何问题,请随时提出。

    0
    海德恩

    8周前

    我喜欢你的在线模拟器!
    有没有它的源代码?

    0
    安德烈·尔代伊

    8周前回复

    谢谢你的赏识!
    我不认为提供应用程序源代码会太有帮助。我在Game Maker Studio中制作了这个小程序,可以导出到HTML5。如果你买了游戏机和出口模块,那么是的,我可以给你的来源。

    0
    塔帕卡什

    8周前的第6步

    令人惊叹的!这太令人满意了。我看了10遍。:0