Taula de continguts:
- Subministraments
- Pas 1: configurar-ho tot
- Pas 2: entendre com interactuar l'Otto
- Pas 3: omplir els buits
- Pas 4: Fer ballar l’Otto
Vídeo: Robot Arduino Otto amb màquina estatal: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Descripció general del projecte
En aquest projecte, vull mostrar-vos una manera de programar el robot Otto, que és un robot de bricolatge basat en Arduino. Utilitzant YAKINDU Statechart Tools (gratuïtes per a no comercials), podem utilitzar fàcilment màquines d’estats per modelar gràficament el comportament del robot Otto i generar codi C / C ++. Utilitzarem un dels seus exemples per estendre el comportament al nostre gust.
Per a les persones que no saben què és una màquina estatal i no volen remenar el complicat article de la Viquipèdia, aquí teniu una petita explicació:
Una màquina d’estats és només nodes i camins entre aquests nodes. Teniu un node inicial i podeu agafar els camins cap a altres nodes en funció dels seus guàrdies, que es poden representar mitjançant esdeveniments. Aquests esdeveniments es generen des de la mateixa màquina d'estats o des de l'exterior (com una funció, etc.).
La pròpia eina utilitza una interfície d'arrossegar i deixar anar i un llenguatge específic de domini. Ho revisaré per vosaltres, de manera que no haureu d'explorar la seva documentació per posar en funcionament el vostre Otto. La configuració de l’IDE no és massa dura, perquè tots els connectors, etc., s’han d’instal·lar automàticament.
Subministraments
Otto Robot o Zowi Robot
Aquests robots fan essencialment el mateix i utilitzen la mateixa API. L’Otto Robot és un robot de bricolatge, amb les seves peces en línia, llest per imprimir-se amb una impressora 3D si en teniu. L’alternativa és el robot Zowi, que es pot comprar en línia i llest per al seu ús.
Eines de gràfics d'estat de YAKINDU
L'eina que farem servir per modelar la màquina d'estats. Podeu començar amb una prova de 30 dies i obtenir una llicència gratuïta per a ús no comercial després.
IDE Eclipse C ++ per al complement Arduino
No l’hem de descarregar manualment, perquè l’IDE ho fa per nosaltres. Encara vaig pensar que seria bo llistar-lo aquí.
Pas 1: configurar-ho tot
Després d’instal·lar l’IDE, executeu-lo i configureu un espai de treball a qualsevol lloc del vostre ordinador (la configuració és idèntica a la de fer servir Eclipse per primera vegada). Quan el programa s'hagi iniciat completament, feu clic a la pàgina de benvinguda i feu clic a "Fitxer -> Nou -> Exemple …" i, a continuació, seleccioneu "Exemples de gràfics d'estat YAKINDU", espereu una mica i cerqueu "Sistemes incrustats -> Zowi (C ++) "exemple.
IMPORTANT: feu clic al botó superior dret anomenat "Instal·la dependències …". Això us ho instal·la tot, de manera que no us haureu de preocupar per les biblioteques, els connectors i similars. Descarregueu l'exemple, seguiu les instruccions de l'exemple "Sistemes incrustats -> Zowi (C ++)" i, a continuació, continueu amb el següent pas.
Pas 2: entendre com interactuar l'Otto
Aneu al fitxer ".sct" i editeu la màquina d'estats al vostre gust. A la dreta hi ha un menú amb tots els elements disponibles. Només ens interessen els estats i les transicions.
A la imatge, podeu veure, que vaig escriure algunes coses a les transicions; el "després de X s" s'explica per si mateix i el "sempre" només significa que hi va just després d'acabar el codi de l'Estat. La "entrada /" significa que el codi s'ha d'executar just després d'entrar a l'estat.
L'IDE compila la màquina d'estat a C ++, que compleix Arduino. Per utilitzar les funcions de l’Otto, hem de fer una mica nosaltres mateixos accedint a la interfície.
Les paraules clau següents es poden utilitzar per definir coses per utilitzar a la màquina d'estats:
constants, que contenen valors i no es poden canviar
variables, que contenen valors i es poden canviar
operacions, que es generaran a mètodes virtuals C ++ per a la seva implementació
interfície:
const PIN_YL: enter = 2 const PIN_YR: enter = 3 const PIN_RL: enter = 4 const PIN_RR: enter = 5 const sound: integer = 2 const mouth_heart: integer = 13 const mouth_happyOpen: integer = 11 operation zowi_init (YL: integer, YR: enter, RL: integer, RR: integer) operació zowi_home () operació zowi_putMouth (mouthType: integer) operació zowi_sing (nom de la cançó: enter) operació zowi_walk (passos: real, T: enter, dir: integer) operació zowi_shakeLeg ()
Consell professional: si no sabeu què introduir en algun lloc o sembla que hi ha un error, premeu "ctrl + espai" per obtenir algunes pistes sobre què podeu introduir.
A més, hauríeu de mirar els exemples, també hi tenen algun codi. També podeu utilitzar-los com a estructura per editar el model, que és l’única part que ara ens interessa.
Pas 3: omplir els buits
Després de canviar les coses al model, podeu fer clic amb el botó dret a "zowiSCT.sgen -> Generar artefactes de codi". Això genera les funcions virtuals a C ++, que es declaren a la màquina d'estats a la carpeta "src-gen", que després implementem utilitzant C ++ normal.
Simplement creeu aquests dos fitxers a la carpeta "src" per obtenir la funcionalitat que volem d'Otto.
En primer lloc, 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 (); void zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR); buida zowi_home (); void zowi_putMouth (sc_integer mouthType); void zowi_sing (nom de la cançó sc_integer); void zowi_walk (sc_real steps, sc_integer T, sc_integer dir); void zowi_shakeLeg (); }; #endif / * SRC_IMPL_H_ * /
A continuació, Impl.cpp
#include "Impl.h"
#include "../Zowi/Zowi.h" Zowi zowi = new 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 (); }
Pas 4: Fer ballar l’Otto
Quan estigueu satisfet amb el vostre producte, feu clic al martell situat a la part superior esquerra i espereu que finalitzi el procés. A continuació, feu clic a la fletxa verda a la dreta del martell i veureu ballar el vostre Otto.
Si voleu, podeu consultar alguns altres exemples: YAKINDU Statechart Tools
Recomanat:
Màquina de còctel amb gerd GUI: 7 passos (amb imatges)
Màquina de còctel amb gerd GUI: us agrada la tecnologia i la festa? Aquest projecte està fet per a vosaltres! En aquest tutorial crearem una màquina de còctel automatitzada amb una interfície gràfica. Tot el controlat per la gerd! EDITAR: En vaig fer un de més fàcil i barat l'enllaç aquí
Otto DIY + Arduino Bluetooth Robot Fàcil d'imprimir en 3D: 6 passos (amb imatges)
Otto DIY + Arduino Bluetooth Robot Fàcil d'imprimir en 3D: la naturalesa de codi obert d'Otto permet educació STEAM oberta, recopilem comentaris de diferents tallers i escoles de tot el món que ja utilitzen el bricolatge Otto a la seva aula i depenent de l'obertura d'aquest lloc educatiu nosaltres o
Robot humanoide Otto DIY: 7 passos (amb imatges)
Robot Humanoide de bricolatge Otto: ara, el robot bípedo Otto té braços semblants a un "humà" i una matriu LED per expressar emocions. Imprimeix en 3D per tu mateix i, a continuació, reuneix les peces per construir per tu mateix. Otto és realment Opensource; significa que el maquinari es distingeix fàcilment, així que
Màquina Arcade amb marquesina LED canviant: 5 passos (amb imatges)
Màquina Arcade amb marquesina LED canviant: peces necessàries: podeu tallar amb làser el suport de marquesina LED mitjançant els fitxers de l’instructible o per a aquells que no tinguin accés a un tallador làser, també està disponible completament muntat. Carpa LED
Otto DIY: construeix el teu propi robot en una hora: 9 passos (amb imatges)
Otto DIY - Build Your Own Robot in One Hour !: Otto és un robot interactiu que qualsevol pot fer !, Otto camina, balla, fa sons i evita obstacles. missió d'impacte per crear un entorn inclusiu per a tots els k