شاید بارها با خودتون فکرکرده باشید که ایا امکانش است با نرمافزار های PC یتوانیم یک سختافزار را کنترل کنیم و یا خودمان بتوانیم این نرمافزار ها را درست کنیم و به یک سخت افزار متصل کنیم و در نهایت از نرمافزار ساخته شده جهت کنترل سختافزار استفاده کنیم. بله کاملا درست فکر میکنید این کار با سیشارپ کاملا شدنی است.
در این پروژه از سری پروژه های آردوینو قصد داریم توسط یک نرمافزار که در محیط سیشارپ طراحی شده است را به سختافزار اردوینو متصل کنیم و پس از اتصال به سختافزار یک LED را توسط نرمافزار ساخته شده کنترل کنیم. با سیسوگ همراه باشید.
قاعدتا برای شروع به یک سری ادوات الکترونیکی و نرمافزارهای مرتبط با کارمان نیاز داریم که شامل موارد زیر میشوند.
- آردوینو (UNO)
- ال ای دی یک عدد
- سیم
- نرم افزار آردوینو
- Visual Studio
خب لازم است که قبل از شروع کار یک تاریخچهای از نرمافزار های که میخواهیم با انان کار کنیم بدانیم(حداقل بدونیم چی هستن و از کجا اومدن)
سی شارپ چیست؟
سی شارپ (به انگلیسی: C#)یک زبان برنامهنویسی کامپایلری، سطح بالا، شیءگرا، ساخت یافته، رویداد محور، تابعی، دستوری و جنریک است که توسط شرکت مایکروسافت در سال ۲۰۰۰ میلادی از خانوادهٔ زبانهای چارچوب داتنت معرفی شد. زبان سی شارپ همچنین از خانواده زبانهای برنامهنویسی سی (C) است.
آردوینو چیست؟
آردوینو (به انگلیسی: Arduino) یک پلتفرم سخت افزاری و نرم افزاری متن باز است. پلتفرم آردوینو شامل یک میکروکنترلری تکبردی متنباز است که قسمت سخت افزار آردوینو را تشکیل میدهد. علاوه بر این پلتفرم آردوینو یک نرم افزار IDE که به منظور برنامهنویسی برای بردهای آردوینو طراحی شده است و یک بوت لودر نرم افزاری که بر روی میکروکنترلر بارگذاری میشود را در بر میگیرد. پلتفرم آردوینو به منظور تولید سریع و ساده پروژههای سخت افزاری تعاملی و ساخت وسایلی که با محیط تعامل داشته باشند طراحی شدهاست. البته بردهای آردوینو اهداف آموزشی را نیز دنبال میکنند.
خب بریم سراغ بخش اصلی کار
در ابتدا مداری که لازم داریم رو میبندیم به این صورت که:
- پایه مثبت ال ای دی رو به یکی از پایه های دیجیتال آردوینو (در اینجا ما به 13 وصل میکنیم ) متصل میکنیم.
- پایه منفی ال ای دی رو هم به GND متصل میکنیم.
بخش سخت افزاری کار تمام شده است و به سراغ بخش اصلی و نرم افزاری کار میرویم(تمرکز ما هم دقیقا همین بخش است).
نرم افزار آردوینو را باز میکنیم و یک پروژه جدید ایجاد کنیم.
کد های زیر را در نرم افزار آردوینو قرار میدهیم و سپس روی برد آردوینو آپلود میکنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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) استفاده خواهیم کرد که در ادامه به توضیح هر کدوم میپردازیم.
3. کد نویسی در سیشارپ
بر روی دکمه ON دابل کلیک میکنیم تا به محیط برنامه نویسی مربوط به دکمه موردنظر برویم و کد زیر را در ان بخش قرار میدهیم.
1 2 3 4 | private void Button1_Click(object sender, EventArgs e) { serialPort1.Write("1"); } |
بر روی دکمه OFF دابل کلیک کنید و کد زیر را در ان بخش قرار میهیم.
1 2 3 4 | private void Button2_Click(object sender, EventArgs e) { serialPort1.Write("0"); } |
بر روی دکمه RUN دابل کلیک میکنیم و کد زیر را در قسمت مربوطه قرار میدهیم.
1 2 3 4 5 6 | 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 ال ای دی خاموش می شود.
نرمافزار را میتوانید از این قسمت دانلود کنید.
در این آموزش تقریبا سعی شد تمام مراحل به صورت جز به جز و کامل ارائه شود امیدوارم که این اموزش هم برای شما مخاطبین مفید واقع شده باشد.
واقعا خیلی گشتم تا تونستم یه آموزش خوب پیدا کنم
خیلی ممنون از آموزشتون
سلام ممنون از اموزشتون لطفا ترو خدا بگیر این رو چجور تو سی شارپ تحت کنسول بسازیم
سلام دوست عزیز
ساده است اول یه پروژه کنسول میسازی همین کد ها رو می تونی استفاده کنی فقط باید پارامتر ها رو پاس بدی به برنامه که آموزشش توی اینترنت زیاد هست
اینم آموزش خود ماکروساقت
Create a simple C# console app
سلام
برای کنترل چند تا led باید کد ما به چه شکلی باشه؟
یا اون کد های اصلی چی هستند؟
لطفا به من کمک کنید.
واقعا ممنون از سایت خوبتون.
خیلی کاربردی بود.
سلام خدمت دوست عزیز آقای اسکینی:
با تشکر از مطلب آموزش کنترل LED توسط نرمافزار کامپیوتر شما واقعا عالی بود.
اگر امکان داره من دنبال برنامه ای مثل مثال بالا هستم که بتوانم مثلا دو یا سه تا دما رو روی اردینو بخونم و انها رو به پورت سریال بفرستم و مثلا در دو یا سه تکست باکس در سی شارپ ببینم . ممنون میشوم مرا یاری کنید . با تشکر قشقایی
سلام
تشکر بابت مطلب آموزنده.
با سلام خدمت شما دوست عزیز
از توجه و لطف شما متشکر