در بهش نهم از سری آموزش های میکروپایتون با برد رزبری پای پیکو به یکی از کاربردی ترین توابع و کلاس های مورد نیاز برای برنامه نویسی دیوایس ها میرسیم. در آموزش تایمر با پیکو روش ایجاد تاخیر در برنامه ها، تایمینگ و تایمر را یاد خواهیم گرفت. در ادامه آموزش Delay و تایمر با پیکو با مرجع تخصصی رزبری پای به زبان فارسی، دیجی اسپارک همراه باشید.
Delay & Timing
برای ایجاد تاخیر در برنامه از ماژول تایم استفاده میکنیم. روش فراخوانی تایمر با پیکو به صورت زیر است.
جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.
متد time تعداد ثانیه های صرف شده از زمان Epoch را باز میگرداند. برای سیستم ساعت یونیکس Unix Time برابر با یکم ژانویه ۱۹۷۰، ۰۰:۰۰:۰۰ ساعت هماهنگ جهانی(Coordinated Universal Time | UTC) Epoch است. نکته قابل تامل این است که زمان در سیستمهای کامپیوتری با ثانیه سنجیده میشود. همه زمانها یک مبدأ زمانی دارند که معادل یکم ژانویه سال ۱۹۷۰ میلادی در ساعت ۰۰:۰۰ بامداد است. زمان در کامپیوتر به صورت ثانیههای گذشته شده از ساعت مبدأ محاسبه شده و با انجام محاسبات به بازه های زمانی شکافته میشود. این تابع، زمان فعلی سیستم رابه عنوان دیتای خروجی برای ما نمایش میدهد.دیتاتایپ زمانی به صورت float است که معادل ثانیه های سپری شده از مبدا زمانی است.
1 |
time.time() |
1 2 3 |
import time seconds = time.time() print("Seconds since epoch =", seconds) |
Timer تایمر با پیکو
تایمر خارجی تراشه RP2040 یک پایگاه زمانی جهانی بر حسب میکروثانیه تامین میکند و سپس وقفه تولید میکند. تایمر نرم افزاری در حال حاضر در دسترس و قابل استفاده است. جهت استفاده از تایمرها از کلاس machine.Timer استفاده میکنیم. روش استفاده تایمر با پیکو در ادامه توضیح داده شده است.
جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.
تست Timer با رزبری پای پیکو
پایتون Python یکی از زبان ها برنامه نویسی محبوب این روزهاست. زبان برنامه نویسی پایتون به دو بخش Interpreter، Object -oriented تعریف میشود. میکروپایتون توسعه یافته از زبان برنامه نویسی پایتون است که منحصرا برای میکروکنترلرها و امبدد سیستم ها طراحی شده است و تفاوت های کمی در برنامه نویسی با پایتون دارد که با ورود به آن درک خواهید کرد. در این پروژه هدف تغییر وضعیت یک ورودی و خروجی است که برای درک عمیق مطلب از یک ال ای دی LED استفاده میکنیم.
استفاده از ماژول machine
ماژول machine از چندین دستورات خاص برای استفاده ی سخت افزاری از بردها تشکیل شده است. اکثر توابع موجود در این ماژول امکان دستیابی مستقیم و بدون محدودیت به بلوک های سخت افزاری را در سیستم فراهم می کند CPU ، تایمرها و برای اجرای پروژه هایی که برای تعریف ورودی و خروجی ها به آن نیاز داریم، بسیار کاربردی است. از آبجکت Pin در کدنویسی ماژول برای کنترل پایه های I/O استفاده میشود. نحوه ی فراخوانی ماژول برای پایه ها به صورت زیر است:
جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.
با کامپایل کد در Thonny Python ال ای دی با فرکانس ۱ بر روی پایه ی شماره ۴ چشمک زن میشود.
1 2 3 4 |
def blink(timer): led.toggle() timer.init(freq=1, mode=Timer.PERIODIC, callback=blink)<span style="color: #339966;"> </span> |
اتصالات تایمر با پیکو
برای انجام اتصالات پروژه تایمر با پیکو از تمامی پایه های GP سبز رنگ میتوانید استفاده کنید.
- پایه ال ای دی را به پایه GP14 اتصال دهید.
- پایه کوتاه را به پایه GND اتصال دهید.
وسایل مورد نیاز
جمع بندی لیدی پای
برای ایجاد وقفه در برنامه و متوقف کردن آن در یک بازه زمانی مشخص نیاز به استفاده از توابع و فانکشن های زمانی Time داریم. برای دسترسی به پکیج های زمانی از ماژول Time در پایتون استفاده میکنیم که بسیار گسترده است و با توجه به نیاز پروژه و برنامه ای که مینویسیم، اقدام به استفاده از دستورات و برنامه ها میکنیم. در این آموزش کلاس های مورد نیاز جهت فراخوانی آموزش داده شده است.
چنانچه در مراحل راه اندازی برد رزبری پای پیکو Picro و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
import time
seconds = time.time()
print(“Seconds since epoch =”, seconds)
سلام وقتتون بخیر.
تو این کد زمان معیار که ۱۹۷۰ هست، زمان حال چطور محاسبه می شه.
با سلام
برای محاسبه زمان فقط کافیست تابع زمانی فراخوانی شود و سپس فرکانس و مدل تایمر را مشخص کنید. این دستورات جز کلاس های پیش فرض برای تعریف تابع زمانی است.
سلام
از نوشتن شفاف و بدون کم و کاستی از شما ممنونم
سپاس از همراهی شما کاربر گرامی