مقدمه
شاید بارها با خودتون فکرکرده باشید که ایا امکانش است با نرمافزارهای PC یتوانیم یک سختافزار را کنترلکنیم و یا خودمان بتوانیم این نرمافزارها را درستکنیم و به یک سختافزار متصلکنیم و درنهایت از نرمافزار ساختهشده جهت کنترل سختافزار استفادهکنیم. بله کاملا درست فکر میکنید این کار با سیشارپ کاملا شدنی است. در این مقاله قصد داریم توسط یک نرمافزار که در محیط سیشارپ طراحیشدهاست را به سختافزار اردوینو متصلکنیم و پساز اتصال به سختافزار یک LED را توسط نرمافزار ساختهشده کنترلکنیم. باما همراه باشید. قاعدتا برای شروع به یکسری ادوات الکترونیکی و نرمافزارهای مرتبط با کارمان نیاز داریم که شامل موارد زیر میشوند:
- آردوینو (UNO)
- ال ای دی یک عدد
- سیم
- نرم افزار آردوینو
- Visual Studio
خب لازماست که قبلاز شروع کار یک تاریخچهای از نرمافزارهای که میخواهیم با انان کار کنیم بدانیم(حداقل بدونیم چی هستن و از کجا اومدن؟)
سی شارپ چیست؟
سی شارپ(به انگلیسی: C#) یک زبان برنامهنویسی کامپایلری، سطح بالا، شیءگرا، ساخت یافته، رویداد محور، تابعی، دستوری و جنریک است که توسط شرکت مایکروسافت در سال ۲۰۰۰ میلادی از خانوادهٔ زبانهای چارچوب داتنت معرفی شد. زبان سی شارپ همچنین از خانواده زبانهای برنامهنویسی سی(C) است.
آردوینو چیست؟
آردوینو(به انگلیسی: Arduino) یک پلتفرم سختافزاری و نرمافزاری متنباز است. پلتفرم آردوینو شامل یک میکروکنترلری تکبردی متنباز است که قسمت سختافزار آردوینو را تشکیل میدهد. علاوهبر این پلتفرم آردوینو یک نرمافزار IDE که بهمنظور برنامهنویسی برای بردهای آردوینو طراحیشدهاست و یک بوتلودر نرمافزاری که برروی میکروکنترلر بارگذاری میشود را دربرمیگیرد. پلتفرم آردوینو بهمنظور تولید سریع و ساده پروژههای سختافزاری تعاملی و ساخت وسایلی که با محیط تعامل داشتهباشند طراحیشدهاست. البته بردهای آردوینو اهداف آموزشی را نیز دنبال میکنند.
خب بریم سراغ بخش اصلی کار در ابتدا مداری که لازمداریم رو میبندیم به اینصورت که:
- پایه مثبت الایدی رو به یکیاز پایههای دیجیتال آردوینو(در اینجا ما به ۱۳ وصل میکنیم) متصل میکنیم.
- پایه منفی الایدی رو هم به GND متصل میکنیم.
بخش سختافزاری کار تمامشدهاست و به سراغ بخش اصلی و نرمافزاری کار میرویم(تمرکز ما هم دقیقا همین بخش است). نرمافزار آردوینو را باز میکنیم و یک پروژه جدید ایجاد کنیم. کدهای زیر را در نرمافزار آردوینو قرار میدهیم و سپس روی برد آردوینو آپلود میکنیم.
int led = 13; char in; void setup() { Serial.begin(9600); pinMode(led,OUTPUT); } void loop() { in = Serial.read(); if(in == '0'){ digitalWrite(13,0); } else if(in == '1' ){ digitalWrite(13,1); } }
اکنون نرمافزار Visual Studio را باز کنید و یک پروژه جدید در محل دلخواه و با نام دلخواه ایجاد کنید. با برنامهای مطابق شکلزیر مواجه خواهید شد.
بااستفادهاز درگکردن(کشیدن) اندازه فورم را متناسب با کارایی نرم افزار تنظیم میکنیم.
در برنامهنویسی فورم ها با سی شارپ ابتدا ظاهر فورم رو تنظیم میکنیم و سپس آیتمهای موردنیاز را نامگذاری و درنهایت به کدنویسی برنامه میپردازیم.
1. ظاهر فورم سیشارپ
در برنامه ما به سه دکمه(button) نیاز داریم از قسمت ToolBox در سمت چپ برروی button سهبار دابل کلیک میکنیم تا سه دکمه برای ما ایجاد شود.
در قسمت بعدی دکمهها را ازنظر اندازه و مکان تنظیم میکنیم.
لیبلها(label) برای نمایش متن ثابت استفاده میشوند از قسمت ToolBox دوبار برروی Label دابل کلیک میکنیم.
در ادامه مکان لیبلها را روی فورم تنظیم میکنیم.
برای ارتباط با آردوینو ما نیازمند به آیتمی به اسم Serialport هستیم از قسمت ToolBox ایتم را پیدا و برروی ان دابل کلیک میکنیم.
در قسمت آخر یک جعبه متن(textbox) ازطریق جعبه ToolBox به فورم اضافه و مکان ایکون را همانند شکلزیر روی فورم تنظیم میکنیم.
2. نامگذاری در سیشارپ
همانطورکه گفتهشد در مرحله دوم به نامگذاری ایتمها میپردازیم اما قبلاز ان لازماست تا با خصوصیتهای هر آیتم تا حدودی آشنا شویم.
در این برنامه ما فقط از دو خصوصیت نام(name) و متن (text) استفادهخواهیمکرد که درادامه به توضیح هرکدوم میپردازیم.
- خصوصیت نام(name): برای نامگذاری آیتم و ارجاعدادن به شیئ درهنگام کدنویسی.
- خصوصیت متن(text): برای تغییر متن حاوی آیتم برروی فورم
- برروی دکمهbutton1 یکبار کلیک میکنیم و خصوصیت متن را به “ON” تغییر میدهیم.
- برروی دکمهbutton2 یکبار کلیک میکنیم و خصوصیت متن را به “OFF” تغییر میدهیم.
- برروی دکمهbutton3 یکبار کلیک میکنیم و خصوصیت متن را به “RUN” تغییر میدهیم.
- برروی label2 یکبار کلیک میکنیم و خصوصیت متن را به “Port : ” تغییر میدهیم.
- برروی label1 یکبار کلیک میکنیم و خصوصیت متن را به “…” تغییر میدهیم. و خصوصیت نام را به lblresult تبدیل میکنیم.
- برروی جعبه متن یکبار کلیک میکنیم و خصوصیت نام اون رو به “txtport” تغییر میدهیم.
3. کدنویسی در سیشارپ
برروی دکمه ON دابلکلیک میکنیم تا به محیط برنامهنویسی مربوط به دکمه موردنظر برویم و کد زیر را در ان بخش قرار میدهیم.
private void Button1_Click(object sender, EventArgs e) { serialPort1.Write("1"); }
برروی دکمه OFF دابلکلیک کنید و کد زیر را در ان بخش قرار میهیم.
private void Button2_Click(object sender, EventArgs e) { serialPort1.Write("0"); }
برروی دکمه RUN دابلکلیک میکنیم و کد زیر را در قسمت مربوطه قرار میدهیم.
private void Button3_Click(object sender, EventArgs e) { serialPort1.PortName = txtport.Text; serialPort1.Open(); lblresult.Text = txtport.Text + " Is running "; }
خب خسته نباشید تا اینجا کدنویسی نرمافزار و سختافزار تموم شد و حالا وقتشرسیده که کد را تستکنیم. دکمه start رو از روی نوار ابزاری بالای نرمافزار کلیک میکنیم.
حال برنامه اجرا میشود(بستگی به سیستم شما ممکناست این امر کمی زمانبر باشد) و در بخش port ما باید پورتی که آردوینو به ان متصلاست را وارد کنیم(مثلا com3) و برروی دکمه Run کلیک کنیم. متن لیبل زیر دکمه run به “com3 is running ” تبدیل میشود که این بهمعنای درست کارکردن برنامه و ارتباط صحیح با آردوینو میباشد و درغیر اینصورت به ما خطا نشان میدهد که با زدن دکمه continue به برنامه باز میگردیم و انرا اصلاح میکنیم. با زدن دکمه on الایدی روشن و با زدن دکمه off الایدی خاموش میشود.
فایلهای دانلودی موردنیاز
نرمافزار را میتوانید از این قسمت دانلود کنید: PP-1.7z
در این آموزش تقریبا سعیشد تمام مراحل بهصورت جزبهجز و کامل ارائهشود امیدوارم که این اموزش هم برای شما مخاطبین مفید واقعشدهباشد.
منبع: سیسوگ