امروزمهر ۹, ۱۴۰۲

آموزش ساخت: چراغ مطالعه ای که روح دارد [Arduino]

این چراغ روباتیک به محرک های محیط اطرافش پاسخ می دهد و می تواند با کاربر تعامل داشته باشد

این چراغ روباتیک به محرک های محیط اطرافش پاسخ می دهد و می تواند با کاربر تعامل داشته باشد

در این پست ساختنی، آموزش ساخت یک چراغ مطالعه را برایتان آماده کرده ایم که با سایر چراغ های مطالعه ای که تابحال دیده اید فرق دارد. نام این چراغ مطالعه که بیشتر شبیه ربات است، OiO است و طوری رفتار می کند که انگار کاملاً محیط اطرافش را درک می کند و روح دارد!

اگر شما هم طرفدار اشیا و وسایلی هستید که با محیط اطرافشان تعامل دارند، حتماً این ساختنی را بسازید. این چراغ مطالعه از طریق حواسش به صداهای محیط یا نزدیک شدن افراد واکنش نشان می دهد، عطسه می کند، متوجه گذشت زمان می شود، می خوابد و ناراحت و خوشحال می شود. اگر فکر می کنید اینها غیرممکن است، ویدیوی زیر را ببینید تا متوجه شوید که OiO چیزی بیشتر از یک چراغ مطالعه معمولی است.

روش ساخت oiO طوری است که ساخت آن تا حد امکان آسان و مقرون به صرفه باشد و شخصی سازی آن هم آسان باشد. در ادامه با ساختنی همراه باشید و تمام جزییات و کدهای لازم برای ساخت این چراغ مطالعه شگفت انگیز را بخوانید.

گام اول: وسایل موردنیاز

  • یک برد آردوینو Uno که نقش مغز ربات را ایفا می کند
  • یک حسگر مجاروتی IR که باعث تشخیص فاصله می شود
  • سه عدد میکرو سروو (micro servo) که نقش مفاصل را ایفا می کند
  • دو سلول NeoPixel mini که نقش چشم ها را ایفا می کنند
  • یک سنسور صدا که به نقش گوش را ایفا می کند
  • یک باتری ۱۱٫۱v 1300mA برای تامین انرژی
  • یک چراغ مطالعه USB کوچک
  • یک راکر سوئیچ
  • کمی سیم نازک، چند جعبه کوچک، دستگاه لحیم
  • کمی میله چوبی یا پلاستیکی برای ساخت بدنه ربات (قطعات رباتی که در ویدیو دیدید، با استفاده از پرینتر سه بعدی تهیه شده اند، اما شما می توانید این قطعات را با هر روش دیگری تهیه کنید)

کدهایی که روی آدروینو اجرا می شوند، باعث تعاملی شدن این چراغ مطالعه می شوند. این کدها باعث درک اطلاعات محیط می شوند و این اطلاعات را از طریق مفاصل و چشم های oiO به رفتار و حرکات این چراغ ترجمه می کنند. در ادامه یکی از مراحل را برای توضیح این قسمت کار اختصاص داده ایم.

دقت داشته باشید که برای ساخت oiO می توانید از هر نوع آدروینو سروو که خواستید استفاده کنید. علاوه براین می توانید بجای نئو پیکسل ها از دو LED RGB معمولی استفاده کنید. اما تمام این جایگزینی نیاز به تغییر طراحی و کدها دارد و کمی هم روی نتیجه نهایی تاثیر می گذارد. به این خاطر که برای گرفتن نتیجه مشابه از LED ها به ۶ پین PWM و کدهای پیچیده تری نیاز دارید؛ درحالیکه نئوپیکسل ها فقط به یک پین برای کنترل هر دو چشم نیاز دارند.

برای سنسورهای صدا و مجاورتی در این ساختنی از مدلی استفاده شده که خروجی دیجیتال داشته باشد. این انتخاب بسیاری از کدها را ساده تر می کند زیرا آی سی هایی روی برد هستند که تشخیص و اجرای حالات کم و زیاد را مدیریت می کنند و مقادیر آماده آردوینو را در اختیار شما قرار می دهند.

گام دوم: اسکلت

از آنجاییکه چراغ oiO بخاطر ویژگی هایش باید سبک و انعطاف پذیر باشد و در عین حال در برابر ضربه هم مقاوم باشد، تصمیم گرفتیم قطعات ساده ای برای اسکلت آن طراحی کنیم و آنها را با استفاده از پرینتر سه بعدی بسازیم.

اگر به پرینتر سه بعدی دسترسی ندارید، می توانید خودتان این قطعات را بسازید. طراحی تمام قطعات را با فرمت STL در یک فایل برایتان آماده کرده ایم.

لیست قطعات از پالا به پایین، چپ به راست:

  • پایه: ۲۴ در ۱۴ میلیمتر، قطر ۱۴ میلیمتر. این قطعه به سروو اصلی (سروو ۱) وصل می شود
  • ستون روی پایه: ۱۰ در ۷۳ میلیمتر. این قطعه بصورت مایل روی پایه قرار می گیرد
  • ساق بالایی: ۱۰ در ۹۹ میلیمتر. این ساقه از طرف به ستون روی پایه و از طرف دیگر به سروو ۲ وصل می شود
  • بدنه: ۷۹ در ۲۳ میلیمتر. سروو ۲ و سروو۳ را به هم وصل می کند
  • گردن: ۲۵ در ۱۱ میلیمتر، قطر ۱۱ میلیمتر. این قطعه به سروو ۳ وصل می شود
  • سر: این قطعه پرینت نشده است. فقط باید یک چراغ رومیزی USB بردارید و سر آن را جدا کنید

می توانید تمام ابعاد و طراحی های قطعات را تغییر دهید اما باید حواستان باشد که نسبت طول ستون و بدنه از ۳:۲ بیشتر نشود و سرووها بخوبی به بدنه وصل شده باشند و بتوانند آن را بلند کنند. هنگام متصل کردن یک بازو به سروو به یاد داشته باشید که هرچه بازو بلندتر باشد کار سروو سخت تر خواهد شد. و ممکن است گشتاور آن کافی نباشد (فرمول گشتاور را به یاد دارید: d x F). d فاصله لبه از مرکز چرخش است و هرچه این فاصله بیشتر باشد، گشتاور بیشتری نیاز است.

اگر به پرینتر سه بعدی دسترسی ندارید، توصیه می کنیم از چوب بالسا استفاده کنید. این نوع چوب بسیار منعطف است و کار با آن بسیار آسان است، برای بریدن و چسباندن آن هم فقط به کاتر و چسب قطره ای نیاز دارید.

حالا باید سراغ وصل کردن قطعات بدنه و سروو ها برویم.

گام سوم: وصل کردن اسکلت و قطعات به یکدیگر

اگر تمام قطعات را طبق اندازه های ما ساخته باشید، این راهنما به شما کمک می کند. اما اگر خودتان اندازه و طراحی قطعات اسکلت را تغییر داده باشید، می توانید از این راهنما به عنوان یک راهنمای کلی برای وصل کردن قطعات الکترونیکی و اسکلت به هم استفاده کنید.

مرحله اول (تصویر اول)

۱- با دریل دو سوراخ در قطعه پایه ایجاد کنید. ابتدا بازوی سروو را با یک پیچ به شفت سروو ۲ وصل کنید و سپس با دو پیچ، پایه را به بازو وصل کنید.
۲- ستون روی پایه را به قطعه پایه ببندید.
۳- ساق بالایی را به فاصله قطعه ستون روی پایه ببندید و با استفاده از یک زیپ پلاستیکی این دو قطعه را به هم ببندید.
۴- همانطور که در تصویر می بینید، با یک پیچ ساق بالایی را به سروو ۲ وصل کنید. بازوی سروو را به یک پیچ به شفت سروو وصل کنید. قطعه بدنه را هم با یک پیچ اضافی به بازوی سروو ۲ وصل کنید.
۵- ابتدا با یک پیچ بازوی سروو را به سروو ۳ وصل کنید. سپس دو سوراخ در قطعه گردن ایجاد کنید و ان را با دو پیچ به بازوی سروو ۳ وصل کنید.
۶- با یک پیچ انتهای U شکل قطعه بدنه را به سروو ۳ وصل کنید.

مرحله دوم (تصویر دوم)

۱- ابتدا دو چراغ نئوپیکسل را به هم لحیم کنید. سپس سیم های آنها را از عقب چراغ که باز است عبور دهید.
۲- سنسور مجاورتی IR را در نزیدک ترین نقطه ممکن به سر ثابت کنید؛ طوریکه نور IR روی پره های کناری سر چراغ نیفتد.
۳- می توانید از سیم یا طناب اضافی سروو برای سیم کشی سنسور مجاورتی استفاده کنید.

مرحله سوم (تصویر سوم)

بعد از بستن ساق بالایی به ستون روی پایه، از یک زیپ پلاستیکی برای بستن آنها به هم استفاده کنید.

سپس همنیکار را کمی پایین تر هم تکرار کنید تا از هم جدا شوند.

گام چهارم: الکترونیک

 

منبع تغذیه

چراغ oiO از یک باتری قابل شارژ ۱۱٫۱v 1300mA (که بیشتر در هواپیماها و ماشین های کنترلی استفاده می شود) برای تامین انرژی استفاده می کند. با استفاده از این باتری، چراغ مطالعه می تواند برای ۱۳ ساعت بدون وقفه کار کند. برای کاهش مصرف برق oiO، از حالت اسلیپ آردوینو و حقه های دیگر استفاده شده است.

از آنجاییکه برخی از قطعات این چراغ به انرژی زیادی نیاز دارند (۳ سروو و ۲ نئوپیکسل)، یک منبع انرژی تنظیم شده خارجی ۵ ولتی (حداکثر ۱amp) و یک تنطیم کننده خطی ۷۸۰۵ هم استفاده کردیم. برق آردوینو هم از بیرون تنظیم می شود اما از تنظیم کننده خودش استفاده می شود. به این ترتیب بارهای خازنی از آردوینو به کلی جدا شده اند. همچنین یک ۱۰۰mF هم به پاور ریل +/- سرووها اضافه شده تا به ثابت نگه داشتن ولتاژ بعد از حرکت ناگهانی سرووها کمک کند. گذشته از اینها، بهتر است یک خازن ۱۰۰۰mF هم روی ورودی برق +/- نئوپیکسل ها بگذارید.
انرژی سنسور مجاورتی IR و سنسور صدا هم از منبع تنظیم شده ۵ ولتی تامین می شود.

فراموش نکنید که خروجی زمین منبع تغذیه خارجی را به پین زمین آردینو وصل کنید.

راکر بین باتری و ریست مدار قرار می گیرد و سوئیچ هم روی پایه مثبت باتری گذاشته می شود.

کنترل های خروجی

سرووها

سه سروو بکار رفته در این مدار، با یک خط سیگنال PWM کنترل می شوند که به سادگی از طریق کتابخانه Servo.h آردوینو قابل دسترسی است. سرووها را باید مطابق روش زیر وصل کنید:

  • سروو ۱ (ساقه): پین ۳
  • سروو ۲ (زائد): پین ۵
  • سروو ۳ (سر): پین ۶

نئو پیکسل ها

دو پیکسل این سازه با یک خط کنترل، کنترل می شوند (و از طریق یک مقاومت ۴۷۰ اهمی کار می کنند). کنترل از یک پروتکل دیجیتال (I2C) برای کنترل جداگانه هر پیکسل استفاده می کند. در پایان کار خواهید دید که می توانید پیکسل ها را به سادگی کنترل کنید و رنگ های مختلفی را برای آنها انتخاب کنید. مصرف برق هر پیکسل با ۱۰۰ درصد روشنایی، ۶۶mA می باشد. (وقتی پیکسل ها روشن هستند، نباید مستقیماً به آنها نگاه کنید).

نئوپیکسل ها از طریق پین ۱۲ آردوینو کنترل می شوند.

ورودی ها

سنسور مجاورتی IR

این سنسور معمولاً در اکثر ربات ها استفاده می شود. این سنسور یک خروج دیجیتال دارد که وقتی یک شی به آن نزدیک شود، فعال یا HIGH می شود. اگر در فاصله ۱۲ سانتیمتری این سنسور مانعی وجود نداشته باشد، سنسور LOW می شود. این سنسور از یک تراشه روی برد و یک ال ای دی قرمز SMD استفاده می کند که به تشخیص موانع کمک می کند.

خروجی سنسور مجاورتی با پین ۸ آردوینو خوانده می شود.

سنسور صدا

این سنسور هم یک خروجی دیجیتال دارد که به این معناست که درباره بلندی یا فرکانس صدا به شما اطلاعات نمی دهد. بلکه با تشخیص صدا خروجی اش HIGH می شود و در غیر اینصورت خروجی LOW می ماند. می توانید میزان حساسیت این سنسور را با چرخاندن دکمه روی برد تغییر دهید. با قرار دادن دکمه روی MAX چراغ می تواند صدای کف زدن را در هر جای اتاق تشخیص دهد.

خروجی سنسور صدا با پین آنالوگ ۰A آردوینو خوانده می شود. اما از آنجاییکه خروجی این سنسور دیجیتال است می توانید آن را به هر یک از پین های دیجیتال آردوینو وصل کنید و بجای پین آنالوگ از پین دیجیتال استفاده کنید.

وصل کردن تمام قطعات به یکدیگر

می توانید نحوه چینش و اتصال قطعات روی پی سی بی یا برد را طبق میل خودتان انجام دهید. همه قطعات را روی پی سی بی لحیم کنید، کانکتورها و سیم ها را طبق طراحی وصل کنید. سپس با استفاده از سیم های جامپر تخته را به آردوینو وصل کنید، در نهایت هم باتری، سوئیچ و کانکتور ۹ ولتی آردوینو به باتری را وصل کنید. حالا همه قطعات را در یک جعبه قرار دهید و روی جعبه هم خروجی های یو اس بی، شارژر، سرووها و سیم های سنسورها را ایجاد کنید.

گام پنجم: کدها

کدهایی که برای ساخت این چراغ بکار می روند، با توجه به قطعات مورد استفاده تغییر می کنند

کدهایی که برای ساخت این چراغ بکار می روند، با توجه به قطعات مورد استفاده تغییر می کنند

در این قسمت کار نتیجه تمام تلاش هایتان را خواهید دید. درواقع بعد از ایجاد قطعات فیزیکی oiO باید مغز و روح آن را با استفاده از کدها بسازید.

در ابتدا باید برنامه Arduino IDE را روی کامپیوترتان نصب کنید. اگر تصمیم دارید از نئوپیکسل استفاده کنید باید کتابخانه Adafruit را هم بصورت دستی نصب کنید.

تمام کدهای موردنیاز برای ساخت این روبات را می توانید در فایل های پیوست این پست پیدا کنید. به یاد داشته باشید که این کدها برای قطعاتی که ما استفاده کرده ایم، نوشته شده اند و به همین خاطر ممکن است برای شما خوب کار نکنند. به همین خاطر برای رسیدن به مقادیر درست باید خیلی تلاش کنید.

مقدمه

برای ما ویژگی اصلی oiO، تعاملی و واکنشی بودن آن است. این چراغ باید بتواند به محیط اطرافش واکنش نشان دهد، خود به خود میزان نور را تغییر دهد و پوزیشن را هم تغییر دهد.

هنگام ساخت این چراغ روباتیک، سوالاتی پیش آمد که ما آن سوال ها و جواب هایشان را برای شما آماده کرده ایم تا با مراحل و نحوه نگارش کدها آشنا شوید.

۱- چگونه می توان ۳ سروو را بصورت همزمان یا جداگانه حرکت داد؟
۲- چگونه می توان حرکت چراغ را آسانتر کرد و حرکات شناور را هم تسهیل کرد؟ و چگونه سرعت سرووها را کنترل کرد تا بتوان رفتارهای متفاوت تولید کرد؟
۳- چگونه می توان سنسورها و سرووها را بصورت موازی خواند و کنترل کرد با علم به اینکه آردوینو از عملکردهای چند وظیفه ای پشتیبانی نمی کند؟
۴- چگونه می توان رفتار oiO را باورپذیر کرد و از واکنش های رباتیک شبیه به ورودی ها جلوگیری کرد (به این خاطر که م خواهیم ربات به ورودی های مشابه، واکنش های مختلف نشان دهد)؟ همه اینها باید در حالتی محقق شود که آردوینو کدها را فقط از بالا به پایین و سپس حلقه ها را می خواند.
۵- آردوینو باید متوجه گذشت زمان شود.

همه اینکارها با حافظه داینامیک ۳۲ کیلوبایتی آردوینو برای کدها و در عین سادگی انجام شده است.

تمام واکنش ها و تعاملاتی که در ویدیو مشاهده کردید، تنها با استفاده از ۱۷ درصد از حافظه کدها اجرایی شده است و فضای کافی برای بهبود وجود دارد.

در ادامه پاسخ تفصیلی سوال هایی که در بالا مطرح شد را می خوانید.

سوال اول و دوم

بطور معمول حرکت سه سروو بصورت همزمان روی آردوینو امکان ندارد. به همین خاطر باید تابعی بنوسیم که سه سروو و سه پوزیشن هدف برای آنها مشخص کند. علاوه براین به یک فاکتور تسهیل کننده برای کنترل سرعت و تسهیل حرکت سرووها نیاز داریم. این تابع سرووها را بجای write() با writeMicroseconds() کنترل می کند؛ این کد بدلیل داشتن طیف وسیعتری از مقادیر، کنترل دقیقتری را فراهم می کند و سرووها را با تنظیم دقیق عرض پالس در کسری از ثانیه کنترل می کند.

این تابع در زیر آمده است:

void <strong>move3Servos</strong>(Servo <strong>servo1Name</strong>, float<strong> target_pos1</strong>,Servo <strong>servo2Name</strong>, float <strong>target_pos2</strong>,Servo <strong>servo3Name</strong>, float <strong>target_pos3</strong>,float <strong>easing</strong>)<br>

target_posX- : پوزیشن شروع و پایان را بین ۶۰۰ تا ۲۴۰۰ میلی ثانیه محدود می کند. برخی از سرووها بین ۱۰۰۰ و ۲۰۰۰ کار می کنند. قبل از تنظیم مقادیر محدودیت های سرووها را امتحان کنید.

easing- : مقداری بین ۰٫۰ و ۵٫۰ است؛ طوریکه:

  • مقادیر بین ۰٫۰ و ۱٫۰ موجب شروع سریع حرکت و پایان کند حرکت سرووها می شود. مقادیر نزدیک صفر (مثل ۰٫۰۵) واکنش ها را آهسته تر می کند و مقدار ۰٫۱ به اندازه کافی سریع است.
  • مقادیر بین ۱٫۰ و ۵٫۰ فاکتور تسهیل کننده محسوب نمی شوند و موجب تغییر رفتار سرووها می شوند. این مقادیر باعث شروع حرکت خطی و پایان آن در مقدار تعیین شده می شوند. مقدار ۲٫۰ بسیار کند است اما مقدار ۵٫۰ به اندازه کافی سریع است.

برای شبیه سازی کنترل همزمان سه سروو، این تابع هر سروو را بصورت جداگانه و مرحله ای کنترل می کند. به این ترتیب که ابتدا سروو ۱ را یک گام کوچک جلو می برد، سپس سروو ۲ را یک گام کوچک جلو می برد و بعد نوبت به سروو ۳ می رسد. اینکار به همین ترتیب آنقدر ادامه می یابد که هر سه سروو به پوزیشن هدف می رسند. در پایان هم بنظر می رسد سروو ها همه با هم حرکت کرده اند و به پوزیشن نهایی رسیده اند.

سوال ۳ و ۴

ترفند ما برای حل این مشکل این بود که خوانش مقادیر سنسورها را از حرکت سرووها و چشم ها جدا کنیم. به این ترتیب می توان شمارشگری ساخت که تعداد تشخیص صدا و مجاورت را می شمارد و زمان بین این ورودی ها را هم محاسبه می کند. این شمارشگر و محاسبه کننده اختلاف زمان را می توان بعداً در عملکرد سرووها و چشم ها بکار برد. ما مقادیر شمارش شده را امتحان کردیم تا مشخص شود بین هر تشخیص چقدر فاصله بوده است. برای مثال، oiO می تواند کاربری که سه دفعه و پشت سرهم برای او ورودی فرستاده است را تشخیص دهد و با چراغ قرمز عصبانیت خود را نشان داده است. همچنین کاربری که با حرکت آرامتر به آن نزدیک شده را تشخیص داد و با نور آبی و حرکات نرمتر به آن کاربر پاسخ داد.

بطور خلاصه، ابتدا مقدار سنسور را دریافت می کند و بعد عمل می کند. اما تا وقتی که حلقه آردوینو با سرعت کافی کار کند، کاربر متوجه تاخیر نخواهد شد.

سوال ۵

تاوقتی که آردوینو به یک مرجع زمان خارجی وصل نشده باشد، نمی تواند زمان درست را تشخیص دهد. به همین خاطر oiO با استفاده از تابع millis() از زمانبندی درون آردوینو استفاده می کند که تعداد میلی ثانیه های استارت و ریست آردوینو را هم می شمارد. به این ترتیب چراغ می تواند فواصل زمانی را محاسبه کند؛ برای مثال ۱۵ دقیقه گذشته است و باید اینکار را بکنم یا الان ۶۰ ثانیه است که کاربر با من تعاملی نداشته است.

...
//oiO will go to sleep if no action by user for more than 'sleepIfNoActionTimer' seconds
if((millis() - lastAction) > sleepIfNoActionTimer) {
  doseOff();
}
<p>//oiO will sneeze each 'sneezeTimer' min (will not be recorded as a user action)</p>if(millis() % sneezeTimer == 0) {
  sneeze();
}
...

به عنوان مثال oiO اینطور تشخیص می دهد که در یک ساعت گذشته هیچ کاربری با آن تعامل نداشته است و شروع به خم شدن و بعد هم خاموش شدن می کند.

کنترل چشم ها

ما از کتابخانه Adafruit استفاده کرده ایم زیرا تابع های جالبی را برای کنترل نئوپیکسل ها در اختیار کاربر قرار می دهد. ما خودمان هم به این تابع ها یک تابع setEyesColor() و dimmer() اضافه کردیم تا دسترسی راحت تری به تغییر رنگ چشم ها و کاهش رنگ با کاهش جهت و سرعت داشته باشیم.

  • a : حداقل نور
  • b : حداکثر نور
  • r,g,b : نشان دهنده ترکیب رنگ RGB است که هرکدام می تواند مقادیری بین ۲۵۵-۰ داشته باشد.
  • fadeDirection (جهت محو شدن): که می تواند ۱ (بالا)، ۲ (پایین) و ۳ (نزولی) باشد.
  • stepSpeed : که برای چند میلی ثانیه مراحل محو شدن رنگ را به تاخیر می اندازد.

نتیجه گیری

ساختنی به شما توصیه می کند حتماً کدها را بخوانید و آنها را درست درک کنید تا بتوانید آنها را مطابق نیازتان تغییر دهید. تمام متغیرها در مرحله اولیه نگارش کدها، باید طبق نیازهای شما تنظیم شوند.

گام ششم: بهبود عملکرد چراغ روباتیک

همانطور که قبلاً اشاره شد این چراغ جای پیشرفت زیادی دارد. به همین خاطر ما راهنمایی ها برای شما اماده کرده ایم، که اگر خواستید عملکرد oiO را بهبود ببخشید از آنها استفاده کنید.

۱- بهبود مقاومت و کارایی فیزیکی اسکلت و بهبود طراحی چراغ
۲- کنترل نرمتر سرووها
۳- کاهش مصرف انرژی با تعریف حالت اسلیپ و جایگزین کردن رگولاتور خطی با انواع متغیر آن
۴- فراهم کردن امکان انتخاب پوزیشن شروع چراغ که محل ارائه عملکرد اصلی چراغ یعنی نوردهی را تامین می کند
۵- کنترل همزمان سرووها و رنگ چشم ها
۶- اتصال oiO به اینترنت برای استفاده از شبکه های اجتماعی و ایمیل و تغییر رفتار چراغ برمبنای محتوای آنها
۷- افزودن یک سنسور صوتی دیگر برای تشخیص محل صدا و ساخت یک آمپلی فایر VCG
۸- افزودن دوربین
۹- مخفی کردن تمام قطعات فوق

ساخت چراغ روباتیک oiO هم بسیار سرگرم کننده است و هم تجربه زیادی درباه نحوه کدنویسی و ساختن اشیای تعاملی در اختیارمان قرار می دهد. پس فرصت ساخت و تجربه این ساختنی منحصر به فرد را از خودتان نگیرید.

کدهای و الگوهای موردنیاز برای ساخت این چراغ رباتیک را از لینک زیر دریافت کنید.

[wpdm_file id=3]

منبع

یک نظر

    1. مهرداد جمالی

      بله این پروژه بر اساس آردوینو که یک دستگاه نسبتا پیچیده ولی بسیار قدرتمند هست درست میشه،انشاالله در پروژه های بعدی روش ساخت چراغ مطالعه آسان تر هم می گذاریم،البته اکنون هم چند پروژه در سایت موجوده

  1. liberty

    با سلام
    موقع برنامه ریزی آردیونو با استفاده ار فایل هایی که برای دانلود گذاشتید با این ارور مواجه میشم:

    Sketch uses 49,490 bytes (153%) of program storage space. Maximum is 32,256 bytes.

    مگه شما با همین فایل برنامه ریزی نکردید؟ چرا حجمش بیشتر از حجم برد آردیونو uno ؟
    برای رفع این مشکل اگر راهنمایی بفرمایید ممنون میشم.
    باتشکر

    1. مهرداد جمالی

      محصولات آردوینو از یک استاندارد طبعیت می کنند و با هم سازگار هستند. اگر امکانات استفاده شده آردوینو UNO در این پروژه در آردوینو Nano هم موجود باشد می توانید به سادگی از Nano به جای UNO استفاده کنید. همه این محصولات را می توانید از فروشگاه ساختنی خریداری کنید :
      https://kiyan.cc/product-category/electronic/components-modules/platform-development-boards

  2. sobahn1300

    همه چی شو ساختم فقز کد ها و نمیدونم خازنا چیه
    کدارو وقتی میزنم ارور میده
    Arduino: 1.8.4 (Windows 8.1), Board: “Arduino/Genuino Uno”

    SLO:405: error: too many decimal points in number

    between 1000 and 2000…

    ^

    C:\******\SLO.ino:532:14: warning: character constant too long for its type

    according to ‘fadeDirection’, with a given ‘stepSpeed’ between steps

    ^

    C:\**********\SLO.ino:532:44: warning: character constant too long for its type

    according to ‘fadeDirection’, with a given ‘stepSpeed’ between steps

    ^

    SLO:11: error: ‘the’ does not name a type

    the RGB codes

    ^

    SLO:47: error: ‘incremented’ does not name a type

    incremented.

    ^

    SLO:59: error: expected unqualified-id before numeric constant

    ۳۰ sec

    ^

    C:\*********\SLO\SLO.ino: In function ‘void loop()’:

    SLO:145: error: ‘black’ was not declared in this scope

    setEyesColor(black);

    ^

    SLO:158: error: ‘then’ was not declared in this scope

    then shy away, then reset all related variables

    ^

    SLO:159: error: ‘i’ was not declared in this scope

    for(int i=1;i Preferences.

  3. sobahn1300

    قایل ino طبق معمول ارور میده مجبور شدم از پی دی اف کپی کنم
    اگه اشکالی نداره کد هارو توی فایل نت پد قرار بدید و در این پست بزارید
    ممنون
    من اینو ساختم الان تو قسمت کد ها موندم لطف کنید کمک کنید

    1. مهرداد جمالی

      با سلام :
      – رگولاتور یا تنظیم کننده ولتاژ سری LM78xx هست که جای xx شماره های مختلفی قرار داره ، برای مثال ۷۸۰۵ به معنی رگولاتور ۵ ولت و ۷۸۰۳ رگولاتور ولتاژ ۳ ولتی است. اینجا می تونید از ۷۸۰۵ استفاده کنید.
      – دو قطعه ای که اشاره کردید خازن معمولی (خازن عدسی) هستند. می تونید از خازن ۱۰ نانوفاراد استفاده کنید (مقدار دقیق در اینجا مهم نیست).

  4. sobahn1300

    سلام و خسته نباشید
    من اینو ساختم ولی توی سوال ۵ که نوشته شده میگه میره حالت اسلیپ ولی این ساعت ها اینگار آردینو رو ریستارت میکنی
    دوباره کد ها از اول اجرا میشه
    و حالت اسلیپ هم نمیره
    مشکل از چیه ؟

  5. mehtihoseyni

    سلام
    من اینو ساختم خیلیم خوبه دقیقا مثل خودش کار میکنه
    ولی یه اشتباه داخل آموزش سایت هست که تونستم با خوندن کدها اونو پیدا کنم جالب اینجاس توی سایت لاتینی که خود سازندش هم گذاشته این اشتباه وجود داره
    اونم اینه که پایه های سنسورهای صدا و IR رو جابجا توی عکسها کشیدن درصورتی که کدها برعکس تعریف شدن پایه های دوتا سنسور رو باهم عوض کنید درست میشه موفق باشید.

دیدگاهتان را بنویسید