نجمة المحولات على شجرة عيد الميلاد



عشية العام الجديد في رياض الأطفال طلب لجعل لعبة شجرة عيد الميلاد. قررت أن أساعد وأخذ الجزء الفني لتصنيع الحرف اليدوية ، وترك الجزء المصمم للطفل. لأن أنا لا أبحث عن طرق سهلة ، فقد قررت أن أصنع أكثر لعبة تكنولوجية وأنها ستكون أكثر من مجرد كرة نارية في كرة. لا أعرف كيف ، لكن في رأسي ، تنضجت الفكرة على الفور من صنع نجم تحويل باستخدام محرك السائر ومصابيح LED قابلة للعنونة.

المواد المستخدمة:

  1. زجاج شبكي للإضاءة النهاية
  2. 28BYJ-48 السائر المحركات
  3. برنامج التشغيل على رقاقة ULN2003
  4. متحكم ATTINY85
  5. قطاع الصمام WS2812

إذا كنت تضيء حافة زجاج شبكي للإضاءة في النهاية ، فلن تتوهج فقط الحواف ، بل ستضيء الطائرة نفسها أيضًا. بسبب عدم تجانس الهيكل الداخلي لمثل هذه الزجاجية ، ينعكس الضوء الداخل بشكل متكرر وبالتالي يتم تسليط الضوء على المستوى. قمت بطباعة قطعة على ورقة A4 وقطعت جزءين من النجم.

صورة



في أحد الأجزاء التي جربتها على محرك السائر ، عثرت على مركز الدوران وقطعت ثقبًا مستديرًا ألصق فيه قطعة من الشريط WS2812 بخمس مصابيح. أرفقت الجزء الثاني بعمود المحرك ووصّلت هذا الأمر برمته إلى Arduino.



تحتوي مكتبة Stepper القياسية للتحكم في محرك السائر على خطأ ولا تسمح لك بالتدوير عكس اتجاه عقارب الساعة ، لذلك استخدمت مكتبة 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 بكسل
#define PIN 0
#define LEDS_COUNT 5
#define RED strip.Color (255، 0، 0)
#define GREEN strip.Color (0، 255، 0)
#define BLUE strip.Color (0، 0، 255)
#define WHITE strip.Color (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 strip = 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 ()؛
الشريط. // تهيئة جميع وحدات البكسل لإيقافها
}

حلقة باطلة () {
/ / أدر المحرك في الاتجاه الأمامي ثورة واحدة
stepper.moveRelativeInSteps (410)؛
لـ (البايتة = 0 ؛ أنا <20 ؛ i ++) {
fadeInOut (0xff ، 0x00 ، 0x00) ؛ // أحمر
}

// تدوير للخلف 1 تناوب ، ثم انتظر 1 ثانية
stepper.moveRelativeInSteps (-410)؛
لـ (البايتة = 0 ؛ أنا <20 ؛ i ++) {
fadeInOut (0x00 ، 0x00 ، 0xff) ؛ // الأزرق
}
}

تلاشي باطل (خارج البايت ، البايت الأخضر ، البايت الأزرق) {
تعويم ص ، ز ، ب ؛

لـ (int k = 0 ؛ k <256 ؛ k = k + 1) {
r = (k / 256.0) * أحمر ؛
g = (k / 256.0) * أخضر ؛
ب = (ك / 256.0) * الأزرق ؛
setAll (r، g، b)؛
الشريط.
تأخير (5) ؛
}

من أجل (int k = 255؛ k> = 0؛ k = k-2) {
r = (k / 256.0) * أحمر ؛
g = (k / 256.0) * أخضر ؛
ب = (ك / 256.0) * الأزرق ؛
setAll (r، g، b)؛
الشريط.
تأخير (5) ؛
}
}

مجموعة باطلةكل (البايت الأحمر ، البايت الأخضر ، البايت الأزرق) {
لـ (int i = 0 ؛ أنا <LEDS_COUNT ؛ i ++) {
strip.setPixelColor (i ، strip.Color (أحمر ، أخضر ، أزرق)) ؛
}
الشريط.
}


إنه حي !!!

الآن كان من الضروري تجميع كل شيء بشكل مضغوط واستخدام ATTINY85 بدلاً من Arduino. تسترشد بالتعليمات الواردة من موقع create.arduino.cc ، يمكنك بسهولة خياطة ATTINY85 بسهولة باستخدام رسم Arduino. من أصل 8 أرجل ، استخدمت 7 ، 4 للمحرك السائر ، 1 للمصابيح ، 2 للسلطة ، ظلت RESET مجانية.



للتركيب على تاج شجرة عيد الميلاد ، ذهب مقبض المكبس تماما.



بعد العمل الزخرفي ، بدأ النجم أن يبدو أجمل بكثير. كان المقبض ملفوفًا بشريط صقيل أحمر ، وكان زجاج شبكي مغطى بالورنيش الشفاف مع البريق ، وكان تأثير التوهج أقوى من هذا.



كل ذلك مع عام 2020 المقبل ، مزاج العام الجديد والإبداع!

Source: https://habr.com/ru/post/ar480058/


All Articles