توسعه دهندهگان با زبانهای مختلف برنامه نویسی، پیشرفتهایی را هر روز بوجود میآورند. یکی از زبانهای سریع و مقیاس پذیر در زمینه رباتیک و اینترنت اشیاء IoT جاوا اسکریپت Javascript میباشد. پیش از این در مورد آردوینو بارها صحبت کردیم و راجع به قدرت این برد در اجرای انواع کدهای مختلف هم اشاره کردهایم. اما در این آموزش با زبان برنامه نویسی قدرتمند جاوا اسکریپت Javascript به برد آردوینو Arduino فرمان میدهیم. لازم است بدانید که برای شروع به Node js نیاز داریم. به مرور کارهای بسیار جذابی را با این نرم افزار آموزش خواهم داد. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
شروع کار با Node js
شاید برای خیلیها عجیب باشد که در مورد شیء گرایی با جاوا اسکریپت متنی بخوانند. واقعیت این است که جاوا اسکریپت ساختارهای شیء گرایی با قابلیتهای بسیار بالایی دارد اما به دلیل تفاوت این شیء گرایی با شیء گرایی های معمول در زبان های شبه C، این ساختارها برای برنامه نویسانی که از ابتدا با Java، C و … کار کرده اند کمی عجیب است. همه از فواید شیء گرایی و ماهیت آن اطلاع داریم بنابراین از شرح شیء گرایی می گذریم. در اینجا می خواهیم با نوع خاصی از شیء گرایی آشنا شویم که به عنوان prototyping شناخته می شود.
برنامه نویسی بر مبنای Prototype نوع خاصی از برنامه نویسی به سبک شیء گرایی است که در آن از کلاس خبری نیست! تنها چیزی هایی که داریم اشیاء هستند. به عبارت بهتر کلاس ها مشخصاً به عنوان ماهیتی مجزا از اشیاء تعریف نمیشوند. خصوصیاتی نظیر ارث بری با دستکاری اشیاء موجود یا به عبارت دیگر prototype ها به وجود میآیند.
برنامه نویسی شیء گرا
اشیاء اصلی جاوا اسکریپت
جاوا اسکریپت در هسته خود چند شیء از پیش تعریف شده دارد: Array ، Object،Boolean، String، Math، Number، RegExp، Date و Function. همه این اشیاء از شیء Object ساخته شده اند.
تعریف اشیاء
در زبان های شبه C، اشیاء از روی کلاس ها ایجاد می شوند. همانطور که گفته شد در جاوا اسکریپت statement ای به عنوان Class وجود ندارد. اما راه هایی برای تعریف اشیاء جدید پیش روست.
استفاده از Object
گفتیم تمام اشیاء از Object ساخته شده اند. ما هم می توانیم برای ایجاد اشیاء جدید از آن استفاده کنیم. برگرفته از وب سایت Nodejs.ir
چهارچوب جاوا اسکریپت در رباتیک
وقتی صحبت از Framework یا همان چهار چوب میکنیم، منظور بستری با قوانین مشخص برای توسعه میباشد. در راستای به کار گیری زبان برنامه نویسی جاوا اسکریپت در رباتیک Robotic و اینترنت اشیاء IoT از چهار چوب Johnny-Five استفاده میکنیم. بستر Johnny-Five اوپن سورس و منحصرا برای توسعه رباتیک بوجود آمده است. جامعه کاربری Johnny-Five بسیار روبه رشد و سرعت حرکتی فراتر از تصور را دارد. تا به اینجا ما در ایران از پلتفرمها و چهارچوبهای غیر بومی استفاده کردهایم. تلاش بنده و همکارانم در دیجی اسپارک ایجاد بسترهای بومی با تکیه بر دانش جوانان ایران است. بنابراین خواهشا از هر مطلبی که در دیجی اسپارک مطالعه میکنید، نهایت استفاده را ببرید و ایدههایتان را تا عملی شدن به کار بگیرید. من و همکارانم در این راستا کنار شما خواهیم بود.
پروژه LED Blink با Javascript
در این آموزش با استفاده از زبان برنامه نویسی جاوا اسکریپت، روی برد آردوینو برنامه ال ای دی چشمک زن را راه اندازی میکنیم. پروژه بسیار ساده است و هدف فراگیری شیوه آپلود کدهای جاوا اسکریپت روی برد آردوینو میباشد. پس کلیه مراحل را به دقت دنبال و اجرا کنید. کلیه این مراحل در آموزشهای بعدی بسیار اهمیت دارد.
نصب Node js در ویندوز
برای نصب Node js به چند روش میتوان اقدام کرد. سادهترین حالت دانلود فایل installer ویندوز از سایت Node js میباشد. یا اینکه از مخازن دیجی اسپارک نرم افزار node-v8.11.3-x64 را دانلود و نصب کنید. مراحل نصب بسیار ساده است. اگر با مشکل مواجه شدید از طریق نظرات همین آموزش سوالتان را مطرح کنید. پس از نصب لازم است که فایل Node.js command prompt را اجرا کنید. در ادامه دستورات لازم را توضیح خواهم داد.
تنظیمات نرم افزار Arduino IDE
قبل از اقدام به نوشتن برنامه تحت زبان جاوا اسکریپت روی آردوینو Arduino Javascript نیاز به انجام تنظیماتی در نرم افزار قدرتمند آردوینو Arduino IDE میباشد. من از برد آردوینو Uno استفاده کردهام. نرم افزار آردوینو IDE را باز کنید. از مسیر Tools>Port پورت صحیح که آردوینو از طریق آن شناسایی شده است، را انتخاب کنید. بعد از اینکار از طریق مسیر File > Examples > Firmata گزینه StandardFirmata را انتخاب کنید. سپس یک پنجره جدید آردوینو باز خواهد شد. گزینه آپلود کدها روی آردوینو را کلیک کنید. منتظر بمانید تا کدها آپلود شوند. از اینجا دیگر به نرم افزار Arduino IDE نیازی نداریم. میتوانید نرم افزار را با خیال راحت ببندید.
اتصال LED به آردوینو
پیش از اقدام لازم است ترتیب پایههای LED را بدانید. هر ال ای دی معمولی دارای دو پایه میباشد. پایه کوتاهتر منفی و پایه بلندتر مثبت است. پیشنهاد میشود برای کار کرد بلند مدت، هر ال ای دی با یک مقاومت در حدود ۲۲۰ اهم به برد آردوینو متصل شود. ولی اجباری به استفاده هم وجود ندارد. اگر مقاومت در دسترس ندارید، میتوانید این پروژه را همانطور که من اجرا کردم، پیش ببرید. یک نگاه به پایههای برد آردوینو Uno بیاندازید. پایه ۱۳ و GND کنار هم هستند. بنابراین ال ای دی را به این دو پایه اتصال میدهیم.
- پایه کوتاه LED به GND آردوینو
- پایه بلند LED به پین ۱۳ آردوینو
جاوا اسکریپت آردوینو Johnny-Five
var five = require('johnny-five'); var board = new five.Board(); board.on('ready', function() { var led = new five.Led(13); // pin 13 led.blink(500); // 500ms interval });
اجرا کد جاوا اسکریپت آردوینو
برای اجرای کدها نرم افزارهای مختلفی وجود دارد. پیشنهاد بنده استفاده از Notepad++ میباشد. این نرم افزار به صورت پیشفرض روی ویندوز قرار دارد. کدها را کپی کرده و در notepad++ وارد کنید. حال لازم است که فایل را در مسیر C:\users\yourpc ذخیره کنید. من به اسم led.js در مسیر C:\Users\Arvand ذخیره کردم. حال وارد Node.js command prompt شده و دستور زیر را وارد کنید.
node led
همانطور که مشاهده میکنید به علت شناسایی ۳ پورت و انتخاب پورت غلط، نرم افزار ارور میدهد. در این حالت ال ای دی آردوینو هیچ تغییری نمیکند. در قسمت قبلی از طریق نرم افزار آردوینو پورت متصل شده را شناسایی کردیم. حال کافیست در داخل کدهای Notepad++ یک خط دیگر اضافه کرده و پورت صحیح را وارد کنیم. به کدهای زیر توجه کنید.
var five = require('johnny-five'); var board = new five.Board( { port: "com4" } ); board.on('ready', function() { var led = new five.Led(13); // pin 13 led.blink(500); // 500ms interval });
به سطر ۵ دقت کنید. به صورت انحصاری اعلام شده است که از پورت Com4 استفاده شود. سپس این فایل را ذخیره و مجددا دستور node led را اجرا میکنیم. به تصویر زیر دقت کنید. سپس مشاهد خواهید کرد که ال ای دی روی برد آردوینو توسط کدهای جاوا اسکریپت شروع به چشمک زدن میکند.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
پروژه
طی چند قسمت قبلی که طرح پروژه را پیاده سازی کردیم، با استقبال شما کاربران مواجه شدیم. در این سری برای اینکه گستره بیشتری از افراد بتوانند فرصت استفاده از بن خرید را داشته باشند؛ روال دیگری را در پیش گرفتیم. در این روش تصمیم گرفتهایم به ۱۰ نفر از کاربران بن خرید ارایه شود. برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و بسته به خلاقیت، مدار جدیدی ایجاد کنید. سپس از اجرای کار فیلم گرفته و در شبکههای اجتماعی از جمله آپارات و اینستگرام، با هشتگهای دیجی_اسپارک و دانشجوکیت و digispark و daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۰۳۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
بسیار ممنون
خواهش میکنم.
عرض سلام و سپاس فراوان از شما
لطفاً در باره error زیر راهنمایی بفرمایید
> node led
Thrown:
node led
^^^
SyntaxError: Unexpected identifier
>
با سلام
سوال شما خیلی کلی است و امکان رسیدگی ندارد، لطفا موارد را کاملتر ارسال کنید تا بنده بررسی کنم.
سلام و سپاس فراوان. آیا میشه اشکالات رو اینجا مطرح کرد؟ من برای شروع node.js به یک error برخورد کردم که اینجا هم مطرح کردم ولی ظاهرا دیدگاه من حذف شده. ممنونم از مطالب بسیار عالی.
با سلام و تشکر از شما
بله میتوانید ارسال کنید، روش کار دیجی اسپارک از طریق بخش نظرات در موضوعهای مرتبط است.
مرسی عالی بود
سلامت باشید.
بسیار متشکرم اروند جان،
آیا امکان ساخت وب سرور از طریق نود و آپلود در هاست و کنترل برد باهاش وجود داره؟
خوشحال میشم مطلبی در موردش ارائه بدی
با سلام
از توجه شما سپاسگزارم. در خصوص ساخت وب سرور بله این امکان با بردهای آردوینو یا رزبری پای وجود دارد. لطفا درخواستتان را کاملتر بفرمایید تا بررسی کنم.