灯“黑洞”



我提请您注意一盏灯,它同时是视觉辅助“二维空间中的黑洞”。

爱因斯坦的广义相对论说,质量物体扭曲了时空的结构。 黑洞的密度如此之大,以至于黑洞中的时空畸变到足以使辐射或物质都无法逸出的程度。

为了重现这种现象,我用一块黑色的氨纶模仿“时空结构”,并在其周围放置了一个“事件视界”,即一圈白色LED。 只是离“黑洞”更近一点-光线不会熄灭。 保持灯泡点亮时间越长,黑洞就会越多,吸收物质和能量。 在我们的模型中,为了模拟这一点,弹性纤维拉一条编织线,穿过一条铜管,并通过位于底部的电动机使其运动。 亮度控制器同时影响张力的速度:单位时间内进入黑洞的光线和物质越多,其生长速度就越快,反之亦然。 如果关闭灯,则发动机将向相反方向旋转,从而减轻张力,这类似于因霍金辐射而导致黑洞蒸发。

GIF〜11 MB

黑洞的这种艺术表现形式在具有原始力学的动能雕塑中有用吗? 可能是的,程度与关于计算机中小矮人的连载漫画“ Tim and Beat”相同。 或使用运算放大器上的电路对任何物理现象进行建模。 如果您想要一个关于黑洞的更严肃,尽管简化的故事,请在YouTube频道“简而言之”中观看此视频

如果要组装相同的灯,请准备:

-黑色弹力面料,例如氨纶(又名氨纶,莱卡等)
-半英寸的铜管(如果您不是蒸汽朋克者,也可以使用塑料管)和三个90度角配件
-木制底座
-编织鱼线
-黑色罐喷罐
-Arduino纳米
-9伏电源
-自制的白色LED灯带,与标准灯带不同的是,其中的所有LED都简单地并联连接
-具有两个H桥的模块,带有直通电流保护L9110
-28BYJ步进电机
-拨动开关
-可变电阻
-电线,焊料,助焊剂,面包板
-无线电安装和木工工具

锯掉三根管子:两根330毫米和一根368毫米。



如果需要,可以这样进行抛光:



钻三个16毫米的孔:与垂直线成大约25度角的两个孔-用于安装LED环的管道,然后向后倾斜25毫米-钓线将通过的管道的中心孔。

在拨动开关和可变电阻上再钻两个相应直径的孔。 文章末尾的完成设备的照片中显示了另一个孔,该孔是错误地钻出的,无需重复。

打印两套带有黑色细丝的半然后将它们粘在一起。 要打印整个戒指,作者在打印机的桌子上没有足够的空间。

从弹性纤维上切下一个正方形,放在一个细环上。 在织物上打10个螺钉的孔,然后继续使其略微伸展,用厚环盖上,然后用螺钉连接所得的“三明治”。 剪掉剩下的氨纶。

将带有编织鱼线的珠子绑在氨纶片的中央。



将LED灯带粘贴在环的周围。 通过配件将环连接到短管上。 将电线焊接到胶带上,在其上做标记,以使极性清晰,或通过使用彩色电线,并通过其中一根管道。

将基础漆成黑色。 将配件放在长管上。 将所有管道,拨动开关和可变电阻器安装在为其提供的孔中。 使管线穿过安装在中间的中间管道。

根据附图连接组件。



28BYJ步进电机有五根电线,但其中一根(红色)不需要在任何地方连接。 将橙色和粉红色线连接到电机B H桥模块的输出,并将黄色和蓝色线连接到电机A的输出。 像这样将模块插入Arduino:

B1A至D11
B1B至D10
A1A至D9
A1B至D8

通过一个100欧姆的电阻在D3输出(或另一个带有PWM的输出,您可以在草图中选择它)和公共线之间连接LED灯带(我会提醒您,它是自制的,并且所有LED都简单地并联连接)。 拨动开关的连接方式应使其通过2.2 kOhm电阻器将一条公共线连接至下部位置的输入D2,以及上部位置的五伏稳定器的输出。 有趣的是,为什么作者不那么喜欢上拉电阻,这将允许使用没有常闭触点的开关。 将可变电阻器的一侧端子连接到公共线,另一侧连接到五伏稳定器的输出,中间端子连接到输入A0。

从同一套STL文件中打印一个滑轮,将其放在电机轴上,连接钓鱼线。 因此,结果如图所示。



填写草图:

//L9110 ->   28BYJ int A1A = 8; int A2A = 9; int B1B = 10; int B2B = 11; int PotPin = 0; //  A0 int SwitchPin = 2; int LEDring = 3; //   - int waitTime; //    ( ) int PotVal; //    int SwitchVal; int intensity; //      float pulleyRadius = 1.4; //    float maxStringContraction = 7.0; // ,     ,   float stepsPerRevolution = 2048.0; //     float Pi = 3.14159; float circumference = 2.0 * Pi * pulleyRadius; float MaxRevs = maxStringContraction / circumference; //    float MaxSteps = MaxRevs * stepsPerRevolution; //       int StepLimit = MaxSteps; //    int StepCount = 0; void setup() { Serial.begin(9600); //Serial.println(circumference); //Serial.println(MaxRevs); //Serial.println(MaxSteps); //Serial.println(StepLimit); pinMode(SwitchPin, INPUT); pinMode(LEDring, OUTPUT); pinMode(A1A, OUTPUT); pinMode(A2A, OUTPUT); pinMode(B1B, OUTPUT); pinMode(B2B, OUTPUT); } void step1() { digitalWrite(A1A, LOW); digitalWrite(A2A, HIGH); digitalWrite(B1B, HIGH); digitalWrite(B2B, LOW); delay(5); } void step2() { digitalWrite(A1A, LOW); digitalWrite(A2A, HIGH); digitalWrite(B1B, LOW); digitalWrite(B2B, HIGH); delay(5); } void step3() { digitalWrite(A1A, HIGH); digitalWrite(A2A, LOW); digitalWrite(B1B, LOW); digitalWrite(B2B, HIGH); delay(5); } void step4() { digitalWrite(A1A, HIGH); digitalWrite(A2A, LOW); digitalWrite(B1B, HIGH); digitalWrite(B2B, LOW); delay(5); } void Stop() { digitalWrite(A1A, LOW); digitalWrite(A2A, LOW); digitalWrite(B1B, LOW); digitalWrite(B2B, LOW); delay(5); } void BHgrowth() { analogWrite(LEDring, intensity); if (StepCount < StepLimit) { //   step1(); step2(); step3(); step4(); StepCount += 1; } Stop(); } void HawkingRadiation() { analogWrite(LEDring, 0); if (StepCount > 0) { step3(); step2(); step1(); step4(); StepCount -= 1; } Stop(); } void loop() { PotVal = analogRead(PotVal); intensity = map(PotVal, 0, 1024, 0, 254); SwitchVal = digitalRead(SwitchPin); if (SwitchVal == 1) { BHgrowth(); waitTime = 255 - intensity; //  ,   ,   if (waitTime < 1){ waitTime = 1; } } else { HawkingRadiation(); waitTime = 255; } delay(waitTime); Serial.println(waitTime); Serial.println(SwitchVal); } 


完成,您可以使用它!

Source: https://habr.com/ru/post/zh-CN411915/


All Articles