Satura rādītājs:
- Piegādes
- 1. darbība: visu iestatīšana
- 2. solis. Izpratne par to, kā sasaistīt Otto
- 3. solis: aizpildiet nepilnības
- 4. solis: Lieciet Otto dejot
Video: Arduino Otto robots ar valsts mašīnu: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
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
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
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:
Valsts mašīna uz Arduino - gājēju luksofors: 6 soļi (ar attēliem)
Valsts mašīna Arduino - gājēju luksofors: Sveiki! Es jums parādīšu, kā programmēt gājēju luksoforu Arduino programmā C ++ ar ierobežotu stāvokļa mašīnu, izmantojot YAKINDU valsts diagrammas rīkus. Tas parādīs valsts mašīnu spēku un to var izmantot kā plānu turpmākai
Arduino HMI, izmantojot valsts mašīnas: 9 soļi
Arduino HMI, izmantojot valsts mašīnas: Šajā pamācībā es parādīšu, kā izmantot YAKINDU Statechart Tools, lai realizētu vienkāršu un paplašināmu HMI, izmantojot 16x2 LCD tastatūras vairogu Arduino. Galīgās mašīnas (FSM) ir spēcīgs dizaina modelis, lai izstrādātu sarežģīta cilvēka mašīna
Ainava no manas valsts: 4 soļi
Ainava no manas valsts: Sveiki visiem! Šis ir mans pirmais projekts, un es patiešām vēlos to dalīties ar jums, puiši! Ideja radās no skaistas ainavas, no manas valsts
Līdzsvarojošais robots / 3 riteņu robots / STEM robots: 8 soļi
Līdzsvarojošais robots / trīs riteņu robots / STEM robots: mēs esam izveidojuši kombinētu balansēšanas un trīsriteņu robotu, kas paredzēts lietošanai skolās un pēc skolas izglītības programmās. Robota pamatā ir Arduino Uno, pielāgots vairogs (visas konstrukcijas detaļas ir iekļautas), litija jonu akumulators (viss atbilst
Arduino PLC 32 I/O+valsts iekārta+SCADA vai HMI: 8 soļi
Arduino PLC 32 I/O+valsts iekārta+SCADA vai HMI: daudzi veidi, kā programmēt, kontrolēt un uzraudzīt rūpniecisko sistēmu, izmantojot arduino