माइक्रोकंट्रोलर्स पर TypeScript: एम्बेडेड डेवलपमेंट में क्रांति

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

जब JavaScript हार्डवेयर से मिलता है: एम्बेडेड में एक नया अध्याय

\n\n

जब हम "एम्बेडेड डेवलपमेंट" कहते हैं, तो आमतौर पर दिमाग में C, बेयर मेटल, असेंबली कोड और ऑसिलोस्कोप के साथ अंतहीन डिबगिंग सत्रों के जुड़ाव आते हैं। अब कल्पना करें कि आप एक स्मार्ट तापमान सेंसर के लिए फर्मवेयर लिख रहे हैं, जिसमें TypeScript का उपयोग कर रहे हैं। क्या यह काल्पनिक लगता है? लेकिन ऐसा नहीं है।

\n\n

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

\n\n

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

\n\n

TypeScript क्यों, C या Python क्यों नहीं?

\n\n

एम्बेडेड के लिए क्लासिकल चॉइस C है। यह तेज़, पूर्वानुमानित है और कम मेमोरी लेता है। लेकिन इसका एक अंधकारमय पक्ष भी है: मैन्युअल मेमोरी प्रबंधन, कंपाइलर स्तर पर उचित टाइपिंग का अभाव और मैक्रोज़ का "नरक"। Python (MicroPython) आसान है, लेकिन धीमा और डायनामिक है - आपको बग के बारे में केवल रनटाइम पर पता चलेगा, जब डिवाइस कहीं शेल्फ पर हैंग हो जाएगा।

\n\n

TypeScript एक बीच का रास्ता प्रदान करता है:

\n
    \n
  • सख्त टाइपिंग — कंपाइलर बिल्ड स्टेज पर ही त्रुटियाँ पकड़ लेता है। माइक्रोकंट्रोलर रजिस्टरों में गलती से string को number के बजाय डालने जैसी कोई बात नहीं।
  • \n
  • आधुनिक सिंटैक्स — async/await, जेनेरिक्स, इंटरफेस। कोड स्व-दस्तावेज़ीकरण बन जाता है।
  • \n
  • npm इकोसिस्टम — हज़ारों लाइब्रेरीज़ जिन्हें हार्डवेयर के अनुकूल बनाया जा सकता है।
  • \n
  • टाइप सुरक्षा — आपको ठीक-ठीक पता है कि आप फंक्शन setPin(17, HIGH) में क्या भेज रहे हैं, न कि setPin("17", true)।
  • \n
\n\n

बेशक, TypeScript उच्च-लोड वाले रियल-टाइम सिस्टम के लिए C की जगह नहीं ले सकता। लेकिन IoT सेंसर, स्मार्ट बल्ब, मौसम स्टेशन और प्रोटोटाइप के लिए, यह एक आदर्श विकल्प है।

\n\n

टूलकिट: शुरुआत करने के लिए क्या चाहिए

\n\n

हार्डवेयर पर TypeScript लिखने के लिए, हमें एक रनटाइम वातावरण चाहिए जो माइक्रोकंट्रोलर पर JavaScript की व्याख्या कर सके। सबसे लोकप्रिय विकल्प:

\n\n
    \n
  • JerryScript — Samsung का हल्का JS इंजन। लगभग 1 MB Flash लेता है।
  • \n
  • Espruino — STM32 और ESP32 के लिए विशेष फर्मवेयर। ट्रांसपाइलेशन के माध्यम से TypeScript का समर्थन करता है।
  • \n
  • Moddable SDK — IoT के लिए एक शक्तिशाली फ्रेमवर्क जो "बॉक्स से बाहर" TypeScript का समर्थन करता है।
  • \n
\n\n

हम ESP32 बोर्ड (या Espruino फर्मवेयर वाले Raspberry Pi Pico) पर Espruino का उपयोग करेंगे। बिना सोल्डरिंग आयरन और डेटाशीट के एम्बेडेड में TypeScript आज़माने का यह सबसे आसान तरीका है।

\n\n

इंस्टॉलेशन और सेटअप

\n\n
    \n
  1. अपने बोर्ड के लिए आधिकारिक वेबसाइट से Espruino फर्मवेयर डाउनलोड करें।
  2. \n
  3. USB के माध्यम से बोर्ड को फ्लैश करें (ESP32 के लिए esptool यूटिलिटी का उपयोग करें)।
  4. \n
  5. यदि पहले से इंस्टॉल नहीं हैं, तो Node.js और npm इंस्टॉल करें।
  6. \n
  7. ग्लोबली espruino-cli इंस्टॉल करें: npm install -g espruino-cli।
  8. \n
  9. एक प्रोजेक्ट बनाएँ: mkdir my-embedded-ts && cd my-embedded-ts && npm init -y।
  10. \n
  11. TypeScript इंस्टॉल करें: npm install --save-dev typescript @types/espruino।
  12. \n
\n\n

अब आपके पास एक TypeScript प्रोजेक्ट है जो Espruino के प्रकारों के बारे में जानता है! एक फ़ाइल tsconfig.json बनाएँ:

\n\n
{\n  "compilerOptions": {\n    "target": "ES2015",\n    "module": "commonjs",\n    "strict": true,\n    "outDir": "./dist",\n    "rootDir": "./src",\n    "types": ["espruino"]\n  },\n  "include": ["src/**/*"]\n}

ब्लॉग

पुस्तक अनुशंसाएँ