Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Ρύθμιση των πάντων
- Βήμα 2: Κατανόηση του τρόπου διασύνδεσης του Otto
- Βήμα 3: Συμπλήρωση των κενών
- Βήμα 4: Κάνοντας το Otto Dance
Βίντεο: Ρομπότ Arduino Otto με κρατική μηχανή: 4 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Επισκόπηση έργου
Σε αυτό το έργο, θέλω να σας δείξω έναν τρόπο προγραμματισμού του Otto Robot, το οποίο είναι ένα ρομπότ DIY με βάση το Arduino. Χρησιμοποιώντας τα YAKINDU Statechart Tools (δωρεάν για μη εμπορικά) μπορούμε εύκολα να χρησιμοποιήσουμε μηχανήματα κατάστασης για να μοντελοποιήσουμε γραφικά τη συμπεριφορά του Otto Robot και να δημιουργήσουμε κώδικα C/C ++. Θα χρησιμοποιήσουμε ένα από τα παραδείγματά τους για να επεκτείνουμε τη συμπεριφορά σύμφωνα με τις προτιμήσεις μας.
Για τους ανθρώπους που δεν γνωρίζουν τι είναι η κρατική μηχανή και δεν θέλουν να περιπλανηθούν στο περίπλοκο άρθρο της Wikipedia, εδώ είναι μια μικρή εξήγηση:
Ένα μηχάνημα κατάστασης είναι απλά κόμβοι και διαδρομές μεταξύ αυτών των κόμβων. Έχετε έναν κόμβο εκκίνησης και μπορείτε να ακολουθήσετε τις διαδρομές προς άλλους κόμβους, ανάλογα με τους προφυλακτήρες τους, οι οποίοι μπορούν να αναπαρασταθούν με συμβάντα. Αυτά τα γεγονότα προέρχονται είτε από την ίδια τη μηχανή κατάστασης είτε από έξω (όπως μια συνάρτηση κλπ.).
Το ίδιο το εργαλείο χρησιμοποιεί μια διεπαφή μεταφοράς και απόθεσης και μια γλώσσα συγκεκριμένου τομέα. Θα το ξεπεράσω για εσάς, οπότε δεν χρειάζεται να σκάψετε την τεκμηρίωσή τους για να ξεκινήσει να λειτουργεί ο Otto σας. Η ρύθμιση του IDE δεν είναι πολύ δύσκολη, επειδή όλα τα πρόσθετα κλπ. Θα πρέπει να εγκατασταθούν αυτόματα.
Προμήθειες
Ρομπότ Otto ή ρομπότ Zowi
Και τα δύο αυτά ρομπότ κάνουν ουσιαστικά το ίδιο και χρησιμοποιούν το ίδιο API. Το Otto Robot είναι ένα ρομπότ DIY, με τα μέρη του online, έτοιμα για εκτύπωση με τρισδιάστατο εκτυπωτή, αν τυχαίνει να το έχετε. Η εναλλακτική λύση είναι το Zowi Robot, το οποίο μπορείτε να αγοράσετε online και έτοιμο για χρήση.
Εργαλεία YAKINDU Statechart
Το εργαλείο που θα χρησιμοποιήσουμε για τη μοντελοποίηση της κρατικής μηχανής. Μπορείτε να ξεκινήσετε με δοκιμή 30 ημερών και στη συνέχεια να λάβετε δωρεάν άδεια για μη εμπορική χρήση.
Eclipse C ++ IDE για το πρόσθετο Arduino
Δεν χρειάζεται να το κατεβάσουμε χειροκίνητα, γιατί το IDE το κάνει για εμάς. Εξακολουθούσα να πιστεύω ότι θα ήταν ωραίο να το παραθέσω εδώ.
Βήμα 1: Ρύθμιση των πάντων
Αφού εγκαταστήσετε το IDE, εκτελέστε το και ρυθμίστε έναν χώρο εργασίας οπουδήποτε στον υπολογιστή σας (η ρύθμιση είναι πανομοιότυπη με τη χρήση του Eclipse για πρώτη φορά). Όταν το πρόγραμμα έχει ξεκινήσει πλήρως, κάντε κλικ μακριά από τη σελίδα καλωσορίσματος και κάντε κλικ στο «Αρχείο -> Νέο -> Παράδειγμα…» και, στη συνέχεια, επιλέξτε «Παραδείγματα κρατικών διαγραμμάτων YAKINDU», περιμένετε λίγο και αναζητήστε τα «Ενσωματωμένα συστήματα -> Zowi (C ++) "παράδειγμα.
ΣΗΜΑΝΤΙΚΟ: Κάντε κλικ στο επάνω δεξί κουμπί που ονομάζεται "Εγκατάσταση εξαρτήσεων …"! Αυτό εγκαθιστά τα πάντα για εσάς, ώστε να μην χρειάζεται να ανησυχείτε για τις Βιβλιοθήκες, τις Προσθήκες και τα παρόμοια. Κατεβάστε το παράδειγμα, ακολουθήστε τις οδηγίες στο παράδειγμα "Ενσωματωμένα συστήματα -> Zowi (C ++)" και, στη συνέχεια, συνεχίστε με το επόμενο βήμα.
Βήμα 2: Κατανόηση του τρόπου διασύνδεσης του Otto
Μεταβείτε στο αρχείο ".sct" και επεξεργαστείτε το μηχάνημα κατάστασης όπως σας αρέσει. Στα δεξιά υπάρχει ένα μενού με όλα τα διαθέσιμα στοιχεία. Μας ενδιαφέρουν μόνο οι καταστάσεις και οι μεταβάσεις.
Στην εικόνα, μπορείτε να δείτε ότι έγραψα κάποια πράγματα στις μεταβάσεις. το "μετά το Χ s" είναι αρκετά αυτονόητο και το "πάντα" σημαίνει απλώς, ότι πηγαίνει εκεί αμέσως μετά την ολοκλήρωση του κώδικα από την Πολιτεία. Η "καταχώριση /" σημαίνει ότι ο κώδικας πρέπει να εκτελεστεί αμέσως μετά την είσοδο στην κατάσταση.
Το IDE μεταγλωττίζει το μηχάνημα κατάστασης σε C ++, το οποίο είναι συμβατό με Arduino. Για να χρησιμοποιήσουμε τις δυνατότητες του Otto, πρέπει να κάνουμε λίγη δουλειά μόνοι μας, αποκτώντας πρόσβαση στη διεπαφή.
Οι ακόλουθες λέξεις -κλειδιά μπορούν να χρησιμοποιηθούν για να ορίσουν πράγματα για χρήση από το κρατικό μηχάνημα:
σταθερές, οι οποίες διατηρούν τιμές και δεν μπορούν να αλλάξουν
μεταβλητές, οι οποίες διατηρούν τιμές και μπορούν να αλλάξουν
λειτουργίες, οι οποίες θα δημιουργηθούν σε εικονικές μεθόδους C ++ για υλοποίηση
διεπαφή:
const PIN_YL: ακέραιος = 2 const PIN_YR: ακέραιος = 3 const PIN_RL: ακέραιος = 4 const PIN_RR: ακέραιος = 5 const ήχος: ακέραιος = 2 const mouth_heart: ακέραιος = 13 const mouth_happyOpen: ακέραιος = 11 λειτουργία zowi_init (YL: ακέραιος, YR: ακέραιος, RL: ακέραιος, RR: ακέραιος) λειτουργία zowi_home () λειτουργία zowi_putMouth (στόμα Τύπος: ακέραιος) λειτουργία zowi_sing (τραγούδι Όνομα: ακέραιος) λειτουργία zowi_walk (βήματα: πραγματικό, T: ακέραιος, σκηνοθεσία: ακέραιος) λειτουργία zowi_shakeLeg ()
Επαγγελματική συμβουλή: εάν δεν ξέρετε τι να εισαγάγετε κάπου ή φαίνεται να υπάρχει κάποιο σφάλμα, πατήστε "ctrl+space" για να λάβετε μερικές συμβουλές για το τι μπορείτε να εισαγάγετε.
Επιπλέον, θα πρέπει να εξετάσετε τα παραδείγματα, έχουν κάποιο κώδικα επίσης εκεί! Μπορείτε επίσης να τα χρησιμοποιήσετε ως δομή για απλή επεξεργασία του μοντέλου, το οποίο είναι το μόνο μέρος που μας ενδιαφέρει από τώρα.
Βήμα 3: Συμπλήρωση των κενών
Αφού αλλάξετε πράγματα στο μοντέλο, μπορείτε να κάνετε δεξί κλικ στο "zowiSCT.sgen -> Δημιουργία τεχνουργημάτων κώδικα". Αυτό δημιουργεί τις εικονικές συναρτήσεις σε C ++, οι οποίες δηλώνονται στο μηχάνημα κατάστασης στο φάκελο "src-gen", τον οποίο στη συνέχεια εφαρμόζουμε χρησιμοποιώντας κανονικό C ++.
Απλώς δημιουργήστε αυτά τα δύο αρχεία στο φάκελο "src" για να λάβετε τη λειτουργικότητα που θέλουμε από το Otto.
Πρώτα το Impl.h
#ifndef SRC_IMPL_H_
#define SRC_IMPL_H_ #include "../src-gen/ZowiSCT.h" class 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); άκυρο zowi_walk (sc_real βήματα, sc_integer T, sc_integer dir); void zowi_shakeLeg (); }; #endif / * SRC_IMPL_H_ * /
Στη συνέχεια, το Impl.cpp
#include "Impl.h"
#include "../Zowi/Zowi.h" Zowi 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 βήματα, sc_integer T, sc_integer dir) {zowi.walk (βήματα, T, dir); } void Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }
Βήμα 4: Κάνοντας το Otto Dance
Όταν είστε ικανοποιημένοι με το προϊόν σας, κάντε κλικ στο σφυρί επάνω αριστερά και περιμένετε να ολοκληρωθεί η διαδικασία. Στη συνέχεια, κάντε κλικ στο πράσινο βέλος στα δεξιά του σφυριού και δείτε το Otto σας να χορεύει!
Εάν θέλετε, μπορείτε να δείτε μερικά άλλα παραδείγματα: Εργαλεία κρατικών χαρτών YAKINDU
Συνιστάται:
Ρομπότ Otto DIY+ Arduino Bluetooth Εύκολο στην εκτύπωση 3D: 6 βήματα (με εικόνες)
Otto DIY+ Arduino Bluetooth Robot Easy to 3D Print: Η πραγματικά ανοιχτή πηγή του Otto επιτρέπει την ανοιχτή εκπαίδευση STEAM, συλλέγουμε σχόλια από διάφορα εργαστήρια και σχολεία σε όλο τον κόσμο που χρησιμοποιούν ήδη το Otto DIY στην τάξη τους και ανάλογα με το άνοιγμα αυτών των εκπαιδευτικών χώρων εμείς ή
Πώς να φτιάξετε ρομπότ με βάση το Arduino Edge αποφεύγοντας το ρομπότ: 4 βήματα
Πώς να φτιάξετε ρομπότ με βάση το Arduino Edge: Ας φτιάξουμε ένα πλήρως αυτόνομο ρομπότ χρησιμοποιώντας αισθητήρες Arduino και IR. Εξερευνά την επιφάνεια του τραπεζιού χωρίς να πέφτει. Δείτε βίντεο για περισσότερα
Ρομπότ Arduino Με Απόσταση, Κατεύθυνση και Βαθμός Περιστροφής (Ανατολικά, Δυτικά, Βόρεια, Νότια) Ελεγχόμενος με Φωνή χρησιμοποιώντας Ενότητα Bluetooth και Αυτόνομη Κίνηση Ρομπότ .: 6 Βήματα
Ρομπότ Arduino Με Απόσταση, Κατεύθυνση και Βαθμός Περιστροφής (Ανατολικά, Δυτικά, Βόρεια, Νότια) Ελέγχεται με φωνή χρησιμοποιώντας μονάδα Bluetooth και αυτόνομη κίνηση ρομπότ .: Αυτό το οδηγό εξηγεί πώς να φτιάξετε το Arduino Robot που μπορεί να μετακινηθεί στην απαιτούμενη κατεύθυνση (Εμπρός, Πίσω) , Αριστερά, Δεξιά, Ανατολικά, Δυτικά, Βόρεια, Νότια) απαιτείται Απόσταση σε εκατοστά χρησιμοποιώντας φωνητική εντολή. Το ρομπότ μπορεί επίσης να μετακινηθεί αυτόνομα
Ρομπότ εξισορρόπησης / ρομπότ 3 τροχών / ρομπότ STEM: 8 βήματα
Ρομπότ εξισορρόπησης / ρομπότ 3 τροχών / ρομπότ STEM: Έχουμε δημιουργήσει ένα συνδυασμένο ρομπότ εξισορρόπησης και 3 τροχών για εκπαιδευτική χρήση σε σχολεία και εκπαιδευτικά προγράμματα μετά το σχολείο. Το ρομπότ βασίζεται σε ένα Arduino Uno, μια προσαρμοσμένη ασπίδα (παρέχονται όλες οι λεπτομέρειες κατασκευής), μια μπαταρία ιόντων λιθίου (όλα κατασκευασμένα
[Arduino Robot] Πώς να φτιάξετε ένα ρομπότ σύλληψης κίνησης - Ρομπότ αντίχειρα - Servo Motor - Κωδικός πηγής: 26 βήματα (με εικόνες)
[Arduino Robot] Πώς να φτιάξετε ένα ρομπότ κίνησης | Ρομπότ αντίχειρα | Servo Motor | Κωδικός πηγής: Ρομπότ αντίχειρα. Χρησιμοποίησε ποτενσιόμετρο σερβοκινητήρα MG90S. Είναι πολύ διασκεδαστικό και εύκολο! Ο κώδικας είναι πολύ απλός. Είναι μόνο περίπου 30 γραμμές. Μοιάζει με σύλληψη κίνησης. Αφήστε οποιαδήποτε ερώτηση ή σχόλιο! [Οδηγίες] Πηγαίος κώδικας https: //github.c