माइक्रोपायथन: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Microcontroller software based on Python}} {{Use dmy dates|date=April 2022}} {{Infobox software | name = MicroPython | logo = MicroPython new logo.svg | lo...")
 
No edit summary
Line 1: Line 1:
{{Short description|Microcontroller software based on Python}}
{{Short description|Microcontroller software based on Python}}
{{Use dmy dates|date=April 2022}}
 
{{Infobox software
{{Infobox software
| name = MicroPython
| name = MicroPython
Line 14: Line 14:
| website = {{URL|https://micropython.org}}
| website = {{URL|https://micropython.org}}
}}
}}
MicroPython [[सी ([[प्रोग्रामिंग भाषा]])]] में लिखी गई [[पायथन (प्रोग्रामिंग भाषा)]] 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>
MicroPython [[सी ([[प्रोग्रामिंग भाषा]])]] में लिखी गई [[पायथन (प्रोग्रामिंग भाषा)]] 3 के साथ काफी हद तक संगत प्रोग्रामिंग भाषा का [[ सॉफ़्टवेयर |सॉफ़्टवेयर]] कार्यान्वयन है, जिसे [[ microcontroller |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>
MicroPython में बायटेकोड के लिए एक पायथन कंपाइलर और उस बायटेकोड का एक रनटाइम दुभाषिया होता है। समर्थित आदेशों को तुरंत निष्पादित करने के लिए उपयोगकर्ता को एक इंटरैक्टिव प्रॉम्प्ट (रीड-इवल-प्रिंट लूप) के साथ प्रस्तुत किया जाता है। कोर पायथन पुस्तकालयों का चयन शामिल है; MicroPython में ऐसे मॉड्यूल शामिल हैं जो प्रोग्रामर को निम्न-स्तरीय हार्डवेयर तक पहुँच प्रदान करते हैं।<ref name="MP-Website">{{cite web|url=https://micropython.org/|title=MicroPython - माइक्रोकंट्रोलर्स के लिए पायथन|website=micropython.org|accessdate=12 August 2017}}</ref>
 
MicroPython में एक [[इनलाइन असेंबलर]] है, और वह कोड पूरी गति से चलेगा, लेकिन यह विभिन्न माइक्रोकंट्रोलर्स (जैसा कि कोई असेंबली है) में गैर-पोर्टेबल है।
MicroPython में बायटेकोड के लिए पायथन कंपाइलर और उस बायटेकोड का रनटाइम दुभाषिया होता है। समर्थित आदेशों को तुरंत निष्पादित करने के लिए उपयोगकर्ता को इंटरैक्टिव प्रॉम्प्ट (रीड-इवल-प्रिंट लूप) के साथ प्रस्तुत किया जाता है। कोर पायथन पुस्तकालयों का चयन शामिल है; MicroPython में ऐसे मॉड्यूल शामिल हैं जो प्रोग्रामर को निम्न-स्तरीय हार्डवेयर तक पहुँच प्रदान करते हैं।<ref name="MP-Website">{{cite web|url=https://micropython.org/|title=MicroPython - माइक्रोकंट्रोलर्स के लिए पायथन|website=micropython.org|accessdate=12 August 2017}}</ref>
 
MicroPython में [[इनलाइन असेंबलर]] है, और वह कोड पूरी गति से चलेगा, लेकिन यह विभिन्न माइक्रोकंट्रोलर्स (जैसा कि कोई असेंबली है) में गैर-पोर्टेबल है।


प्रोजेक्ट का सोर्स कोड MIT लाइसेंस के तहत [[GitHub]] पर उपलब्ध है।<ref>{{cite web|url=https://github.com/micropython/micropython|title=गिटहब पर माइक्रोपायथन|website=[[GitHub]]|date=7 February 2022}}</ref>
प्रोजेक्ट का सोर्स कोड MIT लाइसेंस के तहत [[GitHub]] पर उपलब्ध है।<ref>{{cite web|url=https://github.com/micropython/micropython|title=गिटहब पर माइक्रोपायथन|website=[[GitHub]]|date=7 February 2022}}</ref>
== इतिहास ==


MicroPython मूल रूप से ऑस्ट्रेलियाई प्रोग्रामर और सैद्धांतिक भौतिक विज्ञानी डेमियन जॉर्ज द्वारा 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> जबकि मूल किकस्टार्टर अभियान ने STM32#STM32 F4-संचालित विकास बोर्ड पाइबोर्ड के साथ MicroPython जारी किया, MicroPython कई ARM आर्किटेक्चर [[एआरएम वास्तुकला]] का समर्थन करता है।<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> मेनलाइन में समर्थित बंदरगाह हैं ARM Cortex-M (कई [[STM32]] बोर्ड, TI CC3200/WiPy, टीनी बोर्ड, नॉर्डिक nRF सीरीज़, SAMD21 और SAMD51), [[ESP8266]], [[ESP32]], 16-बिट PIC, Unix, Windows, Zephyr, और JavaScript .<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 में, [[बीबीसी]] के साथ [[माइक्रो बिट]] साझेदारी में [[पायथन सॉफ्टवेयर फाउंडेशन]] के योगदान के हिस्से के रूप में बीबीसी माइक्रो बिट के लिए माइक्रोपायथन का संस्करण बनाया गया था।<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>


MicroPython मूल रूप से ऑस्ट्रेलियाई प्रोग्रामर और सैद्धांतिक भौतिक विज्ञानी डेमियन जॉर्ज द्वारा 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> जबकि मूल किकस्टार्टर अभियान ने STM32#STM32 F4-संचालित विकास बोर्ड पाइबोर्ड के साथ MicroPython जारी किया, MicroPython कई ARM आर्किटेक्चर [[एआरएम वास्तुकला]] का समर्थन करता है।<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> मेनलाइन में समर्थित बंदरगाह हैं ARM Cortex-M (कई [[STM32]] बोर्ड, TI CC3200/WiPy, टीनी बोर्ड, नॉर्डिक nRF सीरीज़, SAMD21 और SAMD51), [[ESP8266]], [[ESP32]], 16-बिट PIC, Unix, Windows, Zephyr, और JavaScript .<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>
जुलाई 2017 में, MicroPython को शिक्षा और उपयोग में आसानी पर जोर देने के साथ MicroPython का संस्करण, [[सर्किटपायथन]] बनाने के लिए फोर्क किया गया था। MicroPython और सर्किटपाइथन हार्डवेयर के कुछ अलग सेटों का समर्थन करते हैं (जैसे सर्किटपाइथन [[Atmel]] SAM D21 और D51 बोर्डों का समर्थन करता है, लेकिन ESP8266 के लिए समर्थन छोड़ देता है)। संस्करण 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>
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 में, MicroPython को शिक्षा और उपयोग में आसानी पर जोर देने के साथ MicroPython का एक संस्करण, [[सर्किटपायथन]] बनाने के लिए फोर्क किया गया था। MicroPython और सर्किटपाइथन हार्डवेयर के कुछ अलग सेटों का समर्थन करते हैं (जैसे सर्किटपाइथन [[Atmel]] SAM D21 और D51 बोर्डों का समर्थन करता है, लेकिन ESP8266 के लिए समर्थन छोड़ देता है)। संस्करण 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]] (RV32 और RV64) आर्किटेक्चर के लिए एक माइक्रोपायथन पोर्ट बनाया।<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>
जनवरी 2021 में, RP2040 (ARM Cortex-M0+, [[Raspberry Pi Pico]] और अन्य पर) के लिए एक MicroPython पोर्ट बनाया गया था।<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>


2017 में, [[माइक्रोसेमी]] ने [[RISC-V]] (RV32 और RV64) आर्किटेक्चर के लिए माइक्रोपायथन पोर्ट बनाया।<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>
जनवरी 2021 में, RP2040 (ARM Cortex-M0+, [[Raspberry Pi Pico]] और अन्य पर) के लिए MicroPython पोर्ट बनाया गया था।<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>
== सुविधाएँ ==
== सुविधाएँ ==


=== पायथन चलाने की क्षमता ===
=== पायथन चलाने की क्षमता ===


MicroPython में Python चलाने की क्षमता है, जिससे उपयोगकर्ता सरल और आसानी से समझने वाले प्रोग्राम बना सकते हैं।<ref name=":0">{{cite book |last=Alsabbagh |first=Marwan |title=माइक्रोपायथन कुकबुक|date=2019 |publisher=[[Packt Publishing]] |location=Birmingham, UK |author-link=Marwan Alsabbagh}}</ref> MicroPython कई मानक Python पुस्तकालयों का समर्थन करता है, जो Python के सबसे अधिक उपयोग किए जाने वाले पुस्तकालयों की 80% से अधिक सुविधाओं का समर्थन करता है।<ref name=":0" />MicroPython को विशेष रूप से माइक्रोकंट्रोलर्स और पायथन के बीच विशिष्ट प्रदर्शन अंतर का समर्थन करने के लिए डिज़ाइन किया गया था।<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>
MicroPython में Python चलाने की क्षमता है, जिससे उपयोगकर्ता सरल और आसानी से समझने वाले प्रोग्राम बना सकते हैं।<ref name=":0">{{cite book |last=Alsabbagh |first=Marwan |title=माइक्रोपायथन कुकबुक|date=2019 |publisher=[[Packt Publishing]] |location=Birmingham, UK |author-link=Marwan Alsabbagh}}</ref> MicroPython कई मानक Python पुस्तकालयों का समर्थन करता है, जो Python के सबसे अधिक उपयोग किए जाने वाले पुस्तकालयों की 80% से अधिक सुविधाओं का समर्थन करता है।<ref name=":0" /> MicroPython को विशेष रूप से माइक्रोकंट्रोलर्स और पायथन के बीच विशिष्ट प्रदर्शन अंतर का समर्थन करने के लिए डिज़ाइन किया गया था।<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>
 
 
=== कोड पोर्टेबिलिटी ===
=== कोड पोर्टेबिलिटी ===


MicroPython का [[ हार्डवेयर अमूर्त परत ]] (HAL) तकनीक का उपयोग विकसित कोड को एक ही परिवार या प्लेटफ़ॉर्म के भीतर विभिन्न माइक्रोकंट्रोलर्स के बीच पोर्टेबल होने की अनुमति देता है और उन डिवाइसों पर जो MicroPython को सपोर्ट और डाउनलोड कर सकते हैं। प्रोग्राम अक्सर उच्च-प्रदर्शन वाले माइक्रोकंट्रोलर्स पर विकसित और परीक्षण किए जाते हैं और कम-प्रदर्शन वाले माइक्रोकंट्रोलर्स पर उपयोग किए जाने वाले अंतिम एप्लिकेशन के साथ वितरित किए जाते हैं।<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>
MicroPython का [[ हार्डवेयर अमूर्त परत |हार्डवेयर अमूर्त परत]] (HAL) तकनीक का उपयोग विकसित कोड को ही परिवार या प्लेटफ़ॉर्म के भीतर विभिन्न माइक्रोकंट्रोलर्स के बीच पोर्टेबल होने की अनुमति देता है और उन डिवाइसों पर जो MicroPython को सपोर्ट और डाउनलोड कर सकते हैं। प्रोग्राम अक्सर उच्च-प्रदर्शन वाले माइक्रोकंट्रोलर्स पर विकसित और परीक्षण किए जाते हैं और कम-प्रदर्शन वाले माइक्रोकंट्रोलर्स पर उपयोग किए जाने वाले अंतिम एप्लिकेशन के साथ वितरित किए जाते हैं।<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>
 
 
=== मॉड्यूल ===
=== मॉड्यूल ===


एक बार नया कोड लिखे जाने के बाद, एक जमे हुए मॉड्यूल को बनाने और इसे एक पुस्तकालय के रूप में उपयोग करने के लिए MicroPython कार्यक्षमता प्रदान करता है जो विकसित [[फर्मवेयर]] का एक हिस्सा हो सकता है। यह सुविधा उसी के दोहराव से बचने में सहायता करती है, पहले से ही त्रुटि मुक्त, परीक्षण कोड को माइक्रोपायथन वातावरण में। इस प्रकार के मॉड्यूल को [[ संकलक ]] के लिए एक माइक्रोकंट्रोलर के मॉड्यूल निर्देशिका में सहेजा जाएगा और माइक्रोकंट्रोलर पर अपलोड किया जाएगा जहां बार-बार उपयोग किए जाने वाले पायथन के आयात कमांड का उपयोग करके पुस्तकालय उपलब्ध होगा।<ref name=":3" />
एक बार नया कोड लिखे जाने के बाद, जमे हुए मॉड्यूल को बनाने और इसे पुस्तकालय के रूप में उपयोग करने के लिए MicroPython कार्यक्षमता प्रदान करता है जो विकसित [[फर्मवेयर]] का हिस्सा हो सकता है। यह सुविधा उसी के दोहराव से बचने में सहायता करती है, पहले से ही त्रुटि मुक्त, परीक्षण कोड को माइक्रोपायथन वातावरण में। इस प्रकार के मॉड्यूल को [[ संकलक |संकलक]] के लिए माइक्रोकंट्रोलर के मॉड्यूल निर्देशिका में सहेजा जाएगा और माइक्रोकंट्रोलर पर अपलोड किया जाएगा जहां बार-बार उपयोग किए जाने वाले पायथन के आयात कमांड का उपयोग करके पुस्तकालय उपलब्ध होगा।<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]] कनेक्शन का उपयोग करके एक MicroPython डिवाइस के REPL से सीधा कनेक्शन बनाने के लिए किया जा सकता है। आरईपीएल एक [[अनुप्रयोग प्रक्रिया सामग्री]] के कुछ हिस्सों के तत्काल परीक्षण में सहायता करता है क्योंकि आप कोड के प्रत्येक भाग को चला सकते हैं और परिणाम देख सकते हैं। एक बार जब आपके कोड के विभिन्न भाग आरईपीएल में लोड हो जाते हैं तो आप अपने कोड की कार्यक्षमता के साथ प्रयोग करने के लिए अतिरिक्त आरईपीएल सुविधाओं का उपयोग कर सकते हैं।<ref name=":0" />
रीड-इवल-प्रिंट लूप (आरईपीएल) डेवलपर को कोड की अलग-अलग पंक्तियों में प्रवेश करने की अनुमति देता है और उन्हें तुरंत [[टर्मिनल एमुलेटर]] पर चलाता है।<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]] कनेक्शन का उपयोग करके MicroPython डिवाइस के REPL से सीधा कनेक्शन बनाने के लिए किया जा सकता है। आरईपीएल [[अनुप्रयोग प्रक्रिया सामग्री]] के कुछ हिस्सों के तत्काल परीक्षण में सहायता करता है क्योंकि आप कोड के प्रत्येक भाग को चला सकते हैं और परिणाम देख सकते हैं। बार जब आपके कोड के विभिन्न भाग आरईपीएल में लोड हो जाते हैं तो आप अपने कोड की कार्यक्षमता के साथ प्रयोग करने के लिए अतिरिक्त आरईपीएल सुविधाओं का उपयोग कर सकते हैं।<ref name=":0" />


सहायक आरईपीएल आदेश (एक बार सीरियल कंसोल से जुड़े):<ref name=":4" />* CTRL + C: कीबोर्ड इंटरप्ट
सहायक आरईपीएल आदेश (एक बार सीरियल कंसोल से जुड़े):<ref name=":4" />* CTRL + C: कीबोर्ड इंटरप्ट
Line 60: Line 56:
=== सीमाएं ===
=== सीमाएं ===


हालाँकि MicroPython पूरी तरह से पायथन भाषा संस्करण 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>
हालाँकि MicroPython पूरी तरह से पायथन भाषा संस्करण 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>
MicroPython के पास अन्य लोकप्रिय प्लेटफार्मों की तुलना में माइक्रोकंट्रोलर बाजार में अधिक सीमित हार्डवेयर समर्थन है, जैसे [[Arduino]] जैसे कि कम संख्या में माइक्रोकंट्रोलर विकल्प जो भाषा का समर्थन करते हैं।<ref name=":1" />MicroPython में अन्य प्लेटफार्मों के विपरीत एक एकीकृत विकास वातावरण (IDE) या विशिष्ट संपादक शामिल नहीं है।<ref name=":1" />
 


MicroPython के पास अन्य लोकप्रिय प्लेटफार्मों की तुलना में माइक्रोकंट्रोलर बाजार में अधिक सीमित हार्डवेयर समर्थन है, जैसे [[Arduino]] जैसे कि कम संख्या में माइक्रोकंट्रोलर विकल्प जो भाषा का समर्थन करते हैं।<ref name=":1" /> MicroPython में अन्य प्लेटफार्मों के विपरीत एकीकृत विकास वातावरण (IDE) या विशिष्ट संपादक शामिल नहीं है।<ref name=":1" />
== सिंटेक्स और सिमेंटिक्स ==
== सिंटेक्स और सिमेंटिक्स ==


MicroPython's Syntax (प्रोग्रामिंग लैंग्वेज) को इसकी स्पष्ट और आसानी से समझ में आने वाली शैली और शक्ति के कारण Python से अपनाया गया है।<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" />
MicroPython's Syntax (प्रोग्रामिंग लैंग्वेज) को इसकी स्पष्ट और आसानी से समझ में आने वाली शैली और शक्ति के कारण Python से अपनाया गया है।<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" />
=== कोड ब्लॉक ===
=== कोड ब्लॉक ===


MicroPython पायथन की कोड ब्लॉक शैली को अपनाता है, एक विशेष [[कार्यात्मक प्रोग्रामिंग]], स्थिति या लूप के लिए विशिष्ट कोड के साथ इंडेंट किया जाता है, जिसका अर्थ है कि कुछ अभिव्यक्तियों का मूल्यांकन केवल तभी किया जाएगा जब स्थिति अभिव्यक्ति का सही मूल्यांकन किया जाएगा।<ref name=":0" />यह अधिकांश अन्य भाषाओं से भिन्न है जो आमतौर पर ब्लॉकों को परिसीमित करने के लिए प्रतीकों या कीवर्ड का उपयोग करती हैं।<ref name=":0" />
MicroPython पायथन की कोड ब्लॉक शैली को अपनाता है, विशेष [[कार्यात्मक प्रोग्रामिंग]], स्थिति या लूप के लिए विशिष्ट कोड के साथ इंडेंट किया जाता है, जिसका अर्थ है कि कुछ अभिव्यक्तियों का मूल्यांकन केवल तभी किया जाएगा जब स्थिति अभिव्यक्ति का सही मूल्यांकन किया जाएगा।<ref name=":0" /> यह अधिकांश अन्य भाषाओं से भिन्न है जो आमतौर पर ब्लॉकों को परिसीमित करने के लिए प्रतीकों या कीवर्ड का उपयोग करती हैं।<ref name=":0" />


यह MicroPython कोड की पठनीयता में सहायता करता है क्योंकि दृश्य संरचना सिमेंटिक संरचना को प्रतिबिंबित करती है। यह मुख्य विशेषता सरल लेकिन महत्वपूर्ण है क्योंकि दुरुपयोग किए गए इंडेंटेशन के परिणामस्वरूप गलत स्थिति के तहत कोड निष्पादन हो सकता है या [[ दुभाषिया (कंप्यूटिंग) ]] से समग्र त्रुटि हो सकती है।<ref name=":0" />
यह MicroPython कोड की पठनीयता में सहायता करता है क्योंकि दृश्य संरचना सिमेंटिक संरचना को प्रतिबिंबित करती है। यह मुख्य विशेषता सरल लेकिन महत्वपूर्ण है क्योंकि दुरुपयोग किए गए इंडेंटेशन के परिणामस्वरूप गलत स्थिति के तहत कोड निष्पादन हो सकता है या [[ दुभाषिया (कंप्यूटिंग) |दुभाषिया (कंप्यूटिंग)]] से समग्र त्रुटि हो सकती है।<ref name=":0" />


एक कोलन (:) एक महत्वपूर्ण प्रतीक है जो एक शर्त कथन के अंत को इंगित करने के लिए उपयोग किया जाता है और दुभाषिया को संकेत देता है कि कथन का मूल्यांकन किया जाना चाहिए और इंडेंटेड बॉडी जो निष्पादित की जानी चाहिए।<ref name=":0" />इंडेंट आकार एक टैब या 4 रिक्त स्थान के बराबर है।
एक कोलन (:) महत्वपूर्ण प्रतीक है जो शर्त कथन के अंत को इंगित करने के लिए उपयोग किया जाता है और दुभाषिया को संकेत देता है कि कथन का मूल्यांकन किया जाना चाहिए और इंडेंटेड बॉडी जो निष्पादित की जानी चाहिए।<ref name=":0" /> इंडेंट आकार टैब या 4 रिक्त स्थान के बराबर है।


=== संचालन ===
=== संचालन ===
Line 121: Line 113:
| || or || logical or || variable1 or variable2
| || or || logical or || variable1 or variable2
|}
|}


=== पुस्तकालय ===
=== पुस्तकालय ===


MicroPython Python के समान पुस्तकालयों के साथ Python का एक दुबला और कुशल कार्यान्वयन है।<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> कुछ मानक पायथन पुस्तकालयों में दोनों के बीच अंतर करने के लिए नाम बदलकर माइक्रोपायथन में एक समान पुस्तकालय है। MicroPython लाइब्रेरी छोटी हैं और मेमोरी प्रबंधन को बचाने के लिए कम लोकप्रिय सुविधाओं को हटा दिया गया है या संशोधित कर दिया गया है।<ref name=":2" />
MicroPython Python के समान पुस्तकालयों के साथ Python का दुबला और कुशल कार्यान्वयन है।<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> कुछ मानक पायथन पुस्तकालयों में दोनों के बीच अंतर करने के लिए नाम बदलकर माइक्रोपायथन में समान पुस्तकालय है। MicroPython लाइब्रेरी छोटी हैं और मेमोरी प्रबंधन को बचाने के लिए कम लोकप्रिय सुविधाओं को हटा दिया गया है या संशोधित कर दिया गया है।<ref name=":2" />


MicroPython में तीन प्रकार के पुस्तकालय:<ref name=":2" />* एक मानक पायथन पुस्तकालय (अंतर्निहित पुस्तकालयों) से प्राप्त
MicroPython में तीन प्रकार के पुस्तकालय:<ref name=":2" />* मानक पायथन पुस्तकालय (अंतर्निहित पुस्तकालयों) से प्राप्त
* विशिष्ट माइक्रोपायथन पुस्तकालय
* विशिष्ट माइक्रोपायथन पुस्तकालय
* विशिष्ट पुस्तकालय हार्डवेयर कार्यक्षमता के साथ सहायता करने के लिए
* विशिष्ट पुस्तकालय हार्डवेयर कार्यक्षमता के साथ सहायता करने के लिए


MicroPython अत्यधिक अनुकूलन योग्य और विन्यास योग्य है, जिसमें प्रत्येक बोर्ड (माइक्रोकंट्रोलर) के बीच भाषा भिन्न होती है और पुस्तकालयों की उपलब्धता भिन्न हो सकती है। एक मॉड्यूल या पूरे मॉड्यूल में कुछ कार्य और कक्षाएं अनुपलब्ध या परिवर्तित हो सकती हैं।<ref name=":2" />
MicroPython अत्यधिक अनुकूलन योग्य और विन्यास योग्य है, जिसमें प्रत्येक बोर्ड (माइक्रोकंट्रोलर) के बीच भाषा भिन्न होती है और पुस्तकालयों की उपलब्धता भिन्न हो सकती है। मॉड्यूल या पूरे मॉड्यूल में कुछ कार्य और कक्षाएं अनुपलब्ध या परिवर्तित हो सकती हैं।<ref name=":2" />


{| class="wikitable"
{| class="wikitable"
Line 192: Line 183:
| uctypes || access binary data structures
| uctypes || access binary data structures
|}
|}


=== कस्टम माइक्रोपायथन पुस्तकालय ===
=== कस्टम माइक्रोपायथन पुस्तकालय ===


जब डेवलपर्स एक नया एप्लिकेशन बनाना शुरू करते हैं, तो मानक माइक्रोपायथन लाइब्रेरी और ड्राइवर अपर्याप्त संचालन या गणना के साथ आवश्यकताओं को पूरा नहीं कर सकते हैं। पायथन के समान, कस्टम पुस्तकालयों के साथ माइक्रोपायथन की कार्यक्षमता को विस्तारित करने की संभावना है जो मौजूदा पुस्तकालयों और फ़र्मवेयर की क्षमता का विस्तार करती है।<ref name=":3" />
जब डेवलपर्स नया एप्लिकेशन बनाना शुरू करते हैं, तो मानक माइक्रोपायथन लाइब्रेरी और ड्राइवर अपर्याप्त संचालन या गणना के साथ आवश्यकताओं को पूरा नहीं कर सकते हैं। पायथन के समान, कस्टम पुस्तकालयों के साथ माइक्रोपायथन की कार्यक्षमता को विस्तारित करने की संभावना है जो मौजूदा पुस्तकालयों और फ़र्मवेयर की क्षमता का विस्तार करती है।<ref name=":3" />


MicroPython में, .py के साथ समाप्त होने वाली फ़ाइलें अन्य लाइब्रेरी उपनामों पर वरीयता लेती हैं जो उपयोगकर्ताओं को मौजूदा पुस्तकालयों के उपयोग और कार्यान्वयन को बढ़ाने की अनुमति देती हैं।<ref name=":2" />
MicroPython में, .py के साथ समाप्त होने वाली फ़ाइलें अन्य लाइब्रेरी उपनामों पर वरीयता लेती हैं जो उपयोगकर्ताओं को मौजूदा पुस्तकालयों के उपयोग और कार्यान्वयन को बढ़ाने की अनुमति देती हैं।<ref name=":2" />
== सहायक हार्डवेयर ==
== सहायक हार्डवेयर ==


जैसे-जैसे माइक्रोपायथन का कार्यान्वयन और लोकप्रियता बढ़ती जा रही है, अधिक बोर्डों में माइक्रोपायथन को चलाने की क्षमता है। कई डेवलपर प्रोसेसर विशिष्ट संस्करण बना रहे हैं जिन्हें विभिन्न माइक्रोकंट्रोलर्स पर डाउनलोड किया जा सकता है।<ref name=":2" />माइक्रोकंट्रोलर्स पर माइक्रोपायथन स्थापित करना अच्छी तरह से प्रलेखित और उपयोगकर्ता के अनुकूल है।<ref name=":3" />MicroPython माइक्रोकंट्रोलर हार्डवेयर और एप्लिकेशन के बीच बातचीत को सरल बनाने की अनुमति देता है, एक मजबूत स्तर की जवाबदेही के साथ संसाधन विवश वातावरण में काम करते हुए कार्यक्षमता की एक सीमा तक पहुंच की अनुमति देता है।<ref name=":0" />
जैसे-जैसे माइक्रोपायथन का कार्यान्वयन और लोकप्रियता बढ़ती जा रही है, अधिक बोर्डों में माइक्रोपायथन को चलाने की क्षमता है। कई डेवलपर प्रोसेसर विशिष्ट संस्करण बना रहे हैं जिन्हें विभिन्न माइक्रोकंट्रोलर्स पर डाउनलोड किया जा सकता है।<ref name=":2" />माइक्रोकंट्रोलर्स पर माइक्रोपायथन स्थापित करना अच्छी तरह से प्रलेखित और उपयोगकर्ता के अनुकूल है।<ref name=":3" /> MicroPython माइक्रोकंट्रोलर हार्डवेयर और एप्लिकेशन के बीच बातचीत को सरल बनाने की अनुमति देता है, मजबूत स्तर की जवाबदेही के साथ संसाधन विवश वातावरण में काम करते हुए कार्यक्षमता की सीमा तक पहुंच की अनुमति देता है।<ref name=":0" />


MicroPython को चलाने के लिए दो प्रकार के बोर्ड का उपयोग किया जाता है:<ref name=":2" />* MicroPython निर्मित होने पर लोड होता है, जिसका अर्थ है कि केवल MicroPython चलाया जा सकता है।
MicroPython को चलाने के लिए दो प्रकार के बोर्ड का उपयोग किया जाता है:<ref name=":2" />* MicroPython निर्मित होने पर लोड होता है, जिसका अर्थ है कि केवल MicroPython चलाया जा सकता है।
Line 210: Line 198:
=== निष्पादन कोड ===
=== निष्पादन कोड ===


किसी प्रोग्राम को माइक्रोपायथन बोर्ड पर ले जाने के लिए, एक फ़ाइल बनाएं और इसे निष्पादित करने के लिए माइक्रोकंट्रोलर पर कॉपी करें। डिवाइस से जुड़े हार्डवेयर के साथ, जैसे कि [[कंप्यूटर]], बोर्ड का फ्लैशड्राइव डिवाइस पर दिखाई देगा, जिससे फाइलों को [[फ्लैश ड्राइव]] में ले जाया जा सकेगा। दो मौजूदा पायथन फाइलें होंगी, boot.py और main.py जो आमतौर पर संशोधित नहीं होती हैं, main.py को संशोधित किया जा सकता है यदि आप प्रोग्राम को हर बार माइक्रोकंट्रोलर बूट करना चाहते हैं, अन्यथा, REPL का उपयोग करके प्रोग्राम चलाए जाएंगे सांत्वना देना।<ref name=":2" />
किसी प्रोग्राम को माइक्रोपायथन बोर्ड पर ले जाने के लिए, फ़ाइल बनाएं और इसे निष्पादित करने के लिए माइक्रोकंट्रोलर पर कॉपी करें। डिवाइस से जुड़े हार्डवेयर के साथ, जैसे कि [[कंप्यूटर]], बोर्ड का फ्लैशड्राइव डिवाइस पर दिखाई देगा, जिससे फाइलों को [[फ्लैश ड्राइव]] में ले जाया जा सकेगा। दो मौजूदा पायथन फाइलें होंगी, boot.py और main.py जो आमतौर पर संशोधित नहीं होती हैं, main.py को संशोधित किया जा सकता है यदि आप प्रोग्राम को हर बार माइक्रोकंट्रोलर बूट करना चाहते हैं, अन्यथा, REPL का उपयोग करके प्रोग्राम चलाए जाएंगे सांत्वना देना।<ref name=":2" />
 
 
=== पायबोर्ड ===
=== पायबोर्ड ===


पाइबोर्ड आधिकारिक MicroPython माइक्रोकंट्रोलर बोर्ड है जो MicroPython के सॉफ़्टवेयर सुविधाओं का पूर्ण समर्थन करता है। पाइबोर्ड की हार्डवेयर सुविधाओं में शामिल हैं:<ref name="MP-Website" />
पाइबोर्ड आधिकारिक MicroPython माइक्रोकंट्रोलर बोर्ड है जो MicroPython के सॉफ़्टवेयर सुविधाओं का पूर्ण समर्थन करता है। पाइबोर्ड की हार्डवेयर सुविधाओं में शामिल हैं:<ref name="MP-Website" />


* माइक्रोकंट्रोलर (MCU, [[सेंट्रल प्रोसेसिंग यूनिट]], फ्लैश [[ केवल पढ़ने के लिये मेमोरी ]] और [[ रैंडम एक्सेस मेमोरी ]])
* माइक्रोकंट्रोलर (MCU, [[सेंट्रल प्रोसेसिंग यूनिट]], फ्लैश [[ केवल पढ़ने के लिये मेमोरी |केवल पढ़ने के लिये मेमोरी]] और [[ रैंडम एक्सेस मेमोरी |रैंडम एक्सेस मेमोरी]] )
* माइक्रोयूएसबी कनेक्टर
* माइक्रोयूएसबी कनेक्टर
* [[ माइक्रो एसडी ]] कार्ड स्लॉट
* [[ माइक्रो एसडी | माइक्रो एसडी]] कार्ड स्लॉट
* आईओ पिन
* आईओ पिन
* [[ बदलना ]], एलईडी, सर्वो पोर्ट, रियल टाइम क्लॉक, [[ accelerometer ]]
* [[ बदलना ]], एलईडी, सर्वो पोर्ट, रियल टाइम क्लॉक, [[ accelerometer |accelerometer]]


==== बूटिंग प्रक्रिया ====
==== बूटिंग प्रक्रिया ====


पाइबोर्ड में /फ्लैश नामक एक आंतरिक ड्राइव (फाइल सिस्टम) होता है जो बोर्ड की फ्लैश मेमोरी में संग्रहीत होता है, इसके अतिरिक्त, एक [[MicroSD]] कार्ड स्लॉट में डाला जा सकता है और /एसडी के माध्यम से पहुंचा जा सकता है। जब बूट किया जाता है, तो एक पाइबोर्ड को या तो / फ्लैश या / sd से बूट करने के लिए फाइल सिस्टम का चयन करना चाहिए, वर्तमान निर्देशिका को या तो / फ्लैश या / एसडी पर सेट किया जा रहा है। डिफ़ॉल्ट रूप से, यदि कोई एसडी कार्ड डाला जाता है, तो/एसडी का उपयोग किया जाएगा, यदि नहीं,/फ्लैश का उपयोग किया जाता है। यदि आवश्यक हो, तो बूटिंग प्रक्रिया के लिए एसडी कार्ड के उपयोग को /flash/SKIPSD नामक एक खाली फ़ाइल बनाकर टाला जा सकता है, जो बोर्ड पर रहेगा और पाइबोर्ड के बूट होने पर मौजूद रहेगा और बूटिंग प्रक्रिया के लिए एसडी कार्ड को छोड़ देगा। .<ref name="MP-Website" />
पाइबोर्ड में /फ्लैश नामक आंतरिक ड्राइव (फाइल सिस्टम) होता है जो बोर्ड की फ्लैश मेमोरी में संग्रहीत होता है, इसके अतिरिक्त, [[MicroSD]] कार्ड स्लॉट में डाला जा सकता है और /एसडी के माध्यम से पहुंचा जा सकता है। जब बूट किया जाता है, तो पाइबोर्ड को या तो / फ्लैश या / sd से बूट करने के लिए फाइल सिस्टम का चयन करना चाहिए, वर्तमान निर्देशिका को या तो / फ्लैश या / एसडी पर सेट किया जा रहा है। डिफ़ॉल्ट रूप से, यदि कोई एसडी कार्ड डाला जाता है, तो/एसडी का उपयोग किया जाएगा, यदि नहीं,/फ्लैश का उपयोग किया जाता है। यदि आवश्यक हो, तो बूटिंग प्रक्रिया के लिए एसडी कार्ड के उपयोग को /flash/SKIPSD नामक खाली फ़ाइल बनाकर टाला जा सकता है, जो बोर्ड पर रहेगा और पाइबोर्ड के बूट होने पर मौजूद रहेगा और बूटिंग प्रक्रिया के लिए एसडी कार्ड को छोड़ देगा। .<ref name="MP-Website" />
 
 
==== बूट मोड ====
==== बूट मोड ====


जब पाइबोर्ड सामान्य रूप से संचालित होता है या रीसेट बटन दबाया जाता है तो पाइबोर्ड को मानक मोड में बूट किया जाता है, जिसका अर्थ है कि boot.py फ़ाइल निष्पादित की जाती है, फिर यूएसबी कॉन्फ़िगर किया गया है और अंत में पायथन प्रोग्राम चलाया जाएगा।<ref name="MP-Website" />
जब पाइबोर्ड सामान्य रूप से संचालित होता है या रीसेट बटन दबाया जाता है तो पाइबोर्ड को मानक मोड में बूट किया जाता है, जिसका अर्थ है कि boot.py फ़ाइल निष्पादित की जाती है, फिर यूएसबी कॉन्फ़िगर किया गया है और अंत में पायथन प्रोग्राम चलाया जाएगा।<ref name="MP-Website" />


जब बोर्ड बूटिंग प्रक्रिया में होता है तब उपयोगकर्ता स्विच को दबाकर मानक बूट क्रम को ओवरराइड करने की क्षमता होती है और जब आप उपयोगकर्ता स्विच को होल्ड करना जारी रखते हैं तो रीसेट दबाते हैं। पाइबोर्ड के एलईडी मोड के बीच फ़्लिक करेंगे और एक बार जब एलईडी उपयोगकर्ता द्वारा वांछित मोड में पहुंच जाएंगे, तो वे उपयोगकर्ता स्विच को जाने दे सकते हैं और बोर्ड विशिष्ट मोड में बूट हो जाएगा।<ref name="MP-Website" />
जब बोर्ड बूटिंग प्रक्रिया में होता है तब उपयोगकर्ता स्विच को दबाकर मानक बूट क्रम को ओवरराइड करने की क्षमता होती है और जब आप उपयोगकर्ता स्विच को होल्ड करना जारी रखते हैं तो रीसेट दबाते हैं। पाइबोर्ड के एलईडी मोड के बीच फ़्लिक करेंगे और बार जब एलईडी उपयोगकर्ता द्वारा वांछित मोड में पहुंच जाएंगे, तो वे उपयोगकर्ता स्विच को जाने दे सकते हैं और बोर्ड विशिष्ट मोड में बूट हो जाएगा।<ref name="MP-Website" />


बूट मोड हैं:<ref name="MP-Website" />* मानक बूट: हरी एलईडी केवल (boot.py फिर अजगर कार्यक्रम चलाता है)
बूट मोड हैं:<ref name="MP-Website" />* मानक बूट: हरी एलईडी केवल (boot.py फिर अजगर कार्यक्रम चलाता है)
* सुरक्षित बूट: केवल नारंगी एलईडी (बूट-अप के दौरान कोई स्क्रिप्ट नहीं चलती)
* सुरक्षित बूट: केवल नारंगी एलईडी (बूट-अप के दौरान कोई स्क्रिप्ट नहीं चलती)
* फाइलसिस्टम रीसेट: हरे और नारंगी एलईडी एक साथ (फैक्ट्री स्थिति में फ्लैश ड्राइव को रीसेट करता है और सुरक्षित मोड में बूट करता है)
* फाइलसिस्टम रीसेट: हरे और नारंगी एलईडी साथ (फैक्ट्री स्थिति में फ्लैश ड्राइव को रीसेट करता है और सुरक्षित मोड में बूट करता है)
* फाइलसिस्टम के दूषित होने पर फिक्स के रूप में उपयोग किया जाता है
* फाइलसिस्टम के दूषित होने पर फिक्स के रूप में उपयोग किया जाता है


==== त्रुटियां ====
==== त्रुटियां ====


* यदि लाल और हरे रंग की एलईडी वैकल्पिक रूप से चमकती हैं, तो पायथन स्क्रिप्ट में एक त्रुटि है, और आपको [[डिबगिंग]] के लिए आरईपीएल का उपयोग करना चाहिए।
* यदि लाल और हरे रंग की एलईडी वैकल्पिक रूप से चमकती हैं, तो पायथन स्क्रिप्ट में त्रुटि है, और आपको [[डिबगिंग]] के लिए आरईपीएल का उपयोग करना चाहिए।
* यदि सभी 4 एलईडी चालू और बंद हो जाते हैं तो एक कठिन दोष है जिसे ठीक नहीं किया जा सकता है और इसके लिए हार्ड रीसेट की आवश्यकता होती है।<ref name="MP-Website" />
* यदि सभी 4 एलईडी चालू और बंद हो जाते हैं तो कठिन दोष है जिसे ठीक नहीं किया जा सकता है और इसके लिए हार्ड रीसेट की आवश्यकता होती है।<ref name="MP-Website" />
 
 
== प्रोग्रामिंग उदाहरण<ref name=":2" />==
== प्रोग्रामिंग उदाहरण<ref name=":2" />==


Line 253: Line 235:
print('Hello, World!')
print('Hello, World!')
</syntaxhighlight>
</syntaxhighlight>
आयात करना + एक एलईडी चालू करना:
आयात करना + एलईडी चालू करना:
<वाक्यविन्यास लैंग = पायथन लाइन = 1>
<वाक्यविन्यास लैंग = पायथन लाइन = 1>
पीआईबी आयात करें
पीआईबी आयात करें
Line 260: Line 242:


पीआईबी.एलईडी (1) .ऑन ()
पीआईबी.एलईडी (1) .ऑन ()
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>


फ़ाइल + लूप पढ़ना:
फ़ाइल + लूप पढ़ना:
<वाक्यविन्यास लैंग = पायथन लाइन = 1 प्रारंभ = 1>
<वाक्यविन्यास लैंग = पायथन लाइन = 1 प्रारंभ = 1>
आयात ओएस
आयात ओएस


Line 269: Line 254:


f के रूप में खुले ('/ readme.txt') के साथ:
f के रूप में खुले ('/ readme.txt') के साथ:
प्रिंट (f.read ())
प्रिंट (f.read ())
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>


== [[ बाईटकोड ]] ==
== [[ बाईटकोड ]] ==
MicroPython में एक [[क्रॉस कंपाइलर]] शामिल है जो MicroPython bytecode (फ़ाइल एक्सटेंशन .mpy) उत्पन्न करता है। पायथन कोड को या तो सीधे माइक्रोकंट्रोलर पर बायटेकोड में संकलित किया जा सकता है या इसे कहीं और प्रीकंपाइल किया जा सकता है।
MicroPython में [[क्रॉस कंपाइलर]] शामिल है जो MicroPython bytecode (फ़ाइल एक्सटेंशन .mpy) उत्पन्न करता है। पायथन कोड को या तो सीधे माइक्रोकंट्रोलर पर बायटेकोड में संकलित किया जा सकता है या इसे कहीं और प्रीकंपाइल किया जा सकता है।


MicroPython फर्मवेयर को कंपाइलर के बिना बनाया जा सकता है, केवल [[ आभासी मशीन ]] को छोड़कर जो प्री-कम्पाइल्ड mpy प्रोग्राम चला सकता है।
MicroPython फर्मवेयर को कंपाइलर के बिना बनाया जा सकता है, केवल [[ आभासी मशीन |आभासी मशीन]] को छोड़कर जो प्री-कम्पाइल्ड mpy प्रोग्राम चला सकता है।


== कार्यान्वयन और उपयोग ==
== कार्यान्वयन और उपयोग ==


MicroPython का उपयोग मानक सॉफ़्टवेयर द्वारा फ्लैश मेमोरी में एक विशेष माइक्रोकंट्रोलर पर लोड किए जा रहे फ़र्मवेयर के माध्यम से किया जाता है, जो एक सीरियल इंटरफ़ेस का अनुकरण करने वाले कंप्यूटर पर लोड किए गए टर्मिनल एप्लिकेशन का उपयोग करके संचार करता है।<ref name=":3" />
MicroPython का उपयोग मानक सॉफ़्टवेयर द्वारा फ्लैश मेमोरी में विशेष माइक्रोकंट्रोलर पर लोड किए जा रहे फ़र्मवेयर के माध्यम से किया जाता है, जो सीरियल इंटरफ़ेस का अनुकरण करने वाले कंप्यूटर पर लोड किए गए टर्मिनल एप्लिकेशन का उपयोग करके संचार करता है।<ref name=":3" />


MicroPython के मुख्य उपयोगों को 3 श्रेणियों में सामान्यीकृत किया जा सकता है:<ref name=":3" />* शैक्षिक उद्देश्य: एक माइक्रोकंट्रोलर के साथ बातचीत करने के लिए माइक्रोपायथन के रीड-इवल-प्रिंट लूप (आरईपीएल) का उपयोग करके, अधिक जटिल प्रोग्रामिंग भाषाओं की तुलना में डेटा प्रोसेसिंग की अवधारणाओं और बोर्डों के साथ संचार को सरल तरीके से समझाना संभव है।
MicroPython के मुख्य उपयोगों को 3 श्रेणियों में सामान्यीकृत किया जा सकता है:<ref name=":3" />* शैक्षिक उद्देश्य: माइक्रोकंट्रोलर के साथ बातचीत करने के लिए माइक्रोपायथन के रीड-इवल-प्रिंट लूप (आरईपीएल) का उपयोग करके, अधिक जटिल प्रोग्रामिंग भाषाओं की तुलना में डेटा प्रोसेसिंग की अवधारणाओं और बोर्डों के साथ संचार को सरल तरीके से समझाना संभव है।
* डिवाइस और सेंसर डिज़ाइन का विकास और परीक्षण: MicroPython परिधीय संचार सेटअप और नियंत्रण को लागू करने के एक सामान्य डेवलपर के कार्य को हल करने वाले माइक्रोकंट्रोलर्स में उपयोग किए जाने वाले इंटरफेस के सत्यापित, बग-मुक्त और पूरी तरह से परीक्षण किए गए संदर्भ कार्यान्वयन की पेशकश करता है। MicroPython डिवाइस रजिस्टरों के लिए प्रत्यक्ष और इंटरैक्टिव पहुंच प्रदान करता है जो डिवाइस से डेटा को नियंत्रित करने और प्राप्त करने के लिए कार्यक्षमता को सत्यापित करना और हार्डवेयर भागों और उपकरणों और एल्गोरिदम को विकसित करना और परीक्षण करना आसान बनाता है।
* डिवाइस और सेंसर डिज़ाइन का विकास और परीक्षण: MicroPython परिधीय संचार सेटअप और नियंत्रण को लागू करने के सामान्य डेवलपर के कार्य को हल करने वाले माइक्रोकंट्रोलर्स में उपयोग किए जाने वाले इंटरफेस के सत्यापित, बग-मुक्त और पूरी तरह से परीक्षण किए गए संदर्भ कार्यान्वयन की पेशकश करता है। MicroPython डिवाइस रजिस्टरों के लिए प्रत्यक्ष और इंटरैक्टिव पहुंच प्रदान करता है जो डिवाइस से डेटा को नियंत्रित करने और प्राप्त करने के लिए कार्यक्षमता को सत्यापित करना और हार्डवेयर भागों और उपकरणों और एल्गोरिदम को विकसित करना और परीक्षण करना आसान बनाता है।
* जटिल अनुप्रयोगों के डिजाइन के लिए निगरानी और विन्यास उपकरण: कुछ अनुप्रयोगों के लिए उच्च प्रदर्शन वाले माइक्रोकंट्रोलर्स पर विशिष्ट अनुप्रयोगों की आवश्यकता होती है। MicroPython राज्य की निगरानी और सिस्टम मापदंडों के सेट-अप में सहायता करने में सक्षम है।
* जटिल अनुप्रयोगों के डिजाइन के लिए निगरानी और विन्यास उपकरण: कुछ अनुप्रयोगों के लिए उच्च प्रदर्शन वाले माइक्रोकंट्रोलर्स पर विशिष्ट अनुप्रयोगों की आवश्यकता होती है। MicroPython राज्य की निगरानी और सिस्टम मापदंडों के सेट-अप में सहायता करने में सक्षम है।


MicroPython का कार्यान्वयन मानक और सहायक पुस्तकालयों की उपलब्धता और माइक्रोकंट्रोलर की फ्लैश मेमोरी और RAM आकार के आधार पर भिन्न हो सकता है।<ref name=":3" />
MicroPython का कार्यान्वयन मानक और सहायक पुस्तकालयों की उपलब्धता और माइक्रोकंट्रोलर की फ्लैश मेमोरी और RAM आकार के आधार पर भिन्न हो सकता है।<ref name=":3" />
== संदर्भ ==
== संदर्भ ==
{{reflist}}
{{reflist}}

Revision as of 13:43, 1 July 2023

MicroPython
Developer(s)Damien P. George
Initial release3 May 2014; 10 years ago (2014-05-03)
Stable release
Script error: The module returned a nil value. It is supposed to return an export table. / Script error: The module returned a nil value. It is supposed to return an export table.; Error: first parameter cannot be parsed as a date or time. (Script error: The module returned a nil value. It is supposed to return an export table.)
Written inC
PlatformARM Cortex-M, STM32, ESP8266, ESP32, 16-bit PIC, Unix, Microsoft Windows, Zephyr, JavaScript, RP2040
LicenseMIT license[1]
Websitemicropython.org

MicroPython [[सी (प्रोग्रामिंग भाषा)]] में लिखी गई पायथन (प्रोग्रामिंग भाषा) 3 के साथ काफी हद तक संगत प्रोग्रामिंग भाषा का सॉफ़्टवेयर कार्यान्वयन है, जिसे microcontroller पर चलने के लिए अनुकूलित किया गया है।[2][3]

MicroPython में बायटेकोड के लिए पायथन कंपाइलर और उस बायटेकोड का रनटाइम दुभाषिया होता है। समर्थित आदेशों को तुरंत निष्पादित करने के लिए उपयोगकर्ता को इंटरैक्टिव प्रॉम्प्ट (रीड-इवल-प्रिंट लूप) के साथ प्रस्तुत किया जाता है। कोर पायथन पुस्तकालयों का चयन शामिल है; MicroPython में ऐसे मॉड्यूल शामिल हैं जो प्रोग्रामर को निम्न-स्तरीय हार्डवेयर तक पहुँच प्रदान करते हैं।[4]

MicroPython में इनलाइन असेंबलर है, और वह कोड पूरी गति से चलेगा, लेकिन यह विभिन्न माइक्रोकंट्रोलर्स (जैसा कि कोई असेंबली है) में गैर-पोर्टेबल है।

प्रोजेक्ट का सोर्स कोड MIT लाइसेंस के तहत GitHub पर उपलब्ध है।[5]

इतिहास

MicroPython मूल रूप से ऑस्ट्रेलियाई प्रोग्रामर और सैद्धांतिक भौतिक विज्ञानी डेमियन जॉर्ज द्वारा 2013 में सफल किकस्टार्टर समर्थित अभियान के बाद बनाया गया था।[6] जबकि मूल किकस्टार्टर अभियान ने STM32#STM32 F4-संचालित विकास बोर्ड पाइबोर्ड के साथ MicroPython जारी किया, MicroPython कई ARM आर्किटेक्चर एआरएम वास्तुकला का समर्थन करता है।[7] मेनलाइन में समर्थित बंदरगाह हैं ARM Cortex-M (कई STM32 बोर्ड, TI CC3200/WiPy, टीनी बोर्ड, नॉर्डिक nRF सीरीज़, SAMD21 और SAMD51), ESP8266, ESP32, 16-बिट PIC, Unix, Windows, Zephyr, और JavaScript .[8] इसके अलावा, मेनलाइन में समर्थित नहीं विभिन्न प्रकार के सिस्टम और हार्डवेयर प्लेटफॉर्म के लिए कई कांटे हैं।[9]

2016 में, बीबीसी के साथ माइक्रो बिट साझेदारी में पायथन सॉफ्टवेयर फाउंडेशन के योगदान के हिस्से के रूप में बीबीसी माइक्रो बिट के लिए माइक्रोपायथन का संस्करण बनाया गया था।[10]

जुलाई 2017 में, MicroPython को शिक्षा और उपयोग में आसानी पर जोर देने के साथ MicroPython का संस्करण, सर्किटपायथन बनाने के लिए फोर्क किया गया था। MicroPython और सर्किटपाइथन हार्डवेयर के कुछ अलग सेटों का समर्थन करते हैं (जैसे सर्किटपाइथन Atmel SAM D21 और D51 बोर्डों का समर्थन करता है, लेकिन ESP8266 के लिए समर्थन छोड़ देता है)। संस्करण 4.0 के अनुसार, सर्किटपाइथन माइक्रोपायथन संस्करण 1.9.4 पर आधारित है।[11]

2017 में, माइक्रोसेमी ने RISC-V (RV32 और RV64) आर्किटेक्चर के लिए माइक्रोपायथन पोर्ट बनाया।[12]

अप्रैल 2019 में, लेगो माइंडस्टॉर्म EV3 के लिए माइक्रोपायथन का संस्करण बनाया गया था।[13] जनवरी 2021 में, RP2040 (ARM Cortex-M0+, Raspberry Pi Pico और अन्य पर) के लिए MicroPython पोर्ट बनाया गया था।[14]

सुविधाएँ

पायथन चलाने की क्षमता

MicroPython में Python चलाने की क्षमता है, जिससे उपयोगकर्ता सरल और आसानी से समझने वाले प्रोग्राम बना सकते हैं।[15] MicroPython कई मानक Python पुस्तकालयों का समर्थन करता है, जो Python के सबसे अधिक उपयोग किए जाने वाले पुस्तकालयों की 80% से अधिक सुविधाओं का समर्थन करता है।[15] MicroPython को विशेष रूप से माइक्रोकंट्रोलर्स और पायथन के बीच विशिष्ट प्रदर्शन अंतर का समर्थन करने के लिए डिज़ाइन किया गया था।[16] पायथन कोड सीधे हार्डवेयर तक पहुंच और बातचीत करने में सक्षम है, बढ़ी हुई हार्डवेयर संभावनाओं के साथ जो ऑपरेटिंग सिस्टम पर चलने वाले सामान्य पायथन एप्लिकेशन का उपयोग करके उपलब्ध नहीं हैं।[17]

कोड पोर्टेबिलिटी

MicroPython का हार्डवेयर अमूर्त परत (HAL) तकनीक का उपयोग विकसित कोड को ही परिवार या प्लेटफ़ॉर्म के भीतर विभिन्न माइक्रोकंट्रोलर्स के बीच पोर्टेबल होने की अनुमति देता है और उन डिवाइसों पर जो MicroPython को सपोर्ट और डाउनलोड कर सकते हैं। प्रोग्राम अक्सर उच्च-प्रदर्शन वाले माइक्रोकंट्रोलर्स पर विकसित और परीक्षण किए जाते हैं और कम-प्रदर्शन वाले माइक्रोकंट्रोलर्स पर उपयोग किए जाने वाले अंतिम एप्लिकेशन के साथ वितरित किए जाते हैं।[18]

मॉड्यूल

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

रीड-इवल-प्रिंट लूप

रीड-इवल-प्रिंट लूप (आरईपीएल) डेवलपर को कोड की अलग-अलग पंक्तियों में प्रवेश करने की अनुमति देता है और उन्हें तुरंत टर्मिनल एमुलेटर पर चलाता है।[19] Linux-आधारित और macOS सिस्टम में टर्मिनल एम्यूलेटर होते हैं जिनका उपयोग सीरियल USB कनेक्शन का उपयोग करके MicroPython डिवाइस के REPL से सीधा कनेक्शन बनाने के लिए किया जा सकता है। आरईपीएल अनुप्रयोग प्रक्रिया सामग्री के कुछ हिस्सों के तत्काल परीक्षण में सहायता करता है क्योंकि आप कोड के प्रत्येक भाग को चला सकते हैं और परिणाम देख सकते हैं। बार जब आपके कोड के विभिन्न भाग आरईपीएल में लोड हो जाते हैं तो आप अपने कोड की कार्यक्षमता के साथ प्रयोग करने के लिए अतिरिक्त आरईपीएल सुविधाओं का उपयोग कर सकते हैं।[15]

सहायक आरईपीएल आदेश (एक बार सीरियल कंसोल से जुड़े):[19]* CTRL + C: कीबोर्ड इंटरप्ट

  • CTRL + D: पुनः लोड करें
  • मदद (): सहायता संदेश
  • मदद (मॉड्यूल): अंतर्निहित मॉड्यूल पर्यावरण को सूचीबद्ध करता है
  • आयात बोर्ड [एन्टर] डीआईआर (बोर्ड): आपके माइक्रोकंट्रोलर बोर्ड पर उन सभी पिनों को सूचीबद्ध करता है जो प्रोग्राम के कोड में उपयोग करने के लिए उपलब्ध हैं

सीमाएं

हालाँकि MicroPython पूरी तरह से पायथन भाषा संस्करण 3.4 और 3.5 के अधिकांश को लागू करता है, यह 3.5 से शुरू की गई सभी भाषा सुविधाओं को लागू नहीं करता है,[20] हालांकि 3.6 से कुछ नए सिंटैक्स और बाद के संस्करणों से अधिक हाल की विशेषताएं, उदा। 3.8 (असाइनमेंट एक्सप्रेशंस) और 3.9 से। इसमें मानक पुस्तकालय का सबसेट शामिल है।[21]

MicroPython के पास अन्य लोकप्रिय प्लेटफार्मों की तुलना में माइक्रोकंट्रोलर बाजार में अधिक सीमित हार्डवेयर समर्थन है, जैसे Arduino जैसे कि कम संख्या में माइक्रोकंट्रोलर विकल्प जो भाषा का समर्थन करते हैं।[16] MicroPython में अन्य प्लेटफार्मों के विपरीत एकीकृत विकास वातावरण (IDE) या विशिष्ट संपादक शामिल नहीं है।[16]

सिंटेक्स और सिमेंटिक्स

MicroPython's Syntax (प्रोग्रामिंग लैंग्वेज) को इसकी स्पष्ट और आसानी से समझ में आने वाली शैली और शक्ति के कारण Python से अपनाया गया है।[22] अधिकांश अन्य प्रोग्रामिंग भाषाओं के विपरीत पठनीयता को प्राथमिकता देने के लिए कम वाक्य-विन्यास के साथ कम विराम चिह्न का उपयोग किया जाता है।[15]

कोड ब्लॉक

MicroPython पायथन की कोड ब्लॉक शैली को अपनाता है, विशेष कार्यात्मक प्रोग्रामिंग, स्थिति या लूप के लिए विशिष्ट कोड के साथ इंडेंट किया जाता है, जिसका अर्थ है कि कुछ अभिव्यक्तियों का मूल्यांकन केवल तभी किया जाएगा जब स्थिति अभिव्यक्ति का सही मूल्यांकन किया जाएगा।[15] यह अधिकांश अन्य भाषाओं से भिन्न है जो आमतौर पर ब्लॉकों को परिसीमित करने के लिए प्रतीकों या कीवर्ड का उपयोग करती हैं।[15]

यह MicroPython कोड की पठनीयता में सहायता करता है क्योंकि दृश्य संरचना सिमेंटिक संरचना को प्रतिबिंबित करती है। यह मुख्य विशेषता सरल लेकिन महत्वपूर्ण है क्योंकि दुरुपयोग किए गए इंडेंटेशन के परिणामस्वरूप गलत स्थिति के तहत कोड निष्पादन हो सकता है या दुभाषिया (कंप्यूटिंग) से समग्र त्रुटि हो सकती है।[15]

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

संचालन

MicroPython में प्रिमिटिव और लॉजिकल ऑपरेशंस का उपयोग करके विभिन्न गणितीय ऑपरेशंस करने की क्षमता है।[17]

Supported operations[17]
Type Operator Name Example
Arithmetic + Addition variable + 1
- Subtraction variable - 1
* Multiplication variable * 4
/ Division variable / 4
% Modulo division variable % 4
Comparison == Equals expression1 == expression2
!= Not equal expression1 != expression2
< Less than expression1 < expression2
> Greater than expression1 > expression2
<= Less than or equals expression1 <= expression2
>= Greater than or equals expression1 >= expression2
Logical & bitwise and variable1 & variable2
| bitwise or variable1 | variable2
^ bitwise exclusive or variable1 ^ variable2
~ bitwise complement ~variable1
and logical and variable1 and variable2
or logical or variable1 or variable2

पुस्तकालय

MicroPython Python के समान पुस्तकालयों के साथ Python का दुबला और कुशल कार्यान्वयन है।[23] कुछ मानक पायथन पुस्तकालयों में दोनों के बीच अंतर करने के लिए नाम बदलकर माइक्रोपायथन में समान पुस्तकालय है। MicroPython लाइब्रेरी छोटी हैं और मेमोरी प्रबंधन को बचाने के लिए कम लोकप्रिय सुविधाओं को हटा दिया गया है या संशोधित कर दिया गया है।[17]

MicroPython में तीन प्रकार के पुस्तकालय:[17]* मानक पायथन पुस्तकालय (अंतर्निहित पुस्तकालयों) से प्राप्त

  • विशिष्ट माइक्रोपायथन पुस्तकालय
  • विशिष्ट पुस्तकालय हार्डवेयर कार्यक्षमता के साथ सहायता करने के लिए

MicroPython अत्यधिक अनुकूलन योग्य और विन्यास योग्य है, जिसमें प्रत्येक बोर्ड (माइक्रोकंट्रोलर) के बीच भाषा भिन्न होती है और पुस्तकालयों की उपलब्धता भिन्न हो सकती है। मॉड्यूल या पूरे मॉड्यूल में कुछ कार्य और कक्षाएं अनुपलब्ध या परिवर्तित हो सकती हैं।[17]

Standard Python libraries in MicroPython[4]
Library name Description
array operations on arrays
cmath provides math functions for complex numbers
gc garbage collector
math provides basic math operations for floating-point numbers
sys system-level functions; provides access to variables used by the interpreter
ubinascii functions for converting between binary and ASCII
ucollections operations for collections and container types that hold various objects
uerrno provides access to error codes
uhashlib operations for binary hash algorithms
uheapq operations to implement heap queue algorithm
uio operations for handling input/output streams
ujson handles conversion between JSON documents and Python objects
uos functions for filesystem access and basic operating system functions
ure implements regular expression matching operations
uselect functions for handling events on multiple streams
usocket connecting to sockets (networks), providing access to socket interface
ustruct performs conversions to Python objects by packing and unpacking primitive data types
utime provides time and date function, including measuring time intervals and implementing delays
uzlib operations to decompress binary data
MicroPython-specific libraries[4]
Library name Description
framebuf provides a frame buffer that can be used to create bitmap images to be sent to a display
machine functions assisting with accessing and interacting with hardware blocks
micropython access and control of MicroPython internals
network assists with installing network driver, allowing interactions through networks
uctypes access binary data structures

कस्टम माइक्रोपायथन पुस्तकालय

जब डेवलपर्स नया एप्लिकेशन बनाना शुरू करते हैं, तो मानक माइक्रोपायथन लाइब्रेरी और ड्राइवर अपर्याप्त संचालन या गणना के साथ आवश्यकताओं को पूरा नहीं कर सकते हैं। पायथन के समान, कस्टम पुस्तकालयों के साथ माइक्रोपायथन की कार्यक्षमता को विस्तारित करने की संभावना है जो मौजूदा पुस्तकालयों और फ़र्मवेयर की क्षमता का विस्तार करती है।[18]

MicroPython में, .py के साथ समाप्त होने वाली फ़ाइलें अन्य लाइब्रेरी उपनामों पर वरीयता लेती हैं जो उपयोगकर्ताओं को मौजूदा पुस्तकालयों के उपयोग और कार्यान्वयन को बढ़ाने की अनुमति देती हैं।[17]

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

जैसे-जैसे माइक्रोपायथन का कार्यान्वयन और लोकप्रियता बढ़ती जा रही है, अधिक बोर्डों में माइक्रोपायथन को चलाने की क्षमता है। कई डेवलपर प्रोसेसर विशिष्ट संस्करण बना रहे हैं जिन्हें विभिन्न माइक्रोकंट्रोलर्स पर डाउनलोड किया जा सकता है।[17]माइक्रोकंट्रोलर्स पर माइक्रोपायथन स्थापित करना अच्छी तरह से प्रलेखित और उपयोगकर्ता के अनुकूल है।[18] MicroPython माइक्रोकंट्रोलर हार्डवेयर और एप्लिकेशन के बीच बातचीत को सरल बनाने की अनुमति देता है, मजबूत स्तर की जवाबदेही के साथ संसाधन विवश वातावरण में काम करते हुए कार्यक्षमता की सीमा तक पहुंच की अनुमति देता है।[15]

MicroPython को चलाने के लिए दो प्रकार के बोर्ड का उपयोग किया जाता है:[17]* MicroPython निर्मित होने पर लोड होता है, जिसका अर्थ है कि केवल MicroPython चलाया जा सकता है।

  • ऐसे बोर्ड जिनमें फर्मवेयर होता है जो माइक्रोपायथन को बोर्ड में स्थापित करने की अनुमति देता है।

निष्पादन कोड

किसी प्रोग्राम को माइक्रोपायथन बोर्ड पर ले जाने के लिए, फ़ाइल बनाएं और इसे निष्पादित करने के लिए माइक्रोकंट्रोलर पर कॉपी करें। डिवाइस से जुड़े हार्डवेयर के साथ, जैसे कि कंप्यूटर, बोर्ड का फ्लैशड्राइव डिवाइस पर दिखाई देगा, जिससे फाइलों को फ्लैश ड्राइव में ले जाया जा सकेगा। दो मौजूदा पायथन फाइलें होंगी, boot.py और main.py जो आमतौर पर संशोधित नहीं होती हैं, main.py को संशोधित किया जा सकता है यदि आप प्रोग्राम को हर बार माइक्रोकंट्रोलर बूट करना चाहते हैं, अन्यथा, REPL का उपयोग करके प्रोग्राम चलाए जाएंगे सांत्वना देना।[17]

पायबोर्ड

पाइबोर्ड आधिकारिक MicroPython माइक्रोकंट्रोलर बोर्ड है जो MicroPython के सॉफ़्टवेयर सुविधाओं का पूर्ण समर्थन करता है। पाइबोर्ड की हार्डवेयर सुविधाओं में शामिल हैं:[4]

बूटिंग प्रक्रिया

पाइबोर्ड में /फ्लैश नामक आंतरिक ड्राइव (फाइल सिस्टम) होता है जो बोर्ड की फ्लैश मेमोरी में संग्रहीत होता है, इसके अतिरिक्त, MicroSD कार्ड स्लॉट में डाला जा सकता है और /एसडी के माध्यम से पहुंचा जा सकता है। जब बूट किया जाता है, तो पाइबोर्ड को या तो / फ्लैश या / sd से बूट करने के लिए फाइल सिस्टम का चयन करना चाहिए, वर्तमान निर्देशिका को या तो / फ्लैश या / एसडी पर सेट किया जा रहा है। डिफ़ॉल्ट रूप से, यदि कोई एसडी कार्ड डाला जाता है, तो/एसडी का उपयोग किया जाएगा, यदि नहीं,/फ्लैश का उपयोग किया जाता है। यदि आवश्यक हो, तो बूटिंग प्रक्रिया के लिए एसडी कार्ड के उपयोग को /flash/SKIPSD नामक खाली फ़ाइल बनाकर टाला जा सकता है, जो बोर्ड पर रहेगा और पाइबोर्ड के बूट होने पर मौजूद रहेगा और बूटिंग प्रक्रिया के लिए एसडी कार्ड को छोड़ देगा। .[4]

बूट मोड

जब पाइबोर्ड सामान्य रूप से संचालित होता है या रीसेट बटन दबाया जाता है तो पाइबोर्ड को मानक मोड में बूट किया जाता है, जिसका अर्थ है कि boot.py फ़ाइल निष्पादित की जाती है, फिर यूएसबी कॉन्फ़िगर किया गया है और अंत में पायथन प्रोग्राम चलाया जाएगा।[4]

जब बोर्ड बूटिंग प्रक्रिया में होता है तब उपयोगकर्ता स्विच को दबाकर मानक बूट क्रम को ओवरराइड करने की क्षमता होती है और जब आप उपयोगकर्ता स्विच को होल्ड करना जारी रखते हैं तो रीसेट दबाते हैं। पाइबोर्ड के एलईडी मोड के बीच फ़्लिक करेंगे और बार जब एलईडी उपयोगकर्ता द्वारा वांछित मोड में पहुंच जाएंगे, तो वे उपयोगकर्ता स्विच को जाने दे सकते हैं और बोर्ड विशिष्ट मोड में बूट हो जाएगा।[4]

बूट मोड हैं:[4]* मानक बूट: हरी एलईडी केवल (boot.py फिर अजगर कार्यक्रम चलाता है)

  • सुरक्षित बूट: केवल नारंगी एलईडी (बूट-अप के दौरान कोई स्क्रिप्ट नहीं चलती)
  • फाइलसिस्टम रीसेट: हरे और नारंगी एलईडी साथ (फैक्ट्री स्थिति में फ्लैश ड्राइव को रीसेट करता है और सुरक्षित मोड में बूट करता है)
  • फाइलसिस्टम के दूषित होने पर फिक्स के रूप में उपयोग किया जाता है

त्रुटियां

  • यदि लाल और हरे रंग की एलईडी वैकल्पिक रूप से चमकती हैं, तो पायथन स्क्रिप्ट में त्रुटि है, और आपको डिबगिंग के लिए आरईपीएल का उपयोग करना चाहिए।
  • यदि सभी 4 एलईडी चालू और बंद हो जाते हैं तो कठिन दोष है जिसे ठीक नहीं किया जा सकता है और इसके लिए हार्ड रीसेट की आवश्यकता होती है।[4]

प्रोग्रामिंग उदाहरण[17]

हैलो वर्ल्ड! कार्यक्रम कार्यक्रम:
# print to serial console

print('Hello, World!')

आयात करना + एलईडी चालू करना: <वाक्यविन्यास लैंग = पायथन लाइन = 1> पीआईबी आयात करें

  1. एलईडी चालू करें

पीआईबी.एलईडी (1) .ऑन ()

</वाक्यविन्यास हाइलाइट>

फ़ाइल + लूप पढ़ना:

<वाक्यविन्यास लैंग = पायथन लाइन = 1 प्रारंभ = 1>

आयात ओएस

  1. फ़ाइल खोलें और पढ़ें

f के रूप में खुले ('/ readme.txt') के साथ:

प्रिंट (f.read ())

</वाक्यविन्यास हाइलाइट>

बाईटकोड

MicroPython में क्रॉस कंपाइलर शामिल है जो MicroPython bytecode (फ़ाइल एक्सटेंशन .mpy) उत्पन्न करता है। पायथन कोड को या तो सीधे माइक्रोकंट्रोलर पर बायटेकोड में संकलित किया जा सकता है या इसे कहीं और प्रीकंपाइल किया जा सकता है।

MicroPython फर्मवेयर को कंपाइलर के बिना बनाया जा सकता है, केवल आभासी मशीन को छोड़कर जो प्री-कम्पाइल्ड mpy प्रोग्राम चला सकता है।

कार्यान्वयन और उपयोग

MicroPython का उपयोग मानक सॉफ़्टवेयर द्वारा फ्लैश मेमोरी में विशेष माइक्रोकंट्रोलर पर लोड किए जा रहे फ़र्मवेयर के माध्यम से किया जाता है, जो सीरियल इंटरफ़ेस का अनुकरण करने वाले कंप्यूटर पर लोड किए गए टर्मिनल एप्लिकेशन का उपयोग करके संचार करता है।[18]

MicroPython के मुख्य उपयोगों को 3 श्रेणियों में सामान्यीकृत किया जा सकता है:[18]* शैक्षिक उद्देश्य: माइक्रोकंट्रोलर के साथ बातचीत करने के लिए माइक्रोपायथन के रीड-इवल-प्रिंट लूप (आरईपीएल) का उपयोग करके, अधिक जटिल प्रोग्रामिंग भाषाओं की तुलना में डेटा प्रोसेसिंग की अवधारणाओं और बोर्डों के साथ संचार को सरल तरीके से समझाना संभव है।

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

MicroPython का कार्यान्वयन मानक और सहायक पुस्तकालयों की उपलब्धता और माइक्रोकंट्रोलर की फ्लैश मेमोरी और RAM आकार के आधार पर भिन्न हो सकता है।[18]

संदर्भ

  1. George, Damien P. (4 May 2014). "micropython/LICENSE at master · micropython/micropython". GitHub. Retrieved 11 February 2017.
  2. Venkataramanan, Madhumita (6 December 2013). "Micro Python: more powerful than Arduino, simpler than the Raspberry Pi". Wired. Retrieved 15 December 2016.
  3. Yegulalp, Serdar (5 July 2014). "Micro Python's tiny circuits: Python variant targets microcontrollers". InfoWorld. Retrieved 15 December 2016.
  4. 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.
  5. "गिटहब पर माइक्रोपायथन". GitHub. 7 February 2022.
  6. "Micro Python: Python for microcontrollers". Kickstarter. Kickstarter. Retrieved 15 December 2016.
  7. Beningo, Jacob (11 July 2016). "Prototype to production: MicroPython under the hood". EDN Network. Retrieved 15 December 2016.
  8. George, Damien P. "micropython/ports at master · micropython/micropython". GitHub. Retrieved 22 October 2019.
  9. Sokolovsky, Paul. "बहुत बढ़िया माइक्रोपायथन". GitHub. Retrieved 22 October 2019.
  10. Williams, Alun (7 July 2015). "बीबीसी माइक्रो-बिट यूजर इंटरफेस के साथ काम करें". ElectronicsWeekly.com. Retrieved 8 July 2015.
  11. Shawcroft, Scott (22 May 2019). "CircuitPython 4.0.1 released!". Adafruit Blog. Adafruit Industries. Retrieved 11 Jun 2019.
  12. "RISC-V Poster Preview — 7th RISC-V Workshop" (PDF). 28 November 2017. Retrieved 17 December 2018.
  13. "LEGO releases MicroPython for EV3 based on ev3dev and Pybricks". www.ev3dev.org. Retrieved 2020-04-21.
  14. "Meet Raspberry Silicon: Raspberry Pi Pico now on sale at $4". www.raspberrypi.org. 21 January 2021. Retrieved 2021-01-21.
  15. 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. 16.0 16.1 16.2 Bruno, P. (25 November 2021). "माइक्रोपायथन का परिचय". All3DP. All3DP. Retrieved 9 May 2022.
  17. 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. 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. 19.0 19.1 Rembor, K. "आरईपीएल". Welcome to CircuitPython!. Adafruit Learning System. Retrieved 9 May 2022.
  20. "MicroPython differences from CPython — MicroPython latest documentation". docs.micropython.org.
  21. "MicroPython - माइक्रोकंट्रोलर्स के लिए पायथन". micropython.org (in English).
  22. Wang, L.; Li, Y.; Zhang, H.; Han, Q.; Chen, L. (2021). माइक्रोपीथॉन बाइटकोड के लिए एक कुशल नियंत्रण-प्रवाह आधारित पर्यवेक्षक. 2021 7th International Symposium on System and Software Reliability (ISSSR). pp. 54–63.
  23. 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.


बाहरी संबंध