- Nucleo64 बोर्डों के लिए आवश्यक विकास प्लेटफार्मों का चयन और डाउनलोड करना
- सर्किट आरेख और हार्डवेयर सेटअप
- STM32 Nucleo64 विकास बोर्डों के लिए STM32CubeMX के साथ शुरुआत करना
- TrueSTUDIO का उपयोग करके STM32 Nucleo64 विकास बोर्ड प्रोग्रामिंग
- STM32 न्यूक्लियो 64 पुश बटन का उपयोग करके एलईडी को नियंत्रित करने का कार्यक्रम
- TrueSTUDIO का उपयोग करके STM32 Necleo64 डेवलपमेंट बोर्ड को कोड डिबगिंग और अपलोड करना
हम में से कई लोगों को लोकप्रिय माइक्रोकंट्रोलर्स और डेवलपमेंट बोर्ड जैसे Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051, आदि से परिचित होना चाहिए। वास्तव में, ज्यादातर लोगों के लिए, Arduino अपना पहला डेवलपमेंट बोर्ड रहा होगा, लेकिन जैसा कि हम गहरी खुदाई करते हैं और शुरू करते हैं। पेशेवर डिजाइन, हम जल्द ही Arduino (जैसे लागत, बहुमुखी प्रतिभा, स्थिरता, गति, आदि) की सीमाओं का एहसास करेंगे और PIC, STM, रेनेसस आदि जैसे अधिक देशी माइक्रोकंट्रोलर प्लेटफॉर्म में शिफ्ट होने की आवश्यकता को समझेंगे।
हमने पहले से ही PIC माइक्रोकंट्रोलर ट्यूटोरियल के एक क्रम को कवर किया है, जो PIC माइक्रोकंट्रोलर सीखने के लिए शुरुआती गाइड करता है। इसी तरह, इस लेख से शुरू करते हुए, हम STM32 Nucleo64 डेवलपमेंट बोर्ड ट्यूटोरियल के एक सीक्वेंस की भी योजना बनाएंगे, जो STM32 प्लेटफॉर्म का उपयोग करके सीखने और विकसित करने के लिए पूर्ण शुरुआती मदद कर सकता है। Nucleo64 विकास बोर्ड कम लागत और पेशेवर डेवलपर्स के साथ-साथ हॉबीस्ट के लिए मंच का उपयोग करने में आसान है। यदि आप STM32 Nucleo64 विकास बोर्डों में पूरी तरह से नए हैं, तो आगे बढ़ने से पहले इस बोर्ड की मूल बातें समझने के लिए इस Nucleo64 समीक्षा वीडियो को देखें। वीडियो यह भी दर्शाता है कि एआरएम एमबेड प्लेटफॉर्म का उपयोग करके एसटीएम 32 को कैसे प्रोग्राम किया जाए लेकिन इस ट्यूटोरियल के लिए, हम एसटी माइक्रोइलेक्ट्रॉनिक से प्लेटफ़ॉर्म का उपयोग करने के लिए एक और मुफ्त का उपयोग करेंगे, जिसे ट्रूस्टुडिओ कहा जाता है।
नोट: STM32 Nucleo64 विकास बोर्ड के कई संस्करण हैं, इस ट्यूटोरियल में उपयोग किया गया विशेष बोर्ड NUCLEO-F030R8 है । हमने इस बोर्ड को मुख्य रूप से इसकी कम लागत के कारण चुना है। यहां तक कि, अगर आपके पास एक अलग संस्करण है, तो ट्यूटोरियल में चर्चा की जाने वाली अधिकांश चीजें आपके लिए आरंभ करने के लिए पर्याप्त होंगी।
Nucleo64 बोर्डों के लिए आवश्यक विकास प्लेटफार्मों का चयन और डाउनलोड करना
किसी भी माइक्रोकंट्रोलर के साथ शुरू करने के लिए एक प्रोग्रामिंग आईडीई की आवश्यकता होगी जैसे कि हमारे पास Arduino बोर्ड के लिए Arduino IDE, AVR microcontroller के लिए Atmel स्टूडियो, PIC के लिए MP लैब इत्यादि हैं, इसलिए यहां हमें प्रोग्रामिंग और डीबगिंग करने के लिए हमारे STM32 न्यूक्लियो 64 बोर्डों के लिए IDE की भी आवश्यकता है। STM32 परिवार में 32-बिट माइक्रोकंट्रोलर होते हैं जो निम्नलिखित IDE और टूलचिन का समर्थन करते हैं:
- एआरएम® (EWARM) के लिए IAR एंबेडेड वर्कबेंच®।
- एमडीके-एआरएम केइल
- ट्रूस्टुडिओ
- STM32 के लिए सिस्टम कार्यक्षेत्र
हमारे ट्यूटोरियल के लिए, TrueSTUDIO का उपयोग लेखन, संकलन और डिबगिंग कोड के लिए किया जाएगा क्योंकि यह बिना किसी लाइसेंस आवश्यकता के व्यावसायिक परियोजनाओं के लिए भी डाउनलोड और उपयोग करने के लिए स्वतंत्र है। फिर STM32CubeMX का उपयोग प्रोग्रामिंग को आसान बनाने के लिए STM32 बोर्डों के लिए परिधीय ड्राइवरों को उत्पन्न करने के लिए किया जाएगा। हमारे कार्यक्रम (हेक्स फ़ाइल) को हमारे विकास बोर्ड में अपलोड करने के लिए, लोग आमतौर पर एसटीएम 32 एसटी-लिंक उपयोगिता उपकरण का उपयोग करते हैं, लेकिन इसके बजाय, हम ऐसा करने के लिए स्वयं ट्रूस्टीयूडियो का उपयोग करेंगे। TrueSTUDIO में एक डिबग मोड है जो प्रोग्रामर को हेक्स फ़ाइल को सीधे STM32 बोर्ड पर अपलोड करने की अनुमति देता है। TrueSTUIO और STM32CubeMX दोनों को डाउनलोड करना आसान है, बस नीचे दिए गए लिंक का पालन करें, साइनअप करें और सेटअप डाउनलोड करें। फिर उन्हें अपने लैपटॉप पर स्थापित करें।
- STM32Cube MX डाउनलोड करें
- TrueSTUDIO डाउनलोड करें
सर्किट आरेख और हार्डवेयर सेटअप
सॉफ़्टवेयर अनुभाग और कोडिंग के साथ आगे बढ़ने से पहले, आइए इस परियोजना के लिए अपना बोर्ड तैयार करें। जैसा कि पहले इस लेख में उल्लेख किया गया है, हम एक पुश बटन का उपयोग करके एक एलईडी को नियंत्रित करने जा रहे हैं। अब, यदि आपने ऊपर दिया गया वीडियो देखा है, तो आपको पहले ही पता होना चाहिए कि आपके STM32 डेवलपमेंट बोर्ड में दोनों तरफ कनेक्टर पिन के दो सेट हैं, जिन्हें ST Morpho पिन कहा जाता है। हमने इन पिंस से एक पुश-बटन और एक एलईडी कनेक्ट किया है जैसा कि नीचे दिए गए सर्किट आरेख में दिखाया गया है।
इस परियोजना के लिए सर्किट कनेक्शन आसान हैं, हमें PORTA के पीए 5 पर एक एलईडी और जीएनडी के संबंध में पोर्ट ऑफ पीसीओटी से कनेक्ट करना होगा। एक बार कनेक्शन हो जाने के बाद, मेरा परीक्षण सेट-अप इस तरह दिखता था।
वैकल्पिक रूप से, हम बोर्ड पर इनबिल्ट एलईडी और पुश बटन का भी उपयोग कर सकते हैं। ये इनबिल्ट एलईडी और पुश-बटन भी उसी पिन से जुड़े होते हैं जैसा कि सर्किट आरेख में दिखाया गया है। हमने केवल अभ्यास के लिए बाहरी घटकों को जोड़ा है। STM32 डेवलपमेंट बोर्ड के नीचे पिन आरेख यह जानने के लिए काम में आएगा कि प्रत्येक मोर्फो पिन ऑनबोर्ड से कहां जुड़े हैं।
STM32 Nucleo64 विकास बोर्डों के लिए STM32CubeMX के साथ शुरुआत करना
चरण 1: स्थापना के बाद, STM32CubeMX लॉन्च करें, फिर STM32 बोर्ड का चयन करने के लिए एक्सेस बोर्ड चयनकर्ता का चयन करें।
चरण 2: अब NUCLEO-F030R8 की तरह अपने STM32 बोर्ड नाम से बोर्ड खोजें और चित्र में दिख रहे बोर्ड पर क्लिक करें। यदि आपके पास इसके संबंधित नाम के लिए एक अलग बोर्ड खोज है। सॉफ्टवेयर एसटी माइक्रोइलेक्ट्रॉनिक से सभी STM32 विकास बोर्डों का समर्थन करेगा।
चरण 3: अब नीचे दिए गए चित्र पर दिखाए अनुसार हाँ पर क्लिक करें, अपने डिफ़ॉल्ट मोड में सभी परिधीयों को इनिशियलाइज़ करने के लिए। हम बाद में अपनी परियोजना द्वारा आवश्यकतानुसार आवश्यक परिवर्तन कर सकते हैं।
'हां' पर क्लिक करने के बाद, स्क्रीन नीचे की तस्वीर और हरे रंग की पिन के समान होगी जो यह दर्शाती है कि वे डिफ़ॉल्ट रूप से शुरू किए गए हैं।
चरण 4: अब उपयोगकर्ता श्रेणियों से वांछित सेटिंग का चयन कर सकते हैं। यहाँ इस ट्यूटोरियल में, हम एक पुश बटन का उपयोग करके एलईडी को टॉगल करने जा रहे हैं। इसलिए, हमें आउटपुट के रूप में एलईडी पिन बनाने और INPUT के रूप में पिन स्विच करने की आवश्यकता है ।
आप किसी भी पिन का चयन कर सकते हैं, लेकिन मैं का चयन कर रहा हूँ PA5 करने के लिए और अपने राज्य को बदलने GPIO_Output यह एक आउटपुट पिन के रूप में काम करने के लिए के रूप में चित्र के नीचे में दिखाया गया है।
इसी तरह, मैं PC13 को GPIO_Input के रूप में चुन रहा हूं ताकि मैं अपने पुश-बटन की स्थिति पढ़ सकूं।
वैकल्पिक रूप से, हम पिनआउट और कॉन्फ़िगरेशन टैब से पिन भी कॉन्फ़िगर कर सकते हैं और साथ ही नीचे दिखाया गया है।
चरण 5: अगले चरण में, उपयोगकर्ता बाहरी और आंतरिक थरथरानवाला के अनुसार माइक्रोकंट्रोलर और पिन के लिए वांछित आवृत्ति सेट कर सकता है। डिफ़ॉल्ट रूप से, एक आंतरिक 8 मेगाहर्ट्ज क्रिस्टल थरथरानवाला चुना जाता है और पीएलएल का उपयोग करके, यह 8 48MHz में परिवर्तित हो जाता है। डिफ़ॉल्ट रूप से STM32 बोर्ड या माइक्रोकंट्रोलर और पिन 48MHz पर काम करेंगे ।
चरण 6: अब प्रोजेक्ट मैनेजर में जाएं और अपनी परियोजना, प्रोजेक्ट स्थान पर एक नाम दें, और टूलचेन या आईडीई चुनें। यहां हम TrueSTUDIO का उपयोग कर रहे हैं, इसलिए मैंने नीचे दिखाए अनुसार चयन किया है।
Step 7: अब निचे चित्र में लाल घेरे द्वारा Generate Code mark पर क्लिक करें।
स्टेप 8: अब आपको दिए गए अनुसार एक पॉपअप दिखाई देगा फिर ओपन प्रोजेक्ट पर क्लिक करें। लेकिन, सुनिश्चित करें कि आपने इस कदम से पहले TrueSTUDIO को स्थापित किया है।
TrueSTUDIO का उपयोग करके STM32 Nucleo64 विकास बोर्ड प्रोग्रामिंग
अब आपका कोड या प्रोजेक्ट TrueSTUDIO में स्वतः खुल जाएगा यदि TrueSTUDIO कार्यक्षेत्र का स्थान पूछता है तो कार्यस्थान स्थान प्रदान करें या डिफ़ॉल्ट स्थान के साथ जाएं।
उपयोगकर्ता को नीचे दी गई स्क्रीन दिखाई देगी और फिर लाल रंग में कोने के निशान पर क्लिक करना होगा।
और अब हम अपने TreuSTUDIO IDE में कोड देख सकते हैं। 'Src' फोल्डर के नीचे बाईं ओर हम अन्य प्रोग्राम फाइल्स (.c एक्सटेंशन के साथ) देख सकते हैं जो पहले ही हमारे लिए STM32Cube से उत्पन्न हो चुकी हैं। हमें सिर्फ main.c फाइल को प्रोग्राम करना है। यहां तक कि main.c फ़ाइल में भी हमारे पास CubeMX द्वारा हमारे लिए पहले से ही कुछ चीजें सेट-अप हैं, हमें केवल अपने प्रोग्राम को सूट करने के लिए इसे एडिट करना होगा। Main.c फ़ाइल के अंदर पूरा कोड इस पेज के नीचे दिया गया है।
STM32 न्यूक्लियो 64 पुश बटन का उपयोग करके एलईडी को नियंत्रित करने का कार्यक्रम
चूंकि सभी आवश्यक ड्राइवर और कोड STM32CubeMX द्वारा उत्पन्न होते हैं, इसलिए हमें केवल आउटपुट के रूप में एक एलईडी पिन और इनपुट के रूप में एक पुश-बटन को कॉन्फ़िगर करना होगा। पुश बटन का उपयोग करके एलईडी को नियंत्रित करने के कार्यक्रम को main.c फ़ाइल में लिखा जाना चाहिए। पूरा कार्यक्रम इस पृष्ठ के नीचे पाया जा सकता है। इसका स्पष्टीकरण इस प्रकार है
हमने केवल पुश बटन का उपयोग करके एलईडी को टॉगल करने के लिए कोड लिखा है। इसे प्राप्त करने के लिए, हम पहले एलईडी और पुश-बटन के लिए पिन को परिभाषित करते हैं। यहाँ हमने PORTA के 5 नंबर पर एक एलईडी को परिभाषित किया है
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
और PORTC के पिन नंबर 13 पर स्विच को परिभाषित करें।
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
फिर मुख्य फ़ंक्शन में, हमने सभी उपयोग किए गए बाह्य उपकरणों को इनिशियलाइज़ किया है।
/ * सभी कॉन्फ़िगर किए गए बाह्य उपकरणों को प्रारंभ करें * / MX_GPIO_Init (); MX_USART2_Init ();
और फिर if स्टेटमेंट का उपयोग करके पुश बटन को पढ़ें और यदि बटन प्रेस (LOW) पाया जाता है, तो LED उसके राज्य को टॉगल करेगा।
जबकि (1) {/ * USER CODE END WHILE * / if (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW.PORT, LED_PIN); HAL_Delay (200); } / * USER कोड BEGIN 3 * /}
यहां HAL_GPIO_ReadPin (SW_PORT, SW_PIN) फ़ंक्शन के दो तर्क हैं, एक पोर्ट है और दूसरा एक पिन है जिस पर स्विच जुड़ा हुआ है और STM32CubeMX में परिधीय को कॉन्फ़िगर करते समय यह पिन INPUT के रूप में कॉन्फ़िगर किया गया है।
TrueSTUDIO का उपयोग करके STM32 Necleo64 डेवलपमेंट बोर्ड को कोड डिबगिंग और अपलोड करना
अब प्रोग्रामर केबल का उपयोग करके अपने बोर्ड को कंप्यूटर से कनेक्ट करें। एक बार जब आप इसे कनेक्ट करते हैं, तो बोर्ड के लिए आवश्यक ड्राइवर को स्वचालित रूप से डाउनलोड किया जाना चाहिए, आप डिवाइस प्रबंधक का उपयोग करके इसकी जांच कर सकते हैं।
फिर, प्रोग्राम को संकलित करने और डिबग मोड में प्रवेश करने के लिए नीचे दी गई तस्वीर में लाल सर्कल द्वारा चिह्नित डिबग आइकन दबाएं।
डिबग मोड में, कोड स्वचालित रूप से अपलोड किया जाएगा। अब हमें 'फिर से शुरू' या F8 (नीचे चित्र में लाल सर्किट में चिह्नित) दबाकर कोड को चलाने की आवश्यकता है।
अब हम पुश बटन को दबाकर एलईडी के नियंत्रण का परीक्षण कर सकते हैं। कोड के अनुसार, एलईडी को हर बार पुश बटन दबाते समय अपना राज्य बदलना चाहिए। इस पृष्ठ के निचले भाग में लिंक किए गए वीडियो में भी पूरा काम किया जा सकता है।
परीक्षण के बाद, हम नीचे दिए गए चित्र में लाल वृत्त द्वारा चिह्नित समाप्ति आइकन को दबाकर कार्यक्रम को समाप्त भी कर सकते हैं।