مانی جمالی
مانی جمالی
Thumbnail Image موضوع :

میکروپایتون چیه؟

Thumbnail Image دسته بندی : وب و برنامه نویسی
Thumbnail Image رده بندی : 20
Thumbnail Image تاریخ انتشار : 1399/07/27
Thumbnail Image زمان مطالعه : 20 دقیقه

میکرو پایتون

سلامی دوباره خوش حالم که دوباره مطلبمونو دنبال می کنین؛ ما همواره در کنار شما خواهیم بود تا بتونیم بهترینا رو در حوزه هوش مصنوعی، برنامه نویسی، فناوری اطلاعات و … به شما عزیزان ارائه بدیم؛ مطلب جدیدمون راجع میکرو پایتون هستش اینکه اصلاً میکرو پایتون چیه؟ سازوکارش چه شکلی هست اصلا؟ چطوری نصب میشه؟ در چه سیستم عامل هایی پشتیبانی میشه؟ و …

اما اصل مطلب از این قراره که اول بهتره سوالاتمون یک راست راجع برنامه نویسی نباشه چون موضوع میکروپایتون بیشتر روی نرم‌افزار ها و برنامه‌های مخصوص قطعات الکترونیکی تمرکز داره.

سخت افزارها و تاریخچه آنها

رابطه بین سخت‌افزار و نرم‌افزار از گذشته تا الان بسیار رابطه مهم و تنگاتنگی بوده و هست چون باید اینو بدونیم که هیچ سخت‌افزاری که دیجیتالی هست بدون نرم‌افزار به کار نمی یاد و هیچ نرم افزاری هم بدون سخت‌افزار معنی نخواهد داشت. ممکنه تعریفتون از سخت افزارها رایانه (رایانه های رومیزی و...) و اجزاش باشه در حالی که اصلاً اینطوری نیست! بلکه تمام قطعات الکترونیکی که دیجیتالی هستند حکم سخت‌افزار رو دارن؛ بیاییم پس دیدگاهمونو نسبت به سخت‌افزار عوض کنیم تا بتونیم راحتتر اونو بشناسیم.

 در طول مسیر شناخت سخت افزارها ممکنه سؤالاتی برامون پیش بیاد که پاسخ دادن بهش ممکنه هم آسون باشه و هم سخت اما بهتره به اونا پاسخ بدیم:

  • آیا سخت افزارها فقط همون رایانه هایی نظیر (لپ تاپ، تبلت و …) و اجزای اون هستن؟
  • آیا هر قطعه الکترونیکی سخت‌افزار هستش؟
  • آیا سخت‌افزار بدون نرم‌افزار کار می کنه؟
  • نرم‌افزارها در صورت نبود سخت‌افزار و قطعات الکترونیکی مخصوص کارکردی دارن؟
  • آیا هر سخت افزاری مخصوص نرم‌افزارهای خاص طراحی شده یا این نرم‌افزارها هستن که برای قطعه مورد نظر استفاده میشن؟
  • آیا میشه قطعات الکترونیکی رو با نرم افزارهایی مخصوص مدیریت کنیم؟

راستی می تونین خیلی راحت به بلاگ لرنیایی ما سری بزنید و مطالبمونو دنبال کنین.

سخت افزارها برای نرم افزارها!

شاید تا به حال به سؤال مورد نظرتون پاسخی ندادین و همواره فکر می کردین که نرم‌افزارها برای به کارگیری سخت افزارا ساخته شدن در حالی که اینطوری نیست یا به بیانی ساده‌تر از گذشته و حتی ممکنه تا الان اینطوری نبوده باشه.

در گذشته شرکت های انحصاری برای انتشار محصولات خود (نرم افزارهاشون) به وسیله یک سری قطعات الکترونیکی به قول معروف قفل سخت افزاری می ساختن و شما تا این قفل رو به سیستمتون وصل نمی کردین برنامه کار نمی کرد؛ این قفل ها بعدها با قفل نرم افزاری که به صرفتر بود جایگزین شدن؛ اما تونستند به سوالمون پاسخ بدن که هم نرم‌افزار در خدمت سخت افزاره و هم سخت‌افزار در خدمت نرم افزار.

اصل مطلبمون هم راجع کنترل بعضی قطعات الکترونیکی توسط نرم افزارهاست.

 امروزه برنامه نویسی و توسعه همین بخش نرم افزاری بسیار گسترده‌تر از گذشته شده و همچنین خیلی راحتتر شده؛ دانشمندان و توسعه دهندگان همواره برای توسعه زبان‌های برنامه نویسی در طول مدت تلاش‌های فراوانی کردن تا بتونند هم برنامه نویسی رو ساده کنن و هم بشه با این زبان‌ها برنامه‌های فراوانی در حوزه های دیگه ساخت.

علوم رایانه هم در حوزه خدمات پیشگامه و هم در حوزه صنعت و امروز در این حوزه بسیار مورد استفاده قرار می گیره؛ الکترونیک شاخه ای از صنعت هستش که امروزه با علوم رایانه همواره در ارتباط است.

ارتباط الکترونیک با نرم افزار رایانه

دوست داریم بدونیم شاخه الکترونیک چگونه با نرم‌افزار رایانه در ارتباط هستش و چطوری کارمی کنه؛ ممکنه در طول مسیر شناخت سؤالاتی برامون پیش بیاد حالا میریم سر اصل مطلب.

یک رایانه از قطعات الکترونیکی فراوانی استفاده میکنه و همچنین نرم‌افزارهای رایانه هم می تونن توسط این قطعات اجرا بشن و کارکردی داشته باشن این یکی از ارتباطات مهم نرم‌افزار رایانه با الکترونیک هستش.

 یکی دیگر از رابطه‌های نرم‌افزار رایانه با الکترونیک کنترل قطعات الکترونیکی توسط نرم‌افزار رایانه هستش؛ به طور مثال ما می تونیم برنامه‌ای بنویسیم که بتونه مثلاً یک لامپ LED رو در مداری روشن کنه و خیلی کارهای دیگه!

چه راه هایی برای کنترل کردن قطعات الکترونیکی هستش؟

در گذشته مدار ها به صورت دیجیتالی که ۰ و ۱ را پردازش کنه وجود نداشتند اما کم کم چیپ ها روی کار اومدن؛ چیپ ها هر کدوم کارایی های خاص خودشونو داشتن امروز هم از این قطعات کوچک در رایانه هم استفاده می‌شود اونم در بخش‌های حیاتی یک رایانه.

کم کم مداراتی رو کار اومدن به اسم آی سی یا Integrated circuit، این مدارها مجتمع هستن و کارایی های فراوانی دارن؛ امروزه تو بسیاری از وسایل الکترونیکی از آی سی ها استفاده میشه نظیر تلویزیون، ماشین لباس شویی، قطعات اتوموبیل، یخچال، میکرو رایانه ها (تبلت، موبایل، …).

 این قطعات کوچک سیاه بسیار در مدارها تأثیر گذار بودن و باعث دیجیتالی شدن ابزار شدن امروز قطعات آی تی استفاده های فوق‌العاده فراوانی داره که قابل نام بردن نیست تقریباً هیچ دستگاه دیجیتالی بدون آی سی یا پردازنده نیست.

تفاوت آی سی با پردازده های امروزی در چیه؟

خوب حالا می خوایم بدونیم چه تفاوتی بین مدارهای مجتمع کوچک (آی سی ها) و پردازنده ها وجود داره؟ پردازنده ها یک سری شباهتا با آی سی ها دارن اما یکی از بارزترین تفاوت‌های بین این دو دیجیتالی بودن پردازنده هاست و همچنین اونا در رایانه ها مورد استفاده قرار می گیرن.

 خوب حالا می‌خواهیم دقیق‌تر ویژگی‌های یک پردازنده رو بر شماریم تا راحت‌تر بشه تفاوت بینشونو درک کرد:

  • پردازنده ها اکثراً در رایانه ها استفاده میشن.
  • ساختار اونا از مدارات مجتمع بزرگ‌تر هستش.
  • دیجیتالی هستن و اساس دیجیتال از همین پردازنده ها میاد! یعنی بدون وجود پردازنده که اساس یک رایانه هست ۰ و ۱ هیچ وقت توسط رایانه درک نخواهند داشت! پردازنده در رایانه حکم سر در بدن رو بازی می کنه!
  • تنها دو چیز رو می شناسن ۰ یا ۱.
  • تعداد ترانزیستور هاشون خیلی از مدارات مجتمع بیشتره ممکنه حدود میلیارد ها تراتزیستور داشته باشن!
  • علم ساخت اونا کار دشواری هست و اغلب به صورت انحصاری توسعه پیدا می کنن و در انحصار چند شرکت بزرگ هستن.
  • قابلیت محسابات عملیات منطقی بر اساس داده‌های دیجیتالی هستن.
  • هر برنامه‌ای می‌توان به اونا داد اما باید حتماً به صفر و یک برنامه‌های مورد نظرتون تفسیر بشن.
  • محل مدارات مجتمع در مدارات ساده هم به کار میره اما پردازنده ها در مدار اصلی رایانه که اسمش مادر برد (Mother board) هست نصب میشه.
  • امروز این قطعه با‌ارزش بسیار هزینه بر هست.
  • ساختار پردازنده ها ، تعداد ترانزیستور هاشون و الگوریتمی که برای طراحیشون استفاده شده با هم فرق داره ولی همشون یک کارکرد رو دارن.
  • پردازنده ها در علوم رایانه نقش اساسی دارن اما مدارات مجتمع اینطور نیستن!
  • هر پردازنده برای نصب شدن باید به سوکتی که به صورت یک صفحه زیرش قرار داره نصب بشه؛ هر پردازنده ای ممکنه از سوکت مخصوص خودش استفاده کنه؛ پس دونستیم که پردازنده ها باید روی سوکتی مخصوص خودشون نصب بشن تا کار کنند و همچنین سوکت ها هم قبل از اونها باید در مدار نصب شده باشن.
  • اندازه پردازنده ها ممکنه بزرگ‌تر از مدارات مجتمع باشه.

خوب پیش از درک مفهوم میکرو کنترولر ها خوب بود راجع مدارات مجتمع و پردازنده ها، فرقشون و … دونسته باشیم.

 حالا دوست داریم با میکرو کنترولر ها آشنا بشیم و بدونیم کارکردشون چیه و چطوری میشه براشون برنامه نوشت و مدارات رو با اونا کنترل کرد.

میکرو کنترولر ها چی هستن دقیقا؟

 خوب حالا می خواهیم بریم سراغ یک چیپی محبوب که کار یک رایانه سبک و کوچک رو انجام میده و خیلی کاربردها داره اسمش میکرو کنترولر هست؛ میکرو کنترولر هما همونطور که گفتیم یک رایانه هستش بسیار جمع و جور تا حدی که فکر می کنین یک چیپ کوچیک هستش یا یک مدار مجتمع ساده در حالی خبر ندارین یک رایانه بسیار جالب هست!

 کارش برخلاف دیگر رایانه ها اینه که قطعات الکترونیکی و برقی رو خیلی راحت کنترل می کنه و اصلا هدفش همینه و میشه براش به راحتی برنامه نویسی کرد؛ قبلا با زبان های سی، اسمبلی میشد اما حالا با پایتون هم میشه براش کد زنی کرد.

  این رایانه کوچک و به ظاهر سیاه همانند مدارات مجتمع به راحتی در مدار الکترونیکی نصب میشه و کارشو انجام میده حالا می خواهیم داخلشو هم برسی کنیم.

 داخل این رایانه کوچولو یک سری اجزا هستش نظیر:

  • حافظه اصلی یا همون رم که خیلی مقدار اندکی برای ذخیره سازی داره به اندازه ۲۵۶ بایت! همچنین این حافظه موقت هستش و میشه هم توش خوند و هم نوشت به اصطلاح بچه های رایانه بهش می گیم RAM یا Random Access Memory یا Read & Write Memory (RWM) یعنی حافظه تصادفی یا حافظه خواندی و نوشتنی.
  • حافظه رام: این حافظه در حین کارکردن در رایانه ها قابل تغییر نیست؛ برنامه های اصلی شرکت سازنده تو همین حافظه قرار می گیره؛ در رایانه های بزرگ و میکرو رایانه ها در این حافظه بایوس برای بوت کردن سیستم عامل قرار می گیرد؛ اینم خاطر نشون کنم که میکرو کنترولر ها اصلا قابیت بوت سیستم عامل رو ندارن چون هم حافظه ناچیزی دارن و هم اصلا حافظه جانبی برای ذخیره سازی سیستم عامل رو ندارن و همچنین اصلا برای سیستم عامل ساخته نشدن؛ فرض کنیم همون رایانه های گذشته که سیستم عاملی نداشتن هست فقط بسیار کوچیک شده! خلاصه به حافظه رام ROM می گن یعنی Read Only Memory (فقط خواندی و قابلیت نوشتن در این حافظه وجود ندارد).
  • پردازشگر مرکزی: مهم ترین بخش میکرو کنترولر ها همین پردازشگر مرکزی یا Central Processing Unit (CPU) هست؛ تمام اطلاعات دیجیتالی ۰ و ۱ از این بخش گذر می کنن تا پردازش بشن.
  • بخش ریاضی: در کنار پردازشگر مرکزی راایانه همیشه بخش ریاضی رو برای محاسبات اعداد لازم داره و میکرو کنترولر ها هم از این قضیه مستثنا نیستن! محاسبات شامل جمع، تفریق، ضرب، تقسیم، باقی مانده و … می تواند باشد.
  • بخش منطق: این قسمت در مغز ما عقل نام داره و رایانه هم این بخش رو داره منتهی مصنوعی و از پیش برنامه ریزی شده؛ مغز ما بخش منطقش پویاست در حالی که رایانه بخش منطقی ایستا داره یعنی تا بهش برنامه ندید نمی تونه چیزی رو در منطقش برسی کنه؛ به طور مثال ما یک برنامه در میکرو کنترولر ها ساختیم که کارش روشن کردن یک لامپ هستش و یک شرط داره که اگر اون شرط برقرار شد لامپ روشن بشه؛ حقیقتا اینه که ما این شرطو بهش دادیم و خودش به صورت پویا اون شرطو درست نکرد پس باید بدونیم مغز ما فراتر از چیزیست که فکرش رو می کنیم.
  • بخش ورودی و خروجی: خوب هر رایانه ای یک سری بخش ها برای ورودی ها داره و هم برای خروجی ها؛ شما از طریق بخش ورودی می تونید برنامتونو بسازید و بفرستید تا میکرو کنترولر اجراش کنه اون وقت خروجی رو روی قطعات الکترونیکی اعمال می کنه.

جهت آشنایی بیشتر با سیستم عامل می تونید مطالبمونو در بلاگ لرنیا دنبال کنین.

سرعت میکرو کنترولر ها نسب به رایانه های معمولی چه قدره؟

خوب اولاً باید گفت که رایانه های معمولی به دلیل وجود پردازنده ای بزرگ‌تر و همچنین قوی‌تر با وجود حافظه اصلی با حجمی بیشتر قطعاً سرعت بالاتری دارن اما بازم میکرو کنترولر ها سرعتشون زیاده ولی نسبت به رایانه های معمولی کم تره!

با چه زبانایی میشه برای میکرو کنترولر ها برنامه نوشت؟

خوب بریم سراغ اصل مطلبمون اصلاً چطوری میشه برای میکرو کنترولر ها برنامه نویسی کرد؟ آیا زبان خاصی برای خودش داره یا همین زبان‌های رایانه های معمولی رو پشتیبانی می کنه؟

 همونطور که قبلاً گفتیم پردازنده ها فقط ۰ و ۱ را درک می کنن و میکرو کنترولر هم از این قضیه مستثنا نیستش پس قطعاً میشه با هر زبانی که در رایانه به ۰ و ۱ تفسیر میشه رو در میکرو کنترولر برنامه نوشت؛ سرعت اجرای برنامه‌های نوشته شده با اسمبلی در این رایانه کوچک از همه زبان‌ها بیشتره چون یک راست و مستقیم به صفرو یک تفسیر میشه بعد زبان سی و بعد از اون سی پلاس پلاس.

 در ابتدای کار پایتون برای این نوع رایانه انتخاب خوبی نبود تا اینکه گروهی از برنامه نویسان عزیزو گرامی باز اومدن پایتونو مخصوص میکرو کنترولرها پیداه سازی کردن.

 ایشون نحوه پویایی متغییرهای پایتون رو که با سی پایتون (پیداه سازی اصلی پایتون) بودن رو تغییر دادن و کاری کردن که متغییرهایی که استفاده نمیشن پاک بشن همین قضیه سرعت برنامه‌های کند پایتونو در میکرو کنترولر میاورد بالا!

میکرو پایتون چیه؟

 

 خوب دیگه گفته ای نداریم‌ (: باید بگیم همین پیاده‌سازی جدید پایتون برای میکرو کنترولر اسمش میکرو پایتون هستش.

در‌واقع توسعه دهندهای گرامی اومدن دوباره یک کامپایلر مخصوص برای پایتون میکرو کنترلی ساختن و همچنین یک اجرا کنند و … که خیلی کار سختیه و کار هر کسی نیست! ولی همین کارشون باعث شده کار ما رو راحت کنن دیگه نگران شدت زیاد کند بودن پایتون اونم در این رایانه کوچک نباید باشیم؛ درسته سرعتش کمه اما با این پیاده‌سازی بهتر شده اما نسب به زبان‌های سی و اسمبلی سرعتش خیلی پایینه.

اگه دوست دارین بیشتر راجع پایتون مطلب ببینید مطالب پایتونی ما رو از دست ندید!

میکرو پایتون چطوری نصب میشه؟

خوب باید گفت نصبش خیلی آسونه کافیه فقط بریم تو وب سایت رسمیش و کد منبعشو بزنیم دانلود کنیم البته شاید بیلد کردنش برای بعضی دوستان سخت باشه ایشون می تونن از نسخه های از پیش نصب شده استفاده کنن.

 میکرو پایتون در سیستم عامل هایی که یونیکسی هستن قابل نصب هست همچنین خیلی راحت می تونید کد منبعشو از این لینک دریافت کنین:

https://github.com/micropython/micropython

چه نوع قطعاتی توسط میکرو پایتون پشتیبانی میشه؟

حالا می‌خواهیم ببینیم این پیاده‌سازی خوب چه نوع قطعاتی رو پشیبانی می کنه؟

 

مطالب مرتبط

میکروپایتون چیه؟

در‌واقع توسعه دهندهای گرامی اومدن دوباره یک کامپایلر مخصوص برای پایتون میکرو کنترلی ساختن و همچنین یک اجرا کنند و … که خیلی کار سختیه و کار هر کسی نیست! ولی همین کار...

نویسنده: مانی جمالی Thumbnail Image
زمان مطالعه: 20 دقیقه Thumbnail Image

5+1 کاربرد مختلف پایتون در حوزه تکنولوژی

بررسی ویژگی ها و مزیت ها و جزییات این زبان از حوصله این مقاله خارج هست و در این مقاله من فقط به 5 کاربرد پایتون در تکنولوژی اشاره میکنم ولی اگه علاقمند هستید که بیشتر د...

نویسنده: پویا ستایش Thumbnail Image
زمان مطالعه: 20 دقیقه Thumbnail Image

چیزایی که درباره خط فرمان پایتون باید بدونیم

خروجی ها تو پایتون با امکانت زیادی رو به رو هستن شامل فونت مناسب، پشتیبانی از زبان‌های فراوان نظیر فارسی و انگلیسی و همچنین پشتیبانی از رنگ‌های مختلف....

نویسنده: مانی جمالی Thumbnail Image
زمان مطالعه: 30 دقیقه Thumbnail Image
نویسنده: پویا ستایش Thumbnail Image
زمان مطالعه: 30 دقیقه Thumbnail Image

همه چی درباره فریم ورک پای کیوت

پای کیوت یعنی پایتون + کیوت، شاید فکر کنین برنامه نویسا اومدن کتابخونه های سی پلاس پلاس کیوت رو به پایتون لینک کردن! نخیر این یک تفکری بی‌منطق می اشتباست! چرا؟ اولاً ب...

نویسنده: مانی جمالی Thumbnail Image
زمان مطالعه: 30 دقیقه Thumbnail Image
نویسنده: امیر حسین فغان جوینده Thumbnail Image
زمان مطالعه: 20 دقیقه Thumbnail Image

دیدگاه و نظرات