圣诞树上的变压器星



在幼儿园的新年前夕,要求制作一个圣诞树玩具。 我决定帮助并承担工艺品制造的技术部分,然后将设计部分留给孩子。 因为 我不是在寻找简单的方法,而是决定制造技术含量最高的玩具,而不仅仅是玩具中的火球。 我不知道该怎么做,但是在我的脑海中,这个想法马上就成熟了,那就是使用步进电机和可寻址LED来制造一颗转化星。

所用材料:

  1. 末端照明用有机玻璃
  2. 28BYJ-48步进电机
  3. ULN2003芯片上的驱动程序
  4. 单片机ATTINY85
  5. LED灯带WS2812

如果照明有机玻璃的边缘以进行端照明,则不仅边缘会发光,而且平面本身也会发光。 由于这种有机玻璃内部结构的异质性,内部的光被反复反射,从而使该平面突出显示。 我在A4纸上打印了一块,然后切掉了两颗星星。

图片



在一个我尝试使用步进电机的零件中,找到了一个旋转中心,并切出了一个圆孔,我在其中粘贴了一块带5个LED的胶带WS2812。 我将第二部分连接到引擎轴,并将整个东西连接到Arduino。



用于控制步进电机的标准步进器库包含一个错误,并且不允许您逆时针旋转,因此我使用了TinyStepper_28BYJ_48库。 对于LED动画,我使用了Adafruit_NeoPixel库。

变形金刚素描
//此库的文档可以在以下位置找到:
// github.com/Stan-Reifel/TinyStepper_28BYJ_48
//
//
//此库要求将步进电机连接到Arduino
//使用ULN2003驱动板。

// ********************************** .... ************************

#include <TinyStepper_28BYJ_48.h>
#include <Adafruit_NeoPixel.h>

// NEO Pixel配置
#定义PIN码0
#定义LEDS_COUNT 5
#定义红色条带颜色(255,0,0)
#定义绿色条带颜色(0,255,0)
#定义蓝色条带颜色(0,0,255)
#定义白色条带颜色(255,255,255)

//引脚分配,可以使用任何数字引脚
#define MOTOR_IN1_PIN 1
#define MOTOR_IN2_PIN 2
#define MOTOR_IN3_PIN 3
#define MOTOR_IN4_PIN 4

//创建步进电机对象
TinyStepper_28BYJ_48步进器;
Adafruit_NeoPixel带= Adafruit_NeoPixel(LEDS_COUNT,PIN,NEO_GRB + NEO_KHZ800);

无效设置(){
//将步进电机连接并配置到其IO引脚
stepper.connectToPins(MOTOR_IN1_PIN,MOTOR_IN2_PIN,MOTOR_IN3_PIN,MOTOR_IN4_PIN);
//设置步进电机的速度和加速度
stepper.setSpeedInStepsPerSecond(256);
stepper.setAccelerationInStepsPerSecondPerSecond(512);

strip.begin();
strip.show(); //将所有像素初始化为“关闭”
}

无效循环(){
//向前旋转电机一圈
stepper.moveRelativeInSteps(410);
for(字节i = 0; i <20; i ++){
fadeInOut(0xff,0x00、0x00); //红色
}

//向后旋转1圈,然后等待1秒钟
stepper.moveRelativeInSteps(-410);
for(字节i = 0; i <20; i ++){
fadeInOut(0x00、0x00、0xff); //蓝色
}
}

void fadeInOut(红色字节,绿色字节,蓝色字节){
浮动r,g,b;

对于(int k = 0; k <256; k = k + 1){
r =(k / 256.0)*红色;
g =(k / 256.0)*绿色;
b =(k / 256.0)*蓝色;
setAll(r,g,b);
strip.show();
延迟(5);
}

对于(int k = 255; k> = 0; k = k-2){
r =(k / 256.0)*红色;
g =(k / 256.0)*绿色;
b =(k / 256.0)*蓝色;
setAll(r,g,b);
strip.show();
延迟(5);
}
}

void setAll(红色字节,绿色字节,蓝色字节){
对于(int i = 0; i <LEDS_COUNT; i ++){
strip.setPixelColor(i,strip.Color(红色,绿色,蓝色));
}
strip.show();
}


它还活着!

现在必须紧凑地组装所有东西,并使用ATTINY85代替Arduino。 根据create.arduino.cc网站上说明,您可以轻松地用Arduino草图缝制ATTINY85。 在8条脚中,我将7、4用于步进电机,1用于LED,2用于电源,RESET保持空闲。



为了安装在圣诞树的树冠上,柱塞手柄完美配合。



经过装饰工作,这颗星星开始显得更漂亮。 手柄被包裹在一条红色缎带中,有机玻璃被透明的清漆覆盖,上面有闪闪发光,因此发光效果大大增强。



即将到来的2020年,新年的心情和独创性!

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


All Articles