فهرست مطالب:

ربات آردوینو اتو با ماشین حالت: 4 مرحله
ربات آردوینو اتو با ماشین حالت: 4 مرحله

تصویری: ربات آردوینو اتو با ماشین حالت: 4 مرحله

تصویری: ربات آردوینو اتو با ماشین حالت: 4 مرحله
تصویری: داشتم گیم میزدم که یهو... 💔🇮🇷 2024, جولای
Anonim
Image
Image

مروری بر پروژه

در این پروژه ، من می خواهم راهی برای برنامه نویسی Otto Robot ، که یک ربات DIY مبتنی بر آردوینو است ، به شما نشان دهم. با استفاده از YAKINDU Statechart Tools (رایگان برای غیر تجاری) می توانیم به راحتی از ماشین های دولتی برای مدل سازی گرافیکی رفتار Otto Robot و تولید کد C/C ++ استفاده کنیم. ما از یکی از نمونه های آنها برای گسترش رفتار به سلیقه خود استفاده خواهیم کرد.

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

یک ماشین حالت فقط گره ها و مسیرهایی بین آن گره ها است. شما یک گره شروع دارید و بسته به محافظان خود می توانید مسیرهای دیگر گره ها را انتخاب کنید ، که می توانند با رویدادها نشان داده شوند. این رویدادها از خود دستگاه دولتی یا از بیرون (مانند یک عملکرد و غیره) ایجاد می شود.

خود ابزار از رابط کشیدن و رها کردن و یک زبان مخصوص دامنه استفاده می کند. من برای شما صحبت می کنم ، بنابراین مجبور نیستید در اسناد آنها تحقیق کنید تا Otto خود را به کار بیندازید. راه اندازی IDE چندان سخت نیست ، زیرا همه افزونه ها و غیره باید به طور خودکار نصب شوند.

تدارکات

ربات اتو یا ربات زووی

هر دوی این ربات ها اساساً یکسان عمل می کنند و از API یکسانی استفاده می کنند. ربات اتو یک ربات DIY است که قطعات آن به صورت آنلاین است ، در صورت داشتن یک چاپگر سه بعدی آماده چاپ است. جایگزین آن ربات Zowi است که می توان آن را به صورت آنلاین خریداری و آماده استفاده کرد.

ابزارهای YACINDU Statechart

ابزاری که ما برای مدل سازی ماشین حالت استفاده خواهیم کرد. می توانید با یک دوره آزمایشی 30 روزه شروع کنید و پس از آن مجوز رایگان برای استفاده غیر تجاری دریافت کنید.

Eclipse C ++ IDE برای افزونه Arduino

لازم نیست آن را به صورت دستی بارگیری کنیم ، زیرا IDE این کار را برای ما انجام می دهد. من هنوز فکر می کردم خوب است که آن را اینجا لیست کنم.

مرحله 1: تنظیم همه چیز

آشنایی با نحوه ارتباط با Otto
آشنایی با نحوه ارتباط با Otto

پس از نصب IDE ، آن را اجرا کرده و یک فضای کاری در هر نقطه از رایانه خود راه اندازی کنید (تنظیمات مشابه استفاده از Eclipse برای اولین بار است). هنگامی که برنامه به طور کامل شروع شد ، صفحه خوش آمد گویی را کلیک کرده و روی "فایل -> جدید -> مثال …" کلیک کنید و سپس "YAKINDU Statechart Examples" را انتخاب کنید ، کمی صبر کنید و "سیستم های جاسازی شده -> Zowi (C ++) را جستجو کنید.)" مثال.

مهم: روی دکمه سمت راست بالا به نام "نصب وابستگی ها …" کلیک کنید! این همه چیز را برای شما نصب می کند ، بنابراین لازم نیست نگران کتابخانه ها ، افزونه ها و موارد مشابه باشید. مثال را بارگیری کنید ، دستورالعمل های مثال "سیستم های جاسازی شده -> Zowi (C ++)" را دنبال کنید و سپس مرحله بعدی را ادامه دهید.

مرحله 2: درک نحوه ارتباط با Otto

وارد فایل ".sct" شده و دستگاه دولتی را به دلخواه ویرایش کنید. در سمت راست یک منو با تمام موارد موجود است. ما فقط به حالات و تحولات علاقه داریم.

در تصویر ، می بینید که من برخی مطالب را بر روی انتقال نوشتم. "پس از X s" کاملاً قابل توضیح است و "همیشه" فقط به این معنی است که بلافاصله پس از اتمام کد از حالت دولتی به آنجا می رود. "ورود /" به این معنی است که کد باید بلافاصله پس از ورود به حالت اجرا شود.

IDE ماشین حالت را به C ++ ، که سازگار با آردوینو است ، کامپایل می کند. برای استفاده از ویژگی های Otto ، باید خودمان کمی کار کنیم و به رابط دسترسی داشته باشیم.

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

ثابت هایی که دارای مقادیری هستند و نمی توان آنها را تغییر داد

متغیرها ، که دارای مقادیر هستند و قابل تغییر هستند

عملیات ، که برای پیاده سازی به روش های مجازی C ++ تولید می شود

رابط:

const PIN_YL: integer = 2 const PIN_YR: integer = 3 const PIN_RL: integer = 4 const PIN_RR: integer = 5 const const sound: integer = 2 const.

نکته حرفه ای: اگر نمی دانید چه چیزی را در جایی وارد کنید یا به نظر می رسد خطایی وجود دارد ، "ctrl+space" را فشار دهید تا نکاتی در مورد مواردی که می توانید وارد کنید دریافت کنید.

علاوه بر این ، شما باید به مثالها نگاه کنید ، آنها همچنین دارای کد هستند! همچنین می توانید از آنها به عنوان یک ساختار برای ویرایش مدل استفاده کنید ، که تنها بخشی است که ما در حال حاضر به آن علاقه داریم.

مرحله 3: پر کردن شکاف ها

پر کردن شکاف ها
پر کردن شکاف ها

پس از تغییر موارد در مدل ، می توانید روی "zowiSCT.sgen -> Generate Code Artifacts" راست کلیک کنید. این توابع مجازی را در C ++ ایجاد می کند ، که در ماشین حالت به پوشه "src-gen" اعلام می شوند ، و سپس آنها را با استفاده از C ++ معمولی پیاده سازی می کنیم.

فقط کافیست این دو فایل را در پوشه "src" ایجاد کنید تا عملکرد مورد نظر خود را از Otto بدست آورید.

ابتدا Impl.h

#ifndef SRC_IMPL_H_

#تعریف SRC_IMPL_H_ #شامل کلاس "../src-gen/ZowiSCT.h" Impl: public ZowiSCT:: DefaultSCI_OCB {public: Impl ()؛ مجازی ~ Impl ()؛ void zowi_init (sc_integer YL ، sc_integer YR ، sc_integer RL ، sc_integer RR) ؛ void zowi_home ()؛ void zowi_putMouth (sc_integer mouthType) ؛ void zowi_sing (sc_integer songName)؛ void zowi_walk (مراحل sc_real ، sc_integer T ، sc_integer dir) ؛ void zowi_shakeLeg ()؛ }؛ #endif / * SRC_IMPL_H_ * /

سپس Impl.cpp

#شامل "Impl.h"

#شامل "../Zowi/Zowi.h" Zowi zowi = جدید زووی ()؛ Impl:: Impl () {} Impl:: Impl () {} void Impl:: zowi_home () {zowi.home ()؛ } void Impl:: zowi_init (sc_integer YL، sc_integer YR، sc_integer RL، sc_integer RR) {zowi.init (YL، YR، RL، RR)؛ } void Impl:: zowi_putMouth (sc_integer mouthType) {zowi.putMouth (mouthType)؛ } void Impl:: zowi_sing (sc_integer songName) {zowi.sing (songName)؛ } void Impl:: zowi_walk (sc_real steps، sc_integer T، sc_integer dir) {zowi.walk (steps، T، dir)؛ } void Impl:: zowi_shakeLeg () {zowi.shakeLeg ()؛ }

مرحله 4: ساخت رقص اتو

وقتی از محصول خود راضی هستید ، روی چکش در بالا سمت چپ کلیک کنید و منتظر بمانید تا فرآیند به پایان برسد. سپس بر روی پیکان سبز رنگ سمت راست چکش کلیک کنید و اوتو خود را در حال رقص ببینید!

در صورت تمایل ، می توانید چند مثال دیگر را بررسی کنید: YAKINDU Statechart Tools

توصیه شده: