Mundarija:

Davlat mashinasi bilan Arduino Otto robot: 4 qadam
Davlat mashinasi bilan Arduino Otto robot: 4 qadam

Video: Davlat mashinasi bilan Arduino Otto robot: 4 qadam

Video: Davlat mashinasi bilan Arduino Otto robot: 4 qadam
Video: Leslie Kean on David Grusch (UFO Whistleblower): Non-Human Intelligence, Recovered UFOs, UAP, & more 2024, Noyabr
Anonim
Image
Image

Loyihaning umumiy ko'rinishi

Ushbu loyihada men sizga Otto Robotni dasturlash usulini ko'rsatmoqchiman, bu Arduino asosidagi DIY robot. YAKINDU Statechart asboblari yordamida (notijorat uchun bepul), biz Otto robotining xatti-harakatlarini grafik jihatdan modellashtirish va C/C ++ kodini yaratish uchun davlat mashinalaridan osongina foydalanishimiz mumkin. Xulq -atvorni o'z xohishimizga ko'ra kengaytirish uchun biz ularning misollaridan birini ishlatamiz.

Davlat mashinasi nima ekanligini bilmaydigan va Vikipediyaning murakkab maqolasini ko'rib chiqishni istamaydigan odamlar uchun bu erda kichik tushuntirish:

Shtat mashinasi - bu tugunlar orasidagi yo'llar. Sizda boshlang'ich tugun bor va hodisalar bilan ifodalanishi mumkin bo'lgan soqchilariga qarab boshqa tugunlarga boradigan yo'llarni tanlashingiz mumkin. Bu hodisalar davlat mashinasining o'zidan yoki tashqaridan (masalan, funktsiya va boshqalar) ko'tariladi.

Asbobning o'zi sudrab tashlash interfeysi va domenga xos tilni ishlatadi. Men buni siz uchun ko'rib chiqaman, shuning uchun Ottoni ishga tushirish uchun ularning hujjatlarini o'rganishingiz shart emas. IDE-ni o'rnatish juda qiyin emas, chunki barcha plaginlar va boshqalar avtomatik ravishda o'rnatilishi kerak.

Ta'minotlar

Otto Robot yoki Zowi Robot

Bu robotlarning ikkalasi ham xuddi shunday ishlaydi va bir xil APIdan foydalanadi. Otto Robot - bu o'z -o'zidan ishlab chiqarilgan robot, uning qismlari onlaynda, agar sizda 3D printer bilan chop etishga tayyor bo'lsa. Muqobil variant - Zowi roboti, uni Internetda sotib olish mumkin va foydalanish uchun tayyor.

YAKINDU Statechart asboblari

Biz davlat mashinasini modellashtirish uchun foydalanadigan vosita. Siz 30 kunlik sinovdan boshlashingiz va undan keyin notijorat maqsadlarda foydalanish uchun bepul litsenziyani olishingiz mumkin.

Arduino plagini uchun Eclipse C ++ IDE

Biz uni qo'lda yuklab olishimiz shart emas, chunki IDE buni biz uchun qiladi. Men hali ham bu erda ro'yxatga olish yaxshi bo'lardi deb o'yladim.

1 -qadam: Hammasini sozlash

Otto bilan qanday aloqa o'rnatishni tushunish
Otto bilan qanday aloqa o'rnatishni tushunish

IDE -ni o'rnatgandan so'ng, uni ishga tushiring va shaxsiy kompyuteringizning istalgan joyida ish joyini o'rnating (sozlash Eclipse -ni birinchi marta ishlatish bilan bir xil). Dastur to'liq ishga tushgandan so'ng, xush kelibsiz sahifani bosing va "Fayl -> Yangi -> Misol …" ni bosing va "YAKINDU Statechart misollari" ni tanlang, biroz kuting va "O'rnatilgan tizimlar -> Zowi (C ++) ni qidiring.) "misol.

MUHIM: O'ng yuqori burchakdagi "Vositalarni o'rnatish …" tugmasini bosing! Bu siz uchun hamma narsani o'rnatadi, shuning uchun siz kutubxonalar, plaginlar va boshqalar haqida qayg'urmasligingiz kerak. Misolni yuklab oling, "O'rnatilgan tizimlar -> Zowi (C ++)" misolidagi ko'rsatmalarga amal qiling va keyingi bosqichga o'ting.

2 -qadam: Otto bilan qanday aloqa o'rnatishni tushunish

". Sct" fayliga o'ting va davlat mashinasini xohlaganingizcha tahrir qiling. O'ng tomonda menyu mavjud bo'lib, unda hamma narsa mavjud. Bizni faqat davlatlar va o'tishlar qiziqtiradi.

Rasmda ko'rishingiz mumkinki, men o'tish haqida ba'zi narsalarni yozdim; "X sdan keyin" o'z-o'zidan tushunarli va "har doim" faqat shtat kodini tugatgandan so'ng u erga borishini bildiradi. "Kirish /" kod shtatga kirgandan so'ng darhol bajarilishi kerakligini bildiradi.

IDE davlat mashinasini Arduino -ga mos keladigan C ++ ga kompilyatsiya qiladi. Otto xususiyatlaridan foydalanish uchun biz o'zimiz interfeysga kirishda biroz ish qilishimiz kerak.

Quyidagi kalit so'zlar shtat mashinasi ishlatadigan narsalarni aniqlash uchun ishlatilishi mumkin:

qadriyatlarga ega bo'lgan va o'zgartirilishi mumkin bo'lmagan doimiylar

qiymatlarga ega bo'lgan va o'zgarishi mumkin bo'lgan o'zgaruvchilar

Amalga oshirish uchun virtual C ++ usullari yaratiladi

interfeys:

const PIN_YL: integer = 2 const PIN_YR: integer = 3 const PIN_RL: integer = 4 const PIN_RR: integer = 5 const sound: integer = 2 const mouth_heart: integer = 13 const mouth_happyOpen: integer = 11 operatsiya zowi_init (YL: tamsayı, YR: integer, RL: integer, RR: integer) operatsiyasi zowi_home () operatsiya zowi_putMouth (mouthType: integer) operatsiyasi zowi_sing (songName: integer) operatsiyasi zowi_walk (qadamlar: haqiqiy, T: tamsayı, dir: tamsayı) operatsiyasi zowi_shakeLeg ()

Pro Maslahat: Agar biror joyga nima kiritish kerakligini bilmasangiz yoki xato bo'lsa, "ctrl+bo'sh joy" tugmachalarini bosib, nima kiritish mumkinligi haqida ma'lumot oling.

Bundan tashqari, siz misollarni ko'rib chiqishingiz kerak, ularda ham ba'zi kodlar bor! Siz ularni tuzilish sifatida ishlatishingiz mumkin, bu bizni hozircha qiziqtirgan yagona qism.

3 -qadam: bo'shliqlarni to'ldirish

Bo'shliqlarni to'ldirish
Bo'shliqlarni to'ldirish

Modeldagi narsalarni o'zgartirgandan so'ng, "zowiSCT.sgen -> Kod artefaktlarini yaratish" -ni o'ng tugmasini bosish mumkin. Bu C ++ da virtual funktsiyalarni hosil qiladi, ular davlat mashinasida "src-gen" papkasida e'lon qilinadi, keyin biz ularni oddiy C ++ yordamida amalga oshiramiz.

Otto'dan kerakli funktsiyalarni olish uchun "src" papkasida bu ikkita faylni yarating.

Birinchidan, Impl.h

#ifndef SRC_IMPL_H_

#define SRC_IMPL_H_ #include "../src-gen/ZowiSCT.h" class Impl: public ZowiSCT:: DefaultSCI_OCB {public: Impl (); virtual ~ Impl (); bo'sh zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR); bo'sh zowi_home (); vow zowi_putMouth (sc_integer mouthType); vow zowi_sing (sc_integer songName); bo'sh zowi_walk (sc_real qadamlar, sc_integer T, sc_integer dir); vow zowi_shakeLeg (); }; #endif / * SRC_IMPL_H_ * /

Keyin Impl.cpp

#"Impl.h" ni qo'shing

#include "../Zowi/Zowi.h" Zowi zowi = yangi Zowi (); Impl:: Impl () {} Impl:: ~ Impl () {} bekor Impl:: zowi_home () {zowi.home (); } bekor 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); } bekor Impl:: zowi_sing (sc_integer songName) {zowi.sing (songName); } void Impl:: zowi_walk (sc_real qadamlar, sc_integer T, sc_integer dir) {zowi.walk (qadamlar, T, dir); } bekor Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }

4 -qadam: Otto raqsini yaratish

Agar siz mahsulotingizdan mamnun bo'lsangiz, yuqori chapdagi bolg'ani bosing va jarayon tugashini kuting. Keyin bolg'aning o'ng tomonidagi yashil o'qni bosing va Otto raqsini ko'ring!

Agar xohlasangiz, boshqa misollarni ko'rib chiqishingiz mumkin: YAKINDU Statechart Tools

Tavsiya: