فهرست مطالب:
- تدارکات
- مرحله 1: تنظیم همه چیز
- مرحله 2: درک نحوه ارتباط با Otto
- مرحله 3: پر کردن شکاف ها
- مرحله 4: ساخت رقص اتو
![ربات آردوینو اتو با ماشین حالت: 4 مرحله ربات آردوینو اتو با ماشین حالت: 4 مرحله](https://i.howwhatproduce.com/images/011/image-32751-j.webp)
تصویری: ربات آردوینو اتو با ماشین حالت: 4 مرحله
![تصویری: ربات آردوینو اتو با ماشین حالت: 4 مرحله تصویری: ربات آردوینو اتو با ماشین حالت: 4 مرحله](https://i.ytimg.com/vi/0aGSeJxcA8w/hqdefault.jpg)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
![Image Image](https://i.howwhatproduce.com/images/011/image-32751-2-j.webp)
![](https://i.ytimg.com/vi/pEzC1D3wuBI/hqdefault.jpg)
مروری بر پروژه
در این پروژه ، من می خواهم راهی برای برنامه نویسی 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](https://i.howwhatproduce.com/images/011/image-32751-3-j.webp)
پس از نصب 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: پر کردن شکاف ها
![پر کردن شکاف ها پر کردن شکاف ها](https://i.howwhatproduce.com/images/011/image-32751-4-j.webp)
پس از تغییر موارد در مدل ، می توانید روی "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
توصیه شده:
ربات بلوتوث اتو DIY+ آردوینو چاپ سه بعدی آسان: 6 مرحله (همراه با تصاویر)
![ربات بلوتوث اتو DIY+ آردوینو چاپ سه بعدی آسان: 6 مرحله (همراه با تصاویر) ربات بلوتوث اتو DIY+ آردوینو چاپ سه بعدی آسان: 6 مرحله (همراه با تصاویر)](https://i.howwhatproduce.com/images/005/image-12447-j.webp)
ربات بلوتوث Otto DIY+ Arduino آسان برای چاپ سه بعدی: طبیعت منبع باز Otto امکان آموزش STEAM باز را فراهم می کند ، ما بازخوردها را از کارگاه ها و مدارس مختلف در سراسر جهان جمع آوری می کنیم که قبلاً از Otto DIY در کلاس خود استفاده می کنند و بسته به باز بودن این مکان های آموزشی ما یا
ربات هوشمند DIY ردیابی ماشین ردیابی ماشین ردیابی خودرو حساس به نور: 7 مرحله
![ربات هوشمند DIY ردیابی ماشین ردیابی ماشین ردیابی خودرو حساس به نور: 7 مرحله ربات هوشمند DIY ردیابی ماشین ردیابی ماشین ردیابی خودرو حساس به نور: 7 مرحله](https://i.howwhatproduce.com/images/008/image-22349-j.webp)
دستگاه DIY Robot Smart Tracking Car Tracking Car Photosensitive: طراحی شده توسط SINONING ROBOT شما می توانید از ربات ردیابی ماشین خرید کنید بچرخید تا
ساعت دیجیتال در آردوینو با استفاده از ماشین حالت محدود: 6 مرحله
![ساعت دیجیتال در آردوینو با استفاده از ماشین حالت محدود: 6 مرحله ساعت دیجیتال در آردوینو با استفاده از ماشین حالت محدود: 6 مرحله](https://i.howwhatproduce.com/images/001/image-719-56-j.webp)
ساعت دیجیتال در آردوینو با استفاده از یک ماشین حالت محدود: سلام ، من به شما نشان می دهم که چگونه می توان یک ساعت دیجیتالی با ابزار YAKINDU Statechart ایجاد کرد و بر روی Arduino که از صفحه کلید صفحه نمایش LCD استفاده می کند ، اجرا کرد. مدل اصلی دیجیتال ساعت از دیوید هارل گرفته شده است. او مقاله ای در مورد
آردوینو HMI با استفاده از ماشین های حالت: 9 مرحله
![آردوینو HMI با استفاده از ماشین های حالت: 9 مرحله آردوینو HMI با استفاده از ماشین های حالت: 9 مرحله](https://i.howwhatproduce.com/images/001/image-1908-67-j.webp)
Arduino HMI با استفاده از ماشین های حالت: در این دستورالعمل ، من به شما نحوه استفاده از YAKINDU Statechart Tools برای دستیابی به یک HMI ساده و قابل توسعه را با استفاده از محافظ صفحه کلید LCD 16x2 برای Arduino نشان می دهم. ماشینهای حالت نهایی (FSM) یک الگوی طراحی قدرتمند برای توسعه هستند ماشین انسان پیچیده
[ربات آردوینو] چگونه می توان یک ربات ضبط حرکتی ساخت - ربات انگشت شست - سرو موتور - کد منبع: 26 مرحله (همراه با تصاویر)
![[ربات آردوینو] چگونه می توان یک ربات ضبط حرکتی ساخت - ربات انگشت شست - سرو موتور - کد منبع: 26 مرحله (همراه با تصاویر) [ربات آردوینو] چگونه می توان یک ربات ضبط حرکتی ساخت - ربات انگشت شست - سرو موتور - کد منبع: 26 مرحله (همراه با تصاویر)](https://i.howwhatproduce.com/images/001/image-1599-93-j.webp)
[ربات آردوینو] چگونه می توان یک ربات ضبط حرکتی ساخت | ربات انگشت شست | سرو موتور | کد منبع: ربات انگشت شست از پتانسیومتر سروو موتور MG90S استفاده شده است. بسیار سرگرم کننده و آسان است! کد بسیار ساده است. فقط در حدود 30 خط است. به نظر می رسد یک حرکت ضبط است. لطفاً هر گونه سوال یا بازخوردی بگذارید! [دستورالعمل] کد منبع https: //github.c