विषयसूची:

गिनी: आपके Arduino के लिए डैशबोर्ड: 4 कदम (चित्रों के साथ)
गिनी: आपके Arduino के लिए डैशबोर्ड: 4 कदम (चित्रों के साथ)

वीडियो: गिनी: आपके Arduino के लिए डैशबोर्ड: 4 कदम (चित्रों के साथ)

वीडियो: गिनी: आपके Arduino के लिए डैशबोर्ड: 4 कदम (चित्रों के साथ)
वीडियो: Logic Gates Learning Kit #2 - Transistor Demo 2024, जून
Anonim
गिनी: आपके Arduino के लिए डैशबोर्ड
गिनी: आपके Arduino के लिए डैशबोर्ड
गिनी: आपके Arduino के लिए डैशबोर्ड
गिनी: आपके Arduino के लिए डैशबोर्ड
गिनी: आपके Arduino के लिए डैशबोर्ड
गिनी: आपके Arduino के लिए डैशबोर्ड
गिनी: आपके Arduino के लिए डैशबोर्ड
गिनी: आपके Arduino के लिए डैशबोर्ड

यह प्रोजेक्ट इंस्ट्रक्शंस में एक कलाकार को निवास में करते हुए किए गए प्रयोगों का एक हिस्सा है। आप अन्य परियोजनाओं को यहां देख सकते हैं। Arduino बोर्ड पर रीयलटाइम डेटा को डीबग और विज़ुअलाइज़ करना एक मुश्किल काम हो सकता है। आप आमतौर पर मानक सीरियल आउटपुट के साथ फंस जाते हैं, क्योंकि आपके Arduino कोड की जटिलता बढ़ती है, इससे यह समझना असंभव हो जाता है कि वास्तव में बोर्ड के अंदर क्या चल रहा है। इसे हल करने के लिए मैंने एक छोटी सी लाइब्रेरी बनाई है जो आपको अपने Arduino प्रोजेक्ट्स के लिए अपना खुद का कस्टम GUI बनाने में सक्षम करेगी। एक पॉटमीटर और एक डायोड के साथ एक बुनियादी हैलो वर्ल्ड का प्रदर्शन प्राप्त करने के लिए यह वीडियो देखें: अब तक, कार्यक्रम में निम्नलिखित संभावनाएं और विशेषताएं हैं: Arduino बोर्ड से अपने इंटरफ़ेस को कस्टम डिज़ाइन करें आप परिभाषित करते हैं कि आपको कौन से स्लाइडर, ग्राफ़ और बटन की आवश्यकता है आपके इंटरफ़ेस के लिए। आप इसे अपने Arduino स्केच में करते हैं जिसका अर्थ है कि gui प्रोग्राम स्केच के दास के रूप में कार्य करता है। सभी जानकारी आपके बोर्ड में संग्रहीत है। रीयलटाइम डेटा को विज़ुअलाइज़ और हेरफेर करें चाहे आप आरजीबी लाइट कंट्रोलर या रोबोट आर्म बना रहे हों, बोर्ड के अंदर क्या हो रहा है, यह समझने के लिए ग्राफिकल फीडबैक प्राप्त करना महत्वपूर्ण है। यह आपको यह समझने में सक्षम बनाता है कि यह आपका हार्डवेयर है या कोड जो समस्या पैदा कर रहा है। इसके अलावा स्लाइडर और बटन आपको अलग-अलग मापदंडों को रीयलटाइम में बदलने में सक्षम बनाते हैं। इस तरह आप देख सकते हैं कि अलग-अलग थ्रेसहोल्ड का इंटरैक्शन पर क्या प्रभाव पड़ता है। बोर्ड मेमोरी में मापदंडों को सहेजें जब आपने मापदंडों को बदल दिया है तो आप उन्हें बोर्ड के ईईप्रोम में सहेज सकते हैं। अगली बार जब आप बोर्ड पर काम करेंगे तो पैरामीटर स्वतः लोड हो जाएंगे, भले ही कंप्यूटर कनेक्ट न हो। अपने सभी Arduino प्रोजेक्ट्स के लिए एक ही ऐप का उपयोग करें मैंने विभिन्न प्रोजेक्ट्स के लिए बहुत सारे छोटे ऐप बनाए हैं। मेरी समस्या हमेशा एक साल बाद उन्हें फिर से खोजने की है। क्योंकि हम Arduino में सब कुछ सहेजते हैं, मुझे केवल Arduino के चारों ओर एक ऐप रखने की आवश्यकता है, वर्तमान प्रोजेक्ट के लिए ऐप को स्वचालित रूप से कॉन्फ़िगर करेगा। सोल्डरिंग आयरन चालू करने से पहले इंटरफ़ेस को प्रोटोटाइप करें क्योंकि आप इसे अपनी पसंद के अनुसार डिजाइन कर सकते हैं (उचित के भीतर) सीमाएं), आप भौतिक इंटरफ़ेस बनाने से पहले इंटरफ़ेस को प्रोटोटाइप कर सकते हैं। यह आपको कार्यों को कई लोगों के बीच विभाजित करने में सक्षम बनाता है उदा। एक व्यक्ति हार्डवेयर पर काम कर रहा है और दूसरा व्यक्ति कोड पर काम कर रहा है। जब आपने भौतिक इंटरफ़ेस बना लिया है तो गिनी मूल रूप से एकीकृत हो जाएगा। इसे फ़ुलस्क्रीन डैशबोर्ड के रूप में उपयोग करें आप इसे F दबाकर और T दबाकर सेटिंग पैनल की दृश्यता को टॉगल करके इसे फ़ुलस्क्रीन डैशबोर्ड के रूप में उपयोग कर सकते हैं। आप इसके द्वारा केवल अपने आस-पास की दुनिया के लिए अपना कस्टम इंटरफ़ेस प्रस्तुत करते हैं। पृष्ठभूमि के रंग को नियंत्रित करें पृष्ठभूमि का रंग Arduino से नियंत्रित किया जा सकता है जिससे आप विभिन्न स्केच के लिए अलग-अलग रंग बना सकते हैं। इसका उपयोग कुछ गलत होने पर अलर्ट करने के लिए भी किया जा सकता है। सब कुछ ठीक होने पर यह हरा हो सकता है और कुछ गलत होने पर लाल हो सकता है। तेज़ और पतला मैंने Arduino पर पदचिह्न बनाने में बहुत सावधानी बरती है - यह केवल मेमोरी में न्यूनतम मात्रा में डेटा संग्रहीत करता है (कंक्रीट रूप से एक सूचक) 100 वस्तुओं की सूची)। आपके इंटरफ़ेस में आपके द्वारा इच्छित gui आइटम की मात्रा के आधार पर इस सेटिंग को निम्न या उच्चतर में बदला जा सकता है। इसके अलावा सिस्टम EasyTransfer लाइब्रेरी पर निर्भर करता है जो सूचना को बाइनरी रूप में स्थानांतरित करता है। प्रत्येक पैकेज में कमांड के लिए एक बाइट, आइटम # के लिए एक बाइट और मान के लिए एक पूर्णांक होता है। आदर्श रूप से, आपके सभी डेटा को 16 बिट हस्ताक्षरित पूर्णांक श्रेणी में सामान्यीकृत किया जाना चाहिए। इसका मतलब है कि पूर्णांकों के साथ काम करते समय सीरियल पोर्ट का इष्टतम उपयोग (तकनीकी रूप से हम चेकसम के लिए थोड़ी अतिरिक्त जगह का उपयोग करते हैं)। इंस्ट्रक्शंस के लिए अच्छा GUI आपको इंस्ट्रक्शंस बनाने में सक्षम बनाता है जिसके लिए केवल कोर कंपोनेंट्स की आवश्यकता होती है। पॉटमीटर आदि जैसे अतिरिक्त घटकों को वस्तुतः गुई के माध्यम से बनाया जा सकता है। सीमाएं और भविष्य की योजनाएं अभी ऐप को मैक ओएसएक्स और विंडोज प्लेटफॉर्म पर संकलित किया गया है। यह ओपनफ्रेमवर्क में लिखा गया है इसलिए इसे अन्य प्लेटफॉर्म पर भी चलाने में सक्षम होना चाहिए। चूंकि ऐप सीरियल पोर्ट का उपयोग कर रहा है, इसलिए आप अन्य प्रोग्रामों को Arduino से कनेक्ट नहीं कर पाएंगे। इसे भविष्य की रिलीज़ में हल किया जाएगा जिसमें एक ओपन साउंड कंट्रोल और एक मिडी ब्रिज शामिल होगा। क्रेडिट: प्रोग्रामिंग और विचार द्वारा: मैड्स हॉबी ईज़ीट्रांसफर लाइब्रेरी द्वारा: बिल पोर्टर जीयूआई पुस्तकालय द्वारा: रेजा अली

चरण 1: आरंभ करना

शुरू करना
शुरू करना
शुरू करना
शुरू करना
  • GUINO पैकेज को डाउनलोड और अनज़िप करें।
  • डाउनलोड Arduino
  • लाइब्रेरी फ़ोल्डर को अपने Arduino लाइब्रेरी फ़ोल्डर में कॉपी करें (यहां कैसे करें)
  • Arduino को पुनरारंभ करें।
  • Arduino के भीतर एक उदाहरण खोलें। (मेनू: फ़ाइलें -> उदाहरण -> गिनी -> एक चुनें)
  • यदि आप सरल उदाहरण का उपयोग करते हैं तो ऊपर दिखाए गए अनुसार एक सर्किट बनाएं।
  • उदाहरण अपलोड करें।
  • गिनी ऐप चलाएं।
  • सीरियल पोर्ट चुनें (आमतौर पर आखिरी वाला)
  • कनेक्ट दबाएं।

स्रोत यहां पाया जा सकता है।

महत्वपूर्ण: विंडोज प्लेटफॉर्म पर इसका उपयोग करते समय आपको एक कॉम पोर्ट का उपयोग करना होगा जो 10 से कम या बराबर हो। यदि आप 10 या उससे ऊपर के पोर्ट का उपयोग करते हैं तो सिस्टम काम नहीं करेगा। यह ओपनफ्रेमवर्क में एक बग है।

चरण 2: कोड को कैसे संशोधित करें

कोड को कैसे संशोधित करें
कोड को कैसे संशोधित करें

अपने स्केच के साथ काम करने के लिए पुस्तकालय के लिए, आपको कुछ अतिरिक्त तरीकों की आवश्यकता है। मैंने उनका वर्णन नीचे किया है:gInit() यह वह जगह है जहां आप अपना लेआउट परिभाषित करते हैं यह विधि क्रमिक रूप से घटकों को जोड़कर लेआउट को परिभाषित करती है। घटक जिन्हें बदला जा सकता है (स्लाइडर, बटन आदि) में एक चर जुड़ा होता है। वेरिएबल के सामने & का मतलब है कि हम वेरिएबल में वैल्यू पास नहीं करना चाहते हैं, लेकिन हम वेरिएबल के लिए एक रेफरेंस (पॉइंटर) पास करना चाहते हैं। इस तरह GUI में परिवर्तन होने पर गिनी सिस्टम स्वचालित रूप से उन्हें अपडेट कर देता है। शून्य gInit () {gAddLabel ("स्लाइडर्स", 1); जीएडस्पेसर(1); gAddSlider(3, 200, "WIDTH", और चौड़ाई); gAddSlider(3, 200, "ऊंचाई", और ऊंचाई); gAddSlider(0, 255, "LED BRIGHTNESS", &ledLight); // रोटरी स्लाइडर्स gAddLabel ("रोटरी स्लाइडर्स", 1); जीएडस्पेसर(1); [………….] gAddColumn (); // यहां और सामान जोड़ें। जीसेटकलर (आर, जी, बी); // गुई इंटरफ़ेस का रंग सेट करें। }GBtonPressed(int id) जब भी कोई बटन दबाया जाता है तो इसे कहा जाता है आम तौर पर चर स्वचालित रूप से अपडेट किए जा सकते हैं, लेकिन बटन के मामले में इसे एक ऐसी घटना की आवश्यकता होती है जिसका आप ध्यान रखते हैं। इस उदाहरण में जब कोई बटन दबाता है तो हम ऊंचाई चर को 100 पर सेट करते हैं। शून्य gButtonPressed (इंट आईडी) {अगर (बटन आईडी == आईडी) {ऊंचाई = 100; gUpdateValue(&ऊंचाई); } }gItemUpdated(int id) इसे जब भी कहा जाता है और आइटम को अपडेट किया गया है तो आमतौर पर इसका उपयोग करना आवश्यक नहीं है क्योंकि सिस्टम स्वचालित रूप से चर अपडेट करेगा। यदि आप किसी बदलाव पर प्रतिक्रिया करना चाहते हैं तो आप इसका उपयोग इस तरह कर सकते हैं। इस मामले में जब भी 3 रोटरी स्लाइडर्स में से एक को बदला जाता है तो हम पृष्ठभूमि का रंग अपडेट कर रहे हैं। शून्य gItemUpdated(int id) { अगर (रोटरीआरआईडी = आईडी || रोटरीजीआईडी == आईडी || रोटरीबीआईडी == आईडी) {जीसेटकोलर (आर, जी, बी); } }

चरण 3: कुछ त्वरित सुझाव

नया स्केच अपलोड करते समय डिस्कनेक्ट करना याद रखें Arduino बोर्ड पर एक नया स्केच अपलोड करते समय आप गिनी को चालू नहीं कर सकते, क्योंकि वे एक ही सीरियल कनेक्शन का उपयोग करते हैं। इसके लिए आपको हर बार नया स्केच अपलोड करने पर डिस्कनेक्ट करना होगा। यदि आप (और आप) गिनी से जुड़े होने के दौरान अपलोड करने का प्रयास करते हैं, तो बोर्ड कुछ अजीब स्थिति में जा सकता है जहां यह चल रहा है, लेकिन काफी नहीं। इस बिंदु पर आपका एकमात्र विकल्प रीसेट बटन दबाकर या यूएसबी केबल को डिस्कनेक्ट और पुन: कनेक्ट करके बोर्ड को रीसेट करना है। ज्ञात बग अभी तक सिस्टम काम कर रहा है और स्थिर है। निम्नलिखित बग हैं जिनके बारे में पता होना चाहिए:

  • सेटमिन मूविंगग्राफ पर काम नहीं करता है (ऐसा लगता है कि जीयूआई लाइब्रेरी में एक बग है जिसे ठीक करने की जरूरत है)। तो न्यूनतम शून्य पर रहता है।
  • कार्यक्रम शुरू करते समय सीरियल सूची लोड हो जाती है। प्रोग्राम शुरू करने से पहले Arduino को प्लग इन करना होगा। चलते समय सीरियल सूची को रीफ्रेश करना एक खराब घटना का कारण बनता है। इसका समाधान होना अभी बाकी है।
  • सीरियल सूची के साथ फ़िडलिंग - कभी-कभी प्रोग्राम क्रैश हो जाता है (रिफ्रेश के रूप में एक ही गुई इवेंट - स्रोत ढूंढना पड़ता है)
  • इनिशियलाइज़ेशन के आधार पर टॉगल बटन की पृष्ठभूमि काली हो जाती है। मुझे पृष्ठभूमि को मैन्युअल रूप से सेट करने की आवश्यकता है।
  • कुछ विंडोज़ प्लेटफॉर्म पर कॉम पोर्ट दिखाई नहीं देता है। एक ftdi ड्राइवर समस्या हो सकती है।

चरण 4: मामलों का प्रयोग करें

बक्सों का इस्तेमाल करें
बक्सों का इस्तेमाल करें

यदि आप गिनी इंटरफ़ेस के साथ कुछ उपयोग के मामलों को देखना चाहते हैं तो इस निर्देश पर जाएँ।

सिफारिश की: