بلاگ

سقوط پهپاد در نزدیکی مهد کودک پروژه ارسال هوایی کالا را به تعطیلی کشاند

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

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

گردآوری توسط ایده طلایی

مقدمه ای بر الگوریتم AVR آسانسور

در بحث آموزش آسانسور در رابطه باالگوریتم کنترل آسانسور توسط میکروکنترلر AVR خواهیم نوشت:

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

این مطلب در مورد یکی از این تجهیزات (میکروکنترلر) به اختصار از نظر خوانندگان محترم می گذرد و به اختصار در کلاس آموزش آسانسور به آن پرداخته می شود.

مقدمه

برنامه کنترل آسانسور در مقابل برنامه های بسیاری از وسایل مورد استفاده افراد جامعه مانند ماشین لباس شویی به مراتب پیچیده تر است.اما از سوی دیگر نسبت به برنامه های تجهیزاتی که محاسبات پیچیده ریاضی دارند و پردازش تصویر انجام می دهند (از جمله : موبایل ، تجهیزات پزشکی MRI که از بدن انسان تصویر می گیرد و … ) بسیار کم حجم و ساده است. در نگاه نخست تابلوی کنترل آسانسور دارای تعدادی ورودی است که در حلقه ای بی نهایت به طور مرتب چک می شوند و نسبت به تغییرات ایجاد شده در این ورودی ها خروجی ها تغییر داده می شوند. تعدادی از این ورودی ها مثل ورودی های سنسورهای روی کابین خیلی سریع قطع و وصل می شوند. (به این نوع از ورودی ها به وسیله وقفه پاسخ داده میشود) در واقع برنامه کنترل آسانسور چندان هم ساده و کم حجم نبوده و بیش از هزار خط( برنامه ) دارد که باید در آن تمام احتمالات و دستورات به طور دقیق و بدون اشتباه در نظر گرفته شود. این مقاله صرفا نگاهی کلی به چگونگی چک کردن ورودی های تابلو فرمان دارد که در قالب سه بخش تقدیم می شود:

  • تابع Main و توابع فرعی
  • وقفه های کنترل
  • وقفه دور انداز آسانسور

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

تابع Main و توابع فرعی:

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

در طراحی این حلقه تلاش شده است اصولا از فرمان Delay و یا توابعی که دارای این فرمان هستند استفاده نشود و برای اندازه گیری زمان از تایمر شمارنده یا تعداد تکرار شدن حلقه استفاده می شود:

#include

#definemotorPORTC// ماکروی موتور جهت فرمان دادن به کنتاکتورها

Char vorodi[8]={0};char level;

Char hal ,kabin ,rvzion_swich=0;

Char i, Jehat , ss ,n_stop;

Char dorandaz ,time-park; char tabage; char activate_stop;

Int tim_travel=0;

Void revizsion(void){}

Void shenasi(void){}

Void main(void)}

Shenasi();

While(1)

{if(tim_travel>0)} tim_travel++;  if(time_travel>2000){};};

If((PINF&1)==1) vorodi[0]++; else(vorodi[0]=0 hal&=0xfe);

If(vorodi(0)>200)

(hal=hal|1; vorodi[0]=201;};

If((pinf&2)==2)(rvzion_Swich=1; revision();}else(rvzion_swich=0;};};};

در برنامه فوق جهت کوچک شدن برنامه تنها دو ورودی که چک می شود، یکی شاسی احضار و دیگری کلید رویزیون بوده و از آرایه های متغیر آرایه ای Vorodi جهت اندازه گیری مدت زمان یک (بودن) ورودی ها استفاده می شود. اگر به برنامه توجه نمایید شاهد خواهید بود که برای تشخیص ورودی رویزیون از یک بار نمونه برداری استفاده شده است. ولی برای تشخیص شاسی احضار از ۲۰۰بار نمونه برداری استفاده شده است که علت آن به ساختار شاسی ها بر می گردد. در انتها که سیم های احضار وصل می شود تعدادی LED قرار داده می شوند که هنگام پذیرفته شدن احضار روشن می گردد

در ادامه بحث تابع Main و توابع فرعی :

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

متغیر Time Travel جهت اندازه گیری زمان حرکت کابین است. در هر بار تکرار حلقه بی نهایت مقدار این متغیر افزایش می یابد. قبلا مشخص شده که در هر ۳ ثانیه ۲۰۰۰ بار حلقه تکرار می شود. برنامه به گونه ای نوشته شده تا هنگام دیده شدن سنسورهای مغناطیسی روی کابین در تابع وقفه این سنسورها مقدار متغیر یک و هنگامی که کابین متوقف است صفر شود. در نتیجه هنگام گیر کردن کابین در یک نقطه موتور بیشتر از ۳ ثانیه کار نمی کند

روش اول چک کردن ورودی های تابلو فرمان به پایان رسید و در این مقاله به روش دوم چک کردن ورودی تابلو فرمان (روش وقفه های کنترل) می پردازیم:

از وقفه ها جهت پاسخ سریع به سنسورهای تراز (Level) و دور انداز طبقات و اطلاعات دریافت شده از طریق رابط های سریال و شالترهای داخل چاه استفاده می شود البته شالترها را از طریق حلقه اصلی نیز می توان کنترل کرد. در حلقه اصلی کنترل شاسی ها و مدار سری استپ چک می شود و با توجه به اطلاعات به دست امده جهت حرکت کابین مشخص و فرمان های لازم جهت حرکت کابین صادر می شود ولی فرمان های دوراندازی سرعت و تراز طبقات توسط وقفه ها صادر شود. در برنامه زیر برای موقعیت کابین پنج متغیر وجود دارد. متغیر های :   Level , n-stop , tabage , cf3 , jehat

هر بیت از متغیر Level نشان دهنده یک طبقه است که همیشه تنها یک بیت آن یک است و مقدار ان با شیفت به چپ یا شیفت به راست تغییر می کند. متغیر n-stop موقعیت طبقه ای را نشان می دهد که کابین در آن متوقف شده است. وقتی کابین متوقف می شود مقدار آن با با مقدار Level برابر می شود ولی در حالت حرکت مقدار آن صفر است. متغیر tabage  موقعیت کابین را به صورت یک عدد نشان می دهد و مقدار آن با ++ یا – تغییر می کند. متغیر jehat  جهت حرکت کابین را نشان می دهد. از متغیر  Cf3 جهت تشخیص لحظه ای دوراندازی استفاده می شود. ماکروی Motor فرمان های کنتاکتورها یا درایو را اعمال می کند. ترتیب خروجی های Motor عبارتند از بیت صفر فرمان جهت بالا بیت ۱ فرمان جهت پایین بیت ۲ فرمان دورتند بیت ۳ فرمان دور کن

۳- وقفه دورانداز آسانسور:

۱-۳- روش اول:

متغیر cf3 نشان دهنده دور انداز اول یا دوم بین طبقات است. با دیده شدن سنسور تراز آسانسور مقدار آن صفر می شود و هر بار که یک سنسور دور انداز آسانسور دیده می شود مقدار آن ++ می شود. اگر قرار باشد با سنسور اول دوراندازی کند هنگامی که مقدار این سنسور عدد ۱ را نشان می دهد متغیر شاسی را با متغیر تراز AND می کند و در صورتی که نتیجه بزرگتر از ۱ بود بیت دور تند را از ماکروی Motor  صفر و بیت دور کند را یک می کند.

۲-۳- روش دوم:

متغیر cf3 در جهت بالا ++ و در جهت پایین – می شود. شماره دورانداز هر توقف و جهتی که باید در آن دوراندازی شود در آرایه ای مثلا به نام [Cf3-level[64 نگهداری می شود. هر بار با دیده شدن سنسور دورانداز آسانسور با توجه به اطلاعاتی که در [Cf3-level[Cf3 وجود دارد موقعیت کابین و بیت های دورکند و تند ماکروی motor تغییر داده می شود. از آنجا که هر توقف دو سنسور دورانداز دارد پس متغیر Cf3-level  برای ۳۲ توقف ۶۴ عضو دارد.

۳-۳- روش سوم:

روش سوم تقریبا شبیه به روش دوم است با این تفاوت که در آرایه های Cf3-level مقدار پالس های انکودر برای هر توقف نگهداری می شود. از این روش در سیستم های Close Loop جهت حذف سنسورهای دورانداز و ترازکردن دقیق کابین استفاده می شود.

Interrupt[ext-int1-isr(void)//1cf  وقفه ای

{if(jehat==0x20) {tabage++;level<<=1;}

If(jehat==0x40) {tabage–;level>>=1;}

If(rvzion-swich==1){}else{if((motor&4)>0)motor=0;}

Tim-travel=1;};

Interrupt[EXT-INT7] voidext-int7-isr(void)//cf3  وقفه ای

{if(jehat==0x20){dorandaz++;};

If(jehat==0x40){dorandaz–;};

If(rvzion-swich==1) {} else {if

((ss&dorandaz-level[dorandaz])>0)

{motor=(motor&0xf7)0x04;};}; tim-travel=1;};

نوشته مقدمه ای بر الگوریتم AVR آسانسور اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

گوگل موتور جستجوی پیش فرض اندروید را در اروپا به مزایده می گذارد

گوگل از ابتدای سال ۲۰۲۰ با افزودن یک صفحه جدید برای انتخاب موتور جستجو، به کاربران اروپایی اجازه می‌دهد تا در هنگام انجام تنظیمات اولیه گوشی‌هایشان موتور جستجوی پیشفرض اندروید خود را انتخاب کنند. بعد از آن موتور جستجوی انتخابی …

نوشته گوگل موتور جستجوی پیش فرض اندروید را در اروپا به مزایده می گذارد اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

تست مقاومت گلکسی A50 سامسونگ [تماشا کنید]

گلکسی A50 یکی از جدیدترین گوشی‌های میان رده پر شمار سامسونگ است و این شرکت با استفاده از پلاستیک در بدنه این گوشی و همچنین در نظر گرفتن سخت‌افزار متوسط، سعی کرده آن را در حد یک میان رده مقرون …

نوشته تست مقاومت گلکسی A50 سامسونگ [تماشا کنید] اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

کارت گرافیک‌های Xe اینتل با قیمت ۲۰۰ دلار عرضه خواهند شد

با نزدیک شدن به تاریخ معرفی سری کارت گرافیک Xe اینتل که برای سال ۲۰۲۰ برنامه‌ریزی شده، جزئیات جدیدتری از این سری افشا می‌شود که آخرین آن‌ها به قیمت اقتصادی این کارت‌ها اشاره دارد. بر اساس صحبت‌های «راجا کدوری» نایب …

نوشته کارت گرافیک‌های Xe اینتل با قیمت ۲۰۰ دلار عرضه خواهند شد اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

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

نایب ‌رییس هیأت‌مدیره شرکت ارتباطات زیرساخت با تأکید بر این‌که بر اساس برنامه‌ریزی‌ها، بدیهی است که قیمت اینترنت، نسبت به قیمت‌های فعلی افزایش پیدا نخواهد کرد، تاکید کرد که دولت اصلاً اجازه افزایش قیمت را نخواهد داد. او همچنین اذعان …

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

گردآوری توسط ایده طلایی

گوگل اسیستنت حالا پیام‌های پیام‌رسان‌های شخص ثالث را برای شما می‌خواند

این روزها گوگل اسیستنت در مرکز اکوسیستم گوگل قرار دارد، به همین خاطر است که غول مانتین ویو هر روز وظایف بیشتری را به آن می‌سپارد. تازه‌ترین اقدام گوگل در همین راستا، ارائه قابلیت خواندن پیام‌های دریافتی در پیام‌رسان‌ها در …

نوشته گوگل اسیستنت حالا پیام‌های پیام‌رسان‌های شخص ثالث را برای شما می‌خواند اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

روز چهلم و چهل و یکم از چالش ۱۰۰ روز کد زدن – D3js

درود خدمت یکایک شما عزیزان،

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

خانم ها، آقایان معرفی می کنم : D3

به گفته ویکی پدیا D3.js (مخفف Data-Driven Documents) یک کتاب‌خانهٔ JavaScript برای تولید مصورسازهای دادهٔ پویا و تعاملی در مرورگرهای وب هست. این کتابخانه از استانداردهای SVG, HTML5 و CSS که به صورت گسترده پیاده‌سازی شده‌اند استفاده می‌کند و جانشین فریم‌ورک قبلی یعنی Protovis می‌باشد. برخلاف خیلی از کتابخانه‌های دیگر، D3.js کنترل فراوانی را برای نتیجهٔ بصری نهایی فراهم می‌آورد. توسعه آن در سال ۲۰۱۱ میلادی انجام شد، هنگامی که نسخهٔ ۲٫۰٫۰ در ماه اوت ۲۰۱۱ منتشر شده‌بود.

کمپانی مصورسازی دادهٔ Datameer به صورت رسمی از D3.js در هستهٔ تلکنولوژی خود استفاده می‌کند، در حالی که The New York Times، گاهی اوقات برای نمودارهای غنی از آن استفاده می‌کند. این کتاب‌خانه توسط ویراستار iD برای ویرایش OpenStreetMap مورد استفاده قرار گرفته‌است. D3.js به صورت گسترده برای GIS map making، مدیریت GeoJSON و Topojson به عنوان فایل‌های ورودی مورد استفاده قرار گرفته‌است.

توصیه می کنم حتما از طریق این لینک از مثال ها و نمونه های D3 دیدن کنید.

حق نگهدارتان.

https://virgool.io/@mohstarsos1/%D8%B4%D8%B1%D9%88%D8%B9-%DA%86%D8%A7%D9%84%D8%B4-%DB%B1%DB%B0%DB%B0-%D8%B1%D9%88%D8%B2-%DA%A9%D8%AF-%D8%B2%D8%AF%D9%86-fxbkp0t9btcy

نوشته روز چهلم و چهل و یکم از چالش ۱۰۰ روز کد زدن – D3js اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

مزایا رایانش ابری و خدمات کلود

  شاید استفاده از خدمات ابری برای کسب و کارتان به ذهن شما نیز خطور کرده باشد. اما صحبت ها در مورد مزایا رایانش ابری با ابهامات زیادی همراه هستند که باعث می شوند به استفاده از این خدمات ترغیب نشوید و از فواید آنها بی بهره بمانید. مزایایی مانند افزایش امنیت اطلاعاتی، کاهش مخارج شما […]

نوشته مزایا رایانش ابری و خدمات کلود اولین بار در ایران سرور پدیدار شد.

گردآوری توسط ایده طلایی

فیسبوک نام اینستاگرام و واتس اپ را تغییر می دهد

شاید عجیب و دور از ذهن به نظر برسد، اما از شواهد و قرائن پیداست که فیسبوک می‌خواهد در نام دو اپلیکیشن تحت تملک خود یعنی اینستاگرام و واتس اپ تغییراتی ایجاد کند. به گزارش The Information، کارمندان دو شرکت …

نوشته فیسبوک نام اینستاگرام و واتس اپ را تغییر می دهد اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی