شروع کار با نود رد

شروع کار با نود رد

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

پایه‌های ورودی-خروجی

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

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

رزبری‌پای 40 پین (پایه) دارد که در ورژن قبلی 26 تا بودند. این پایه‌ها عملکردهای متفاوتی را فراهم می‌کنند. در صورتی که لیبل پایه RasPio را داشته باشید، به شما کمک خواهد کرد که هر کدام از پایه‌ها چه استفاده و کاربردی دارند. (سایت pinout.xyz تمامی مشخصات هر پایه‌ را مشخص کرده است و API آن برای رزبری‌پای طراحی شده. دستور pinout در ترمینال مشخصات پایه‌های رزبری‌پای را به صورت گرافیکی نمایش می‌دهد.)

اگر لیبل پایه‌ها را ندارید، راهنما زیر به شما کمک می‌کند تا شماره پایه‌ها را شناسایی کنید.

لیبل گذاری را به شکل 3V3، 5V، GND و GP2، GP3 و غیره مشاهده می‌کنید:

هشدار: اگر توضیحات را دنبال کرده باشید، کار کردن هرچند بدون دقت با پایه‌ها سرگرم کننده و بی‌خطر خواهد بود. اگر به صورت تصادفی به پایه‌های رزبری‌پای سیم یا منبع تغذیه متصل کنید به هرحال ممکن است بسوزد و خراب شود، به ویژه اگر با پایه 5 ولت کار می‌کنید.

سیم‌کشی lED

همانند شکل، LED را به پایه 17 رزبری‌پای متصل کنید (پایه‌های 16، 20 و 21 در برد starter به LED متصل شده‌اند)

پایه مثبت LED، بیشتر بزرگتر از پایه دیگر است،و این پایه‌ای است که باید در سمت چپ بردبُرد قرار بگیرد (مشابه شکل در مکان e1)

شروع نود رد

1. رزبری‌پای خود را روشن کنید. سپس بر روی آیکون رزبری‌پای کلیک کرده و از منوی برنامه‌نویسی (Programming) برنامه Node-RED را انتخاب کنید.

2. سپس پنجره‌ای که داده‌های شروع به کار نود رد را نمایش می‌دهد، مشاهده خواهید کرد.

3. حال بر روی آیکون رزبری‌پای کلیک کرده و به منوی Internet بروید. نرم افزار Chromium Web Browser را باز کنید.

4.  در کرومیوم، محل نوشتن آدرس در بالای آن قرار داد. آدرس localhost:1880 را در آن تایپ و سپس دکمه اینتر (Enter) کیبورد را فشار دهید. با این کار رابط کاربری نود رد را مشاهده خواهید کرد. (برای استفاده از نود رد نیاز نیست رزبری‌پای به اینترنت وصل شده باشد. آدرس localhost به این معنی است که رزبری‌پای به آدرس شبکه خود که با IP دستگاه هم شناحته می‌شود، رجوع داده شود. همچنین :1880 پورت نرم افزار نود رد برای دسترسی به تعریف شده است.)

اتصال به پایه‌های ورودی-خروجی

به برنامه‌های نوشته شده در نود رد flows گفته می‌شود. در بالای تب صفحه خالی، برچسب یا لیبل Flow1 را مشاهده کنید. می‌توانید تعداد زیادی برنامه که نیاز دارید را بسازید، که امکان اجرای همزمان همه آنها وجود دارد. در این راهنما تنها به یک Flow نیاز داریم.

1. بلوک‌های رنگی سمت چپ در رابط کاربری نود رد را، nodes می‌نامند. تا پایین لیست بروید، نودهای با لیبل Raspberry Pi را مشاهده خواهید کرد.

2. شما دو نود با لیبل rpi gpio مشاهده خواهید کرد. این نودها همان‌هایی هستند که برای ارتباط با پایه‌های رزبری‌پای از آنها استفاده خواهید کرد. اولین نود در لیست که آیکون رزبری‌پای در گوشه راست آن قرار دارد، برای ورودی است. استفاده از دکمه فشاری برای کنترل چیزی یک نمونه‌ از ورودی می‌باشد. نود دوم که آیکون رزبری‌پای در گوشه راست آن قرار دارد برای خروجی است. روشن یا خاموش شدن LED یک نمونه از خروجی می‌باشد. یک نود را از لیست بکشید و داخل صفحه خالی رها کنید.

3. دوبار بر روی نود کلیک کنید تا بخش پبکربندی و تنظیمات آن نمایان شود. پایه ورودی-خروجی رابه GPIO17 تغییر دهید و  تیک Initialise pin state را بزنید. تنظیم Initial level of pin را بر روی low مشخص کنید. عنوانی برای نود خود انتخاب کنید، در اینجا ما Green LED را انتخاب کردیم چرا که رنگ ال‌ای‌دی ما سبز رنگ است. اما شما در انتخاب عنوان آزاد هستید و هر عنوانی که خواستید در این قسمت وارد کنید. پس از انجام  و تمام شدن تغییرات بر روی Done کلیک کنید.

اعمال و تزریق ورودی

1. حال به بالای لیست نودها بروید. برای روشن و خاموش کردن LED نیاز به یک ورودی داریم. در نود رد می‌توانیم پیام‌هایی را در Flow تزریق و اعمال کنیم تا بر اساس خواسته‌ای که داریم، تغییرات اعمال شوند. نود inject (تزریق) را کشیده و داخل Flow رها کنید.

2. بر روی نود inject دوبار کلیک کنید. فهرست کشویی را باز کنید، نوع داده Payload را به String تغییر دهید و مقدار آن را 1 بگذارید. این مقدار پیامی است که برای ورودی نود دیگر ارسال خواهد کرد. عنوان نود را روشن (on) می‌گذاریم و دکمه done را انتخاب کنید.

3. مراحل قبل را برای ساخت پیامی که میخواهیم به نود دیگر تزریق کنیم، تکرار می‌کنیم. در این مرحله مقدار 0 را برای خروجی داده انتخاب می‌کنیم و عنوان آن را خاموش (off) می‌گذاریم.

4. حال دنبال نقطه خاکستری در سمت راست نود inject (تزریق داده و ورودی) بگردید. بر روی آن کلیک کنید و نود on را به نقطه خاکستری کنار نود LED متصل کنید. این کار را برای نود off تکرار کنید و آن را به نود LED متصل کنید.

انتشار برنامه

1. برنامه ما تمام شد، حالا می‌توانیم آن را در بستر شبکه منتشر کنیم. بر روی دکمه بزرگ قرمز رنگ که بالا سمت راست قرار دارد کلیک کنید. با کلیک بر روی دکمه Deply (انتشار) در بالای صفحه پیغام موفقیت اجرا و انتشار (“Successfully deployed”) نمایش داده می‌شود. این کار شبیه کلیک کردن پرچم سبز در برنامه اسکرچ یا F5 در برنامه‌نویسی پایتون است.

2. اکنون با کلیک  بر روی مربع آبی رنگ که سمت چپ نود on وجود دارد مقدار 1 را به ورودی نود LED  ارسال می‌کند. نود Green LED مقدار را دریافت می‌کند و LED روشن خواهد شد. همچنین برای خاموش کردن، با کلیک بر روی مربع آبی رنگ کنار نود off، مقدار 0 به نود LED ارسال خواهد شد.

اشکال‌یابی و بررسی برنامه

1. اگر LED روشن یا خاموش نمی‌شد، در گام نخست اتصال سیم‌ها را چک کنید. مطمئن شوید که هر دو پایه ال‌ای‌دی به شکل صحیح به پایه‌های Ground و Pin 17 رزبری‌پای متصل شده‌اند.

همچنین شما می‌توانید از نود رد بخواهید که اطلاعات برنامه زمان اجرا را برای اشکال‌یابی و بررسی (دیباگ – Debug) با اتصال نود Debug نمایش دهد. این نود زیر مجموعه Output قرار دارد. نود را کشیده و در در کنار دیگر نودها رها کنید. دو نود ورودی inject را به آن متصل کنید و در سمت راست رابط گرافیکی نود رد تب Debug را انتخاب کنید. زمانی که بر روی دکمه نود inject کلیک می‌کنید، نود رد مقداری که به سمت نود دیگر تزریق و ارسال می‌شود را نمایش می‌دهد.

برای نمونه، این خروجی بری زمانی است که ابتدا بر روی نود on و سپس بر روی نود off کلیک کرده‌ایم.

اضافه کردن دکمه

1. حال اجازه دهید برای کنترل LED یک دکمه اضافه کنیم. مطابق شکل زیر دکمه را به رزبری‌پای متصل کنید، به طوری که LED هنوز به پایه 17 رزبری‌پای متصل بوده و به پایه 4 سیم‌کشی شده است.

2. نودهای inject روشن و خاموش را با کلید بر روی آنها و زدن دکمه Delete کیبورد حذف کنید. دیگر نیازی به آنها نداریم چون که می‌خواهیم با یک دکمه فیزیکی LED را کنترل کنیم.

3. حال می‌خواهیم نود ورودی برای پایه‌های رزبری‌پای اضافه کنیم. این نود دارای آیکون رزبری‌پای در سمت چپ آن است. مطابق شکل، نود را برای دریافت ورودی با دکمه فیزیکی تنظیم می‌کنیم: 

مشخص کردن pullup به این معنی است که پایه 4 رزبری‌پای بر روی مقدار HIGH (مقدار 3.3 ولت) قرار بگیرد، اما وقتی که ما دکمه فیزیکی را فشار دهیم مقدار آن به LOW (مقدار 0 ولت) تغییر پیدا کند.

4. حال نود خروجی دکمه فیزیکی را به نودهای ال‌ای‌دی و دیباگ که پیش از این موجود بودند متصل می‌کنیم. دکمه Deploy برنامه را می‌زنیم و برنامه را با فشردن دکمه فیزیکی تست می‌کنیم.

شما متوجه خواهید که ال‌ای‌دی در زمان اجرای برنامه روشن می‌شود و زمانی که دکمه فیزیکی را فشار می‌دهیم خاموش می‌شود. این آن چیزی که ما می‌خواستیم نیست. به خاطر اینکه زمانی که پایه را در حالت pullup قرار می‌دهیم، پایه به صورت پیش فرض در حالت HIGH (ولتاژ 1 منطقی) قرار می‌گیرد. مقدار HIGH مقددار 1 را به ورودی نود ال‌ای‌دی می‌فرستند و آن را روشن می‌کند. زمانی که دکمه فیزیکی را فشار می‌دهیم مقدار ولتاژ پایه به LOW (مقدار 0 منطقی) تغییر می‌کند و مقدار 0 را به نود ال‌ای‌دی ارسال می‌کند که باعث خاموش شدن آن می‌شود. ما برعکس آن را نیاز داریم. می‌خواهیم که ال‌ای‌دی به صورت پیش‌فرض 0 باشد و با فشار دادن دکمه فیزیکی، مقدار 1 منطقی را از نود ورودی دریافت کند.

5. ارتباط  بین نودها که پیش از این بین نود دکمه فیزیکی و نود LED ایجاد کرده بودیم را حذف کنید. برای این کار تنها کافیست بر روی مسیر کلیک کرده و دکمه Delete کیبورد را بزنید.

6. یک نود Switch (سوئیچ) اضافه کنید. این نود را در بخش نودهای Function پیدا خواهید کرد. این نود مشابه دستورهای if/elif/else در اسکرچ و پایتون عمل می‌کند. می‌توانید برای آن بر اساس ورودی‌های مختلف، تعداد زیادی حالت خروجی برنامه‌ریزی و تعریف کرد (در کادر قرمز شکل پایین). در این مورد می‌خواهیم زمانی که مقدار msg.payload (ورودی) برابر یا 1 بود، حالت خروجی اول را طی کند. برای حالت دوم در پایین صفحه بر روی Add کلیک کرده تا اضافه شود. برای مورد اضافه شده گزینه otherwise (در غیر این صورت) را در پایین لیست انتخاب می‌کنیم. این حالت برای شرایطی است که ورودی ما مقدار 1 نباشد. پس از پایان دکمه Done را بزنید.

7. نود سوئیچ ساخته شده را با دو نقطه خاکسری رنگ در سمت راست آن مشاهده خواهید کرد. عنوان آن را If input is 1 (اگر ورودی 1 بود) بگذارید تا به سادگی توضیحی در مورد نود نمایش داده شود، این عبارت تاثیری در عملکرد آن ندارد.

8. اکنون خروجی نود دکمه ورودی را به ورودی نود سوئیچ (سمت چپ) آن متصل کنید.

9. حال نود change (تغییر) را از بین نودهای function به داخل اضافه کنید و برای تنظیم دوبار بر روی آن کلیک کنید.  از این نود برای تغییر مقدار ورودی استفاده خواهیم کرد. به خاطر داشته باشید زمانی که نود سوئیچ را ساختیم، خروجی اول آن برای ورودی‌ با مقدار 1 تعریف کردیم. ما از نود تغییر برای تغییر آن به 0 استفاده می‌کنیم.

10. گزینه Done را انتخاب کنید، سپس مسیری از خروجی اول نود سوئیچ به ورودی نود تغییر بکشید. خروجی نود تغییر را هم به نود ال‌ای‌دی وصل کنید.

11. حال نود تغییر دیگری را اضافه می‌کنیم و مقدار ورودی (msg.payload) آن را با 1 تنظیم می‌کنیم. این نود را به خروجی دوم نود سوئیچ و ورودی نود ال‌ای‌دی وصل می‌کنیم. زمانی که در نود سوئیچ خروجی دوم را در حالت ورودی غیر 1 (otherwise) قرار می‌دهیم، می‌خواهیم با نود تغییر این مقدار را به 1 تغییر دهیم. زمانی گزینه انتشار برنامه را می‌زنیم، با فشار دادن دکمه فیزیکی روی برد برد، خواهید دید که برنامه به درستی کار خواهد کرد.

حالا چکار کنیم؟

اکنون یک ال‌ای‌دی دارید، چرا بیش از 2 ال‌ای‌دی نداشته باشید و به پایه‌های مختلف رزبری‌پای متصل نکنید؟ چرا یک چراغ راهنما نسازید؟ می‌توان با دکمه‌ها آن را کنترل کرد؟

برای انجام دادن آن شما نیاز به نودهای بیشتر دارید. نود Delay (تاخیر، مکث) به شما اجازه می‌دهد تا برای هر چند ثانیه مکث داشته باشید. این نود در کنار دیگر نودهای عملکرد (function) قرار دارد.

برای تمام نودها، مشابه قبل می‌توانید آنها را به داخل برنامه بکشید و با دوبار کلیک بر روی آنها تنظیم مورد نظر را انجام دهید. فراموش نکنید هر نود را می‌توان به چند نود دیگر متصل کرد. برای نمونه، نود آغاز (start) در شکل زیر همزمان به دو نود دیگر متصل شده‌ است. برای شروع ساخت چراغ راهنما از نمونه گفته شده استفاده کنید، ابتدای کار را نمایش داده است.

error: