विषयसूची:

स्टेट मशीन के साथ अरुडिनो ओटो रोबोट: 4 कदम
स्टेट मशीन के साथ अरुडिनो ओटो रोबोट: 4 कदम

वीडियो: स्टेट मशीन के साथ अरुडिनो ओटो रोबोट: 4 कदम

वीडियो: स्टेट मशीन के साथ अरुडिनो ओटो रोबोट: 4 कदम
वीडियो: How To Make Arduino Human Following Robot 2024, जुलाई
Anonim
Image
Image

परियोजना अवलोकन

इस परियोजना में, मैं आपको ओटो रोबोट की प्रोग्रामिंग का एक तरीका दिखाना चाहता हूं, जो कि एक Arduino आधारित DIY रोबोट है। YAKINDU Statechart Tools (गैर-व्यावसायिक के लिए निःशुल्क) का उपयोग करके हम आसानी से ओटो रोबोट के व्यवहार को ग्राफिक रूप से मॉडल करने और C/C++ कोड जेनरेट करने के लिए स्टेट मशीनों का उपयोग कर सकते हैं। व्यवहार को अपनी पसंद के अनुसार विस्तारित करने के लिए हम उनके एक उदाहरण का उपयोग करेंगे।

उन लोगों के लिए जो यह नहीं जानते कि एक राज्य मशीन क्या है और जटिल विकिपीडिया लेख के माध्यम से अफवाह नहीं करना चाहते हैं, यहां एक छोटी सी व्याख्या है:

एक राज्य मशीन सिर्फ नोड्स और उन नोड्स के बीच पथ है। आपके पास एक प्रारंभिक नोड है और आप अपने गार्ड के आधार पर अन्य नोड्स के लिए पथ ले सकते हैं, जिन्हें घटनाओं द्वारा दर्शाया जा सकता है। इन घटनाओं को या तो राज्य मशीन से या बाहर से (जैसे एक समारोह, आदि) से उठाया जाता है।

टूल स्वयं ड्रैग एंड ड्रॉप इंटरफ़ेस और डोमेन-विशिष्ट भाषा का उपयोग करता है। मैं आपके लिए इस पर जाउंगा, इसलिए आपको अपने ओटो को चलाने और चलाने के लिए उनके दस्तावेज़ीकरण के माध्यम से खोदने की ज़रूरत नहीं है। IDE को सेट करना बहुत कठिन नहीं है, क्योंकि सभी प्लग-इन आदि अपने आप इंस्टॉल हो जाने चाहिए।

आपूर्ति

ओटो रोबोट या ज़ोवी रोबोट

ये दोनों रोबोट अनिवार्य रूप से वही करते हैं और एक ही एपीआई का उपयोग करते हैं। ओटो रोबोट एक DIY रोबोट है, जिसके पुर्जे ऑनलाइन हैं, यदि आपके पास एक 3डी प्रिंटर है तो प्रिंट होने के लिए तैयार है। विकल्प ज़ोवी रोबोट है, जिसे ऑनलाइन खरीदा जा सकता है और उपयोग के लिए तैयार किया जा सकता है।

YAKINDU स्टेटचार्ट टूल्स

वह टूल जिसका उपयोग हम स्टेट मशीन को मॉडल करने के लिए करेंगे। आप 30 दिनों के परीक्षण के साथ शुरुआत कर सकते हैं और बाद में गैर-व्यावसायिक उपयोग के लिए एक निःशुल्क लाइसेंस प्राप्त कर सकते हैं।

Arduino प्लगइन के लिए ग्रहण C++ IDE

हमें इसे मैन्युअल रूप से डाउनलोड करने की आवश्यकता नहीं है, क्योंकि IDE यह हमारे लिए करता है। मैंने अभी भी सोचा था कि इसे यहां सूचीबद्ध करना अच्छा होगा।

चरण 1: सब कुछ सेट करना

ओटो को कैसे इंटरफ़ेस करना है यह समझना
ओटो को कैसे इंटरफ़ेस करना है यह समझना

आईडीई स्थापित करने के बाद, इसे चलाएं और अपने पीसी पर कहीं भी एक कार्यक्षेत्र स्थापित करें (सेटअप पहली बार ग्रहण का उपयोग करने के समान है)। जब कार्यक्रम पूरी तरह से शुरू हो गया है, तो स्वागत पृष्ठ पर क्लिक करें और 'फ़ाइल -> नया -> उदाहरण …' पर क्लिक करें और फिर 'याकिन्दु स्टेटचार्ट उदाहरण' चुनें, थोड़ी प्रतीक्षा करें और "एम्बेडेड सिस्टम -> ज़ोवी (सी ++) खोजें।)" उदाहरण।

महत्वपूर्ण: 'इंस्टॉल डिपेंडेंसीज…' नाम के टॉप राइट बटन पर क्लिक करें! यह आपके लिए सब कुछ स्थापित करता है, इसलिए आपको पुस्तकालयों, प्लग-इन और इसी तरह के बारे में चिंता करने की ज़रूरत नहीं है। उदाहरण डाउनलोड करें, "एम्बेडेड सिस्टम -> ज़ोवी (सी ++)" उदाहरण में दिए गए निर्देशों का पालन करें और फिर अगले चरण के साथ जारी रखें।

चरण 2: समझना कि ओटो को कैसे इंटरफ़ेस करना है

".sct" फ़ाइल में जाएं और अपनी पसंद के अनुसार स्टेट मशीन को संपादित करें। दाईं ओर एक मेनू है जिसमें सभी आइटम उपलब्ध हैं। हम केवल राज्यों और संक्रमणों में रुचि रखते हैं।

चित्र में, आप देख सकते हैं, कि मैंने ट्रांज़िशन पर कुछ चीज़ें लिखी हैं; "एक्स एस के बाद" बहुत आत्म-व्याख्यात्मक है और "हमेशा" का अर्थ है, कि यह राज्य से कोड समाप्त करने के ठीक बाद वहां जाता है। "एंट्री /" का अर्थ है, कि कोड को राज्य में प्रवेश करने के ठीक बाद निष्पादित किया जाना चाहिए।

IDE राज्य मशीन को C++ में संकलित करता है, जो Arduino के अनुरूप है। ओटो की विशेषताओं का उपयोग करने के लिए, हमें इंटरफ़ेस तक पहुँचने के लिए स्वयं थोड़ा काम करना होगा।

राज्य मशीन के उपयोग के लिए सामग्री को परिभाषित करने के लिए निम्नलिखित कीवर्ड का उपयोग किया जा सकता है:

स्थिरांक, जो मान धारण करते हैं और जिन्हें बदला नहीं जा सकता

चर, जो मान धारण करते हैं और जिन्हें बदला जा सकता है

संचालन, जो कार्यान्वयन के लिए आभासी सी ++ विधियों के लिए उत्पन्न किया जाएगा

इंटरफेस:

कॉन्स्ट पिन_वाईएल: पूर्णांक = 2 कॉन्स्ट पिन_वाईआर: पूर्णांक = 3 कॉन्स्ट पिन_आरएल: पूर्णांक = 4 कॉन्स्ट पिन_आरआर: पूर्णांक = 5 कॉन्स्ट साउंड: पूर्णांक = 2 कॉन्स्ट माउथ_हार्ट: पूर्णांक = 13 कॉन्स्ट माउथ_हैप्पी ओपन: पूर्णांक = 11 ऑपरेशन zowi_init (YL: पूर्णांक, YR): पूर्णांक, आरएल: पूर्णांक, आरआर: पूर्णांक) ऑपरेशन zowi_home() ऑपरेशन zowi_putMouth (माउथ टाइप: पूर्णांक) ऑपरेशन zowi_sing (गीतनाम: पूर्णांक) ऑपरेशन zowi_walk (चरण: वास्तविक, टी: पूर्णांक, डीआईआर: पूर्णांक) ऑपरेशन zowi_shakeLeg ()

प्रो टिप: यदि आप नहीं जानते कि किसी स्थान पर क्या दर्ज करना है या कोई त्रुटि प्रतीत होती है, तो आप जो दर्ज कर सकते हैं उस पर कुछ संकेत प्राप्त करने के लिए "ctrl+space" दबाएं।

इसके अतिरिक्त, आपको उदाहरणों पर गौर करना चाहिए, उनके पास कुछ कोड भी हैं! आप उन्हें केवल मॉडल को संपादित करने के लिए एक संरचना के रूप में उपयोग कर सकते हैं, जो कि एकमात्र ऐसा हिस्सा है जिसमें हम अभी रुचि रखते हैं।

चरण 3: अंतराल भरना

अंतराल भरना
अंतराल भरना

मॉडल में चीजें बदलने के बाद आप "zowiSCT.sgen -> Generate Code Artifacts" पर राइट-क्लिक कर सकते हैं। यह सी ++ में वर्चुअल फ़ंक्शंस उत्पन्न करता है, जिसे राज्य मशीन में "src-gen" फ़ोल्डर में घोषित किया जाता है, जिसे हम सामान्य सी ++ का उपयोग करके कार्यान्वित करते हैं।

ओटो से हम जो कार्यक्षमता चाहते हैं उसे प्राप्त करने के लिए बस इन दो फाइलों को "src" फ़ोल्डर में बनाएं।

सबसे पहले Impl.h

#ifndef SRC_IMPL_H_

#define SRC_IMPL_H_ #include "../src-gen/ZowiSCT.h" क्लास इंपल: पब्लिक ZowiSCT::DefaultSCI_OCB{ पब्लिक: Impl(); आभासी ~ Impl (); शून्य zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR); शून्य zowi_home (); शून्य zowi_putMouth (sc_integer माउथ टाइप); शून्य zowi_sing (sc_integer songName); शून्य zowi_walk (sc_real चरण, sc_integer T, sc_integer dir); शून्य zowi_shakeLeg (); }; #endif /* SRC_IMPL_H_ */

फिर Impl.cpp

#शामिल "Impl.h"

#शामिल "../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); } शून्य Impl::zowi_shakeLeg () {zowi.shakeLeg (); }

चरण 4: ओटो नृत्य बनाना

जब आप अपने उत्पाद से खुश हों, तो ऊपर बाईं ओर स्थित हथौड़े पर क्लिक करें और प्रक्रिया समाप्त होने की प्रतीक्षा करें। फिर हथौड़े के दायीं ओर हरे तीर पर क्लिक करें और अपने ओटो को नाचते हुए देखें!

यदि आप चाहें, तो आप कुछ अन्य उदाहरण देख सकते हैं: YAKINDU Statechart Tools

सिफारिश की: