विषयसूची:

काम कर रहे आरसी कार स्पीडोमीटर: 4 कदम (चित्रों के साथ)
काम कर रहे आरसी कार स्पीडोमीटर: 4 कदम (चित्रों के साथ)

वीडियो: काम कर रहे आरसी कार स्पीडोमीटर: 4 कदम (चित्रों के साथ)

वीडियो: काम कर रहे आरसी कार स्पीडोमीटर: 4 कदम (चित्रों के साथ)
वीडियो: Speed King Arrma & JLB Cheetah RC Car Collection Rs 15 Lakhs Unboxing & Testing - Chatpat toy tv 2024, नवंबर
Anonim
काम कर रहे आरसी कार स्पीडोमीटर
काम कर रहे आरसी कार स्पीडोमीटर

यह एक छोटा प्रोजेक्ट है जिसे मैंने लाइटवेट लैंड रोवर के बड़े आरसी बिल्ड के हिस्से के रूप में बनाया है। मैंने तय किया कि मुझे डैशबोर्ड में एक काम करने वाला स्पीडोमीटर होना पसंद है, लेकिन मुझे पता था कि एक सर्वो इसे नहीं काटेगा। केवल एक ही उचित विकल्प था: आर्डिनो को तैनात करें!

शुरू करने के लिए थोड़ी सी पृष्ठभूमि … मैं कोई कोडिंग या इलेक्ट्रॉनिक्स व्यक्ति नहीं हूं। मैं अभी भी पानी के प्रवाह के संदर्भ में बिजली के बारे में सोचता हूं और कुछ हद तक प्रतिरोधों से चकित हूं। उस ने कहा, अगर मैं भी यह काम करने में सक्षम था, तो आपको भी सक्षम होना चाहिए!

हिस्सों की सूची:

माइक्रोकंट्रोलर: मैंने एक ATTiny85 चिप का इस्तेमाल किया, जिसकी कीमत लगभग £1 थी।

माइक्रोकंट्रोलर प्रोग्रामर: चिप पर कोड प्राप्त करने के लिए, आपको इसे प्रोग्राम करने का एक तरीका चाहिए। नियमित arduino के साथ यह सिर्फ एक USB केबल है, लेकिन ATTiny चिप के लिए, आपको कुछ अतिरिक्त चाहिए। ऐसा करने के लिए आप किसी अन्य arduino का उपयोग कर सकते हैं या मेरी तरह, आप Sparkfun के एक छोटे AVR प्रोग्रामर का उपयोग कर सकते हैं।

learn.sparkfun.com/tutorials/tiny-avr-prog…

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

8 पिन चिप सॉकेट: यदि आप चिप को सीधे टांका लगाने के बजाय सॉकेट में डालते हैं, तो आप असेंबली में कुछ गलतियाँ कर सकते हैं। अनुभव से बोला गया - कोई भी चिप्स को फिर से प्रोग्राम करने के लिए उन्हें हटाना नहीं चाहता।

कैपेसिटर: 100nF (कोड 104) के डिकूपिंग कैपेसिटर का उपयोग किया जाता है। मुझे समझ में नहीं आता कि क्यों, लेकिन मैंने पढ़ा कि डिकूपिंग कैपेसिटर इंटरनेट पर महत्वपूर्ण हैं, इसलिए यह सच होना चाहिए …

रेसिस्टर: एक 10kΩ रेसिस्टर का उपयोग लाइन को आर्डिनो में खींचने के लिए किया जाता है। फिर से, इलेक्ट्रॉनिक्स का एक और रहस्य।

परफ़बोर्ड / स्ट्रिपबोर्ड: कुछ बेसबोर्ड जिस पर आपके सर्किट को इकट्ठा करना है।

घुमावदार तार: मोटर पर मिलाप करने के लिए नियमित रूप से म्यान किए गए तार बहुत मोटे होते हैं। महीन तामचीनी तार का उपयोग मोटर टर्मिनलों पर तनाव को कम करेगा और आपके जीवन को बहुत आसान बना देगा।

सर्वो वायर: 3-पिन जेआर फीमेल प्लग में समाप्त होने वाला तीन वायर रिबन। मुझे मेरा एक जले हुए सर्वो से मिला है जिसे मैं 'संशोधित' कर रहा था।

स्टेपर मोटर: मैंने 6 मिमी बाइपोलर निडेक स्टेपर मोटर का इस्तेमाल किया। किसी भी छोटे स्टेपर को काम करना चाहिए, हालांकि उन्हें छोटा रखें, क्योंकि स्टेपर को सीधे Arduino से चलाया जा रहा है।

हैडर पिन: आवश्यक नहीं है, लेकिन यदि आप अपने स्टेपर को 4 हेडर पिन से तार देते हैं और अपने सर्किट पर एक सॉकेट लगाते हैं, तो आप आसानी से स्थापना में आसानी के लिए अपने डैशबोर्ड को अनप्लग कर सकते हैं।

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

चरण 1: सिस्टम

मेरे द्वारा बनाई गई प्रणाली की मूल रूपरेखा एक ऐसी विधि थी जिससे RC रिसीवर से आने वाले पल्स चौड़ाई मॉड्यूलेशन (PWM) सिग्नल को ATTiny 85 माइक्रोकंट्रोलर (uC) के माध्यम से स्टेपर मोटर स्वीप में बदल दिया जाता है।

यहां पीडब्लूएम सिग्नल और आरसी पर एक संसाधन है, लेकिन इसे दोहराने के लिए आपको इसे सख्ती से समझने की आवश्यकता नहीं है।

en.wikipedia.org/wiki/Servo_control

ATTiny Arduino का मेरा पसंदीदा स्वाद है क्योंकि यह बुनियादी चीजों को करने के लिए अभी भी पर्याप्त I/O पिन के साथ छोटा है, इसलिए छोटे मॉडल और आरसी परियोजनाओं में पूरी तरह फिट बैठता है। ATTiny का मुख्य पहलू यह है कि इसे प्रोग्राम करने के लिए थोड़ा और सेटअप की आवश्यकता होती है, लेकिन एक बार जब आप इसे सेट कर लेते हैं तो वे इतने सस्ते होते हैं कि आप सभी प्रकार की परियोजनाओं के लिए उनमें से ढेर खरीद सकते हैं।

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

सिस्टम, पावर-अप पर, स्टेपर को दो चक्करों के लिए पीछे की ओर चलाएगा, ताकि सुई को शून्य किया जा सके। स्पीडोमीटर को एक रेस्टिंग पिन की आवश्यकता होती है जहाँ आप चाहते हैं कि शून्य चिह्न हो, अन्यथा यह हमेशा के लिए घूम जाएगा। फिर यह मोटर के चरणों की एक निर्धारित संख्या के लिए आगे और पीछे PWM संकेतों को मैप करता है। आसान, है ना…?

चरण 2: सॉफ्टवेयर

अस्वीकरण: मैं प्रोग्रामर नहीं हूं। इस परियोजना के लिए मैं डॉ. फ्रेंकस्टीन का डिजिटल समकक्ष हूं, जो कोड के विभिन्न पाए गए बिट्स से काम कर रहा है।

तो, मेरा हार्दिक धन्यवाद डुआने बी को जाता है, जिन्होंने आरसी संकेतों की व्याख्या के लिए कोड बनाया:

rcarduino.blogspot.com/

और अर्दुनौत को, जिन्होंने एक स्टेपर को एनालॉग गेज के रूप में चलाने के लिए कोड बनाया था:

arduining.com/2012/04/22/arduino-ddriveing-a…

और दोनों के लिए, मैंने आपके कोड के साथ जो किया उसके लिए मेरी सबसे ईमानदारी से क्षमा याचना।

अब वह रास्ते से बाहर है, यहाँ है कि ATTiny पर क्या अपलोड करना है:

#define THROTTLE_SIGNAL_IN 0 // INTERRUPT 0 = DIGITAL पिन 2 - अटैचमेंट में इंटरप्ट नंबर का उपयोग करें एक इलेक्ट्रिक RC कार पर न्यूट्रल थ्रॉटल की #define UPPER_THROTTLE 2000 // यह एक इलेक्ट्रिक RC कार पर अधिकतम थ्रॉटल के माइक्रोसेकंड में अवधि है #define LOWER_THROTTLE 1000 // यह एक इलेक्ट्रिक RC कार पर न्यूनतम थ्रॉटल के माइक्रोसेकंड में अवधि है #define DEADZONE 50 // यह थ्रॉटल डेडज़ोन है। कुल डेडज़ोन इससे दोगुना है। #include #define STEPS 21 // स्टेप्स प्रति क्रांति (315° तक सीमित) स्पीडोमीटर की अधिकतम यात्रा को समायोजित करने के लिए इसे बदलें। #define COIL1 3 // कॉइल पिन। स्टेपर के लिए ATTiny पिन 0, 1, 3, 4 का उपयोग करता है। पिन 2 एकमात्र ऐसा पिन है जो इंटरप्ट को संभाल सकता है इसलिए इसे इनपुट होना चाहिए। #define COIL2 4 // अगर स्टेपर मोटर ठीक से नहीं चलती है तो इन्हें बदलने की कोशिश करें। #define COIL3 0 #define COIL4 1 // स्टेपर क्लास का एक उदाहरण बनाएं: स्टेपर स्टेपर (STEPS, COIL1, COIL2, COIL3, COIL4); इंट पॉज़ = 0; // चरणों में स्थिति (0-630)= (0°-315°) अंतर गति = 0; फ्लोट थ्रॉटलइनएवीजी = 0; int मापन औसत = ६०; फ्लोट रीसेट काउंटर = 10; // निष्क्रिय थ्रॉटल पर रीसेट करने का समय int Resetval = 0; अस्थिर इंट थ्रॉटलइन = LOWER_THROTTLE; अस्थिर अहस्ताक्षरित लंबी StartPeriod = 0; // बीच में सेट करें // हम एक अलग चर के बजाय लूप में nThrottleIn = 0 का उपयोग कर सकते हैं, लेकिन bNewThrottleSignal का उपयोग करके यह इंगित करने के लिए कि हमारे पास एक नया संकेत है // इस पहले उदाहरण के लिए स्पष्ट है शून्य सेटअप () {// Arduino को बताएं हम चाहते हैं कि जब भी INT0 (डिजिटल पिन 2) INT0 (डिजिटल पिन 2) हाई से लो या लो से हाई में बदलता है // इन परिवर्तनों को पकड़ने से हमें यह गणना करने की अनुमति मिल जाएगी कि इनपुट पल्स कितनी देर तक अटैच हैइंटरप्ट (THROTTLE_SIGNAL_IN, कैल्कइनपुट, चेंज); स्टेपर.सेटस्पीड (50); // मोटर की गति को 30 RPM (360 PPS लगभग) पर सेट करें। स्टेपर.स्टेप (स्टेप्स * 2); // रीसेट स्थिति (X कदम वामावर्त)। } शून्य लूप () {रीसेटवल = मिली; के लिए (int i = 0; i (NEUTRAL_THROTTLE + DEADZONE) && ThrottleInAvg <UPPER_THROTTLE) { स्पीड = मैप (ThrottleInAvg, (NEUTRAL_THROTTLE + DEADZONE), UPPER_THROTTLE, 0, 255); रीसेटवल = 0; } // रिवर्स मैपिंग अगर (ThrottleInAvg LOWER_THROTTLE) { स्पीड = मैप (ThrottleInAvg, LOWER_THROTTLE, (NEUTRAL_THROTTLE - DEADZONE), 255, 0); रीसेटवल = 0; } // ऊपरी सीमा से बाहर अगर (ThrottleInAvg > UPPER_THROTTLE) {SPEED = 255; रीसेटवल = 0; } // सीमा से कम और अगर (ThrottleInAvg Resetcounter) { stepper.step(4); // मैं स्टेपर को खुद को फिर से रीसेट करने के लिए कहने की कोशिश कर रहा हूं अगर आरसी सिग्नल लंबे समय तक डेडज़ोन में है। सुनिश्चित नहीं है कि कोड का यह हिस्सा वास्तव में काम करता है। } } इंट वैल = स्पीड; // पोटेंशियोमीटर मान प्राप्त करें (रेंज 0-1023) वैल = मैप (वैल, 0, 255, 0, स्टेप्स * 0.75); // स्टेपर रेंज में मैप पॉट रेंज। if (abs(val - pos)> 2) {//if diference 2 चरणों से अधिक है। अगर ((वैल - पॉज़)> 0) {स्टेपर.स्टेप (-1); // एक कदम बाईं ओर ले जाएं। स्थिति++; } अगर ((वैल - पॉज़) < 0) { स्टेपर.स्टेप (1); // एक कदम दाईं ओर ले जाएं। स्थिति--; } } // देरी(10); } शून्य कैल्क इनपुट () {// यदि पिन अधिक है, तो यह एक रुकावट की शुरुआत है अगर (डिजिटल रीड (THROTTLE_SIGNAL_IN_PIN) == उच्च) {// माइक्रो का उपयोग करके समय प्राप्त करें - जब हमारा कोड वास्तव में व्यस्त हो जाता है तो यह गलत हो जाएगा, लेकिन वर्तमान एप्लिकेशन के लिए // समझने में आसान और बहुत अच्छी तरह से काम करता है StartPeriod = micros (); } और {// यदि पिन कम है, तो यह पल्स का गिरता हुआ किनारा है इसलिए अब हम माइक्रो द्वारा लौटाए गए वर्तमान समय से // प्रारंभ समय ulStartPeriod घटाकर पल्स अवधि की गणना कर सकते हैं () if (StartPeriod) {ThrottleIn = (इंट) (माइक्रो () - स्टार्टपीरियोड); प्रारंभ अवधि = 0; } } }

ATTiny85 प्रोग्रामिंग के बारे में अधिक जानकारी के लिए इसका संदर्भ लें:

learn.sparkfun.com/tutorials/tiny-avr-prog…

चरण 3: हार्डवेयर

हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर

सर्किट बनाने के लिए सर्किट आरेख देखें। आप इसे कैसे इकट्ठा करते हैं यह आप पर निर्भर है, लेकिन मैं सर्किट बोर्ड प्रोटोटाइप के लिए उपयोग किए जाने वाले स्ट्रिपबोर्ड/परफबोर्ड का उपयोग करने और सॉकेट में चिप को माउंट करने का सुझाव दूंगा।

C1 = 100nF

R1 = 10kΩ

सबसे प्रभावी होने के लिए संधारित्र को जितना संभव हो सके चिप के करीब रखा जाना चाहिए।

एनामेल्ड तारों को मोटर में मिलाते समय, अत्यंत सावधान रहें, क्योंकि मोटरों के टर्मिनलों को बंद करना और कॉइल तार को मोटर से अलग करना पसंद है। इसका समाधान करने के लिए, तारों को मिलाप करना एक अच्छा उपाय है, और फिर जोड़ के ऊपर 2-भाग एपॉक्सी की एक बड़ी बूँद डालें, इसे ठीक होने दें, फिर तारों को एक साथ मोड़ें। यह अलग-अलग टर्मिनल जोड़ों पर तनाव को कम करता है और उन्हें बंद करना बंद कर देना चाहिए। यदि आप ऐसा नहीं करते हैं, तो वे कम से कम सुविधाजनक समय पर बंद हो जाएंगे, गारंटीकृत।

यदि आप हेडर पिन कनेक्टर बनाते हैं, और पिन को इस प्रकार सेट करते हैं: [Ca1, Cb1, Ca2, Cb2] Ca1 के साथ Coil A, वायर 1 आदि के लिए खड़ा है। यह आपको प्लग को स्वैप करके गेज की घूर्णी दिशा बदलने की अनुमति देता है चारों ओर।

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

चरण 4: उपसंहार

उम्मीद है कि आपने इस संक्षिप्त निर्देश का आनंद लिया है, और इसे उपयोगी पाया है। यदि आप इनमें से किसी एक का निर्माण करते हैं, तो मुझे बताएं!

आपको कामयाबी मिले!

सिफारिश की: