چند سالی است که عرصه گجتها جذابتر و پیچیدهتر میشود. به یاد دارم اولین گجت قابل حملی که بسیار به آن علاقمند بودم واکمن جیبی سونی بود. امروزه به لطف پیشرفت میکروکنترلرها و بردهای امبدد از جمله برد آردوینو Arduino گجتهای جذاب کوچک و کاربردی روز به روز بیشتر میشود. نوع دیگری از این دسته، گجتهای پوشیدنی هستند. در این مدل، گجت عضوی از بدن ما میشود مانند ساعت، عینک، کمربند، کفش و حتی شلوار. برای دست یابی به این موضوع، پیشرفته شدن میکروکنترلرها فقط کافی نبود بلکه نیاز به منبع تغدیه سبک، قابل حمل و کارآمد نیاز بود. دنیای گجتهای پوشیدنی بسار جذاب و متنوع است. در این پست شیوهی ساخت یک عینک با LED RGB را به شما آموزش خواهم داد که میتوانید در جشن ها و مراسم مختلف از آن استفاده کنید. در ادامهی این آموزش جذاب ساخت عینک ال ای دی با آردوینو با مرجع تخصصی آردوینو ،دیجی اسپارک همراه باشید.
ساختار ال ای دی پیکسل حلقهای
ال ای دی دهای پیکسل یک ال ای دی SMD و RGB میباشد، که با موج مربعی یا PWM میتوان آنها را برای شدت نور و رنگ مورد نظر آدرس دهی کرد. این نوع ماژول به صورت پیکسل در محیط یک دایره کنار هم قرار داده شدهاند. شیوه مدیریت این ماژول همانند آموزش راه اندازی LED RGB addressable نواری با برد آردوینو Arduino میباشد.
وسایل مورد نیاز:
حلقه ال ای دی ۱۲ تایی LED Neo Pixel Ring RGB
باتری لیتیوم پلیمر حداکثر ۵۰۰ میلی آمپر
لینک کیت کامل کلیه قطعات به همراه عینک نمایش داده شده در تصاویر
اتصال به آردوینو
ال ای دی حلقهای یا همان LED Pixel تواناییی کارکردن با ولتاژ ۳٫۳ و ۵ ولت را دارد. فقط کافیست پایهها را به صورت زیر اتصال دهید.
پایه VCC را به VCC آردوینو وصل میکنیم.
پایه DI را به پایه شماره ۳ آردوینو وصل میکنیم.
پایه GND را به یکی از پایه های GND آردوینو وصل میکنیم.
پایه DO از ال ای دی حلقه ای را به پایه DI حلقه دوم وصل میکنیم.
برای اتصال باتری مثبت و منفی را به پایههای VCC و GND آردوینو مطابق شکل زیر وصل میکنیم. البته در این آموزش من از یک میکروسوئیچ اهرم دار بایه مثبت باتری استفاده کردهام که با بستن دستههای عینک جریان مدار قطع شود.
نکته بسیار مهم:
برد آردوینو Pro micro هم با ولتاژ ۵ و هم با ۳٫۳ ولت کارآیی دارد. از آن جایی که سلول باتری استفاده شده ۳٫۷ ولت است، پیشنهاد میکنم در حالت ۳٫۳ ولت استفاده کنید. برای این منظور کنار پورت میکرو USB یک جامپر به اسم J1 قرار دارد. کافیست این جامپر را از حالت اتصال خارج کنید.
فراخوانی کتابخانه :
در این آموزش من از کتابخانهی neopixel استفاده کردهام. برای دانلود کتابخانه به صفحه محصول حلقه ال ای دی LED Neo Pixel ring RGB مراجعه و در انتهای صفحه لینک کتابخانه وجود دارد.
کدهای برنامه
#include <Adafruit_NeoPixel.h> #define PIN 3 Adafruit_NeoPixel strip = Adafruit_NeoPixel(64, PIN, NEO_GRB + NEO_KHZ800); void setup() { strip.begin(); strip.setBrightness(40); //adjust brightness here strip.show(); // Initialize all pixels to 'off' } void loop() { //colorWipe(strip.Color(255, 0, 0), 50); // Red //colorWipe(strip.Color(0, 255, 0), 50); // Green //colorWipe(strip.Color(0, 0, 255), 50); // Blue // Send a theater pixel chase in... theaterChase(strip.Color(127, 127, 127), 50); // White theaterChase(strip.Color(127, 0, 0), 50); // Red theaterChase(strip.Color( 0, 0, 127), 50); // Blue //rainbow(20); //rainbowCycle(20); theaterChaseRainbow(100); } // Fill the dots one after the other with a color void colorWipe(uint32_t c, uint8_t wait) { for(uint16_t i=0; i<strip.numPixels(); i++) { strip.setPixelColor(i, c); strip.show(); delay(wait); } } void rainbow(uint8_t wait) { uint16_t i, j; for(j=0; j<256; j++) { for(i=0; i<strip.numPixels(); i++) { strip.setPixelColor(i, Wheel((i+j) & 255)); } strip.show(); delay(wait); } } void rainbowCycle(uint8_t wait) { uint16_t i, j; for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel for(i=0; i< strip.numPixels(); i++) { strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255)); } strip.show(); delay(wait); } } void theaterChase(uint32_t c, uint8_t wait) { for (int j=0; j<10; j++) { //do 10 cycles of chasing for (int q=0; q < 3; q++) { for (int i=0; i < strip.numPixels(); i=i+3) { strip.setPixelColor(i+q, c); //turn every third pixel on } strip.show(); delay(wait); for (int i=0; i < strip.numPixels(); i=i+3) { strip.setPixelColor(i+q, 0); //turn every third pixel off } } } } void theaterChaseRainbow(uint8_t wait) { for (int j=0; j < 256; j++) { // cycle all 256 colors in the wheel for (int q=0; q < 3; q++) { for (int i=0; i < strip.numPixels(); i=i+3) { strip.setPixelColor(i+q, Wheel( (i+j) % 255)); //turn every third pixel on } strip.show(); delay(wait); for (int i=0; i < strip.numPixels(); i=i+3) { strip.setPixelColor(i+q, 0); //turn every third pixel off } } } } uint32_t Wheel(byte WheelPos) { if(WheelPos < 85) { return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0); } else if(WheelPos < 170) { WheelPos -= 85; return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3); } else { WheelPos -= 170; return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3); } }
برای تغییر سرعت برنامه ال ای دی کافیست عدد کد زیر را که ۱۰۰ میباشد، تغییر دهید.
theaterChaseRainbow(100);
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام خانم مهندس
خیلى آموزشتون جالب بود، تشکر میکنم، فقط سوالى داشتم من اگر بخواهم این عینک را آماده تهیه کنم، چه باید بکنم؟
سلام
خوشحالم که مفید بوده ، برای خرید این عینک از طریق لینک زیر اقدام نمایید.
خرید عینک ال ای دی
سلام اموزشتون خیلی خوب بود فقط میشه برای تزئین چیزای دیگه مثل ماشین ویا موتور سکلیت از این پروژه استفاده کرد و یک سوال دیگه هم از همین نوع ال ای دی به جای مدل دوازده تایی از مدل هشت تایی استفاده کنیم فرقی نداره
سلام
برای استفاده در موارد دیگر هم میتوانید استفاده کنید. بسته به سلیقهتان در وسایل مختلف میتواند باعث جذابیت شود. همچنین برای راه اندازی از نوع ۸ تایی هم میتوانید استفاده کنید.
سلام
ممنون از آموزشتون
چطوری میتونم یه حلقه با ال ای دی ۲۴ تایی یا ۳۶ تایی بخرم یا بسازم؟
نقشه برد این حلقه هارو دارین؟
سلام
برای ساخت باید از نقشه استفاده کنید که بنده نقشه های مربوط به این ماژول را ندارم ولی از طریق لینک حلقه ال ای دی ۱۶ تایی LED Neo Pixel Ring RGB میتوانید مدل ۱۶ تایی ال ای دی را تهیه نمایید.
با سلام
می خواستم بدونم که این ماژول چگونه راه اندازی می شود با درگاه های ارتباطی نظیر spi,I2c و……. یا از طریق پالس pwm؟
سلام
این نوع ال ای دی از LED RGB تشکیل شده است و از طریق موج مربعی و یا همان PWM میتوانید آدرس دهی و راه اندازی کنید.
سلام
ممنون از این آموزش
فقط من مراحل و پیش رفتم اما امکان بارگزاری کتابخانه رو روی آردینو ندارم و با پیغام ارور مواجه میشم و خطای کد میده ممنون میشم راهنمایی کنید
با سلام
لطفا ارور دریافتی را ارسال کنید تا بررسی شود.
با سلام
خسته نباشید
یه دنیا تشکر بابت این آموزش
سوالی داشتم راجب به این که میتونم از rgb bar های دیگه هم استفاده کنم ؟ در اون صورت چه کتابخانه رو باید در ابتدا کد صدا بزنم؟ هر کدوم از این bar ها کتابخانه های مخصوص خودشون رو دارن؟
یه تعداد سوال دیگه در زمینه سخت افزار آردینو داشتم چطور میتونم باهاتون در ارتباط باشم؟
سلام
با توجه به تراشه به کار رفته در هر ال ای دی میبایست دیتاشیت آن را بررسی کرده و سپس کتابخانه های مورد نیاز را نصب کنید. با توجه به نوع ال ای دی کتابخانه های مخصوص به آن ارائه شده است.
در خصوص سوال دوم، روال به همین صورت است. سوالات خود را در پست های مرتبط با مشکل خود مطرح کنید تا بررسی و پاسخ داده شود.