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

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

برنامه‌نویسی و نصب Windows 10 IoT بر روی رزبری پای
برنامه‌نویسی و نصب 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

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

حمایت از Paradise Electronic

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

دیدگاه ها

16 دیدگاه

  • مریم
    ۸ فروردین ۱۴۰۱

    سلام. من ویندوز Win10.Enterprise.LTSC.21H2 نصب کردم و با فعال ساز MAS_1.5_AIO فعالش کردم اما توی مشخصات به عنوان Windows 10 IoT Enterprise LTSC فعال شده. علتش چیه؟ مشکلی پیش میاد؟ نه برنامه ای نوشتم. نه مینیاتور و کابل hdmi و… هیچی. از بین پیش نیازهایی که گفتید فقط رم 8 گیگ دارم…

  • آرش
    ۲۸ اسفند ۱۳۹۹

    سلام من یه برنامه با پایتون تو لپتاب نوشتم و اونو به صورت exe در اوردم.حالا میخواستم بدونم میشه این فایل رو تو رزبپری که سیستم عامل ویندوز داره اجرا کرد؟

    • Zeus ‌
      zeus
      ۵ خرداد ۱۴۰۰

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

    • Zeus ‌
      zeus
      ۵ خرداد ۱۴۰۰

      البته فکر نکنم کار کنه چون معماری سخت افزار رزبریپای با pc متفاوت هست
      یکی بر مبنای x86 هست و دیگری با arm

  • کشاورز
    ۱۹ آذر ۱۳۹۸

    سلام 2 تا سوال داشتم یکی اینکه چطوری پرینتر رو تو این ویندوز نصب و فعال کنیم دوم اینکه آیا میشه برنامه های که با سی شارپ نوشتیم رو برا رزبری کامپایل بگیریم ؟
    ممنون

    • Zeus ‌
      زئوس Zeus
      ۲۰ آذر ۱۳۹۸

      نصب درایور پرینتر رو اطلاعی ندارم چطور میشه انجام داد ولی این که بخواید کد های c# رو بر روی ریزبری پای یا هر سیستم دیگه ای که مبتنی بر لینوکس هست اجرا کنید تنها نیازه از پروژه mono استفاده کنید 🙂

  • مهدی
    ۸ خرداد ۱۳۹۸

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

    • Zeus ‌
      زئوس Zeus
      ۹ خرداد ۱۳۹۸

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

      • مهدی
        ۹ خرداد ۱۳۹۸

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

        • Zeus ‌
          زئوس Zeus
          ۲۰ خرداد ۱۳۹۸

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

  • saeed
    ۲۵ بهمن ۱۳۹۷

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

    • Zeus ‌
      زئوس Zeus
      ۲۷ بهمن ۱۳۹۷

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

      • saeed
        ۲۹ بهمن ۱۳۹۷

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

        • Zeus ‌
          زئوس Zeus
          ۲۹ بهمن ۱۳۹۷

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

  • saeed
    ۲۵ بهمن ۱۳۹۷

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

    • Zeus ‌
      زئوس Zeus
      ۲۷ بهمن ۱۳۹۷

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

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

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

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 9 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 2 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک