میکروکنترلر اما اینبار از خانواده Raspberry Pi

وقتی اسم Raspberry Pi میاد٬ یاد کامپیوتر های کوچک یا به اصطلاح کامپیوتر های تک برد میوفتیم که سیستم عامل لینوکس دارن(عموما Raspberry Pi OS) و به مانیتور متصل میشن و ابعادشون اندازه کف دسته و...Raspberry Pi 4 Bدر این نوشته ما قرار نیست درباره مینی کامپیوتر های Raspberry Pi صحبت کنیم. بلکه قراره عضو جمع و جور٬ قدرتمند و کاربردی این خانواده به نام Raspberry Pi Pico که یک میکروکنترلر با پردازنده بر پایه معماری arm هست رو با همدیگه بررسی کنیم و نحوه شروع کدنویسیشو هم ببینیم.Raspberry Pi Pico معرفیاین میکروکنترلر کوچک با ابعاد ۲۱ میلی متر در ۵۱ میلی متر(کوچکتر از انگشت شست دست) در سال ۲۰۲۱ معرفی شد و با قیمت پایه ۴ دلار به بازار اومد. وجود قلب تپنده دو هسته ای(+Cortex-M0) به نام RP2040 که کلاک متغییر تا ۱۳۳ مگاهرتز داره ٬ باعث شده این میکروکنترلر گزینه مناسب و قدرتمندی برای IOT باشه.Raspberry Pi Pico W ۴ تا نسخه داره که در پردازنده اصلی و ابعاد تفاوتی ندارن: Raspberry Pi PicoRaspberry Pi Pico HRaspberry Pi Pico WRaspberry Pi Pico WHکه نسخه های W, ماژول وایفای رو روی برد دارن و میتونن به شبکه بیسیم متصل بشن. Raspberry Pi Pico Wویژگی نسخه های H نسبت به نسخه های دیگه اینه که پین هدر ها نصب شدن و اون رویه طلایی رنگ که به شما اجازه میداد برد رو روی برد دیگه ای بدون فاصله لحیم کنین حذف شده.Raspberry Pi Pico Hاین میکروکنترلر قابلیت برنامه نویسی به زبان های سی و میکروپایتون رو داره و به همین خاطر میتونین با هر سطحی از دانش میکروکنترلر باهاش کار کنین و کم کم یاد بگیرین.پریفرال ها و قابلیت زیادی هم داره که به صورت کاملتر میتونین داخل سایتش بخونین(+):2 × UART2 × SPI controllers2 × I2C controllers16 × PWM channelsیکی از جذاب ترین قابلیت هایی که در اختیارتون قرار میده٬ ۸ تا پین قابل برنامه ریزی استیت ماشین برای ایجاد پریفرال کاستومه و اجازه میده پروتکل ارتباطی خودتون رو بنویسین. که نحوه کار و استفادشون رو میتونین از این لینک بخونین(+)Pico PinOut راه اندازیهمونطور که گفتیم٬ این میکروکنترلر توانایی اینو داره با زبان سی یا میکروپایتون برنامه نویسی بشه که در این آموزش قراره به میکروپایتون بپردازیم. در صورت تمایل میتونین داکیومنت کامل رو از این لینک بخونین(+)اولین مرحله برای راه اندازی میکروکنترلر٬ دانلود میکروپایتون برای میکروکنترلرهدانلود نسخه Raspberry Pi Pico دانلود نسخه Raspberry Pi Pico Wبعد از اینکه دانلود کردین٬ کافیه کلید BOOTSEL روی برد رو فشار داده و نگه دارین و بعد از طریق پورت microUSB به کامپیوتر متصل کنین٬ بعد از اینکه کامپیوتر اون رو شناخت دستتون رو از روی کلید بردارین. حالا فایلی که دانلود کردین رو داخل درایوی که به نام RPI-RP2 اومده کپی پیست کنین. برد دیسکانکت میشه و دوباره متصل میشه(ریبوت میشه).تبریک میگم الان برد شما آماده برنامه نویسی با میکروپایتونه. منابع برنامه نویسی میکروپایتونمیکروپایتون یک زبان برنامه نویسی میکروکنترلر مثل embedded c بر پایه زبان پایتونه که علارغم ساده بودنش قدرتمنده.برای یادگیری برنامه نویسی میکروپایتون روی Raspberry Pi Pico میتونین از منابع زیر استفاده کنین:۱- کتاب شروع یادگیری میکروپایتون روی Raspberry Pi Pico (+)۲- کتاب Raspberry Pi Pico Python SDK شروع کار رو هم با کامند لاین و هم با Thonny که یک IDE سبکه آموزش داده(+)۳- داکیومنت رسمی میکروپایتون(+)۴- فروم های میکروپایتون(+)۵- متصل کردن Raspberry Pi Pico W به اینترنت(+)۶- مثال از پریفرال های Raspberry Pi Pico(+)برای IDE شما میتونین هم از Thonny استفاده کنین(دانلود) و هم IDE قدرتمند PyCharm ولی پیشنهاد میشه در صورتی که با میکروپایتون و کار با میکروکنترلر ها آشنا نیستین از Thonny استفاده کنین.برای اینکه بتونین شروع به برنامه نویسی کنین باید بردتون رو داخل IDE انتخاب کنین. برای این کار در Thonny کافیه از منو بالای برنامه گزینه Run رو انتخاب کنین و وارد گزینه اول(configure interpreter)بشین و در زبانه اول برد Raspberry Pi Pico رو انتخاب کنین٬ حالا در زبانه دوم٬ اگر برد متصل باشه میتونین گزینه انتخاب بردتون رو ببینین.در صورتی که همه چیز درست انجام شده باشه٬ بعد از زدن گزینه OK در پنجره Shell پایین برنامه عبارتی مانند زیر نمایش داده میشه و میتونین کدتون رو روی برد اجرا کنین.از اینجا به بعد با مراجعه به داکیومنت ها و سورس های معرفی شده شما میتونین برنامه ای که میخواین بنویسین پیاده سازی کنین.حافظه داخلی این برد قابلیت ذخیره کردن کد هارو بهتون میده و میتونین چند تا کد رو همزمان روی اون ذخیره کنین و هرزمان خواستین بهشون دسترسی پیدا کنین.مثال چشمک زدن LED روی برد با استفاده از تایمر:from machine import Pin, Timer led = Pin(25, Pin.OUT) tim = Timer() def tick(timer): led.toggle() tim.init(freq=2.5, mode=Timer.PERIODIC, callback=tick)