विषयसूची:

STM32F103C और L293D के साथ ब्लूटूथ RC कार - सस्ती: 5 कदम
STM32F103C और L293D के साथ ब्लूटूथ RC कार - सस्ती: 5 कदम

वीडियो: STM32F103C और L293D के साथ ब्लूटूथ RC कार - सस्ती: 5 कदम

वीडियो: STM32F103C और L293D के साथ ब्लूटूथ RC कार - सस्ती: 5 कदम
वीडियो: how to make a Bluetooth RC robot Car Control using Mobile Phone | L293D | HC-06 | 4wd 2024, सितंबर
Anonim
Image
Image
बैटरी ईटर को नष्ट करें!
बैटरी ईटर को नष्ट करें!

मैंने एक ब्लूटूथ Arduino कार बनाई, जैसा कि यहाँ दर्शाया गया है, Ardumotive_com द्वारा। मुझे जो समस्या हो रही थी, वह थी बैटरी और उनका वजन और साथ ही उनका खर्च। तब से, सेल फोन के लिए सस्ते पावर बैंक बहुत सस्ते हो गए हैं। मुझे बस इतना करना था कि मैं अपना वजन कम करूं। सस्ता होने के कारण, मैंने STM32F103C माइक्रोकंट्रोलर पर स्विच किया। STM32F103C माइक्रोकंट्रोलर को $ 2 से कम में खरीदा जा सकता है, और यह Arduino से बहुत छोटा है। मैंने STM32F103C के साथ भी काम करने के लिए कोडिंग को थोड़ा बदल दिया।

आपूर्ति

  • एक सस्ती रिमोट कंट्रोल कार जो बैटरी खाती है। हाँ, ठीक उसी तरह जैसे Ardumotive_com उपयोग करता है। आप सिस्टम को स्विच आउट कर देंगे और इसके बजाय फ़ोन पावर बैंक का उपयोग करेंगे। यदि आपके पास अपना चेसिस बनाने के लिए संसाधन हैं, तो इसे प्राप्त करें। मैं सड़क के नीचे खिलौनों की दुकान में गया और $ 10 से कम के लिए एक सस्ती कार खरीदी। कार बैटरी खाती है, और रिमोट बैटरी खाता है - सुधार के लिए बिल्कुल सही।
  • एक फोनपावर बैंक-- वे अब बहुत सस्ते हैं। उन पावर बैंकों से दूर रहें जिनके साइड में पावर बटन है। आप अपनी कार का अनुसरण करने और बटन दबाए रखने में सक्षम नहीं होंगे। यह मूर्खतापूर्ण है।
  • एक एल२९३डी चिप-- यह दोहरी एच-ब्रिज है जो इलेक्ट्रिक मोटरों को नियंत्रित करेगी।
  • एक HC-06 ब्लूटूथ मॉड्यूल
  • एक स्विच-- मैंने एक साधारण ऑन/ऑफ स्विच का उपयोग किया।
  • कुछ वायर --फोन वायर ठीक रहेगा, लेकिन थोड़ा बड़ा फंसे हुए 20 गेज बेहतर होंगे।
  • आपकी ब्लू पिल और L293D को माउंट करने के लिए एक प्रोटो बोर्ड या प्लास्टिक या कार्डबोर्ड का एक टुकड़ा। मैं सस्ता हूं इसलिए मैं पतले नालीदार कार्डबोर्ड के साथ थोड़ा अलग सिस्टम लेकर आया- जैसे कि एक लाइट बल्ब बॉक्स से।
  • दो सस्ते USB चार्जिंग केबल - इन्हें एक डॉलर ट्री से खरीदा जा सकता है। अपने अच्छे प्रोग्रामिंग केबल का उपयोग न करें। एक ऑन/ऑफ स्विच के लिए कट जाएगा, और दूसरा बैटरी चार्ज करेगा।

ऐच्छिक

  • 4 एल ई डी - यदि आप हेडलाइट्स और टेललाइट्स चाहते हैं।
  • 4 220 ओम रेसिस्टर्स-- 3.3v सिस्टम पर LED s के लिए।
  • हॉर्न के लिए पीजो या छोटा स्पीकर।

उपकरण

  • सोल्डरिंग आयरन और सोल्डर
  • हॉट ग्लू गन-- मेरी बेटी एक हॉट ग्लू गन निंजा है!
  • वायर स्ट्रिपर्स और स्निप्स
  • नोट: यदि आप उस कार्डबोर्ड तकनीक का उपयोग करते हैं जिसका मैं प्रोटो बोर्ड के बजाय उपयोग कर रहा हूं, तो आपको एक डरमेल या छोटी ड्रिल की आवश्यकता होगी।

चरण 1: बैटरी ईटर को नष्ट करें

बैटरी ईटर को नष्ट करें!
बैटरी ईटर को नष्ट करें!

बैटरी खाने वाले को नष्ट करने का मज़ा लेने का समय आ गया है! हाँ, उस बात को समझो! गर्व महसूस करें कि आप दुनिया को हरा-भरा बनाने में अपनी भूमिका निभा रहे हैं-- ठीक है, यह एक खिंचाव है, लेकिन फिर भी… फ्रेम पर पहुंचें।

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

एक बार जब आपके पास मोटर्स और स्टीयरिंग नंगे के साथ फ्रेम हो, तो पता लगाएं कि मोटर टर्मिनलों के किनारे कौन से हैं। मोटर का परीक्षण करने के लिए बैटरी या 5v चार्जर का उपयोग करें।

स्टीयरिंग मोटर पर, जब पहिए दाएं मुड़ते हैं, तो सकारात्मक बैटरी तार "3" और नकारात्मक तार, "6" लेबल करें।

ड्राइविंग मोटर पर, जब पहिए आगे घूमते हैं, तो सकारात्मक बैटरी तार "14" और नकारात्मक तार "11" लेबल करें।

चरण 2: Arduino IDE में कोड

Arduino IDE में कोड
Arduino IDE में कोड
Arduino IDE में कोड
Arduino IDE में कोड

यह सबसे अच्छा हो सकता है यदि आप अपनी कार के इलेक्ट्रॉनिक्स को पहले ब्रेडबोर्ड पर प्रोटोटाइप करते हैं।

ठीक है, यह मुश्किल भागों में से एक है। "ब्लू पिल" को यूएसबी पोर्ट के माध्यम से प्रोग्राम नहीं किया जा सकता है। मुझे जूप ब्रोकिंग के यूट्यूब वीडियो की तुलना में "ब्लू पिल" की आसान प्रोग्रामिंग व्याख्या नहीं मिली है। यह आपको रोजर क्लार्क की STMduino लाइब्रेरी सहित वह सब कुछ बताता है जो आपको जानना चाहिए। बूटलोडर को स्थापित करने का एक तरीका है ताकि आप "ब्लू पिल" प्रोग्राम करने के लिए यूएसबी का उपयोग कर सकें, लेकिन आपको वैसे भी सीरियल बस के माध्यम से बूटलोडर को प्रोग्राम करना होगा।

दुर्भाग्य से, सीरियल बस का उपयोग ब्लूटूथ एडेप्टर द्वारा भी किया जाता है। प्रोग्राम को पहले FTDI के माध्यम से सीरियल बस, PA9 और PA10 पिन के माध्यम से स्थापित किया जाना चाहिए, फिर आप ब्लूटूथ एडाप्टर के साथ अपनी सभी सेटिंग्स की जांच कर सकते हैं।

ब्रेडबोर्ड का उपयोग करें और ब्रेडबोर्ड पर सब कुछ ठीक उसी तरह लेआउट करें जैसे ऊपर फ़्रीज़िंग स्केच। STM32F103C के PA9 और PA10 पिन पर ब्लूटूथ एडेप्टर के सीरियल TX और RX लाइनों को डिस्कनेक्ट करें। अपने FTDI और कार्यक्रम में शामिल हों। सुनिश्चित करें कि सीरियल बस लाइनें पार की गई हैं, RX से Tx और Tx से RX। एक प्राप्त करता है और दूसरा देता है।

प्रोग्राम लोड होने के बाद, आप सीरियल कंसोल खोल सकते हैं और भेज सकते हैं

यह देखने के लिए कि रोशनी काम कर रही है या नहीं। अगर रोशनी काम कर रही है, तो आप भेज सकते हैं

उन्हें फिर से बंद करने के लिए।

टायरों को ऊपर उठाने और भेजने के लिए अपनी कार को एक ब्लॉक पर रखें

पहियों को आगे बढ़ना चाहिए। यदि वे नहीं करते हैं, तो तारों को उलट दें। याद रखें कि हमने पहले तारों को कैसे लेबल किया था। L293D के संगत पिनों का मिलान किया जाना चाहिए।

रोकने के लिए भेजें

आइए कोड में महत्वपूर्ण परिवर्तनों को देखें।

टिप्पणी अनुभाग में, शुरुआत में, आपको अर्डुमोटिव से फाइल्स ओरिजिनेटर देखना चाहिए। अगली कुछ टिप्पणियाँ बताती हैं कि STM32F103C को प्रतिबिंबित करने के लिए मैंने कहाँ थोड़ा बदलाव किया है।

/* * Vasilakis Michalis द्वारा निर्मित // 12-12-2014 ver.2

* प्रोजेक्ट: एंड्रॉइड स्मार्टफोन के साथ ब्लूटूथ के माध्यम से आरसी कार को नियंत्रित करें.com/jgarbe/RCCAR_STM32F103C * ध्यान दें कि 8-बिट मान 0-255 को * 16-बिट मान 0-65535 *//**** में बदल दिया गया है ********* * एसटीएम 32 पर, एनालॉग राइट अभी भी 8-बिट 255 पर काम करता है, * लेकिन आप पीडब्लूएम रेंज का पूर्ण कार्य प्राप्त कर सकते हैं, 0-65535, पिन को पीडब्लूएम के रूप में घोषित करके * और एनालॉगवाइट के बजाय pwmWrite () का उपयोग करना () ***************/

सबसे विशेष रूप से, पिनों का नाम Arduino और STM32F103C के बीच उसी तरह नहीं रखा गया है। हम लाइनों के अगले सेट का उपयोग करके पिन घोषित करते हैं। एक पिन बचा है जिसे लूप में नीचे की ओर घोषित किया गया है। लाइन 197 पर, PA5 का उपयोग बैटरी स्तर को पढ़ने के लिए किया जाता है।

////L293 कनेक्शन

कॉन्स्ट इंट मोटरA1 = PB6; // L293 const int motorA2 = PB7 के पिन 15 को; // L293 const int motorB1 = PB8 के पिन 10 को; // L293 const int motorB2 = PB9 के पिन 7 को; // L293 के 2 पिन करने के लिए // STM32F103C पिन A12 कॉन्स्ट इंट लाइट्स से जुड़े एलईडी = PA12; // बजर / स्पीकर टू अरुडिनो यूएनओ पिन ए 8 कॉन्स्ट इंट बजर = पीए 8; // ब्लूटूथ (HC-06 JY-MCU) STM32F103C const int BTState = PA11 के पिन A11 पर स्टेट पिन;

साथ ही, analogWrite() का उपयोग करना; अभी भी "ब्लूपिल" पर काम करेगा। लेकिन पीडब्लूएम पिन का उपयोग करके घोषित करना बेहतर है, पिनमोड (, पीडब्लूएम);

फिर उपयोग करें

pwmWrite (,);

नोट: 8-बिट = 0-255, 16-बिट = 0-65535

लाइन 32-44 बैटरी में किए गए परिवर्तन हैं। यदि आप बैटरी स्तर की जाँच का उपयोग करने जा रहे हैं, तो आपको अपने पास मौजूद बैटरी के लिए वोटेज डिवाइडर का उपयोग करना चाहिए। यह हिस्सा फ्रिट्ज़िंग स्केच में परिलक्षित नहीं होता है। Youtube पर वोल्टेज डिवाइडर बनाने के तरीके के बारे में बहुत सारी व्याख्याएँ हैं। क्योंकि STM32F103C एक 3.3v चिप है, इसलिए मैंने वोल्टेज डिवाइडर का भौतिक रूप से उपयोग करने के लिए यहां कोड तय किया है। Arduino प्रदान किए गए ADCs के माध्यम से कुछ उच्च वोल्टेज को सहन कर सकता है लेकिन "ब्लू पिल" नहीं कर सकता।

/* पिन PA5 पर बैटरी स्तर की जाँच की जाएगी

* STM32F103C के लिए अगली पंक्ति को बदल दिया क्योंकि ADC * 3.3v से अधिक कुछ भी संभाल नहीं सकता है * मैंने अभी इसे टिप्पणी की है * एक वोल्टेज विभक्त, दो प्रतिरोधों का उपयोग करके गणना की जानी चाहिए और कोड में ADC इनपुट को और नीचे मापने के लिए * का उपयोग किया जाना चाहिए *उदाहरण: *जीएनडी---२के रेसिस्टर--१-१के रेसिस्टर----5वी* | * | * 3.3v */// const फ्लोट मैक्सबैटरी = 3.3; // अपने अधिकतम बैटरी वोल्टेज स्तर पर मूल्य बदलें!

चरण 3: यह सब एक साथ रखो

यह सब एक साथ डालें
यह सब एक साथ डालें
यह सब एक साथ डालें
यह सब एक साथ डालें
यह सब एक साथ डालें
यह सब एक साथ डालें
यह सब एक साथ डालें
यह सब एक साथ डालें

मैं आमतौर पर सब कुछ जोड़ने के लिए टुकड़ों और सोल्डर को छेदों के बीच रखने के लिए एक प्रोटो-बोर्ड का उपयोग करता हूं। कभी-कभी मैं सोल्डर लुक के फ्रेंकस्टीन / 3 डी वैड के लिए सब कुछ एक साथ "डेडबग सोल्डर" करता हूं।

मैंने डिवाइस को साफ और हल्का बनाने के लिए इस हाइब्रिड विधि को चुना-- और निश्चित रूप से, सस्ता!

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

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

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

एक बार सभी सोल्डरिंग पूरी हो जाने के बाद, तारों पर तनाव से राहत के लिए जोड़ों को गर्म करने से पहले परीक्षण करें।

मैंने उसी Android ऐप का उपयोग Ardumotive के रूप में किया, यह https://play.google.com/store/apps/details?id=braulio.calle.bluetoothRCcontroller पर पाया जा सकता है

एक बार जब आप कार के कार्यों का परीक्षण कर लेते हैं, तो बैटरी लगाने और स्विच करने का समय आ गया है। अगले चरण पर जाएं।

चरण 4: बैटरी और स्विच

ठीक है, यह वह जगह है जहाँ आप मेरी योजना का ठीक से पालन नहीं कर सकते।

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

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

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

चरण 5: अपनी कार बॉडी को फ्रेम पर रखें

ठीक है, मैंने कहा कि मैंने इस कार के मूल Arduino संस्करण को फिर से तैयार किया है। वास्तविक अंतिम उत्पाद, तब हमारी स्थानीय बैले कंपनी द्वारा प्रस्तुत "द नटक्रैकर" बैले के लिए एक स्टेज प्रोप था। शुरुआती दृश्य में, ड्रोसेलमेयर के आकस्मिक जादू के साथ एक चूहा मंच पर दौड़ा। मैंने एक IKEA चूहे का इस्तेमाल किया और इसे फ्रेम, Arduino और बहुत बड़े बैटरी पैक के ऊपर फिट किया। सहारा भारी था और रिचार्जेबल नहीं था। यह बहुत बेहतर है!

अपनी कार के साथ मज़े करो। याद रखें कि STM32F103C पर और भी कई पिन हैं जिनका उपयोग किया जा सकता है। हो सकता है कि "टॉय स्टोरी 4" के समान एक बदमाश।

सिफारिश की: