صفحه اصلی ۱۳۹۷/۹/۱۶ ۲۲:۱۷:۳۲

یادگیری بگونه ای متفاوت

در آردوینو۱۴

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

درست آمده اید!!

خیلی وقتها میخوای یه چیزی درست کنی که خاص باشه بعضی موقعها خیلی ایده به ذهنت میرسه ولی خیلی سخته اونا رو بسازی!یا وقت بذاری و هزینه کنی تا  کسی اون رو برات بسازه!!به امید خدا سعی میشه تا  آردوینو رو از ابتدا به روشی متفاوت تر از بقیه , ساده ,  قابل فهم همراه با مثال و شکل و … در  ۱۴ فصل آموزش بدیم تا کسانیکه ابتدای راه هستند و سخته براشون ایده هاشون رو عملی کنند یا الکترونیک براشون جذابه بتونن راحت تر اونا رو یاد بگیرند و ایده هاشون روعملی کنند.


حالا چرا ۱۴ فصل؟
هر فصل تقدیم میشه به یکی از امامان معصوم بهمین دلیل ۱۴ فصل تقدیم میشه به چهارده معصوم(ع)

آموزش آردوینو فصل اول

در فصل اول یاد می گیریم که :

  • آردوینو چیست؟
  • آشنایی با چند بورد آردوینو
  • یه کار جالبناک ( اولین پروژه رو بسازیم)
  • آشنایی با نرم افزار آردوینو
  • پین های ورودی و خروجی آردوینو
  • تحلیل کدهای اولین پروژه (led چشمک زن)
  • digital write
  • delay
  • نکات مهم
  • تمرین
آموزش آردوینو فصل دوم

در فصل دوم یاد می گیریم که :

  • پایه آنالوگ وطریقه خواندن ورودی از پایه آنالوگ
  • پروتکل سریال چیست؟
  • پیاده سازی پروتکل سریال بین بورد آردوینو و کامپیوتر
  • pwm چیست؟
  • انجام یک پروژه عملی با PWM (اولین پروژه)
  • تمرین
آموزش آردوینو فصل سوم

در فصل سوم یاد می گیریم که :

  • تنظیم خروجی برحسب ورودی در دیجیتال
  • تنظیم خروجی برحسب ورودی در آنالوگ
  • دستور if درآردوینو
  • انجام یک پروژه عملی با PWM (دومین پروژه)
  • Pull-down چیست؟
  • دستور map در آردوینو
آموزش آردوینو فصل چهارم

در فصل چهارم یاد می گیریم که :

  • چطور با آردوینو صدا تولید کنیم؟
  • Buzzer
  • پورت سریال قسمت دوم
  • ASCII Table
  • ()Serial.ParseInt
  • ()Serial.Parsefloat
  • ()Serial.readString
  • تمرین
آموزش آردوینو فصل پنجم

در فصل پنجم یاد می گیریم که :

  • پورت سریال نرم افزاری در آردوینو
  • آشنایی با ()millis
  • متغیر long  و دستور while
  • برنامه ساده با متغیر ()millis
  • پروژه : خاموش و روشن کردن لامپ با صدای دست زدن
  • راه اندازی ماژول رله
  • تمرین

پورت سریال نرم افزاری در آردوینو

پورت سریال نرم افزاری چیه؟

خیلی ساده است! یه پورت سریال هست که بصورت نرم افزاری روی دوتا پایه خاص بعنوان tx و rx ایجاد میکنیم و مثل پورت سریال سخت افزاری اردوینو هست.

 آردوینو که خودش پورت سریال داره چرا پورت سریال نرم افزاری؟

یه زمانی هست که شما نیاز داری آردوینو از طریق پورت سریال به یه دستگاهی , ماژولی و… متصل بشه و یکسری دستورات بفرسته.

خب میفرسته!

اگه بخوای ببینی که اون ماژول چی جواب داده چی؟

چون پورت سریال بین آردوینو و اون ماژول اشغال شده , دیگه نمیتونیم ببینیم که بین اون ماژول و آردوینو چه اطلاعاتی ردو بدل شده و اگه مشکلی باشه بتونم اون رو تشخیص بدم, بنابراین نیاز دارم که یه پورت سریال دیگه ای هم داشته باشم که اطلاعات ردو بدل شده رو به سمت پورت سریال کامپیوتر هم بفرسته.

بعضی مواقع هم نیاز داری که با دو تا ماژول ارتباط سریال برقرار کنی یا بعبارت ساده تر با آردوینو و دوتا پورت سریال بتونی با دو تا برد آردوینو دیگه ارتباط برقرار کنی (مثل شکل زیر), نیاز داری که بیش از یک پورت سریال داشته باشی.

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

ابتدا به مسیر زیر در خود نرم افزار میریم و مثالش رو میاریم:

یا اگرم نخواستیم میتونیم از اول خودمون شروع کنیم به نوشتن برنامه.خب همونطور که معلومه اول بایستی  SoftwareSerial.h رو به برنامه فراخوانی کنیم:

بعد اسم ارتباط سریال و پینهایtxو rx رو باید مشخص کنیم. خب پین هایی که خود مثال در نظر گرفته پایه ۱۰ برای rx یعنی گیرنده و پایه ۱۱ برای فرستنده می باشد. اسم ارتباط سریال رو هم mySerial  گذاشته.

SoftwareSerial mySerial(10, 11); // RX, TX

اما چون قراره ما خودمون تست کنیم و یاد بگیریم , اسم ارتباط سریال رو میذاریم مثلا arduino14 و پایه ها رو هم ۶برای  rx و ۷ برای tx در نظر میگیریم مثل زیر :

SoftwareSerial arduino14(6, 7); // RX, TX

بعد از اون وارد void setup  میشیم و یک ارتباط سریال با سرعت ۹۶۰۰ رو انتخاب میکنیم. درحقیقت این پورت سریال سخت افزاری مون هست که همیشه باهاش کار میکردیم. و بعد هم یه جمله مثل :port hardware serial رو میفرستیم به پورت سریال . بعد از اون بایستی سرعت پورت سریال نرم افزاری رو تعیین کنیم اینجا مثلا ۹۶۰۰ دادیم .اگر پورت سریال نرم افزاریتون یا پورت سریال سخت افزاریتون رو به یه دستگاه دیگه خاستین متصل کنین بایستی حواستون باشه که سرعتش رو بر مبنای اون دستگاه در نظر بگیرین که دچار مشکل نشین.

خب در اینجا پورت سریال نرم افزاریمون رو هم ۹۶۰۰ در نظر گرفتیم و بعد یه جمله ای مثل : port software serial  رو میفرستیم به پورت سریال نرم افزاری.

تا الان باید برنامتون به شکل زیر باشه:

بعد از قسمت بالا میرسیم به حلقه اصلی برنامه void loop جاییکه باید کاری که آردوینو انجام میده رو کد نویسی کنیم.میخایم چیکار کنیم ؟

میخایم بگیم که که اگه آردوینو روی پورت نرم افزاری که تعریف کردیم اطلاعاتی گرفت , بیاد و اون اطلاعات رو بفرسته روی پورت سریال و  اگه روی پورت سریال اطلاعاتی گرفت بیاد و اونو بفرسته به پورت سریال نرم افزاری. اگه متوجه نشدین از اول مرور کنین تا مطلب براتون روشن بشه.

خب اول از همه با هم مرور میکنیم که پورت سریال اصلی برنامه (پایه های ۰ و ۱) از طریق کابل یو اس بی که همون کابلی هست که یکسرش به اردوینو خورده , به کامپیوتر متصل هست.

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

یه توضیح کوچیک راجه به مبدل یو اس بی به سریال داریم و باز بر میگردیم به برنامه. مبدل سریال به یو اس بی چیه؟

کار این مبدل اینه که به پورت USB کامپیوتر متصل بشه و بعد اونو تبدیل کنه به پورت سریال TTL,  پورت سریال TTL در ۵ ولت کار میکنه و با پورت سریال کامپیوتر های قدیمی محدوده ولتاژیش فرق میکنه. کار این مبدل در اینجا این هست که از یکطرف متصل میشه به کامپیوتر و برای ما یک پورت میسازه مثل آردوینو و از طرف دیگه پایه هایی داره برای ارتباط سریال که در اینجا معکوس بسته میشه به پورت سریال نرم افزاری آردوینو.

یعنی چی معکوس؟

 یعنی rx مبدل متصل میشه به tx نرم افزاری آردوینو (که در برنامه پین ۶ در نظر گرفتیم)

و tx مبدل متصل میشه به rx نرم افزاری آردوینو (که در برنامه پین ۷ در نظر گرفتیم)

چرا باید معکوس باشه؟

چون وقتی یکی حرف میزنه (tx داره) اون یکی باید گوش بده( باید rx داشته باشه) و بالعکس.

این مبدل سریال به یواس بی چه شکلیه؟ یک مدلش بصورت شکل زیر هست:

به کانال تلگرام ما بپیوندید !

khodet_besazesh@