RASPBERRY PI رسپبری, اینترنت اشیاء, توصیه شده, معرفی

برنامه‌نویسی و نصب Windows 10 IoT بر روی رزبری پای

Windows 10 IoT

مقدمه

وقتی حرف از رزبری پای می شود ، ناخودآگاه به یاد لینوکس و دنیای متن باز می افتیم، قطعا اگر دنیای متن باز وجود نداشت، شاهده این چنین پیشرفت های تکنولوژیکی نبودیم ، شاید گوشی هوشمندی با سیستم عامل اندروید وجود نمی داشت یا سیستم هایی این چنین کوچک و انعطاف پذیر و قدرتمند. کم‌کم با رشد چشمگیر باز سیستم های توکار(embedded) و داغ شدن مباحثی مثل خانه هوشمند و سیستم های IOT ، بلاخره غول دنیای نرم‌افزار سورس بسته (مایکروسافت) به دنیای متن باز علاقه نشان داد و برای اولین بار سیستم عامل خود را تغییر داد.

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

همیشه یکی از دغدغه‌های اصلی افراد تازه کاری که قصد استفاده از بردهای رزبری پای را دارند ، مساله نوشتن برنامه است ، چرا که بیشتر افراد با ساختار لینوکس آشنایی لازم را ندارند و همچنین با زبان هایی مثل C یا پایتون زیاد آشنا نیستند و شاید نوشتن یک برنامه چه کامندلاین چه گرافیکی برایشان یک کار پیچیده به حساب بیاید. با استفاده از ساختار ارائه شده از سوی ماکروسافت ، احتمالا افراد بیشتری قادر به برنامه نویسی برای این گونه برد ها باشند.

در ادامه به نحوه راه اندازی ویندوز 10 برای برد رزبری پای می پردازیم و همچنین آموزش خواهیم داد که چگونه با استفاده از ویژوال استودیو قادر خواهید بود برنامه مورد نظر خود را برای کنترل ورودی و خروجی ها بنویسید. پس با سیسوگ همراه باشد.

 

رزبری پای و نصب ویندوز 10

در این مقاله قصد داریم روش نصب ویندوز 10 بر روی رزبری را آموزش دهیم و سپس برنامه‌ای نوشته و روی آن تست کنیم.

 

قبل از درگیر شدن با ویژگی‌های فنی، ملزومات مورد‌نیاز سیستم‌عامل را در زیر لیست می‌کنیم:

  • ویندوز 10 نصب‌شده بر روی کامپیوتر.
  • رزبری 2 به همراه منبع تغذیه‌ی مناسب.
  • کارت حافظه با حداقل 8 گیگ ظرفیت.
  • کابل HDMI.
  • کابل شبکه.
  • یک مانیتور برای اتصال به برد رزبری.

برای نصب به‌صورت عرف به یک کامپیوتر که سیستم‌عامل آن ویندوز 10 باشد احتیاج داریم. (راه‌هایی برای نصب در دیگر سیستم‌عامل‌ها مثل لینوکس و ورژن‌های قبلی ویندوز وجود دارد، ولی ما از روش رسمی و معمول آن استفاده می‌کنیم.)

 

آماده‌سازی شرایط

قدم اول تهیه‌ی برد رزبری است. در مرحله‌‌ی بعد ابزار‌ها و سیستم‌عامل را از اینترنت دانلود می‌کنیم. سیستم‌عامل به‌صورت image و با نام “IOT Core Rpi” دریافت می‌شود. در ویندوز این “ایمج” را با دو بار کلیک کردن روی آن، به‌صورت درایو مجازی، باز می‌کنیم. فایل اجرایی با نام  “Windows_ 10_IoT_Core_Rpi2”  در آن قرار دارد. فایل را نصب می‌کنیم.

پس از نصب، ابزار‌های مورد‌نیاز در مسیر “C:Program Files (x86)Microsoft IoTFFURaspberryPi2” قرار می‌گیرد.

نصب ویندوز 10 روی رسپبری

فایل مورد‌نظر ما “FLASH.FFU” نام دارد. فرمت FFU توسط مایکرو سافت برای نصب ویندوز ساخته شده است.

برای اینکه کارت حافظه را برای بوت کردن رزبری آماده کنید، لازم است “WindowsIoTImageHelper” اجرا کنید که یک رابط برای ریختن فایل FFU بر روی کارت حافظه است.

 

نصب ایمج ویندوز 10

 

آدرس ایمج را داده و گزینه “FLASH” را انتخاب می‌کنیم. پس از اندکی صبر، پروسه تمام می‌شود.

 

اولین راه‌اندازی ویندوز 10

وقتی که پروسه‌ی نوشتن بر روی کارت حافظه تمام شد، آن را به رزبری متصل می‌کنیم. برای اولین راه‌اندازی لازم است کمی تنظیمات در زمینه‌های زبان و شبکه وای‌فای انجام دهیم. پس از بوت شدن، صفحه‌ی زیر نمایش داده می‌شود:

ویندوز 10 برای رزبری پای

 

در این ویندوز سیستم “کاشی” مشابه با ویندوز 8 وجود ندارد و حتی خبری از منوی استارت هم نیست. همان‌طور که در پایین صفحه هم مشخص شده است، این نسخه از ویندوز برای توسعه‌دهندگان ارائه شده و هدف آن نصب و اجرای برنامه‌های نوشته‌شده با ویژوال استودیو است.

 

نصب و راه‌اندازی برنامه‌ی خودمان در ویندوز رزبری پای

محیط رسمی توسعه‌ی مایکروسافت، ویژوال استودیو است که خوشبختانه آن را به‌صورت رایگان ارائه کرده است. پس آن را دانلود کرده و بر روی کامپیوتر خود نصب می‌کنیم.

خب اگر تا اینجا مراحل گفته‌شده را صحیح پیش رفته باشیم باید ابزارهای زیر را در اختیار داشته باشیم:

  • یک برد رزبری که سیستم‌عامل “Windows 10 IoT Core” روی آن نصب شده است. (رزبری را به موس و کیبرد و یک مانیتور متصل کنید.)
  • یک کامپیوتر که روی آن ویژوال استودیو نصب شده است.

حتما لازم است برای انجام کار رزبری و کامپیوتر به یک شبکه متصل شده باشند. در‌صورتی‌که این امر انجام شده باشد باید رزبری را در ابزار “Windows IoT Core Watcher” ببینیم. این ابزار در زمان نصب  “IOT Core Rpi” بصورت خودکار نصب شده است. مشاهده رزبری به معنی نصب صحیح و آماده‌ی کار بودن است.

 

برنامه نویسی رزیری

 

ویژوال استودیو را اجرا کرده و یک پروژه‌ی “Blank App” ایجاد کنید و آن را توسعه دهید. برای این سیستم در دو روش می‌توان برنامه نوشت: 1. با رابط کاربری مثل موس، کیبرد و مانیتور و 2. بدون رابط کاربری.

در اینجا بیشتر برنامه‌های بدون رابط کاربری مثل موس و کیبرد مد‌نظر است (مانند برنامه‌هایی که برای آردوینو می‌نویسیم)؛ برنامه‌هایی که به‌طور مستقیم با سنسور‌ها و ورودی و خروجی‌ها کار می‌کنند.

برنامه نویسی برای رزبری

 

ویژوال استودیو برنامه را ایجاد می‌کند و تعدادی فایل هم همراه با آن می‎سازد. در این بین فایل “MainPage.xaml” را نیز پیدا خواهید کرد. فایل‌های XAML برای توصیف رابط کاربری استفاده می‌شوند. در این مثال، این فایل فقط اسکلت‌بندی پایه را شامل می‌شود و هیچ محتوایی ندارد. برای اولین تست می‌خواهیم پیام “Hello World” در وسط صفحه به نمایش در بیاید. همان‌طور که در کد زیر نشان داده شده است، محتوای “MainPage.xaml” را تغییر می‌دهیم:

 

در آن از یک تکست باکس استفاده کردیم و رنگ آن را با دستور (with Foreground=“Blue”) آبی کرده‌ایم و توسط دستورات ( HorizontalAlignment=“Center”) و (VerticalAlignment=“Center”) آن را در مرکز صفحه قرار داده‌ایم.

اولین برنامه‌ی ما آماده است. برای تست برنامه در ویژوال استودیو ابزارهایی قرار داده شده است. برای تست بهتر است برنامه را ابتدا در کامپیوتر اجرا کنیم. برای این منظور کافی است دکمه‌ی اجرا که به شکل یک فلش کوچک است را بزنیم:

 

اجرای برنامه در ویژوال استودیو

 

در‌صورتی‌که روال را درست انجام دهید یک صفحه باز می‌شود و در مرکز آن نوشته‌ی آبی رنگ “Hello World” نمایش داده می‌شود. نتیجه‌ی خوبی است ولی هدف ما اجرای برنامه روی رزبری بود. برای این منظور یک قدم دیگر لازم است: در کنار منویی که گزینه اجرا قرار دارد، می‌توانید انتخاب کنید که نرم‌افزار چه نوع کامپایلی را برای برنامه انجام دهد.

همان‌طور که می‌دانید رزبری بر اساس تکنولوژی ARM ساخته شده است. بنابراین از منو این معماری را انتخاب می‌کنیم. در کنار این منو، منوی دیگری نیز وجود دارد که در حال حاضر در آن گزینه “Local Computer” انتخاب شده است.

 

کامپایل برنامه برای رزبری

 

از آنجایی که ما می‌خواهیم برنامه را بر روی رزبری اجرا کنیم گزینه‌ی “Remote Computer” را انتخاب می‌کنیم. با انتخاب این گزینه یک باکس نمایش داده می‌شود که مشخصات آی‌پی برد را می‌خواهد. آن را خالی بگذارید و گزینه‌ی اجرا را بزنید. این بار نوشته در مرکز مانیتوری که به رزبری متصل است نمایش داده می‌شود.

هرچند مراحل انجام کار تا به اینجا بسیار ساده بود ولی ما به مرحله‌ی بسیار مهمی رسیدیم؛ با استفاده از این روش می‌توانیم برنامه‌ها را در کامپیوتر شبیه‌سازی و در نهایت روی رزبری اجرا کنیم.

در قدم بعدی سطح کار را کمی گسترش می‌دهیم تا بتوانیم یک خروجی را کنترل کنیم. برای مثال یک LED را به پایه 18 رزبری مانند شکل متصل کرده و در برنامه توسط یک کلید آن را کنترل می‌کنیم:

اتصال LED به رزبری پای

 

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

در ویژوال استودیو در منوی “View Solution Explorer” روی “References” کلیک راست کنید و اجازه دهید پنجره context menu appear باز شود. در این پنجره گزینه‌ی “Add Reference” را انتخاب کنید در پنجره‌ی باز‌شده در سمت چپ، گزینه‌ی “Windows Universal” انتخاب کنید و در باکس جست‌وجو “IoT” را تایپ کنید. در نتایج جستجو  “Windows IoT Extension SDK” را انتخاب کنید و گزینه OK را بزنید تا نصب شود.

 

نصب WINDOWS IOT

 

بسته “Windows IoT Extension SDK” تمام ملزومات لازم برای کار کردن با سخت‌افزار را در اختیار ما قرار می‌دهد. ما از آن برای کنترل GPIO استفاده می‌کنیم.

 

برنامه‌ی زیر را در MainPage.xaml می‌نویسیم:

 

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

درون این StackPanel همان TextBlock موجود در مثال اول وجود دارد که نقش عنوان صفحه را به عهده دارد. در زیر آن یک دکمه وارد می‌کنیم که یک کنترل فعال است. ویژگی  Click=“Button_Click” نشان می‌دهد که وقتی دکمه فشرده می‌شود متدی با نام Button_Click اجرا می‌شود.

برنامه‌ی زیر را برای رویداد دکمه می‌نویسیم:

 

 

این دکمه به‌عنوان سوئیچ عمل می‌کند که وضعیت آن را با متغیر “state” مشخص می‌کنیم. برچسب LED برای حالت روشن یا خاموش با “ON” یا “OFF” مشخص می‌شود.

کنترل GPIO با استفاده از آیتم pin انجام می‌شود. در کد زیر این آیتم را تعریف و پیکر‌بندی می‌کنیم:

 

 

تابع InitGPIO نقش پایه‌ای که به LED متصل شده است را تعیین کرده و آن را پیکربندی می‌کند.

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

 

برنامه نویسی برای رزبری

 

پنل پیکر‌بندی رزبری پای در ویندوز

توسعه‌ی برنامه با رزبری ممکن است کمی پیچیده باشد ولی ارتباط با سخت‌افزار آن بسیار ساده است. Windows 10 IoT یک رابط وب را برای تنظیمات خود در نظر گرفته است که از آدرس زیر می‌توانید به آن دسترسی داشته باشید : http://minwinpc.local:8080

می‌توان این آدرس را تغییر داد و یا به‌جای minwinpc.local از آدرس آی‌پی برد استفاده کرد.

نام یوزر به‌صورت پیش‌فرض “Administrator” و پسورد آن “p@ssw0rd” است. توصیه می‌کنیم رمز پیش‌فرض را عوض کنید.

در رابط کاربری گزینه‌های جالبی مانند گزارشی از فرایندهای اجرا‌شده، تجزیه و تحلیل بار CPU و مصرف RAM و توابع جالب دیگر وجود دارد.

 

تنظیمات ویندوز رزبری

 

از لینک زیر میتوانید برنامه‌ی نوشته‌شده برای کنترل LED را دانلود کنید:

rpi-universalapp-ledsample-master.zip

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


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

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.  همکاری با سیسوگ

 

نوشته های مشابه

10 دیدگاه در “برنامه‌نویسی و نصب Windows 10 IoT بر روی رزبری پای

  1. Avatar مهدی گفت:

    سلام میشه یه ویندوز معمولی (که متن با نیست ) رو روی این زیبری پای نصب کرد؟
    مثلاً وینوز 10 پرو

    1. زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز – متاسفانه به دلیل متفاوت بودن ساختار CPU – ویندوز چنین امکانی رو نداره که روی دیگر پلتفرم های سخت افزاری نصب بشه
      البته ویندوز های مخصوصی هست مثل ویندوز CE که اونا برای ARM گسترش پیدا کردند ولی نمیدونم هنوز آپدیت می شوند یا نه

      1. Avatar مهدی گفت:

        ممنون از راهنمای تون

        1. زئوس Zeus زئوس Zeus گفت:

          خواهش میکنم دوست عزیز

  2. Avatar saeed گفت:

    2-ایا برای نصب ویندوز نیاز به یک رم و رم ریدر هست ؟
    نمیشه کاری کرد جای کمتری بخواد داخل قاب خود رزبری ؟

    1. زئوس Zeus زئوس Zeus گفت:

      بله قطعا لازمه که کارت حافظه داشته باشید !

      1. Avatar saeed گفت:

        تشکر برای پاسخ گویی

        1. زئوس Zeus زئوس Zeus گفت:

          خواهش میکنم دوست عزیز

  3. Avatar saeed گفت:

    سلام مرسی بابت مطلب
    اما دو سوال
    1-جدید ترین نوع رزبری پای نوع رزبری +3B اون هست که خودش از دو نوع RS و Eelement 14 هست
    فرق این دو نوع چیه ؟
    و ایا ویندوز iot رو اسن دو نوع نصب میشه ؟
    (مال شرکت RS که مییدونم اما اون یکی رو نه )
    ممنون میشم راهنمایی بفرمایید .

    1. زئوس Zeus زئوس Zeus گفت:

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

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *