در بهش نهم از سری آموزش های میکروپایتون با برد رزبری پای پیکو به یکی از کاربردی ترین توابع و کلاس های مورد نیاز برای برنامه نویسی دیوایس ها میرسیم. در آموزش تایمر با پیکو روش ایجاد تاخیر در برنامه ها، تایمینگ و تایمر را یاد خواهیم گرفت. در ادامه آموزش Delay و تایمر با پیکو با مرجع تخصصی رزبری پای به زبان فارسی، دیجی اسپارک همراه باشید.
Delay & Timing
برای ایجاد تاخیر در برنامه از ماژول تایم استفاده میکنیم. روش فراخوانی تایمر با پیکو به صورت زیر است.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
متد time تعداد ثانیه های صرف شده از زمان Epoch را باز میگرداند. برای سیستم ساعت یونیکس Unix Time برابر با یکم ژانویه ۱۹۷۰، ۰۰:۰۰:۰۰ ساعت هماهنگ جهانی(Coordinated Universal Time | UTC) Epoch است. نکته قابل تامل این است که زمان در سیستمهای کامپیوتری با ثانیه سنجیده میشود. همه زمانها یک مبدأ زمانی دارند که معادل یکم ژانویه سال ۱۹۷۰ میلادی در ساعت ۰۰:۰۰ بامداد است. زمان در کامپیوتر به صورت ثانیههای گذشته شده از ساعت مبدأ محاسبه شده و با انجام محاسبات به بازه های زمانی شکافته میشود. این تابع، زمان فعلی سیستم رابه عنوان دیتای خروجی برای ما نمایش میدهد.دیتاتایپ زمانی به صورت float است که معادل ثانیه های سپری شده از مبدا زمانی است.
time.time()
به عنوان مثال توابع زیر را بررسی کنید.
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 ال ای دی با فرکانس ۱ بر روی پایه ی شماره ۴ چشمک زن میشود.
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)
سلام وقتتون بخیر.
تو این کد زمان معیار که ۱۹۷۰ هست، زمان حال چطور محاسبه می شه.
با سلام
برای محاسبه زمان فقط کافیست تابع زمانی فراخوانی شود و سپس فرکانس و مدل تایمر را مشخص کنید. این دستورات جز کلاس های پیش فرض برای تعریف تابع زمانی است.
سلام
از نوشتن شفاف و بدون کم و کاستی از شما ممنونم
سپاس از همراهی شما کاربر گرامی
با سلام
فرق بین time , utime در چیست؟
با سلام تفاوت آنچنانی ندارد و کاربرد هر دو در برنامه یکسان است.
با سلام
آیا امکان اضافه کردن بازه زمانی و محاسبه زمان وجود دارد؟
با سلام
کاربر گرامی در این خصوص از utime.ticks_ms() استفاده کنید.
اگر از time.ticks استفاده کنیم میتونیم مدت زمان سپری شده رو محاسبه کنید ممنون از توضیحات شما مهندس
با سلام
بله دقیقا به همین صورت است. از اینکه تجربه ی خود را با دیگر کاربران به اشتراک گذاشته اید، صمیمانه سپاسگزارم.
واقعا جای خالی این آموزش در وب فارسی مشاهده میشد خیلی جدیده و چقدر هم جذابه
با سلام
کاربر گرامی
سپاس از همراهی شما امیدوارم مفید واقع شده باشد.
چه آردوینو و چه پایتون کار کردن با تایمر همیشه سخت بوده
با سلام
بله یادگیری این مباحث نیاز به تمرین و تکرار دارد.