آموزش رزبری پای با پایتون - قسمت سوم - چالش رقص نور

آموزش رزبری پای با پایتون - قسمت سوم - چالش رقص نور

آموزش رزبری پای با پایتون - قسمت سوم - چالش رقص نور
آموزش رزبری پای با پایتون - قسمت سوم - چالش رقص نور

سلام به همه.

بعد از اینکه من با موفقیت تونستم کلید رو به رزبری وصل کنم، زئوس به من گفت پایه هستی یه چالش باحال بهت بدم؟ با خوشحالی قبول کردم و گفتم من مرد روز های سخت و چالشی هستم. اونم خندید و گفت یه برنامه بنویس که وقتی یه بار دکمه رو فشارمیدی LED روشن بشه، وقتی ۲ بار فشار میدی LED چشمک بزنه و وقتی دکمه رو به مدت ۳ ثانیه نگه میداری، LED خاموش بشه (صد البته که من عاشق پایتون هستم و این چالش رو هم به زبان پایتون برنامه نویسی و حلش میکنم).

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

اولین چیزی که به ذهنم رسید این بود که یدونه فلگ بزارم برا اینکه چک کنم چه زمانی باید LED روشن و چه زمانی باید LED خاموش باشه. دوتا تابع هم لازم داشتم برا اینکه LED رو خاموش و روشن کنم.

که میشه این

یه فلگ هم لازم داشتم برای اینکه چک کنم ببینم چه زمانی باید LED ثابت و چه زمانی باید LED چشمک زن باشه:

دوتا متغیر هم باید برای محاسبه زمان فشرده شدن دکمه داشته باشم:

حالا باید چک کنم وقتی دکمه فشار داده میشه تا وقتی رها میشه چقدر زمان میبره:

 

بعد از این باید بررسی میکردم ببینم آیا در حال حاظر باید LED خاموش باشه یا روشن و توابع مربوط به اون رو فراخوانی کنم:

حالا باید دید که دفعه چنده که دکمه فشرده میشه و LED باید خاموش باشه یا روشن:

در این مرحله هم این تیکه ها رو به مرحله چک کردن دکمه اضافه کردم:

اگه قرار بود LED رو خاموش کنم باید push_time رو برابر 0 میکردم پس:

و شما الان به همراه من این چالش رقص نور جذاب رو انجام دادین که کد کاملش رو میتونید اینجا ببینید:

حالا که به اینجا رسیدیم و دیدن که چقدر رااحت میشه این جور چالش ها رو حل کرد یه پیشنهاد دوستانه هم برای شما دارم:

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

1 نفر

پــــســنــدیـده انـد

توجه

xander karimi
xander karimi

گونه ای از برنامه نویس های نادر و کم یاب. در بر گیرنده انواع و اقسام باگ های ناشناخته. مدافع حقوق این روی سیستم من کار می‌کنه. ابداع کننده انواع روش های سامورایی در برنامه نویسی

دیدگاه ها

0 دیدگاه

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 3 سال پیش
راه اندازی LCD گرافیکی Nokia 1661

راه اندازی LCD گرافیکی Nokia 1661

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش
ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش
همه چیز درباره ریموت کنترل‌های هاپینگ

همه چیز درباره ریموت کنترل‌های هاپینگ

امنیت همیشه و در همه‌ی اعصار، مقوله‌ی مهم و قابل‌توجه‌ ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموت‌های کنترل خواهیم پرداخت....

Zeus ‌ Zeus ‌
  • 5 سال پیش
مسابقه سوم: استخراج داده از رشته ها در زبان C

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش
مسابقه ششم: بزن میکروکنترلر را بسوزون!

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 12 ماه پیش
آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش
کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

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

Mahdi.h   Mahdi.h  
  • 3 سال پیش
ساخت ماینر با FPGA و ARM

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش
مسابقه چهارم: کدام حلقه سریع‌تر است؟

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 2 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک