Satura rādītājs:

Arduino Otto robots ar valsts mašīnu: 4 soļi
Arduino Otto robots ar valsts mašīnu: 4 soļi

Video: Arduino Otto robots ar valsts mašīnu: 4 soļi

Video: Arduino Otto robots ar valsts mašīnu: 4 soļi
Video: Приказ комиссара. Warhammer 40k 2024, Novembris
Anonim
Image
Image

projekta pārskats

Šajā projektā es vēlos jums parādīt veidu, kā programmēt Otto robotu, kas ir uz Arduino balstīts DIY robots. Izmantojot YAKINDU Statechart Tools (bezmaksas nekomerciāliem), mēs varam viegli izmantot valsts iekārtas, lai grafiski modelētu Otto Robot uzvedību un ģenerētu C/C ++ kodu. Mēs izmantosim vienu no viņu piemēriem, lai paplašinātu uzvedību pēc savas patikas.

Cilvēkiem, kuri nezina, kas ir valsts mašīna, un nevēlas rakņāties pa sarežģīto Vikipēdijas rakstu, šeit ir neliels skaidrojums:

Stāvokļa mašīna ir tikai mezgli un ceļi starp šiem mezgliem. Jums ir sākuma mezgls, un jūs varat iet ceļus uz citiem mezgliem atkarībā no to aizsargiem, kurus var attēlot ar notikumiem. Šie notikumi tiek izvirzīti no pašas valsts iekārtas vai no ārpuses (piemēram, funkcija utt.).

Pats rīks izmanto vilkšanas un nomešanas saskarni un domēnam raksturīgu valodu. Es to izskatīšu jūsu vietā, tāpēc jums nav jāizmeklē viņu dokumentācija, lai jūsu Otto sāktu darboties. IDE iestatīšana nav pārāk grūta, jo visi spraudņi utt. Jāinstalē automātiski.

Piegādes

Otto Robot vai Zowi Robot

Abi šie roboti būtībā dara to pašu un izmanto to pašu API. Otto robots ir DIY robots, kura daļas tiešsaistē ir gatavas drukāšanai ar 3D printeri, ja jums tāds ir. Alternatīva ir Zowi robots, kuru var iegādāties tiešsaistē un gatavs lietošanai.

YAKINDU stāvokļa diagrammas rīki

Rīks, ko mēs izmantosim valsts mašīnas modelēšanai. Jūs varat sākt ar 30 dienu izmēģinājumu un pēc tam saņemt bezmaksas licenci nekomerciālai lietošanai.

Eclipse C ++ IDE Arduino spraudnim

Mums tas nav jālejupielādē manuāli, jo IDE to dara mūsu vietā. Es joprojām domāju, ka būtu jauki to uzskaitīt šeit.

1. darbība: visu iestatīšana

Izpratne par Otto saskarni
Izpratne par Otto saskarni

Pēc IDE instalēšanas palaidiet to un izveidojiet darbvietu jebkurā datora vietā (iestatīšana ir identiska Eclipse izmantošanai pirmo reizi). Kad programma ir pilnībā sākusies, noklikšķiniet uz sveiciena lapas un noklikšķiniet uz “Fails -> Jauns -> Piemērs…” un pēc tam atlasiet “YAKINDU valsts diagrammas piemēri”, nedaudz pagaidiet un meklējiet “Iegultās sistēmas -> Zowi (C ++)" piemērs.

SVARĪGI: Noklikšķiniet uz augšējās labās pogas ar nosaukumu 'Instalēt atkarības …'! Tas jums instalē visu, tāpēc jums nav jāuztraucas par bibliotēkām, spraudņiem un tamlīdzīgi. Lejupielādējiet piemēru, izpildiet norādījumus, kas sniegti piemērā "Iegultās sistēmas -> Zowi (C ++)" un pēc tam turpiniet ar nākamo darbību.

2. solis. Izpratne par to, kā sasaistīt Otto

Iet uz ".sct" failu un rediģējiet valsts mašīnu pēc savas patikas. Labajā pusē ir izvēlne ar visiem pieejamajiem vienumiem. Mūs interesē tikai stāvokļi un pārejas.

Attēlā redzams, ka es uzrakstīju dažus materiālus pārejās; "pēc X s" ir diezgan pašsaprotams, un "vienmēr" nozīmē tikai to, ka tas tiek turēts tūlīt pēc valsts noteiktā koda pabeigšanas. "Ieraksts /" nozīmē, ka kods jāizpilda uzreiz pēc iebraukšanas štatā.

IDE apkopo valsts mašīnu uz C ++, kas ir saderīga ar Arduino. Lai izmantotu Otto funkcijas, mums pašiem ir nedaudz jāstrādā, lai piekļūtu saskarnei.

Šos atslēgvārdus var izmantot, lai definētu valsts mašīnas lietojamo saturu:

konstantes, kurām ir vērtības un kuras nevar mainīt

mainīgie, kuriem ir vērtības un kurus var mainīt

darbības, kas tiks ģenerētas virtuālajām C ++ metodēm ieviešanai

saskarne:

Const PIN_YL: vesels skaitlis = 2 const PIN_YR: vesels skaitlis = 3 const PIN_RL: vesels skaitlis = 4 konst: vesels skaitlis, RL: vesels skaitlis, RR: vesels skaitlis) operācija zowi_home () operācija zowi_putMouth (mutes veids

Profesionāļa padoms: ja jūs nezināt, ko ievadīt kaut kur, vai šķiet, ka ir radusies kļūda, nospiediet taustiņu kombināciju "ctrl+atstarpes taustiņš", lai iegūtu dažus padomus par to, ko varat ievadīt.

Turklāt jums vajadzētu izpētīt piemērus, tur arī ir kods! Varat tos izmantot arī kā struktūru, lai tikai rediģētu modeli, kas šobrīd ir vienīgā mūs interesējošā daļa.

3. solis: aizpildiet nepilnības

Nepilnību aizpildīšana
Nepilnību aizpildīšana

Pēc modeļa izmaiņu veikšanas ar peles labo pogu noklikšķiniet uz "zowiSCT.sgen -> Ģenerēt koda artefaktus". Tas ģenerē virtuālās funkcijas C ++, kuras stāvokļa mašīnā tiek deklarētas mapē "src-gen", kuras mēs pēc tam ieviešam, izmantojot parasto C ++.

Vienkārši izveidojiet šos divus failus mapē "src", lai no Otto iegūtu vēlamo funkcionalitāti.

Vispirms Impl.h

#ifndef SRC_IMPL_H_

#define SRC_IMPL_H_ #include "../src-gen/ZowiSCT.h" class Impl: public ZowiSCT:: DefaultSCI_OCB {public: Impl (); virtuālais ~ 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 soļi, sc_integer T, sc_integer dir); void zowi_shakeLeg (); }; #endif / * SRC_IMPL_H_ * /

Tad Impl.cpp

#include "Impl.h"

#include "../Zowi/Zowi.h" Zowi zowi = new Zowi (); Impl:: Impl () {} Impl:::: Impl () {} void Impl:: zowi_home () {zowi.home (); } anulēts 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); } spēkā neesošs Impl:: zowi_sing (sc_integer songName) {zowi.sing (songName); } void Impl:: zowi_walk (sc_real soļi, sc_integer T, sc_integer dir) {zowi.walk (soļi, T, dir); } anulēts Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }

4. solis: Lieciet Otto dejot

Kad esat apmierināts ar savu produktu, noklikšķiniet uz āmura augšējā kreisajā stūrī un gaidiet procesa beigas. Pēc tam noklikšķiniet uz zaļās bultiņas pa labi no āmura un redziet, kā Otto dejo!

Ja vēlaties, varat apskatīt citus piemērus: YAKINDU Statechart Tools

Ieteicams: