برد Trinket بخاطر اندازه کوچکش بهترین انتخاب برای ساخت پروژههای کوچک است. مثلاً اگر بخواهید یک ربات کوچک بسازید که جای کافی برای میکروکنترلرهایی مثل آردوینو را ندارد، میتوانید از برد Trinket استفاده کنید. در این ساختنی یک پروژه ساده و جالب برای آشنایی بیشتر با برد Trinket را آموزش میدهیم. یک شال گردن چشمک زن که برای مهمانیها و جشنها بی نظیر است. با ساختنی همراه باشید.
ساخت شال گردن چشمک زن کار ساده ای است. ابتدا برد Trinket را برنامه ریزی کنید. سپس شال گردن را بدوزید (میتوانید از شال گردنهای آماده هم استفاده کنید)، قطعات الکترونیکی از جمله LED را سیم کشی کنید و سپس قطعات الکترونیکی را داخل شال قرار بدهید. اگر با میکروکنترلرها آشنا باشید، کار با برد Trinket هم برایتان بسیار ساده خواهد بود.
برد Trinket یک میکروکنترلر ارزان است که برای پروژههای کوچک و ساده مناسب است. این برد با کابل USB به کامپیوتر وصل میشود و LED قرمز روی آن به مدت ۱۰ ثانیه چشمک میزند. این یعنی برد برای پذیرش کدها آماده است. اگر LED روشن نشود، باید دکمه ریست را بزنید تا برد در حالت بوت لودر قرار بگیرد. سایر میکروکنترلرها به صورت خودکار در این حالت قرار میگیرند اما برد Trinket نیاز به فشردن دکمه دارد.
برای برنامه ریزی میکروکنترلرهایی مثل آردوینو و برد Trinket دو راه وجود دارد. روش اول استفاده از نرم افزار Arduino IDEاست و روش دوم هم برنامههای مبتنی بر مرورگر مثل codebender.cc است که امکان آپلود کدها روی میکروکنترلر از طریق مرورگر را فراهم میکند. برای برد Trinket میتوانید از هر دو روش استفاده کنید.
کدهای زیر را به یکی از دو روش بالا روی برد Trinket آپلود کنید. اگر میخواهید آپلود کدها را از طریق مرورگر انجام بدهید، از این لینک استفاده کنید.
//This is inspired by the code with Adafruit's Animated //Neopixel Glow Fur Scarf & the color palettes included within //the FastLED library. I've included one additional palette to play with #include <FastLED.h> #include "colorutils.h" #include "colorpalettes.h" //This is where we adjust things to match our unique project: #define NUM_LEDS 50 // adjust this to the number of LEDs you have: 16 or 50 #define LED_TYPE WS2812B // adjust this to the type of LEDS. This is for Neopixels #define DATA_PIN 1 // adjust this to the pin you've connected your LEDs to #define BRIGHTNESS 255 // ۲۵۵ is full brightness, 128 is half #define SATURATION 255 // ۰-۲۵۵, ۰ is pure white, 255 is fully saturated color #define BUTTON_PIN ۳ // Connect the button to GND and one of the pins. #define UPDATES_PER_SECOND 100 uint8_t gHue = 0; // rotating "base color" used by many of the patterns #define COLOR_ORDER GRB // Try mixing up the letters (RGB, GBR, BRG, etc) for a whole new world of color combinations CRGB leds[NUM_LEDS]; CRGBPalette16 currentPalette; CRGBPalette16 targetPalette( PartyColors_p ); TBlendType currentBlending; uint8_t colorLoop = 1; uint16_t STEPS = 30;// STEPS set dynamically once we've started up uint16_t SPEED = 30;// SPEED set dynamically once we've started up int ledMode = 0; const TProgmemPalette16 MyColors_p PROGMEM = CRGB:: DarkBlue, CRGB:: HotPink, CRGB:: Teal, CRGB:: BlueViolet, CRGB:: DodgerBlue, CRGB:: DeepPink, CRGB:: Turquoise, CRGB:: Indigo, CRGB:: DarkBlue, CRGB:: HotPink, CRGB:: Teal, CRGB:: BlueViolet, CRGB:: DodgerBlue, CRGB:: DeepPink, CRGB:: Turquoise, CRGB:: Indigo, ; unsigned long keyPrevMillis = 0; const unsigned long keySampleIntervalMs = 25; byte longKeyPressCountMax = 80; // 80 * 25 = 2000 ms byte longKeyPressCount = 0; byte prevKeyState = HIGH; // button is active low void setup() delay( 2000 ); // power-up safety delay FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness( BRIGHTNESS ); currentBlending; pinMode(BUTTON_PIN, INPUT_PULLUP); void loop() byte currKeyState = digitalRead(BUTTON_PIN); if ((prevKeyState == LOW) && (currKeyState == HIGH)) shortKeyPress(); prevKeyState = currKeyState; static uint8_t startIndex = 0; startIndex = startIndex + 1; /* motion speed */ switch (ledMode) //FastLED has a bunch of built-in "palettes" to choose from: //RainbowColors_p is all the colors of the rainbow //PartyColors_p is all the colors of the rainbow minus greens //RainbowStripeColors_p is all the colors of the rainbow divided into stripes //HeatColors_p is reds and yellows, white, and black //LavaColors_p is more reds and orangey colors //ForestColors_p is greens and yellows //OceanColors_p is lots of blues and aqua colors //CloudColors_p is blues and white //The group of colors in a palette are sent through a strip of LEDS in speed and step increments youve chosen //You can change the SPEED and STEPS to make things look exactly how you want //SPEED refers to how fast the colors move. Higher numbers = faster motion //STEPS refers to how wide the bands of color are. 1 = more like a gradient, 10 = more like stripes case 0: currentPalette = RainbowColors_p; SPEED = 100; STEPS = 10; break; case 1: currentPalette = MyColors_p; SPEED = 50; STEPS = 9; break; case 2: currentPalette = ForestColors_p; SPEED = 40; STEPS = 8; break; case 3: currentPalette = PartyColors_p; SPEED = 30; STEPS = 7; break; case 4: currentPalette = OceanColors_p; SPEED = 20; STEPS = 6; break; case 5: currentPalette = LavaColors_p; SPEED = 10; STEPS = 5; break; FillLEDsFromPaletteColors( startIndex); FastLED.show(); FastLED.delay(1000 / SPEED); void FillLEDsFromPaletteColors( uint8_t colorIndex) for( int i = 0; i < NUM_LEDS; i++) leds[i] = ColorFromPalette( currentPalette, colorIndex, BRIGHTNESS, currentBlending); colorIndex += STEPS; //if you change the number of modes, you must update //the number "5" within this section: void shortKeyPress() ledMode++; if (ledMode > 5) ledMode=0;
برای این مرحله به زیپ، پارچه پشمیو چرخ خیاطی نیاز دارید. لایی را در مرحله آخر و وقتی قطعات الکترونیکی را داخل شال میگذاریم، اضافه میکنیم. میتوانید اندازه و شکل شال گردن را هر طور که میخواهید تغییر بدهید. فقط تغییرات را طوری اعمال کنید که همچنان بتوانید قطعات الکترونیکی را داخلش قرار بدهید.
پارچه شال گردن را طوری روی میز پهن کنید که طرف پشمیرو به بالا باشد. زیپ را روی لبه پارچه و با فاصله ۷ تا ۱۰ سانتیمتر از سر پارچه بگذارید (طوری که سر زیپ رو به پایین باشد). به این ترتیب آویز زیپ رو به پارچه خواهد بود. جهت کشیده شدن زیپ را هم رو به بالا و هم رو به پایین قابل تنظیم است. اما مهم این است که زیپ را طوری تنظیم کنید که وقتی بسته است به قسمت بزرگ تر پارچه نزدیک باشد.
در نهایت هم شال گردن را برگردانید و آن را کنار بگذارید.
در این مرحله برد Trinket را به نوار نئوپیکسل و پک باتری وصل کنید و دکمهها را کار بگذارید. اگر پک باتری تان کانکتور JST دارد، میتوانید کانکتور ماده را به برد Trinket لحیم کنید.
وقتی میخواهید سیمها را به برد Trinket لحیم کنید، قسمت بیشتری از عایق سیم را باز کنید. سپس سیم را بین انگشتهایتان تاب بدهید تا بهتر روی برد قرار بگیرد. سپس سیم را با گیره سرجایش روی برد ثابت کنید و لحیم کاری را شروع کنید.
ما آموزش را با این فرض نوشتیم که هیچ سیمیرا به نئوپیکسل وصل نیست. اگر نئوپیکسل ۵ متری خریده باشید، احتمالاً به دو سرش سیم و کانکتور وصل است. در این صورت کانکتورها را ببرید و بگذارید سیمها متصل باقی بمانند.
روی سیمهایی که لحیم میکنید را با هیت شرینک بپوشانید تا از آنها محافظت بشود. سیمهای اضافی و هر چیزی که میتواند باعث کوتاه شدن مدار بشود را هم ببرید.
ورودی دیتا را همیشه به آن طرف پیکسلها وصل کنید که برچسب IN یا یک فلش به سمت سایر پیکسلها دارد.
با در نظر گرفتن تمام نکاتی که در بالا گفتیم، اتصالات قطعات الکترونیکی را به شکل زیر ایجاد کنید:
بعد از اینکه سیم کشی را کامل کردید، تمام اتصالات را یکبار چک کنید. چند باتری داخل پک باتری بگذارید و سوئیچ را روشن کنید. سیمهای اضافی و باز مدار را با چسب حرارتی یا چسب E6000 ببندید. میتوانید دکمه و پک باتری را به برد Trinket وصل کنید تا اتصالات کوتاه تر بشوند.
با مشاهده هر مشکل و اخلالی در مدار، سریع آن را خاموش کنید و یکبار تمام اتصالات را چک کنید.
بعد از اینکه مدار را ساختید، برد Trinket را برنامه ریزی کردید و شال گردن را دوختید، میتوانید مدار را داخل شال قرار بدهید و دوختش را کامل کنید.
ابتدا لایی را دور شال بپیچید و هر ۱۰ سانتیمتر کمیچسب حرارتی به آن بزنید تا لایی روی LEDها ثابت بشود. سپس قسمتهای باز شال را کوک بزنید. قطعات الکترونیکی را از طریق زیپ داخل شل گردن قرار بدهید و نوار LED را در طول شال پخش کنید.وقتی همه چیز آماده شد، مدار را روشن کنید و از زیبایی شال گردن چشمک زن لذت ببرید. وقتی LEDها قرمز بشوند و دیگر چشمک نزنند، وقت عوض کردن باتریهاست.
منبع
نوشته شال گردن چشمک زن؛ یک پروژه جالب با برد Trinket و LED - #کاردستی #علمی #خبر