فهرست مطالب:
- مرحله 1: برنامه نویسی مبتنی بر رویداد چیست؟
- مرحله 2: جریان منطقی برنامه نویسی رویداد محور
- مرحله 3: ایجاد کننده رویداد
- مرحله 4: پردازنده رویداد
تصویری: برنامه نویسی مبتنی بر رویداد در FTC: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
امسال ، تیم ما کارهای زیادی را با توسعه نرم افزار رویداد محور برای ربات ما انجام داده است. این برنامه ها به تیم این امکان را می دهد که برنامه های خود مختار و حتی رویدادهای دورکاری را تکرار کند. از آنجا که کار نرم افزاری مورد نیاز آن پیچیده است ، تصمیم گرفتیم دانش به دست آمده در زمینه توسعه کد رویداد محور برای روبات های FTC را به اشتراک بگذاریم.
مرحله 1: برنامه نویسی مبتنی بر رویداد چیست؟
به طور کلی ، برنامه نویسی مبتنی بر رویداد ، به گفته Techopedia ، توسعه برنامه هایی است که به ورودی کاربر پاسخ می دهند. به این معنا ، بسیاری از برنامه ها بر اساس رویدادها در نظر گرفته می شوند ، از جمله برنامه tele-op یک تیم ، که برای انجام هر اقدامی به ورودی های کنترل کننده توسط انسان متکی است. با این حال ، از نظر کارهایی که تیم ما انجام داده است ، برنامه نویسی مبتنی بر رویداد در مورد ایجاد نرم افزار از ورودی های مختلف است. به عبارت دیگر ، ما رویدادها را بر اساس ورودی کنترلرها و حسگرها مستند می کنیم ، سپس می توانیم این رویدادها را در صف قرار دهیم و از فایل برای تکرار مجدد رویداد ضبط شده استفاده کنیم.
این روش توسعه برنامه ها برای ربات ما دارای چندین مزیت است:
- این به ما امکان می دهد برنامه های مستقل دقیق ایجاد کنیم. از آنجا که ما در حال ایجاد نرم افزار در زمان واقعی در حین رویداد هستیم ، مقادیر سنسور جمع آوری شده و مورد استفاده بسیار دقیق خواهند بود ، زیرا مستقیماً از رویداد اصلی ناشی می شوند.
- این به ما امکان می دهد برنامه های خودکار را به سرعت ایجاد کنیم. ساخت برنامه های خودمختار به سادگی ثبت یک سری رویدادها و تنظیم رویداد در صورت لزوم است.
- این به ما امکان می دهد فرآیندهای خودکار برای tele-op ایجاد کنیم. برای اقدامات مکرر در tele-op ، برنامه نویسی مبتنی بر رویداد به ما امکان می دهد این اقدامات را ضبط کرده و در طول دوره های مسابقات تحت کنترل راننده ، رویداد را به یک دکمه اختصاص دهیم. این رویدادهای خودکار می توانند تحت تأثیر سنسورها قرار گیرند تا امکان اجرای دقیق آنها فراهم شود.
مرحله 2: جریان منطقی برنامه نویسی رویداد محور
موارد زیر جریان منطقی یک برنامه رویداد محور را به تصویر می کشد: قرمز خلق یک رویداد و آبی رنگ فراخواندن رویداد را به تصویر می کشد. برای ایجاد یک رویداد ، دنباله ای از ورودی ها از طریق عمل ربات گرفته شده و به عنوان رویداد ثبت می شود. این رویدادها روی یک فایل نوشته می شوند. برای فراخوانی یک رویداد ، آن فایل خوانده می شود و ورودی ها به پردازنده رویداد ارسال می شوند تا کد فایل را به عملکرد روبات تبدیل کند.
مرحله 3: ایجاد کننده رویداد
سازندگان رویداد برای مستند کردن اقدامات یا "رویدادها" بر اساس انواع حسگرها و دکمه ها استفاده می شوند. همانطور که ربات اقداماتی را در میدان انجام می دهد ، یک کلاس خالق رویداد برای هر یک از این اقدامات به طور موازی رویدادهایی ایجاد می کند و به رویداد طبقه بندی شده در یک کلاس رویداد اشاره می کند. پس از ایجاد ، رویداد در صف رویدادها در کلاس رویدادها قرار می گیرد: اولین رویداد رتبه برتر را می گیرد ، سپس رویداد دوم جایگاه برتر را می گیرد و هر رویدادی را زیر آن فشار می دهد ، و این تا زمان توقف برنامه ادامه می یابد. وقتی برنامه متوقف می شود ، رویدادها به یک فایل با فرمت قابل خواندن برای انسان ، مانند یک فایل JSON ، منتقل می شوند. از این فایل می توان برای بهبود بهتر روالهای خودکار استفاده کرد.
کد مثال بالا پارامترهای رویداد را تنظیم می کند ، که در این حالت یک نوبت با استفاده از سنسور IMU است. سپس ما رویداد را در صف رویداد قرار می دهیم. در نهایت ، ما رویداد را کوتاه می کنیم ، که در اصل تنظیم مجدد رویداد است تا بتوانیم از آن برای صف بندی رویدادهای آینده استفاده کنیم.
مرحله 4: پردازنده رویداد
کلاسهای رویداد فایل قابل خواندن توسط انسان را که در کلاس پدیدآورنده رویداد تولید شده است می گیرند و هر چیزی که در نوبت قرار داده شده است را با فراخوانی روشهایی که در کلاس پردازنده رویداد مشخص شده است انجام می دهد. سپس کلاس پردازنده رویداد به ربات می گوید که چه رویدادی را دوباره پخش کند. اعم از رویداد ساده "حرکت رو به جلو" یا یک رویداد پیچیده پر از فاصله ، پیچ و خم ، پردازنده هر رویدادی را که به آن داده می شود بازپخش می کند. این فرآیند در حالت خودمختار بسیار مفید است ، زیرا یک تیم می تواند سنسورها و اقدامات Tele-Op را قبل از مطابقت ضبط کرده و سپس به سادگی وقایع را به صورت خودکار پخش کند. این فرایند Memory Replay نام دارد. این اجازه می دهد تا یک برنامه خودمختار از طریق یک فایل 100 قابل تنظیم باشد. هنگامی که خالق رویداد و پردازنده مشخص شد ، یک تیم می تواند به سادگی روالهای خودکار را از طریق فایل قابل خواندن توسط انسان تغییر دهد.
مثال بالا ابتدا با بررسی پرونده JSON برای یک رویداد شروع می شود ، و سپس آن رویداد را با استفاده از دستور case بررسی می کند تا ببیند که این رویداد چیست ، در این حالت چرخش با استفاده از سنسور IMU. هنگامی که می تواند بگوید که نوبت استفاده از رویداد IMU است ، سپس با پردازش رویداد سروکار دارد ، که معمولاً شامل اجرای کدی است که رویداد از متغیرهای رویداد به دست آورده است ، که برای تکرار رویداد قبلی ارسال شده است.
توصیه شده:
برنامه افزودنی ساده در زبان برنامه نویسی شکسپیر: 18 مرحله
برنامه افزودنی ساده در زبان برنامه نویسی شکسپیر: زبان برنامه نویسی شکسپیر (SPL) نمونه ای از زبان برنامه نویسی باطنی است ، که شاید یادگیری آن جالب و استفاده از آن جالب باشد ، اما در برنامه های کاربردی واقعی بسیار مفید نیست. SPL زبانی است که در آن کد منبع r
برنامه نویسی میکروکنترلرها با برنامه نویس USBasp در Atmel Studio: 7 مرحله
برنامه نویسی میکروکنترلرها با یک برنامه نویس USBasp در Atmel Studio: سلام من آموزش های زیادی را در مورد نحوه استفاده از برنامه نویس USBasp با Arduino IDE خواندم و آموختم ، اما برای تکالیف دانشگاه نیاز به استفاده از Atmel Studio داشتم و هیچ آموزشی پیدا نکردم. پس از تحقیق و مطالعه از طریق بسیاری از
شروع کار با برنامه نویسی مبتنی بر مرورگر MBlock برای HyperDuino: 3 مرحله
شروع کار با برنامه نویسی مبتنی بر مرورگر MBlock برای HyperDuino: به آموزش مبتنی بر وب mBlock با HyperDuino خوش آمدید. این به شما نشان می دهد که چگونه mBlock را تنظیم کرده و کد خود را در HyperDuino خود بارگذاری کنید. این همچنین به شما نشان می دهد که چگونه یک کد اساسی برای یک ماشین هوشمند نیز ایجاد کنید. برای شروع ، اجازه دهید سریع وارد شوید
راهنمای برنامه نویسی پردازش جالب برای طراح-بارگذاری رسانه و رویداد: 13 مرحله
راهنمای برنامه نویسی پردازش جالب برای طراح-بارگذاری رسانه و رویداد: پردازش را می توان تعداد زیادی داده خارجی بارگذاری کرد که در بین آنها سه نوع بسیار مورد استفاده قرار می گیرد. آنها بصورت جداگانه تصویر ، صدا و تصویر هستند. در این فصل ، ما قصد داریم در مورد نحوه بارگذاری صوتی و تصویری به طور مفصل ، همراه با رویداد صحبت کنیم
Pic 16F676 ICSP سوکت برنامه نویسی برای برنامه نویس PICkit 2: 6 مرحله
عکس 16F676 ICSP سوکت برنامه نویسی برای برنامه نویس PICkit 2: من سعی می کنم این ماژول موتور DC دوگانه را برای پروژه ربات خود بسازم و فضا برای قرار دادن هدر پین ICSP روی PCB نداشتم. بنابراین من به سرعت این طرح را مسخره کردم