माइक्रोपायथन: Difference between revisions
No edit summary |
No edit summary |
||
(6 intermediate revisions by 3 users not shown) | |||
Line 2: | Line 2: | ||
{{Infobox software | {{Infobox software | ||
| name = | | name = माइक्रोपायथन | ||
| logo = MicroPython new logo.svg | | logo = MicroPython new logo.svg | ||
| logo size = 100px | | logo size = 100px | ||
| developer = | | developer = डेमियन पी. जॉर्ज | ||
| released = {{ | | released = {{प्रारंभ दिनांक और आयु|2014|05|03|df=yes}} | ||
| latest release version = {{ | | latest release version = {{विकिडेटा|property|edit|reference|P348}} | ||
| latest release date = {{ | | latest release date = {{प्रारंभ दिनांक और आयु|{{विकिडेटा|क्वालीफायर|P348|P577}}}} | ||
| programming language = [[ | | programming language = [[सी (प्रोग्रामिंग भाषा)|C]] | ||
| platform = [[ARM Cortex-M]], [[STM32]], [[ESP8266]], [[ESP32]], 16-bit [[PIC microcontrollers|PIC]], [[Unix]], [[ | | platform = [[ARM Cortex-M]], [[STM32]], [[ESP8266]], [[ESP32]], 16-bit [[PIC microcontrollers|PIC]], [[Unix]], [[माइक्रोसॉफ़्ट विंडोज़]], [[Zephyr (ऑपरेटिंग सिस्टम)|Zephyr]], [[JavaScript]], [[RP2040]] | ||
| license = [[MIT license]]<ref>{{Cite web|url=https://github.com/micropython/micropython/blob/master/LICENSE|title=micropython/LICENSE at master · micropython/micropython|last=George|first=Damien P.|date=4 May 2014|website=[[GitHub]]|access-date=11 February 2017}}</ref> | | license = [[MIT license]]<ref>{{Cite web|url=https://github.com/micropython/micropython/blob/master/LICENSE|title=micropython/LICENSE at master · micropython/micropython|last=George|first=Damien P.|date=4 May 2014|website=[[GitHub]]|access-date=11 February 2017}}</ref> | ||
| website = {{URL|https://micropython.org}} | | website = {{URL|https://micropython.org}} | ||
}} | }} | ||
'''माइक्रोपायथन''' सी ([[प्रोग्रामिंग भाषा]]) में लिखी गई [[पायथन (प्रोग्रामिंग भाषा)]] 3 के साथ अधिक सीमा तक संगत प्रोग्रामिंग भाषा का [[ सॉफ़्टवेयर |सॉफ़्टवेयर]] कार्यान्वयन है, जिसे [[ microcontroller |माइक्रोकंट्रोलर]] पर चलने के लिए अनुकूलित किया गया है।<ref>{{cite magazine|last1=Venkataramanan|first1=Madhumita|title=Micro Python: more powerful than Arduino, simpler than the Raspberry Pi|url=https://www.wired.co.uk/article/micro-python|accessdate=15 December 2016|magazine=Wired|date=6 December 2013}}</ref><ref>{{cite news|last1=Yegulalp|first1=Serdar|title=Micro Python's tiny circuits: Python variant targets microcontrollers|url=http://www.infoworld.com/article/2608012/python/micro-python-s-tiny-circuits--python-variant-targets-microcontrollers.html|accessdate=15 December 2016|publisher=InfoWorld|date=5 July 2014}}</ref> | |||
माइक्रोपायथन में बायटेकोड के लिए पायथन कंपाइलर और उस बायटेकोड का रनटाइम दुभाषिया होता है। इस प्रकार से समर्थित आदेशों को तुरंत निष्पादित करने के लिए उपयोगकर्ता को इंटरैक्टिव प्रॉम्प्ट (रीड-इवल-प्रिंट लूप) के साथ प्रस्तुत किया जाता है और कोर पायथन लाइब्रेरीों का चयन सम्मिलित किया जाता है; माइक्रोपायथन में ऐसे मॉड्यूल सम्मिलित होते हैं जो प्रोग्रामर को निम्न-स्तरीय हार्डवेयर तक पहुच प्रदान करते हैं।<ref name="MP-Website">{{cite web|url=https://micropython.org/|title=MicroPython - माइक्रोकंट्रोलर्स के लिए पायथन|website=micropython.org|accessdate=12 August 2017}}</ref> | |||
इस प्रकार से माइक्रोपायथन में [[इनलाइन असेंबलर]] होते है, और वह कोड पूर्ण गति से चलेगा, किन्तु यह विभिन्न माइक्रोकंट्रोलर्स (जैसा कि कोई असेंबली है) में गैर-पोर्टेबल होते है। | |||
प्रोजेक्ट का सोर्स कोड | अतः प्रोजेक्ट का सोर्स कोड एमआईटी लाइसेंस के तहत [[GitHub|गिटहब]] पर उपलब्ध किया जाता है।<ref>{{cite web|url=https://github.com/micropython/micropython|title=गिटहब पर माइक्रोपायथन|website=[[GitHub]]|date=7 February 2022}}</ref> | ||
== इतिहास == | == इतिहास == | ||
माइक्रोपायथन मूल रूप से ऑस्ट्रेलियाई प्रोग्रामर और सैद्धांतिक भौतिक विज्ञानी डेमियन जॉर्ज द्वारा 2013 में सफल [[किक]]स्टार्टर समर्थित अभियान के अतिरिक्त प्रयुक्त किया गया था।<ref>{{cite web|title=Micro Python: Python for microcontrollers|url=https://www.kickstarter.com/projects/214379695/micro-python-python-for-microcontrollers|website=Kickstarter|publisher=Kickstarter|accessdate=15 December 2016}}</ref> जबकि मूल किकस्टार्टर अभियान ने एसटीएम32 या एसटीएम32 एफ4-संचालित विकास बोर्ड पाइबोर्ड के साथ माइक्रोपायथन प्रयुक्त किया गया, माइक्रोपायथन कई एआरएम आर्किटेक्चर [[एआरएम वास्तुकला]] का समर्थन करता है।<ref>{{cite news|last1=Beningo|first1=Jacob|title=Prototype to production: MicroPython under the hood|url=http://www.edn.com/electronics-blogs/embedded-basics/4442357/Prototype-to-production---MicroPython-under-the-hood|accessdate=15 December 2016|publisher=EDN Network|date=11 July 2016}}</ref> मेनलाइन में समर्थित होस्ट हैं एआरएम कॉर्टेक्स-एम (कई [[STM32|एसटीएम32]] बोर्ड, टीआई सीसी3200/वाईपीवाई, टीनी बोर्ड, नॉर्डिक एनआरएफ सीरीज़,एसएएमडी 21 औरएसएएमडी 51), [[ESP8266|ईएसपी 8266]], [[ESP32|ईएसपी 32]], 16-बिट पीआईसी, यूनिक्स, विंडोज़, जेफिर, और जावास्क्रिप्ट .<ref>{{cite web|last1=George|first1=Damien P.|title=micropython/ports at master · micropython/micropython|url=https://github.com/micropython/micropython/tree/master/ports|accessdate=22 October 2019|website=GitHub}}</ref> इसके अतिरिक्त , मेनलाइन में समर्थित नहीं विभिन्न प्रकार के सिस्टम और हार्डवेयर प्लेटफॉर्म के लिए कई फ़ोर्क हैं जो मेनलाइन में समर्थित नहीं हैं।<ref>{{cite web|last1=Sokolovsky|first1=Paul|title=बहुत बढ़िया माइक्रोपायथन|url=https://github.com/pfalcon/awesome-micropython#forks-and-variants|accessdate=22 October 2019|website=GitHub}}</ref> | |||
2016 में, [[बीबीसी]] के साथ [[माइक्रो बिट]] साझेदारी में [[पायथन सॉफ्टवेयर फाउंडेशन]] के योगदान के | इस प्रकार से 2016 में, [[बीबीसी]] के साथ [[माइक्रो बिट]] साझेदारी में [[पायथन सॉफ्टवेयर फाउंडेशन]] के योगदान के भाग के रूप में बीबीसी माइक्रो बिट के लिए माइक्रोपायथन का संस्करण बनाया गया था।<ref>{{cite web|last1=Williams|first1=Alun|title=बीबीसी माइक्रो-बिट यूजर इंटरफेस के साथ काम करें|url=http://www.electronicsweekly.com/news/design/embedded-systems/video-bbc-micro-bit-user-interface-2015-07/|website=ElectronicsWeekly.com|date=7 July 2015|accessdate=8 July 2015}}</ref> | ||
जुलाई 2017 में, | जुलाई 2017 में, माइक्रोपायथन को शिक्षा और उपयोग में सरलता पर जोर देने के साथ माइक्रोपायथन का संस्करण, [[सर्किटपायथन]] बनाने के लिए फोर्क किया गया था। माइक्रोपायथन और सर्किटपाइथन हार्डवेयर के कुछ अलग सेटों का समर्थन करते हैं (जैसे सर्किटपाइथन [[Atmel|एटमेल]] एसएएम डी21 और डी51 बोर्डों का समर्थन करता है, किन्तु ईएसपी 8266 के लिए समर्थन छोड़ देता है)। संस्करण 4.0 के अनुसार, सर्किटपाइथन माइक्रोपायथन संस्करण 1.9.4 पर आधारित किये जाते है।<ref>{{cite web|first1=Scott|last1=Shawcroft|title=CircuitPython 4.0.1 released!|url=https://blog.adafruit.com/2019/05/22/circuitpython-4-0-1-released/|website=Adafruit Blog|date=22 May 2019|publisher=Adafruit Industries|accessdate=11 Jun 2019}}</ref> | ||
2017 में, [[माइक्रोसेमी]] ने [[RISC-V]] ( | 2017 में, [[माइक्रोसेमी]] ने [[RISC-V|आरआईएससी-वी]] ([[RISC-V|आरवी]]32 और [[RISC-V|आरवी]]64) आर्किटेक्चर के लिए माइक्रोपायथन पोर्ट बनाया गया।<ref>{{cite web| title=RISC-V Poster Preview — 7th RISC-V Workshop| url=https://content.riscv.org/wp-content/uploads/2017/12/RISC-V-Poster-Preview.pdf| date=28 November 2017| accessdate=17 December 2018}}</ref> | ||
अप्रैल 2019 में, [[लेगो माइंडस्टॉर्म EV3]] के लिए माइक्रोपायथन का संस्करण बनाया गया था।<ref>{{Cite web|url=https://www.ev3dev.org/news/2019/04/13/ev3-micropython/|title=LEGO releases MicroPython for EV3 based on ev3dev and Pybricks|website=www.ev3dev.org|access-date=2020-04-21}}</ref> | अप्रैल 2019 में, [[लेगो माइंडस्टॉर्म EV3|लेगो माइंडस्टॉर्म ईवी 3]] के लिए माइक्रोपायथन का संस्करण बनाया गया था।<ref>{{Cite web|url=https://www.ev3dev.org/news/2019/04/13/ev3-micropython/|title=LEGO releases MicroPython for EV3 based on ev3dev and Pybricks|website=www.ev3dev.org|access-date=2020-04-21}}</ref> | ||
जनवरी 2021 में, | |||
इस प्रकार से जनवरी 2021 में, आरपी 2040 (एआरएम कॉर्टेक्स-एम0+, [[Raspberry Pi Pico|रास्पबेरी पाई पिको]] और अन्य पर) के लिए माइक्रोपायथन पोर्ट बनाया गया था।<ref>{{Cite web|url=https://www.raspberrypi.org/blog/raspberry-pi-silicon-pico-now-on-sale/|title= Meet Raspberry Silicon: Raspberry Pi Pico now on sale at $4|website=www.raspberrypi.org|date= 21 January 2021|access-date=2021-01-21}}</ref> | |||
== सुविधाएँ == | == सुविधाएँ == | ||
=== पायथन चलाने की क्षमता === | === पायथन चलाने की क्षमता === | ||
माइक्रोपायथन में पायथन चलाने की क्षमता होती है, जिससे उपयोगकर्ता सरल और आसानी से समझने वाले प्रोग्राम बना सकते हैं।<ref name=":0">{{cite book |last=Alsabbagh |first=Marwan |title=माइक्रोपायथन कुकबुक|date=2019 |publisher=[[Packt Publishing]] |location=Birmingham, UK |author-link=Marwan Alsabbagh}}</ref> माइक्रोपायथन कई मानक पायथन लाइब्रेरीों का समर्थन करता है, जो पायथन के सबसे अधिक उपयोग किए जाने वाले लाइब्रेरीों की 80% से अधिक सुविधाओं का समर्थन करता है।<ref name=":0" /> माइक्रोपायथन को विशेष रूप से माइक्रोकंट्रोलर्स और पायथन के बीच विशिष्ट प्रदर्शन अंतर का समर्थन करने के लिए डिज़ाइन किया गया था।<ref name=":1">{{cite web |last1=Bruno |first1=P. |title=माइक्रोपायथन का परिचय|url=https://all3dp.com/2/micropython-beginner-s-guide/ |website=All3DP |date=25 November 2021 |publisher=All3DP |access-date=9 May 2022}}</ref> पायथन कोड सीधे हार्डवेयर तक पहुंच और इंटरैक्ट करने में सक्षम है, बढ़ी हुई हार्डवेयर संभावनाओं के साथ जो [[ऑपरेटिंग सिस्टम]] पर चलने वाले सामान्य पायथन एप्लिकेशन का उपयोग करके उपलब्ध नहीं होते हैं।<ref name=":2">{{cite book |last=Bell |first=Charles |title=इंटरनेट ऑफ थिंग्स के लिए माइक्रोपायथन|date=2017 |publisher=[[Apress]] |location=Berkeley, USA |author-link=Charles Bell}}</ref> | |||
=== कोड पोर्टेबिलिटी === | === कोड पोर्टेबिलिटी === | ||
माइक्रोपायथन का [[ हार्डवेयर अमूर्त परत |हार्डवेयर अमूर्त परत]] (एचएएल) विधि का उपयोग विकसित कोड को ही परिवार या प्लेटफ़ॉर्म के अंदर विभिन्न माइक्रोकंट्रोलर्स के बीच पोर्टेबल होने की अनुमति देता है और यह उपकरण ों पर जो माइक्रोपायथन को सपोर्ट और डाउनलोड कर सकते हैं। प्रोग्राम सदैव उच्च-प्रदर्शन वाले माइक्रोकंट्रोलर्स पर विकसित और परीक्षण किए जाते हैं और कम-प्रदर्शन वाले माइक्रोकंट्रोलर्स पर उपयोग किए जाने वाले अंतिम एप्लिकेशन के साथ वितरित किए जाते हैं।<ref name=":3">{{cite conference |last1=Gaspar |first1=G. |last2=Kuba |first2=P. |last3=Flochova |first3=J. |last4=Dudak |first4=J. |last5=Florkova |first5=Z. |date=2020 |title=Development of IoT applications based on the MicroPython platform for Industry 4.0 implementation |conference=2020 19th International Conference on Mechatronics – Mechatronika (ME) |pages=1–7}}</ref> | |||
=== मॉड्यूल === | === मॉड्यूल === | ||
इस प्रकार से नया कोड लिखे जाने के पश्चात, जमे हुए मॉड्यूल को बनाने और इसे लाइब्रेरी के रूप में उपयोग करने के लिए माइक्रोपायथन कार्यक्षमता प्रदान करता है जो विकसित [[फर्मवेयर]] का भाग हो सकता है। यह सुविधा उसी के दोहरी से बचने में सहायता करती है, पहले से ही त्रुटि मुक्त, परीक्षण कोड को माइक्रोपायथन वातावरण में उपयोग किया जाता है। इस प्रकार के मॉड्यूल को [[ संकलक |संकलक]] के लिए माइक्रोकंट्रोलर के मॉड्यूल निर्देशिका में संग्रहित किया जाता है और माइक्रोकंट्रोलर पर अपलोड किया जाएगा जहां बार-बार उपयोग किए जाने वाले पायथन के आयात कमांड का उपयोग करके लाइब्रेरी उपलब्ध होते है।<ref name=":3" /> | |||
=== रीड-इवल-प्रिंट लूप === | === रीड-इवल-प्रिंट लूप === | ||
रीड-इवल-प्रिंट लूप (आरईपीएल) डेवलपर को कोड की अलग-अलग पंक्तियों में प्रवेश करने की अनुमति देता है और उन्हें तुरंत [[टर्मिनल एमुलेटर]] पर चलाता है।<ref name=":4">{{cite web |last1=Rembor |first1=K. |title=आरईपीएल|work=Welcome to CircuitPython! |url=http://learn.adafruit.com/welcome-to-circuitpython/the-repl |publisher=Adafruit Learning System |access-date=9 May 2022}}</ref> [[Linux]]-आधारित और [[macOS]] सिस्टम में टर्मिनल [[ एम्यूलेटर |एम्यूलेटर]] होते हैं जिनका उपयोग सीरियल [[USB]] कनेक्शन का उपयोग करके | रीड-इवल-प्रिंट लूप (आरईपीएल) डेवलपर को कोड की अलग-अलग पंक्तियों में प्रवेश करने की अनुमति देता है और उन्हें तुरंत [[टर्मिनल एमुलेटर]] पर चलाता है।<ref name=":4">{{cite web |last1=Rembor |first1=K. |title=आरईपीएल|work=Welcome to CircuitPython! |url=http://learn.adafruit.com/welcome-to-circuitpython/the-repl |publisher=Adafruit Learning System |access-date=9 May 2022}}</ref> [[Linux|लिनक्स]]-आधारित और [[macOS|मैकओएस]] सिस्टम में टर्मिनल [[ एम्यूलेटर |एम्यूलेटर]] होते हैं जिनका उपयोग सीरियल [[USB|यूएसबी]] कनेक्शन का उपयोग करके माइक्रोपायथन उपकरण के आरईपीएल से सीधा कनेक्शन बनाने के लिए किया जा सकता है। आरईपीएल [[अनुप्रयोग प्रक्रिया सामग्री]] के कुछ भागो के तत्काल परीक्षण में सहायता करता है क्योंकि आप कोड के प्रत्येक भाग को चला सकते हैं और परिणाम देख सकते हैं। कई बार आपके कोड के विभिन्न भाग आरईपीएल में लोड हो जाते हैं तो आप अपने कोड की कार्यक्षमता के साथ प्रयोग करने के लिए अतिरिक्त आरईपीएल सुविधाओं का उपयोग कर सकते हैं।<ref name=":0" /> | ||
सहायक आरईपीएल आदेश (एक बार सीरियल कंसोल से जुड़े):<ref name=":4" />* CTRL + C: कीबोर्ड इंटरप्ट | इस प्रकार से सहायक आरईपीएल आदेश (एक बार सीरियल कंसोल से जुड़े):<ref name=":4" /> | ||
* CTRL + D: पुनः लोड करें | * CTRL + C: कीबोर्ड इंटरप्ट | ||
* | *CTRL + D: पुनः लोड करें | ||
* | * help(): help संदेश | ||
* आयात बोर्ड [एन्टर] डीआईआर (बोर्ड): आपके माइक्रोकंट्रोलर बोर्ड पर उन सभी पिनों को सूचीबद्ध करता है जो प्रोग्राम के कोड में उपयोग करने के लिए उपलब्ध हैं | * help (मॉड्यूल): अंतर्निहित [[मॉड्यूल पर्यावरण]] को सूचीबद्ध करता है | ||
* आयात बोर्ड [एन्टर] डीआईआर (बोर्ड): आपके माइक्रोकंट्रोलर बोर्ड पर उन सभी पिनों को सूचीबद्ध करता है जो प्रोग्राम के कोड में उपयोग करने के लिए उपलब्ध किये जाते हैं | |||
=== सीमाएं === | === सीमाएं === | ||
चूँकि माइक्रोपायथन पूर्ण रूप से पायथन भाषा संस्करण 3.4 और 3.5 के अधिकांश को प्रयुक्त करता है, यह 3.5 से प्रारंभ की गई सभी भाषा सुविधाओं को प्रयुक्त नहीं करता है,<ref>{{cite web |title=MicroPython differences from CPython — MicroPython latest documentation |url=https://docs.micropython.org/en/latest/genrst/index.html |website=docs.micropython.org}}</ref> चूँकि 3.6 से कुछ नए सिंटैक्स और बाद के संस्करणों से अधिक वर्तमान समय की विशेषताएं, उदहारण। 3.8 (असाइनमेंट एक्सप्रेशंस) और 3.9 से। इसमें मानक लाइब्रेरी का सबसेट सम्मिलित है।<ref>{{cite web |title=MicroPython - माइक्रोकंट्रोलर्स के लिए पायथन|url=https://www.micropython.org |website=micropython.org |language=en}}</ref> | |||
माइक्रोपायथन के पास अन्य लोकप्रिय प्लेटफार्मों की तुलना में माइक्रोकंट्रोलर बाजार में अधिक सीमित हार्डवेयर समर्थन है, जैसे [[Arduino|अरुडिनो]] जैसे कि कम संख्या में माइक्रोकंट्रोलर विकल्प जो भाषा का समर्थन करते हैं।<ref name=":1" /> माइक्रोपायथन में अन्य प्लेटफार्मों के विपरीत एकीकृत विकास वातावरण (आईडीई) या विशिष्ट संपादक सम्मिलित नहीं किये जाते है।<ref name=":1" /> | |||
== सिंटेक्स और सिमेंटिक्स == | == सिंटेक्स और सिमेंटिक्स == | ||
इस प्रकार से अपनी स्पष्ट और समझने में आसान शैली और शक्ति के कारण, माइक्रोपायथन का सिंटैक्स पायथन से अपनाया गया है।<ref>{{cite conference |last1=Wang |first1=L. |last2=Li |first2=Y. |last3=Zhang |first3=H. |last4=Han |first4=Q. |last5=Chen |first5=L. |date=2021 |title=माइक्रोपीथॉन बाइटकोड के लिए एक कुशल नियंत्रण-प्रवाह आधारित पर्यवेक्षक|conference=2021 7th International Symposium on System and Software Reliability (ISSSR) |pages=54–63}}</ref> अधिकांश अन्य प्रोग्रामिंग भाषाओं के विपरीत पठनीयता को प्राथमिकता देने के लिए कम वाक्य-विन्यास के साथ कम विराम चिह्न का उपयोग किया जाता है।<ref name=":0" /> | |||
=== कोड ब्लॉक === | === कोड ब्लॉक === | ||
माइक्रोपायथन पायथन की कोड ब्लॉक शैली को अपनाता है, विशेष [[कार्यात्मक प्रोग्रामिंग]], स्थिति या लूप के लिए विशिष्ट कोड के साथ इंडेंट किया जाता है, जिसका अर्थ है कि कुछ अभिव्यक्तियों का मूल्यांकन केवल तभी किया जाएगा जब स्थिति अभिव्यक्ति का सही मूल्यांकन किया जाएगा।<ref name=":0" /> यह अधिकांश अन्य भाषाओं से भिन्न है जो सामान्यतः ब्लॉकों को परिसीमित करने के लिए प्रतीकों या कीवर्ड का उपयोग करती हैं।<ref name=":0" /> | |||
यह | अतः यह माइक्रोपायथन कोड की पठनीयता में सहायता करता है क्योंकि दृश्य संरचना सिमेंटिक संरचना को प्रतिबिंबित करती है। यह मुख्य विशेषता सरल किन्तु महत्वपूर्ण है क्योंकि दुरुपयोग किए गए इंडेंटेशन के परिणामस्वरूप गलत स्थिति के तहत कोड निष्पादन हो सकता है या [[ दुभाषिया (कंप्यूटिंग) |दुभाषिया (कंप्यूटिंग)]] से समग्र त्रुटि हो सकती है।<ref name=":0" /> | ||
एक कोलन (:) महत्वपूर्ण प्रतीक है जो | एक कोलन (:) महत्वपूर्ण प्रतीक है जो नियम कथन के अंत को इंगित करने के लिए उपयोग किया जाता है और दुभाषिया को संकेत देता है कि कथन का मूल्यांकन किया जाना चाहिए और इंडेंटेड बॉडी जो निष्पादित की जानी चाहिए।<ref name=":0" /> इंडेंट आकार टैब या 4 रिक्त स्थान के बराबर है। | ||
=== संचालन === | === संचालन === | ||
इस प्रकार से माइक्रोपायथन में प्रिमिटिव और लॉजिकल ऑपरेशंस का उपयोग करके विभिन्न गणितीय ऑपरेशंस करने की क्षमता होती है।<ref name=":2" /> | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ समर्थित संचालन<ref name=":2" /> | ||
|- | |- | ||
! | ! प्रकार !! ऑपरेटर !! नाम !! उदाहरण | ||
|- | |- | ||
| | | अंकगणित || + || जोड़ना || वेरिएबल + 1 | ||
|- | |- | ||
| || - || | | || - || घटाव || वेरिएबल - 1 | ||
|- | |- | ||
| || * || | | || * || गुणा || वेरिएबल * 4 | ||
|- | |- | ||
| || / || | | || / || विभाजन || वेरिएबल / 4 | ||
|- | |- | ||
| ||% || | | ||% || मॉड्यूलो डिवीजन || वेरिएबल % 4 | ||
|- | |- | ||
| | | तुलना || == || बराबर || एक्सप्रेशन 1 == एक्सप्रेशन 2 | ||
|- | |- | ||
| ||!= || | | ||!= || सम नही || एक्सप्रेशन 1 != एक्सप्रेशन 2 | ||
|- | |- | ||
| || < || | | || < || से कम || एक्सप्रेशन 1 < एक्सप्रेशन 2 | ||
|- | |- | ||
| || > || | | || > || से अधिक || एक्सप्रेशन 1 > एक्सप्रेशन 2 | ||
|- | |- | ||
| || <= || | | || <= || से कम या बराबर || एक्सप्रेशन 1 <= एक्सप्रेशन 2 | ||
|- | |- | ||
| || >= || | | || >= || से अधिक या बराबर || एक्सप्रेशन 1 >= एक्सप्रेशन 2 | ||
|- | |- | ||
| | | लॉजिकल || & || [[Bitwise operation|बिटवाइज़]] और || वेरिएबल 1 & वेरिएबल 2 | ||
|- | |- | ||
| || | || | | || | || बिटवाइज़ या || वेरिएबल 2 | ||
|- | |- | ||
| || ^ || | | || ^ || बिटवाइज़ एक्सक्लूसिव या || वेरिएबल 1 ^ वेरिएबल 2 | ||
|- | |- | ||
| || ~ || | | || ~ || बिटवाइज़ पूरक || ~वेरिएबल 1 | ||
|- | |- | ||
| || and || | | || and || लॉजिकल और || वेरिएबल 1 and वेरिएबल 2 | ||
|- | |- | ||
| || or || | | || or || लॉजिकल और || वेरिएबल 1 or वेरिएबल 2 | ||
|} | |} | ||
=== | === लाइब्रेरी === | ||
इस प्रकार से माइक्रोपायथन पायथन के समान लाइब्रेरीों के साथ पायथन का दुर्बल और कुशल कार्यान्वयन होता है।<ref>{{cite conference |last1=Khamphroo |first1=M. |last2=Kwankeo |first2=N. |last3=Kaemarungsi |first3=K. |last4=Fukawa |first4=K. |date=2017 |title=कंप्यूटर कोडिंग सीखने के लिए माइक्रोपायथन आधारित शैक्षिक मोबाइल रोबोट|conference=2017 8th International Conference of Information and Communication Technology for Embedded Systems (IC-ICTES) |pages=1–6}}</ref> कुछ मानक पायथन लाइब्रेरीों में दोनों के बीच अंतर करने के लिए नाम बदलकर माइक्रोपायथन में समान लाइब्रेरी है। माइक्रोपायथन लाइब्रेरी छोटी हैं और मेमोरी प्रबंधन को बचाने के लिए कम लोकप्रिय सुविधाओं को हटा दिया जाता है या संशोधित कर दिया जाता है।<ref name=":2" /> | |||
माइक्रोपायथन में तीन प्रकार के लाइब्रेरी:<ref name=":2" /> | |||
* विशिष्ट माइक्रोपायथन | * मानक पायथन लाइब्रेरी (अंतर्निहित लाइब्रेरीों) से प्राप्त | ||
* विशिष्ट | *विशिष्ट माइक्रोपायथन लाइब्रेरी | ||
* विशिष्ट लाइब्रेरी हार्डवेयर कार्यक्षमता के साथ सहायता करने के लिए | |||
माइक्रोपायथन अत्यधिक अनुकूलन योग्य और विन्यास योग्य है, जिसमें प्रत्येक बोर्ड (माइक्रोकंट्रोलर) के बीच भाषा भिन्न होती है और लाइब्रेरीों की उपलब्धता भिन्न हो सकती है। किन्तु मॉड्यूल या पूरे मॉड्यूल में कुछ कार्य और कक्षाएं अनुपलब्ध या परिवर्तित हो सकती हैं।<ref name=":2" /> | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ माइक्रोपायथन में मानक पायथन लाइब्रेरी <ref name="MP-Website" /> | ||
|- | |- | ||
! | ! लाइब्रेरी का नाम !! विवरण | ||
|- | |- | ||
| array || | | array || परिचालन चालू [[Array data structure|सारणियाँ]] | ||
|- | |- | ||
| cmath || | | cmath || [[complex number|जटिल संख्याओं]] जटिल संख्याओं के लिए गणित फ़ंक्शन प्रदान करता है | ||
|- | |- | ||
| gc || [[Garbage collection (computer science)| | | gc || [[Garbage collection (computer science)|कचरा संग्रहकर्ता]] | ||
|- | |- | ||
| math || | | math || [[Floating point numbers|फ़्लोटिंग-पॉइंट संख्याओं]] के लिए बुनियादी गणित संचालन प्रदान करता है | ||
|- | |- | ||
| sys || | | sys || सिस्टम-स्तरीय कार्य; दुभाषिया द्वारा प्रयुक्त वेरिएबल्स तक पहुंच प्रदान करता है | ||
|- | |- | ||
| ubinascii || | | ubinascii || [[Binary number|बाइनरी]] और [[ASCII|एएससीआईआई]] के बीच कनवर्ट करने के लिए फ़ंक्शन | ||
|- | |- | ||
| ucollections || | | ucollections || विभिन्न वस्तुओं को रखने वाले संग्रहों और कंटेनर प्रकारों के लिए संचालन | ||
|- | |- | ||
| uerrno || | | uerrno || त्रुटि कोड तक पहुंच प्रदान करता है | ||
|- | |- | ||
| uhashlib || | | uhashlib || [[Hash function|हैश एल्गोरिदम]] बाइनरी के लिए संचालन | ||
|- | |- | ||
| uheapq || | | uheapq || [[Heap (data structure)|हीप कतार एल्गोरिथ्म]] को लागू करने के लिए संचालन | ||
|- | |- | ||
| uio || | | uio || [[input/output|इनपुट/आउटपुट]] स्ट्रीम को संभालने के लिए संचालन | ||
|- | |- | ||
| ujson || | | ujson || [[JSON|जेएसओएन]] दस्तावेज़ों और पायथन ऑब्जेक्ट्स के बीच रूपांतरण को संभालता है | ||
|- | |- | ||
| uos || | | uos || [[operating system|फ़ाइल सिस्टम एक्सेस]] और बुनियादी ऑपरेटिंग सिस्टम फ़ंक्शंस के लिए फ़ंक्शंस | ||
|- | |- | ||
| ure || | | ure || नियमित अभिव्यक्ति मिलान संचालन प्रस्तुत करता है | ||
|- | |- | ||
| uselect || | | uselect || एकाधिक धाराओं पर घटनाओं को संभालने के लिए कार्य | ||
|- | |- | ||
| usocket || | | usocket || सॉकेट (नेटवर्क) से कनेक्ट करना, सॉकेट इंटरफ़ेस तक पहुंच प्रदान करना | ||
|- | |- | ||
| ustruct || | | ustruct || [[primitive data type|प्रारंभिक डेटा प्रकार]] को पैक और अनपैक करके पायथन ऑब्जेक्ट में रूपांतरण करता है | ||
|- | |- | ||
| utime || | | utime || समय अंतराल को मापने और देरी को प्रस्तुत करने सहित समय और दिनांक फ़ंक्शन प्रदान करता है | ||
|- | |- | ||
| uzlib || | | uzlib || बाइनरी डेटा को डीकंप्रेस करने के लिए ऑपरेशन | ||
|} | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ माइक्रोपायथन-विशिष्ट लाइब्रेरीज़<ref name="MP-Website" /> | ||
|- | |- | ||
! | ! लाइब्रेरी का नाम !! विवरण | ||
|- | |- | ||
| | | फ़्रेमबफ़ || एक [[Framebuffer|फ़्रेम बफ़र]] प्रदान करता है जिसका उपयोग डिस्प्ले पर भेजने के लिए [[bitmap|बिटमैप]] छवियां बनाने के लिए किया जा सकता है | ||
|- | |- | ||
| | | मशीन || हार्डवेयर ब्लॉक तक पहुँचने और उनके साथ इंटरैक्ट करने में सहायता करने वाले कार्य | ||
|- | |- | ||
| | | माइक्रोपायथन || माइक्रोपायथन आंतरिकों तक पहुंच और नियंत्रण | ||
|- | |- | ||
| | | नेटवर्क || नेटवर्क ड्राइवर स्थापित करने में सहायता करता है, नेटवर्क के माध्यम से इंटरैक्शन की अनुमति देता है | ||
|- | |- | ||
| uctypes || | | uctypes || बाइनरी डेटा संरचनाओं तक पहुंचें | ||
|} | |} | ||
=== कस्टम माइक्रोपायथन | === कस्टम माइक्रोपायथन लाइब्रेरी === | ||
जब डेवलपर्स नया एप्लिकेशन बनाना | जब डेवलपर्स नया एप्लिकेशन बनाना प्रारंभ करते हैं, तो मानक माइक्रोपायथन लाइब्रेरी और ड्राइवर अपर्याप्त संचालन या गणना के साथ आवश्यकताओं को पूर्ण नहीं कर सकते हैं। इस प्रकार से पायथन के समान, कस्टम लाइब्रेरी के साथ माइक्रोपायथन की कार्यक्षमता को विस्तारित करने की संभावना है जो उपस्थित लाइब्रेरी और फ़र्मवेयर की क्षमता का विस्तार करती है।<ref name=":3" /> | ||
माइक्रोपायथन में, .पीवाई के साथ समाप्त होने वाली फ़ाइलें अन्य लाइब्रेरी उपनामों पर प्राथमिकता लेती हैं जो उपयोगकर्ताओं को मौजूदा लाइब्रेरी के उपयोग और कार्यान्वयन को बढ़ाने की अनुमति देती हैं।<ref name=":2" /> | |||
== सहायक हार्डवेयर == | == सहायक हार्डवेयर == | ||
जैसे-जैसे माइक्रोपायथन का कार्यान्वयन और लोकप्रियता बढ़ती जा रही है, अधिक बोर्डों में माइक्रोपायथन को चलाने की क्षमता है। कई डेवलपर प्रोसेसर विशिष्ट संस्करण बना रहे हैं जिन्हें विभिन्न माइक्रोकंट्रोलर्स पर डाउनलोड किया जा सकता है।<ref name=":2" />माइक्रोकंट्रोलर्स पर माइक्रोपायथन स्थापित करना | जैसे-जैसे माइक्रोपायथन का कार्यान्वयन और लोकप्रियता बढ़ती जा रही है, अधिक बोर्डों में माइक्रोपायथन को चलाने की क्षमता होती है। कई डेवलपर प्रोसेसर विशिष्ट संस्करण बना रहे हैं जिन्हें विभिन्न माइक्रोकंट्रोलर्स पर डाउनलोड किया जा सकता है।<ref name=":2" /> माइक्रोकंट्रोलर्स पर माइक्रोपायथन स्थापित करना सही प्रकार से प्रलेखित और उपयोगकर्ता के अनुकूल है।<ref name=":3" /> माइक्रोपायथन माइक्रोकंट्रोलर हार्डवेयर और एप्लिकेशन के बीच इंटरैक्ट को सरल बनाने की अनुमति देता है, कठोर स्तर की उत्तरदेही के साथ संसाधन विवश वातावरण में काम करते हुए कार्यक्षमता की सीमा तक पहुंच की अनुमति देता है।<ref name=":0" /> | ||
इस प्रकार से माइक्रोपायथन को चलाने के लिए दो प्रकार के बोर्ड का उपयोग किया जाता है:<ref name=":2" /> | |||
* ऐसे बोर्ड जिनमें फर्मवेयर होता है जो माइक्रोपायथन को बोर्ड में स्थापित करने की अनुमति देता है। | * माइक्रोपायथन निर्मित होने पर लोड होता है, जिसका अर्थ है कि केवल माइक्रोपायथन चलाया जा सकता है। | ||
*ऐसे बोर्ड जिनमें फर्मवेयर होता है जो माइक्रोपायथन को बोर्ड में स्थापित करने की अनुमति देता है। | |||
=== निष्पादन कोड === | === निष्पादन कोड === | ||
किसी प्रोग्राम को माइक्रोपायथन बोर्ड पर ले जाने के लिए, फ़ाइल बनाएं और इसे निष्पादित करने के लिए माइक्रोकंट्रोलर पर कॉपी | किसी प्रोग्राम को माइक्रोपायथन बोर्ड पर ले जाने के लिए, फ़ाइल बनाएं और इसे निष्पादित करने के लिए माइक्रोकंट्रोलर पर कॉपी किये जाते है। उपकरण से जुड़े हार्डवेयर के साथ, जैसे कि [[कंप्यूटर]], बोर्ड का फ्लैशड्राइव उपकरण पर दिखाई देगा, जिससे फाइलों को [[फ्लैश ड्राइव]] में ले जाया जा सकेगा। दो उपस्थित पायथन फाइलें होती है, boot.py और main.py जो सामान्यतः संशोधित नहीं होती हैं, main.py को संशोधित किया जा सकता है यदि आप प्रोग्राम को हर बार माइक्रोकंट्रोलर बूट करना चाहते हैं, अन्यथा, का उपयोग करके प्रोग्राम चलाए जाएगा।<ref name=":2" /> | ||
=== पायबोर्ड === | === पायबोर्ड === | ||
पाइबोर्ड आधिकारिक | इस प्रकार से पाइबोर्ड आधिकारिक माइक्रोपायथन माइक्रोकंट्रोलर बोर्ड है जो माइक्रोपायथन के सॉफ़्टवेयर सुविधाओं का पूर्ण समर्थन करता है। पाइबोर्ड की हार्डवेयर सुविधाओं में सम्मिलित होते हैं:<ref name="MP-Website" /> | ||
* माइक्रोकंट्रोलर ( | * माइक्रोकंट्रोलर (एमसीयू, [[सेंट्रल प्रोसेसिंग यूनिट]], फ्लैश [[ केवल पढ़ने के लिये मेमोरी |केवल पढ़ने के लिये मेमोरी]] और [[ रैंडम एक्सेस मेमोरी |रैंडम एक्सेस मेमोरी]] ) | ||
* माइक्रोयूएसबी कनेक्टर | * माइक्रोयूएसबी कनेक्टर | ||
* [[ माइक्रो एसडी | माइक्रो एसडी]] कार्ड स्लॉट | * [[ माइक्रो एसडी | माइक्रो एसडी]] कार्ड स्लॉट | ||
* आईओ पिन | * आईओ पिन | ||
* [[ बदलना ]], एलईडी, सर्वो पोर्ट, रियल टाइम क्लॉक, [[ accelerometer | | * [[ बदलना | स्विच]] , एलईडी, सर्वो पोर्ट, रियल टाइम क्लॉक, [[ accelerometer |एक्सेलेरोमीटर]] | ||
==== बूटिंग प्रक्रिया ==== | ==== बूटिंग प्रक्रिया ==== | ||
पाइबोर्ड में /फ्लैश नामक आंतरिक ड्राइव (फाइल सिस्टम) होता है जो बोर्ड की फ्लैश मेमोरी में संग्रहीत होता है, इसके अतिरिक्त, [[MicroSD]] कार्ड स्लॉट में डाला जा सकता है और /एसडी के माध्यम से पहुंचा जा सकता है। जब बूट किया जाता है, तो पाइबोर्ड को या तो / फ्लैश या / | पाइबोर्ड में /फ्लैश नामक आंतरिक ड्राइव (फाइल सिस्टम ) होता है जो बोर्ड की फ्लैश मेमोरी में संग्रहीत होता है, इसके अतिरिक्त, [[MicroSD|माइक्रोएसडी]] कार्ड स्लॉट में डाला जा सकता है और /एसडी के माध्यम से पहुंचा जा सकता है। जब बूट किया जाता है, तो पाइबोर्ड को या तो / फ्लैश या / एसडी से बूट करने के लिए फाइल सिस्टम का चयन करना चाहिए, वर्तमान निर्देशिका को या तो / फ्लैश या / एसडी पर सेट किया जा रहा है। डिफ़ॉल्ट रूप से, यदि कोई एसडी कार्ड डाला जाता है, तो/एसडी का उपयोग किया जाएगा, यदि नहीं,/फ्लैश का उपयोग किया जाता है। यदि आवश्यक हो, तो बूटिंग प्रक्रिया के लिए एसडी कार्ड के उपयोग को /फ्लैश /स्किप्सड नामक खाली फ़ाइल बनाकर टाला जा सकता है, जो बोर्ड पर रहेगा और पाइबोर्ड के बूट होने पर मौजूद रहेगा और बूटिंग प्रक्रिया के लिए एसडी कार्ड को छोड़ देता है। .<ref name="MP-Website" /> | ||
==== बूट मोड ==== | ==== बूट मोड ==== | ||
जब पाइबोर्ड सामान्य रूप से संचालित होता है या रीसेट बटन दबाया जाता है तो पाइबोर्ड को मानक मोड में बूट किया जाता है, जिसका अर्थ है कि boot.py फ़ाइल निष्पादित की जाती है, फिर यूएसबी कॉन्फ़िगर किया गया है और अंत में पायथन प्रोग्राम चलाया जाएगा।<ref name="MP-Website" /> | जब पाइबोर्ड सामान्य रूप से संचालित होता है या रीसेट बटन दबाया जाता है तो पाइबोर्ड को मानक मोड में बूट किया जाता है, जिसका अर्थ है कि boot.py फ़ाइल निष्पादित की जाती है, फिर यूएसबी कॉन्फ़िगर किया गया है और अंत में पायथन प्रोग्राम चलाया जाएगा।<ref name="MP-Website" /> | ||
जब बोर्ड बूटिंग प्रक्रिया में होता है तब उपयोगकर्ता स्विच को दबाकर मानक बूट क्रम को ओवरराइड करने की क्षमता होती है और जब आप उपयोगकर्ता स्विच को होल्ड करना | इस प्रकार से जब बोर्ड बूटिंग प्रक्रिया में होता है तब उपयोगकर्ता स्विच को दबाकर मानक बूट क्रम को ओवरराइड करने की क्षमता होती है और जब आप उपयोगकर्ता स्विच को होल्ड करना प्रयुक्त रखते हैं तो रीसेट दबाते हैं। पाइबोर्ड के एलईडी मोड के बीच फ़्लिक करेंगे और बार जब एलईडी उपयोगकर्ता द्वारा वांछित मोड में पहुंच जाएंगे, तो वे उपयोगकर्ता स्विच को जाने दे सकते हैं और बोर्ड विशिष्ट मोड में बूट हो जाएगा।<ref name="MP-Website" /> | ||
बूट मोड हैं:<ref name="MP-Website" />* मानक बूट: हरी एलईडी केवल (boot.py फिर अजगर कार्यक्रम चलाता है) | बूट मोड हैं:<ref name="MP-Website" /> | ||
* सुरक्षित बूट: केवल नारंगी एलईडी (बूट-अप के दौरान कोई स्क्रिप्ट नहीं चलती) | * मानक बूट: हरी एलईडी केवल (boot.py फिर अजगर कार्यक्रम चलाता है) | ||
*सुरक्षित बूट: केवल नारंगी एलईडी (बूट-अप के दौरान कोई स्क्रिप्ट नहीं चलती) | |||
* फाइलसिस्टम रीसेट: हरे और नारंगी एलईडी साथ (फैक्ट्री स्थिति में फ्लैश ड्राइव को रीसेट करता है और सुरक्षित मोड में बूट करता है) | * फाइलसिस्टम रीसेट: हरे और नारंगी एलईडी साथ (फैक्ट्री स्थिति में फ्लैश ड्राइव को रीसेट करता है और सुरक्षित मोड में बूट करता है) | ||
* फाइलसिस्टम के दूषित होने पर फिक्स के रूप में उपयोग किया जाता है | * फाइलसिस्टम के दूषित होने पर फिक्स के रूप में उपयोग किया जाता है | ||
Line 225: | Line 230: | ||
==== त्रुटियां ==== | ==== त्रुटियां ==== | ||
* यदि लाल और हरे रंग की एलईडी वैकल्पिक रूप से | * यदि लाल और हरे रंग की एलईडी वैकल्पिक रूप से फ़्लैश करती हैं, तो पायथन स्क्रिप्ट में त्रुटि है, और आपको [[डिबगिंग]] के लिए आरईपीएल का उपयोग करना चाहिए। | ||
* यदि सभी 4 एलईडी चालू और बंद हो जाते हैं तो कठिन दोष है जिसे ठीक नहीं किया जा सकता है और इसके लिए हार्ड रीसेट की आवश्यकता होती है।<ref name="MP-Website" /> | * यदि सभी 4 एलईडी चालू और बंद हो जाते हैं तो कठिन दोष है जिसे ठीक नहीं किया जा सकता है और इसके लिए हार्ड रीसेट की आवश्यकता होती है।<ref name="MP-Website" /> | ||
== प्रोग्रामिंग उदाहरण<ref name=":2" />== | == प्रोग्रामिंग उदाहरण<ref name=":2" />== | ||
हेलो वर्ल्ड प्रोग्राम: | |||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
# print to serial console | # print to serial console | ||
Line 235: | Line 240: | ||
print('Hello, World!') | print('Hello, World!') | ||
</syntaxhighlight> | </syntaxhighlight> | ||
इमपोर्टिंग + एलईडी चालू करना:<syntaxhighlight> | |||
< | import pyb | ||
# | # turn LED on | ||
pyb.LED(1).on() | |||
</syntaxhighlight> | |||
फ़ाइल + लूप पढ़ना: | फ़ाइल + लूप पढ़ना:<syntaxhighlight> | ||
import os | |||
# open and read a file | |||
with open('/readme.txt') as f: | |||
print(f.read()) | |||
</syntaxhighlight> | |||
</ | |||
== [[ बाईटकोड ]] == | == [[ बाईटकोड ]] == | ||
माइक्रोपायथन में [[क्रॉस कंपाइलर]] सम्मिलित है जो माइक्रोपायथन [[ बाईटकोड |बाईटकोड]] (फ़ाइल एक्सटेंशन .mpy) उत्पन्न करता है। पायथन कोड को या तो सीधे माइक्रोकंट्रोलर पर बायटेकोड में संकलित किया जा सकता है या इसे कहीं और प्रीकंपाइल किया जा सकता है। | |||
माइक्रोपायथन फर्मवेयर को कंपाइलर के बिना बनाया जा सकता है, केवल [[ आभासी मशीन |वर्चुअल मशीन]] को छोड़कर जो प्री-कम्पाइल्ड mpy प्रोग्राम चला सकता है। | |||
== कार्यान्वयन और उपयोग == | == कार्यान्वयन और उपयोग == | ||
माइक्रोपायथन का उपयोग मानक सॉफ़्टवेयर द्वारा फ्लैश मेमोरी में विशेष माइक्रोकंट्रोलर पर लोड किए जा रहे फ़र्मवेयर के माध्यम से किया जाता है, जो सीरियल इंटरफ़ेस का अनुकरण करने वाले कंप्यूटर पर लोड किए गए टर्मिनल एप्लिकेशन का उपयोग करके संचार करता है।<ref name=":3" /> | |||
माइक्रोपायथन के मुख्य उपयोगों को 3 श्रेणियों में सामान्यीकृत किया जा सकता है:<ref name=":3" /> | |||
* | * शैक्षिक उद्देश्य: माइक्रोकंट्रोलर के साथ इंटरैक्ट करने के लिए माइक्रोपायथन के रीड-इवल-प्रिंट लूप (आरईपीएल) का उपयोग करके, अधिक जटिल प्रोग्रामिंग भाषाओं की तुलना में डेटा प्रोसेसिंग की अवधारणाओं और बोर्डों के साथ संचार को सरल विधि से समझाना संभव है। | ||
* जटिल अनुप्रयोगों के डिजाइन के लिए निगरानी और विन्यास उपकरण: कुछ अनुप्रयोगों के लिए उच्च प्रदर्शन वाले माइक्रोकंट्रोलर्स पर विशिष्ट अनुप्रयोगों की आवश्यकता होती है। | *उपकरण और सेंसर डिज़ाइन का विकास और परीक्षण: माइक्रोपायथन परिधीय संचार सेटअप और नियंत्रण को प्रयुक्त करने के सामान्य डेवलपर के कार्य को हल करने वाले माइक्रोकंट्रोलर्स में उपयोग किए जाने वाले इंटरफेस के सत्यापित, बग-मुक्त और पूर्ण रूप से परीक्षण किए गए संदर्भ कार्यान्वयन की प्रस्तुत करता है। माइक्रोपायथन उपकरण रजिस्टरों के लिए प्रत्यक्ष और इंटरैक्टिव पहुंच प्रदान करता है जो उपकरण से डेटा को नियंत्रित करने और प्राप्त करने के लिए कार्यक्षमता को सत्यापित करना और हार्डवेयर भागों और उपकरणों और एल्गोरिदम को विकसित करना और परीक्षण करना सरल बनाता है। | ||
* जटिल अनुप्रयोगों के डिजाइन के लिए निगरानी और विन्यास उपकरण: कुछ अनुप्रयोगों के लिए उच्च प्रदर्शन वाले माइक्रोकंट्रोलर्स पर विशिष्ट अनुप्रयोगों की आवश्यकता होती है। माइक्रोपायथन राज्य की निगरानी और सिस्टम मापदंडों के सेट-अप में सहायता करने में सक्षम होते है। | |||
माइक्रोपायथन का कार्यान्वयन मानक और सहायक लाइब्रेरीों की उपलब्धता और माइक्रोकंट्रोलर की फ्लैश मेमोरी और रैम आकार के आधार पर भिन्न हो सकता है।<ref name=":3" /> | |||
== संदर्भ == | == संदर्भ == | ||
{{reflist}} | {{reflist}} | ||
Line 280: | Line 281: | ||
* {{Official website|https://micropython.org}} | * {{Official website|https://micropython.org}} | ||
* {{GitHub|micropython/micropython}} | * {{GitHub|micropython/micropython}} | ||
* [https://www.youtube.com/watch?v=EvGhPmPPzko&t=938s GOTO 2016 • | * [https://www.youtube.com/watch?v=EvGhPmPPzko&t=938s GOTO 2016 • माइक्रोपायथन & the Internet of Things • Damien George] on [[YouTube]] | ||
* {{YouTube|playlist=PLjF7R1fz_OOXrI15wuXeESA0aA4VzcWSi |title=MicroPython}} • Tutorials by Tony DiCola / [[Adafruit Industries|Adafruit]] | * {{YouTube|playlist=PLjF7R1fz_OOXrI15wuXeESA0aA4VzcWSi |title=MicroPython}} • Tutorials by Tony DiCola / [[Adafruit Industries|Adafruit]] | ||
{{Python (programming language)}} | {{Python (programming language)}} | ||
[[Category: | [[Category:CS1 English-language sources (en)]] | ||
[[Category:Citation Style 1 templates|M]] | |||
[[Category:Collapse templates]] | |||
[[Category:Created On 14/06/2023]] | [[Category:Created On 14/06/2023]] | ||
[[Category:Lua-based templates]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Official website not in Wikidata]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Pages with syntax highlighting errors]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates based on the Citation/CS1 Lua module]] | |||
[[Category:Templates generating COinS|Cite magazine]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates that generate short descriptions]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Wikipedia fully protected templates|Cite magazine]] | |||
[[Category:Wikipedia metatemplates]] | |||
[[Category:एमआईटी लाइसेंस का उपयोग करने वाला सॉफ्टवेयर]] | |||
[[Category:पायथन (प्रोग्रामिंग भाषा)]] | |||
[[Category:बीबीसी कंप्यूटर साक्षरता परियोजनाओं]] | |||
[[Category:माइक्रोकंट्रोलर सॉफ्टवेयर]] | |||
[[Category:सी में मुफ्त सॉफ्टवेयर प्रोग्राम किया गया]] |
Latest revision as of 18:13, 16 July 2023
Developer(s) | डेमियन पी. जॉर्ज |
---|---|
Initial release | Template:प्रारंभ दिनांक और आयु |
Stable release | |
Written in | C |
Platform | ARM Cortex-M, STM32, ESP8266, ESP32, 16-bit PIC, Unix, माइक्रोसॉफ़्ट विंडोज़, Zephyr, JavaScript, RP2040 |
License | MIT license[1] |
Website | micropython |
माइक्रोपायथन सी (प्रोग्रामिंग भाषा) में लिखी गई पायथन (प्रोग्रामिंग भाषा) 3 के साथ अधिक सीमा तक संगत प्रोग्रामिंग भाषा का सॉफ़्टवेयर कार्यान्वयन है, जिसे माइक्रोकंट्रोलर पर चलने के लिए अनुकूलित किया गया है।[2][3]
माइक्रोपायथन में बायटेकोड के लिए पायथन कंपाइलर और उस बायटेकोड का रनटाइम दुभाषिया होता है। इस प्रकार से समर्थित आदेशों को तुरंत निष्पादित करने के लिए उपयोगकर्ता को इंटरैक्टिव प्रॉम्प्ट (रीड-इवल-प्रिंट लूप) के साथ प्रस्तुत किया जाता है और कोर पायथन लाइब्रेरीों का चयन सम्मिलित किया जाता है; माइक्रोपायथन में ऐसे मॉड्यूल सम्मिलित होते हैं जो प्रोग्रामर को निम्न-स्तरीय हार्डवेयर तक पहुच प्रदान करते हैं।[4]
इस प्रकार से माइक्रोपायथन में इनलाइन असेंबलर होते है, और वह कोड पूर्ण गति से चलेगा, किन्तु यह विभिन्न माइक्रोकंट्रोलर्स (जैसा कि कोई असेंबली है) में गैर-पोर्टेबल होते है।
अतः प्रोजेक्ट का सोर्स कोड एमआईटी लाइसेंस के तहत गिटहब पर उपलब्ध किया जाता है।[5]
इतिहास
माइक्रोपायथन मूल रूप से ऑस्ट्रेलियाई प्रोग्रामर और सैद्धांतिक भौतिक विज्ञानी डेमियन जॉर्ज द्वारा 2013 में सफल किकस्टार्टर समर्थित अभियान के अतिरिक्त प्रयुक्त किया गया था।[6] जबकि मूल किकस्टार्टर अभियान ने एसटीएम32 या एसटीएम32 एफ4-संचालित विकास बोर्ड पाइबोर्ड के साथ माइक्रोपायथन प्रयुक्त किया गया, माइक्रोपायथन कई एआरएम आर्किटेक्चर एआरएम वास्तुकला का समर्थन करता है।[7] मेनलाइन में समर्थित होस्ट हैं एआरएम कॉर्टेक्स-एम (कई एसटीएम32 बोर्ड, टीआई सीसी3200/वाईपीवाई, टीनी बोर्ड, नॉर्डिक एनआरएफ सीरीज़,एसएएमडी 21 औरएसएएमडी 51), ईएसपी 8266, ईएसपी 32, 16-बिट पीआईसी, यूनिक्स, विंडोज़, जेफिर, और जावास्क्रिप्ट .[8] इसके अतिरिक्त , मेनलाइन में समर्थित नहीं विभिन्न प्रकार के सिस्टम और हार्डवेयर प्लेटफॉर्म के लिए कई फ़ोर्क हैं जो मेनलाइन में समर्थित नहीं हैं।[9]
इस प्रकार से 2016 में, बीबीसी के साथ माइक्रो बिट साझेदारी में पायथन सॉफ्टवेयर फाउंडेशन के योगदान के भाग के रूप में बीबीसी माइक्रो बिट के लिए माइक्रोपायथन का संस्करण बनाया गया था।[10]
जुलाई 2017 में, माइक्रोपायथन को शिक्षा और उपयोग में सरलता पर जोर देने के साथ माइक्रोपायथन का संस्करण, सर्किटपायथन बनाने के लिए फोर्क किया गया था। माइक्रोपायथन और सर्किटपाइथन हार्डवेयर के कुछ अलग सेटों का समर्थन करते हैं (जैसे सर्किटपाइथन एटमेल एसएएम डी21 और डी51 बोर्डों का समर्थन करता है, किन्तु ईएसपी 8266 के लिए समर्थन छोड़ देता है)। संस्करण 4.0 के अनुसार, सर्किटपाइथन माइक्रोपायथन संस्करण 1.9.4 पर आधारित किये जाते है।[11]
2017 में, माइक्रोसेमी ने आरआईएससी-वी (आरवी32 और आरवी64) आर्किटेक्चर के लिए माइक्रोपायथन पोर्ट बनाया गया।[12]
अप्रैल 2019 में, लेगो माइंडस्टॉर्म ईवी 3 के लिए माइक्रोपायथन का संस्करण बनाया गया था।[13]
इस प्रकार से जनवरी 2021 में, आरपी 2040 (एआरएम कॉर्टेक्स-एम0+, रास्पबेरी पाई पिको और अन्य पर) के लिए माइक्रोपायथन पोर्ट बनाया गया था।[14]
सुविधाएँ
पायथन चलाने की क्षमता
माइक्रोपायथन में पायथन चलाने की क्षमता होती है, जिससे उपयोगकर्ता सरल और आसानी से समझने वाले प्रोग्राम बना सकते हैं।[15] माइक्रोपायथन कई मानक पायथन लाइब्रेरीों का समर्थन करता है, जो पायथन के सबसे अधिक उपयोग किए जाने वाले लाइब्रेरीों की 80% से अधिक सुविधाओं का समर्थन करता है।[15] माइक्रोपायथन को विशेष रूप से माइक्रोकंट्रोलर्स और पायथन के बीच विशिष्ट प्रदर्शन अंतर का समर्थन करने के लिए डिज़ाइन किया गया था।[16] पायथन कोड सीधे हार्डवेयर तक पहुंच और इंटरैक्ट करने में सक्षम है, बढ़ी हुई हार्डवेयर संभावनाओं के साथ जो ऑपरेटिंग सिस्टम पर चलने वाले सामान्य पायथन एप्लिकेशन का उपयोग करके उपलब्ध नहीं होते हैं।[17]
कोड पोर्टेबिलिटी
माइक्रोपायथन का हार्डवेयर अमूर्त परत (एचएएल) विधि का उपयोग विकसित कोड को ही परिवार या प्लेटफ़ॉर्म के अंदर विभिन्न माइक्रोकंट्रोलर्स के बीच पोर्टेबल होने की अनुमति देता है और यह उपकरण ों पर जो माइक्रोपायथन को सपोर्ट और डाउनलोड कर सकते हैं। प्रोग्राम सदैव उच्च-प्रदर्शन वाले माइक्रोकंट्रोलर्स पर विकसित और परीक्षण किए जाते हैं और कम-प्रदर्शन वाले माइक्रोकंट्रोलर्स पर उपयोग किए जाने वाले अंतिम एप्लिकेशन के साथ वितरित किए जाते हैं।[18]
मॉड्यूल
इस प्रकार से नया कोड लिखे जाने के पश्चात, जमे हुए मॉड्यूल को बनाने और इसे लाइब्रेरी के रूप में उपयोग करने के लिए माइक्रोपायथन कार्यक्षमता प्रदान करता है जो विकसित फर्मवेयर का भाग हो सकता है। यह सुविधा उसी के दोहरी से बचने में सहायता करती है, पहले से ही त्रुटि मुक्त, परीक्षण कोड को माइक्रोपायथन वातावरण में उपयोग किया जाता है। इस प्रकार के मॉड्यूल को संकलक के लिए माइक्रोकंट्रोलर के मॉड्यूल निर्देशिका में संग्रहित किया जाता है और माइक्रोकंट्रोलर पर अपलोड किया जाएगा जहां बार-बार उपयोग किए जाने वाले पायथन के आयात कमांड का उपयोग करके लाइब्रेरी उपलब्ध होते है।[18]
रीड-इवल-प्रिंट लूप
रीड-इवल-प्रिंट लूप (आरईपीएल) डेवलपर को कोड की अलग-अलग पंक्तियों में प्रवेश करने की अनुमति देता है और उन्हें तुरंत टर्मिनल एमुलेटर पर चलाता है।[19] लिनक्स-आधारित और मैकओएस सिस्टम में टर्मिनल एम्यूलेटर होते हैं जिनका उपयोग सीरियल यूएसबी कनेक्शन का उपयोग करके माइक्रोपायथन उपकरण के आरईपीएल से सीधा कनेक्शन बनाने के लिए किया जा सकता है। आरईपीएल अनुप्रयोग प्रक्रिया सामग्री के कुछ भागो के तत्काल परीक्षण में सहायता करता है क्योंकि आप कोड के प्रत्येक भाग को चला सकते हैं और परिणाम देख सकते हैं। कई बार आपके कोड के विभिन्न भाग आरईपीएल में लोड हो जाते हैं तो आप अपने कोड की कार्यक्षमता के साथ प्रयोग करने के लिए अतिरिक्त आरईपीएल सुविधाओं का उपयोग कर सकते हैं।[15]
इस प्रकार से सहायक आरईपीएल आदेश (एक बार सीरियल कंसोल से जुड़े):[19]
- CTRL + C: कीबोर्ड इंटरप्ट
- CTRL + D: पुनः लोड करें
- help(): help संदेश
- help (मॉड्यूल): अंतर्निहित मॉड्यूल पर्यावरण को सूचीबद्ध करता है
- आयात बोर्ड [एन्टर] डीआईआर (बोर्ड): आपके माइक्रोकंट्रोलर बोर्ड पर उन सभी पिनों को सूचीबद्ध करता है जो प्रोग्राम के कोड में उपयोग करने के लिए उपलब्ध किये जाते हैं
सीमाएं
चूँकि माइक्रोपायथन पूर्ण रूप से पायथन भाषा संस्करण 3.4 और 3.5 के अधिकांश को प्रयुक्त करता है, यह 3.5 से प्रारंभ की गई सभी भाषा सुविधाओं को प्रयुक्त नहीं करता है,[20] चूँकि 3.6 से कुछ नए सिंटैक्स और बाद के संस्करणों से अधिक वर्तमान समय की विशेषताएं, उदहारण। 3.8 (असाइनमेंट एक्सप्रेशंस) और 3.9 से। इसमें मानक लाइब्रेरी का सबसेट सम्मिलित है।[21]
माइक्रोपायथन के पास अन्य लोकप्रिय प्लेटफार्मों की तुलना में माइक्रोकंट्रोलर बाजार में अधिक सीमित हार्डवेयर समर्थन है, जैसे अरुडिनो जैसे कि कम संख्या में माइक्रोकंट्रोलर विकल्प जो भाषा का समर्थन करते हैं।[16] माइक्रोपायथन में अन्य प्लेटफार्मों के विपरीत एकीकृत विकास वातावरण (आईडीई) या विशिष्ट संपादक सम्मिलित नहीं किये जाते है।[16]
सिंटेक्स और सिमेंटिक्स
इस प्रकार से अपनी स्पष्ट और समझने में आसान शैली और शक्ति के कारण, माइक्रोपायथन का सिंटैक्स पायथन से अपनाया गया है।[22] अधिकांश अन्य प्रोग्रामिंग भाषाओं के विपरीत पठनीयता को प्राथमिकता देने के लिए कम वाक्य-विन्यास के साथ कम विराम चिह्न का उपयोग किया जाता है।[15]
कोड ब्लॉक
माइक्रोपायथन पायथन की कोड ब्लॉक शैली को अपनाता है, विशेष कार्यात्मक प्रोग्रामिंग, स्थिति या लूप के लिए विशिष्ट कोड के साथ इंडेंट किया जाता है, जिसका अर्थ है कि कुछ अभिव्यक्तियों का मूल्यांकन केवल तभी किया जाएगा जब स्थिति अभिव्यक्ति का सही मूल्यांकन किया जाएगा।[15] यह अधिकांश अन्य भाषाओं से भिन्न है जो सामान्यतः ब्लॉकों को परिसीमित करने के लिए प्रतीकों या कीवर्ड का उपयोग करती हैं।[15]
अतः यह माइक्रोपायथन कोड की पठनीयता में सहायता करता है क्योंकि दृश्य संरचना सिमेंटिक संरचना को प्रतिबिंबित करती है। यह मुख्य विशेषता सरल किन्तु महत्वपूर्ण है क्योंकि दुरुपयोग किए गए इंडेंटेशन के परिणामस्वरूप गलत स्थिति के तहत कोड निष्पादन हो सकता है या दुभाषिया (कंप्यूटिंग) से समग्र त्रुटि हो सकती है।[15]
एक कोलन (:) महत्वपूर्ण प्रतीक है जो नियम कथन के अंत को इंगित करने के लिए उपयोग किया जाता है और दुभाषिया को संकेत देता है कि कथन का मूल्यांकन किया जाना चाहिए और इंडेंटेड बॉडी जो निष्पादित की जानी चाहिए।[15] इंडेंट आकार टैब या 4 रिक्त स्थान के बराबर है।
संचालन
इस प्रकार से माइक्रोपायथन में प्रिमिटिव और लॉजिकल ऑपरेशंस का उपयोग करके विभिन्न गणितीय ऑपरेशंस करने की क्षमता होती है।[17]
प्रकार | ऑपरेटर | नाम | उदाहरण |
---|---|---|---|
अंकगणित | + | जोड़ना | वेरिएबल + 1 |
- | घटाव | वेरिएबल - 1 | |
* | गुणा | वेरिएबल * 4 | |
/ | विभाजन | वेरिएबल / 4 | |
% | मॉड्यूलो डिवीजन | वेरिएबल % 4 | |
तुलना | == | बराबर | एक्सप्रेशन 1 == एक्सप्रेशन 2 |
!= | सम नही | एक्सप्रेशन 1 != एक्सप्रेशन 2 | |
< | से कम | एक्सप्रेशन 1 < एक्सप्रेशन 2 | |
> | से अधिक | एक्सप्रेशन 1 > एक्सप्रेशन 2 | |
<= | से कम या बराबर | एक्सप्रेशन 1 <= एक्सप्रेशन 2 | |
>= | से अधिक या बराबर | एक्सप्रेशन 1 >= एक्सप्रेशन 2 | |
लॉजिकल | & | बिटवाइज़ और | वेरिएबल 1 & वेरिएबल 2 |
| | बिटवाइज़ या | वेरिएबल 2 | |
^ | बिटवाइज़ एक्सक्लूसिव या | वेरिएबल 1 ^ वेरिएबल 2 | |
~ | बिटवाइज़ पूरक | ~वेरिएबल 1 | |
and | लॉजिकल और | वेरिएबल 1 and वेरिएबल 2 | |
or | लॉजिकल और | वेरिएबल 1 or वेरिएबल 2 |
लाइब्रेरी
इस प्रकार से माइक्रोपायथन पायथन के समान लाइब्रेरीों के साथ पायथन का दुर्बल और कुशल कार्यान्वयन होता है।[23] कुछ मानक पायथन लाइब्रेरीों में दोनों के बीच अंतर करने के लिए नाम बदलकर माइक्रोपायथन में समान लाइब्रेरी है। माइक्रोपायथन लाइब्रेरी छोटी हैं और मेमोरी प्रबंधन को बचाने के लिए कम लोकप्रिय सुविधाओं को हटा दिया जाता है या संशोधित कर दिया जाता है।[17]
माइक्रोपायथन में तीन प्रकार के लाइब्रेरी:[17]
- मानक पायथन लाइब्रेरी (अंतर्निहित लाइब्रेरीों) से प्राप्त
- विशिष्ट माइक्रोपायथन लाइब्रेरी
- विशिष्ट लाइब्रेरी हार्डवेयर कार्यक्षमता के साथ सहायता करने के लिए
माइक्रोपायथन अत्यधिक अनुकूलन योग्य और विन्यास योग्य है, जिसमें प्रत्येक बोर्ड (माइक्रोकंट्रोलर) के बीच भाषा भिन्न होती है और लाइब्रेरीों की उपलब्धता भिन्न हो सकती है। किन्तु मॉड्यूल या पूरे मॉड्यूल में कुछ कार्य और कक्षाएं अनुपलब्ध या परिवर्तित हो सकती हैं।[17]
लाइब्रेरी का नाम | विवरण |
---|---|
array | परिचालन चालू सारणियाँ |
cmath | जटिल संख्याओं जटिल संख्याओं के लिए गणित फ़ंक्शन प्रदान करता है |
gc | कचरा संग्रहकर्ता |
math | फ़्लोटिंग-पॉइंट संख्याओं के लिए बुनियादी गणित संचालन प्रदान करता है |
sys | सिस्टम-स्तरीय कार्य; दुभाषिया द्वारा प्रयुक्त वेरिएबल्स तक पहुंच प्रदान करता है |
ubinascii | बाइनरी और एएससीआईआई के बीच कनवर्ट करने के लिए फ़ंक्शन |
ucollections | विभिन्न वस्तुओं को रखने वाले संग्रहों और कंटेनर प्रकारों के लिए संचालन |
uerrno | त्रुटि कोड तक पहुंच प्रदान करता है |
uhashlib | हैश एल्गोरिदम बाइनरी के लिए संचालन |
uheapq | हीप कतार एल्गोरिथ्म को लागू करने के लिए संचालन |
uio | इनपुट/आउटपुट स्ट्रीम को संभालने के लिए संचालन |
ujson | जेएसओएन दस्तावेज़ों और पायथन ऑब्जेक्ट्स के बीच रूपांतरण को संभालता है |
uos | फ़ाइल सिस्टम एक्सेस और बुनियादी ऑपरेटिंग सिस्टम फ़ंक्शंस के लिए फ़ंक्शंस |
ure | नियमित अभिव्यक्ति मिलान संचालन प्रस्तुत करता है |
uselect | एकाधिक धाराओं पर घटनाओं को संभालने के लिए कार्य |
usocket | सॉकेट (नेटवर्क) से कनेक्ट करना, सॉकेट इंटरफ़ेस तक पहुंच प्रदान करना |
ustruct | प्रारंभिक डेटा प्रकार को पैक और अनपैक करके पायथन ऑब्जेक्ट में रूपांतरण करता है |
utime | समय अंतराल को मापने और देरी को प्रस्तुत करने सहित समय और दिनांक फ़ंक्शन प्रदान करता है |
uzlib | बाइनरी डेटा को डीकंप्रेस करने के लिए ऑपरेशन |
लाइब्रेरी का नाम | विवरण |
---|---|
फ़्रेमबफ़ | एक फ़्रेम बफ़र प्रदान करता है जिसका उपयोग डिस्प्ले पर भेजने के लिए बिटमैप छवियां बनाने के लिए किया जा सकता है |
मशीन | हार्डवेयर ब्लॉक तक पहुँचने और उनके साथ इंटरैक्ट करने में सहायता करने वाले कार्य |
माइक्रोपायथन | माइक्रोपायथन आंतरिकों तक पहुंच और नियंत्रण |
नेटवर्क | नेटवर्क ड्राइवर स्थापित करने में सहायता करता है, नेटवर्क के माध्यम से इंटरैक्शन की अनुमति देता है |
uctypes | बाइनरी डेटा संरचनाओं तक पहुंचें |
कस्टम माइक्रोपायथन लाइब्रेरी
जब डेवलपर्स नया एप्लिकेशन बनाना प्रारंभ करते हैं, तो मानक माइक्रोपायथन लाइब्रेरी और ड्राइवर अपर्याप्त संचालन या गणना के साथ आवश्यकताओं को पूर्ण नहीं कर सकते हैं। इस प्रकार से पायथन के समान, कस्टम लाइब्रेरी के साथ माइक्रोपायथन की कार्यक्षमता को विस्तारित करने की संभावना है जो उपस्थित लाइब्रेरी और फ़र्मवेयर की क्षमता का विस्तार करती है।[18]
माइक्रोपायथन में, .पीवाई के साथ समाप्त होने वाली फ़ाइलें अन्य लाइब्रेरी उपनामों पर प्राथमिकता लेती हैं जो उपयोगकर्ताओं को मौजूदा लाइब्रेरी के उपयोग और कार्यान्वयन को बढ़ाने की अनुमति देती हैं।[17]
सहायक हार्डवेयर
जैसे-जैसे माइक्रोपायथन का कार्यान्वयन और लोकप्रियता बढ़ती जा रही है, अधिक बोर्डों में माइक्रोपायथन को चलाने की क्षमता होती है। कई डेवलपर प्रोसेसर विशिष्ट संस्करण बना रहे हैं जिन्हें विभिन्न माइक्रोकंट्रोलर्स पर डाउनलोड किया जा सकता है।[17] माइक्रोकंट्रोलर्स पर माइक्रोपायथन स्थापित करना सही प्रकार से प्रलेखित और उपयोगकर्ता के अनुकूल है।[18] माइक्रोपायथन माइक्रोकंट्रोलर हार्डवेयर और एप्लिकेशन के बीच इंटरैक्ट को सरल बनाने की अनुमति देता है, कठोर स्तर की उत्तरदेही के साथ संसाधन विवश वातावरण में काम करते हुए कार्यक्षमता की सीमा तक पहुंच की अनुमति देता है।[15]
इस प्रकार से माइक्रोपायथन को चलाने के लिए दो प्रकार के बोर्ड का उपयोग किया जाता है:[17]
- माइक्रोपायथन निर्मित होने पर लोड होता है, जिसका अर्थ है कि केवल माइक्रोपायथन चलाया जा सकता है।
- ऐसे बोर्ड जिनमें फर्मवेयर होता है जो माइक्रोपायथन को बोर्ड में स्थापित करने की अनुमति देता है।
निष्पादन कोड
किसी प्रोग्राम को माइक्रोपायथन बोर्ड पर ले जाने के लिए, फ़ाइल बनाएं और इसे निष्पादित करने के लिए माइक्रोकंट्रोलर पर कॉपी किये जाते है। उपकरण से जुड़े हार्डवेयर के साथ, जैसे कि कंप्यूटर, बोर्ड का फ्लैशड्राइव उपकरण पर दिखाई देगा, जिससे फाइलों को फ्लैश ड्राइव में ले जाया जा सकेगा। दो उपस्थित पायथन फाइलें होती है, boot.py और main.py जो सामान्यतः संशोधित नहीं होती हैं, main.py को संशोधित किया जा सकता है यदि आप प्रोग्राम को हर बार माइक्रोकंट्रोलर बूट करना चाहते हैं, अन्यथा, का उपयोग करके प्रोग्राम चलाए जाएगा।[17]
पायबोर्ड
इस प्रकार से पाइबोर्ड आधिकारिक माइक्रोपायथन माइक्रोकंट्रोलर बोर्ड है जो माइक्रोपायथन के सॉफ़्टवेयर सुविधाओं का पूर्ण समर्थन करता है। पाइबोर्ड की हार्डवेयर सुविधाओं में सम्मिलित होते हैं:[4]
- माइक्रोकंट्रोलर (एमसीयू, सेंट्रल प्रोसेसिंग यूनिट, फ्लैश केवल पढ़ने के लिये मेमोरी और रैंडम एक्सेस मेमोरी )
- माइक्रोयूएसबी कनेक्टर
- माइक्रो एसडी कार्ड स्लॉट
- आईओ पिन
- स्विच , एलईडी, सर्वो पोर्ट, रियल टाइम क्लॉक, एक्सेलेरोमीटर
बूटिंग प्रक्रिया
पाइबोर्ड में /फ्लैश नामक आंतरिक ड्राइव (फाइल सिस्टम ) होता है जो बोर्ड की फ्लैश मेमोरी में संग्रहीत होता है, इसके अतिरिक्त, माइक्रोएसडी कार्ड स्लॉट में डाला जा सकता है और /एसडी के माध्यम से पहुंचा जा सकता है। जब बूट किया जाता है, तो पाइबोर्ड को या तो / फ्लैश या / एसडी से बूट करने के लिए फाइल सिस्टम का चयन करना चाहिए, वर्तमान निर्देशिका को या तो / फ्लैश या / एसडी पर सेट किया जा रहा है। डिफ़ॉल्ट रूप से, यदि कोई एसडी कार्ड डाला जाता है, तो/एसडी का उपयोग किया जाएगा, यदि नहीं,/फ्लैश का उपयोग किया जाता है। यदि आवश्यक हो, तो बूटिंग प्रक्रिया के लिए एसडी कार्ड के उपयोग को /फ्लैश /स्किप्सड नामक खाली फ़ाइल बनाकर टाला जा सकता है, जो बोर्ड पर रहेगा और पाइबोर्ड के बूट होने पर मौजूद रहेगा और बूटिंग प्रक्रिया के लिए एसडी कार्ड को छोड़ देता है। .[4]
बूट मोड
जब पाइबोर्ड सामान्य रूप से संचालित होता है या रीसेट बटन दबाया जाता है तो पाइबोर्ड को मानक मोड में बूट किया जाता है, जिसका अर्थ है कि boot.py फ़ाइल निष्पादित की जाती है, फिर यूएसबी कॉन्फ़िगर किया गया है और अंत में पायथन प्रोग्राम चलाया जाएगा।[4]
इस प्रकार से जब बोर्ड बूटिंग प्रक्रिया में होता है तब उपयोगकर्ता स्विच को दबाकर मानक बूट क्रम को ओवरराइड करने की क्षमता होती है और जब आप उपयोगकर्ता स्विच को होल्ड करना प्रयुक्त रखते हैं तो रीसेट दबाते हैं। पाइबोर्ड के एलईडी मोड के बीच फ़्लिक करेंगे और बार जब एलईडी उपयोगकर्ता द्वारा वांछित मोड में पहुंच जाएंगे, तो वे उपयोगकर्ता स्विच को जाने दे सकते हैं और बोर्ड विशिष्ट मोड में बूट हो जाएगा।[4]
बूट मोड हैं:[4]
- मानक बूट: हरी एलईडी केवल (boot.py फिर अजगर कार्यक्रम चलाता है)
- सुरक्षित बूट: केवल नारंगी एलईडी (बूट-अप के दौरान कोई स्क्रिप्ट नहीं चलती)
- फाइलसिस्टम रीसेट: हरे और नारंगी एलईडी साथ (फैक्ट्री स्थिति में फ्लैश ड्राइव को रीसेट करता है और सुरक्षित मोड में बूट करता है)
- फाइलसिस्टम के दूषित होने पर फिक्स के रूप में उपयोग किया जाता है
त्रुटियां
- यदि लाल और हरे रंग की एलईडी वैकल्पिक रूप से फ़्लैश करती हैं, तो पायथन स्क्रिप्ट में त्रुटि है, और आपको डिबगिंग के लिए आरईपीएल का उपयोग करना चाहिए।
- यदि सभी 4 एलईडी चालू और बंद हो जाते हैं तो कठिन दोष है जिसे ठीक नहीं किया जा सकता है और इसके लिए हार्ड रीसेट की आवश्यकता होती है।[4]
प्रोग्रामिंग उदाहरण[17]
हेलो वर्ल्ड प्रोग्राम:
# print to serial console
print('Hello, World!')
इमपोर्टिंग + एलईडी चालू करना:
import pyb
# turn LED on
pyb.LED(1).on()
फ़ाइल + लूप पढ़ना:
import os
# open and read a file
with open('/readme.txt') as f:
print(f.read())
बाईटकोड
माइक्रोपायथन में क्रॉस कंपाइलर सम्मिलित है जो माइक्रोपायथन बाईटकोड (फ़ाइल एक्सटेंशन .mpy) उत्पन्न करता है। पायथन कोड को या तो सीधे माइक्रोकंट्रोलर पर बायटेकोड में संकलित किया जा सकता है या इसे कहीं और प्रीकंपाइल किया जा सकता है।
माइक्रोपायथन फर्मवेयर को कंपाइलर के बिना बनाया जा सकता है, केवल वर्चुअल मशीन को छोड़कर जो प्री-कम्पाइल्ड mpy प्रोग्राम चला सकता है।
कार्यान्वयन और उपयोग
माइक्रोपायथन का उपयोग मानक सॉफ़्टवेयर द्वारा फ्लैश मेमोरी में विशेष माइक्रोकंट्रोलर पर लोड किए जा रहे फ़र्मवेयर के माध्यम से किया जाता है, जो सीरियल इंटरफ़ेस का अनुकरण करने वाले कंप्यूटर पर लोड किए गए टर्मिनल एप्लिकेशन का उपयोग करके संचार करता है।[18]
माइक्रोपायथन के मुख्य उपयोगों को 3 श्रेणियों में सामान्यीकृत किया जा सकता है:[18]
- शैक्षिक उद्देश्य: माइक्रोकंट्रोलर के साथ इंटरैक्ट करने के लिए माइक्रोपायथन के रीड-इवल-प्रिंट लूप (आरईपीएल) का उपयोग करके, अधिक जटिल प्रोग्रामिंग भाषाओं की तुलना में डेटा प्रोसेसिंग की अवधारणाओं और बोर्डों के साथ संचार को सरल विधि से समझाना संभव है।
- उपकरण और सेंसर डिज़ाइन का विकास और परीक्षण: माइक्रोपायथन परिधीय संचार सेटअप और नियंत्रण को प्रयुक्त करने के सामान्य डेवलपर के कार्य को हल करने वाले माइक्रोकंट्रोलर्स में उपयोग किए जाने वाले इंटरफेस के सत्यापित, बग-मुक्त और पूर्ण रूप से परीक्षण किए गए संदर्भ कार्यान्वयन की प्रस्तुत करता है। माइक्रोपायथन उपकरण रजिस्टरों के लिए प्रत्यक्ष और इंटरैक्टिव पहुंच प्रदान करता है जो उपकरण से डेटा को नियंत्रित करने और प्राप्त करने के लिए कार्यक्षमता को सत्यापित करना और हार्डवेयर भागों और उपकरणों और एल्गोरिदम को विकसित करना और परीक्षण करना सरल बनाता है।
- जटिल अनुप्रयोगों के डिजाइन के लिए निगरानी और विन्यास उपकरण: कुछ अनुप्रयोगों के लिए उच्च प्रदर्शन वाले माइक्रोकंट्रोलर्स पर विशिष्ट अनुप्रयोगों की आवश्यकता होती है। माइक्रोपायथन राज्य की निगरानी और सिस्टम मापदंडों के सेट-अप में सहायता करने में सक्षम होते है।
माइक्रोपायथन का कार्यान्वयन मानक और सहायक लाइब्रेरीों की उपलब्धता और माइक्रोकंट्रोलर की फ्लैश मेमोरी और रैम आकार के आधार पर भिन्न हो सकता है।[18]
संदर्भ
- ↑ George, Damien P. (4 May 2014). "micropython/LICENSE at master · micropython/micropython". GitHub. Retrieved 11 February 2017.
- ↑ Venkataramanan, Madhumita (6 December 2013). "Micro Python: more powerful than Arduino, simpler than the Raspberry Pi". Wired. Retrieved 15 December 2016.
- ↑ Yegulalp, Serdar (5 July 2014). "Micro Python's tiny circuits: Python variant targets microcontrollers". InfoWorld. Retrieved 15 December 2016.
- ↑ 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 "MicroPython - माइक्रोकंट्रोलर्स के लिए पायथन". micropython.org. Retrieved 12 August 2017.
- ↑ "गिटहब पर माइक्रोपायथन". GitHub. 7 February 2022.
- ↑ "Micro Python: Python for microcontrollers". Kickstarter. Kickstarter. Retrieved 15 December 2016.
- ↑ Beningo, Jacob (11 July 2016). "Prototype to production: MicroPython under the hood". EDN Network. Retrieved 15 December 2016.
- ↑ George, Damien P. "micropython/ports at master · micropython/micropython". GitHub. Retrieved 22 October 2019.
- ↑ Sokolovsky, Paul. "बहुत बढ़िया माइक्रोपायथन". GitHub. Retrieved 22 October 2019.
- ↑ Williams, Alun (7 July 2015). "बीबीसी माइक्रो-बिट यूजर इंटरफेस के साथ काम करें". ElectronicsWeekly.com. Retrieved 8 July 2015.
- ↑ Shawcroft, Scott (22 May 2019). "CircuitPython 4.0.1 released!". Adafruit Blog. Adafruit Industries. Retrieved 11 Jun 2019.
- ↑ "RISC-V Poster Preview — 7th RISC-V Workshop" (PDF). 28 November 2017. Retrieved 17 December 2018.
- ↑ "LEGO releases MicroPython for EV3 based on ev3dev and Pybricks". www.ev3dev.org. Retrieved 2020-04-21.
- ↑ "Meet Raspberry Silicon: Raspberry Pi Pico now on sale at $4". www.raspberrypi.org. 21 January 2021. Retrieved 2021-01-21.
- ↑ 15.0 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 Alsabbagh, Marwan (2019). माइक्रोपायथन कुकबुक. Birmingham, UK: Packt Publishing.
- ↑ 16.0 16.1 16.2 Bruno, P. (25 November 2021). "माइक्रोपायथन का परिचय". All3DP. All3DP. Retrieved 9 May 2022.
- ↑ 17.00 17.01 17.02 17.03 17.04 17.05 17.06 17.07 17.08 17.09 17.10 Bell, Charles (2017). इंटरनेट ऑफ थिंग्स के लिए माइक्रोपायथन. Berkeley, USA: Apress.
- ↑ 18.0 18.1 18.2 18.3 18.4 18.5 18.6 Gaspar, G.; Kuba, P.; Flochova, J.; Dudak, J.; Florkova, Z. (2020). Development of IoT applications based on the MicroPython platform for Industry 4.0 implementation. 2020 19th International Conference on Mechatronics – Mechatronika (ME). pp. 1–7.
- ↑ 19.0 19.1 Rembor, K. "आरईपीएल". Welcome to CircuitPython!. Adafruit Learning System. Retrieved 9 May 2022.
- ↑ "MicroPython differences from CPython — MicroPython latest documentation". docs.micropython.org.
- ↑ "MicroPython - माइक्रोकंट्रोलर्स के लिए पायथन". micropython.org (in English).
- ↑ Wang, L.; Li, Y.; Zhang, H.; Han, Q.; Chen, L. (2021). माइक्रोपीथॉन बाइटकोड के लिए एक कुशल नियंत्रण-प्रवाह आधारित पर्यवेक्षक. 2021 7th International Symposium on System and Software Reliability (ISSSR). pp. 54–63.
- ↑ Khamphroo, M.; Kwankeo, N.; Kaemarungsi, K.; Fukawa, K. (2017). कंप्यूटर कोडिंग सीखने के लिए माइक्रोपायथन आधारित शैक्षिक मोबाइल रोबोट. 2017 8th International Conference of Information and Communication Technology for Embedded Systems (IC-ICTES). pp. 1–6.
बाहरी संबंध
- Official website
- micropython on GitHub
- GOTO 2016 • माइक्रोपायथन & the Internet of Things • Damien George on YouTube
- MicroPython playlist on YouTube • Tutorials by Tony DiCola / Adafruit