اپل به تازگی نسخه بتایی از زبان برنامهنویسی خود یعنی Swift منتشر کرده که به طور قابل توجهی برای استفاده در میکروکنترلر Espressif ESP32-C6 بهینهسازی شده است. البته این موضوع به ESP32-C6 محدود نمیشود و اپل در پروژه Matter از میکروکنترلرهای دیگری از جمله SDK STMicroelectronics، Raspberry Pi، Nordic Semiconductor و … نیز پشتیبانی میکند.
پروتکل Matter یک استاندارد جدید برای اینترنت اشیا است که توسط یک گروه صنعتی بزرگ از جمله اپل، گوگل، آمازون و … تشکیل شده و هدف از آن ایجاد تعاملات استاندارد و سادهتر بین دستگاههای مختلف اینترنت اشیا است.
اپل از زبان برنامهنویسی Swift اصولاً برای توسعه برنامههای تلفن همراه استفاده میکند. با این حال این زبان در بورد SwiftIO که متعلق به شرکت Mad Machine است هم استفاده میشود. این بورد یک پردازنده Cortex-M7 با سرعت 600 مگاهرتز به اسم NXP i.MX RT1052 دارد. اپل تصمیم گرفته که زیرمجموعهای از زبان برنامهنویسی Swift به نام Embedded Swift برای میکروکنترلرها عرضه کند که سازگاری بیشتری با این میکروکنترلرها دارد. این نسخه در حال حاضر از میکروکنترلرهایی مانند STMicro STM32F746، Raspberry Pi Pico،nRF52840 و ESP32-C6 پشتیبانی میکند.
در جلسه Go small with Embedded Swift در کنفرانس WWDC 2024، به بحث درباره این موضوع پرداخته شد که چگونه میتوان از زبان برنامهنویسی Swift در بورد توسعه ESP32-C6-DevKitC-1 که متعلق به شرکت Espressif Systemاست، استفاده کرد. در این جلسه به نمونههای سادهای مانند Hello world و تغییر رنگ LED RGB و همچنین نمونههای پیچیدهتری مانند استفاده از پروتکل Matter در خانههای هوشمند، اشاره شد.
کدی که برای کنترل LED RGB استفاده شد، به صورت زیر است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | let led = LED() @_cdecl("app_main") func app_main() { & nbsp; print("🏎️ o, Embedded Swift!") & nbsp; led.color = .red & nbsp; led.brightness = 80 & nbsp; while true { & nbsp; sleep(1) & nbsp; led.enabled = !led.enabled & nbsp; if led.enabled { & nbsp; led.color = .hueSaturation(Int.random(in: 0. . < 360), 100) & nbsp; } & nbsp; } } |
کد Swift برای کنترل LED RGB بر روی بورد توسعه ESP32-C6-DevKitC-1 به شکل C شباهت دارد اما از نقطهویرگول در آن استفاده نشده است. این کد را میتوانید از سایت GitHub دریافت کنید. علاوه بر این نمونههای دیگری از این کدها برای پلتفرمهای مختلف مانند ESP32-C6، STM32، RP2040 و nRF52840 نیز در دسترس قرار دارد.
Embedded Swift یک زیرمجموعه از زبان برنامهنویسی Swift است که حجم کمتری دارد (حدود ۱۰ کیلوبایت بر اساس نمودار زیر). در این مجموعه برخی ویژگیها حذف شدهاند اما ویژگیهای دیگری که برای سختافزارهای میکروکنترلرها (MCU) لازم است، اضافه شدهاند.
لازم به ذکر است که Embedded Swift هنوز در مرحله توسعه قرار دارد، بنابراین برای تست آن میتوانید نسخههای آزمایشی Swift را دانلود کنید؛ چون هنوز نسخه نهایی منتشر نشده است.