آموزش آردوینو پروژه چهارم: لذت یک ارتباط تازه

آموزش آردوینو پروژه چهارم: لذت یک ارتباط تازه

آموزش آردوینو پروژه چهارم: لذت یک ارتباط تازه
آموزش آردوینو پروژه چهارم: لذت یک ارتباط تازه

آموزش آردوینو پروژه چهارم

خیلی معقول نیست که توی عصر ارتباطات و دهکده جهانی و پیتزا، شما توی فضای یک وجبی برد بورد، خودتون رو حبس کنید! منزوی و درون‌گرا نباشید و سعی کنید ارتباطات تازه برای خودتون دست و پا کنید.

چجوری؟ یکم اطرافتون رو نگاه کنید تا ببینید چه چیز جدیدی برای ارتباط میشه پیدا کرد. نه اون نه! منظورم اون نیست! بله همون کامپیوتر یا لپ‌تاپی که بورد تون رو بهش متصل کردید دیگه. در واقع از همون روز اول بهش متصل بودیم اما مثل انگل ازش فقط به‌عنوان منبع تغذیه استفاده کردیم. حالا وقتشه کمی باهاش صحبت کنیم!

مدار:

امیدوارم مداری که اینجا طراحی کردیم رو خیلی در به داغون نکرده باشید؛ چون می‌تونیم فقط با یکم تغییر، پروژه چهارم آموزش آردوینو رو باهاش انجام بدیم.

اون میکرو سوئیچ و سیم های اضافه رو بردارید و مدار رو شکل زیر کنید. از این ساده تر هم میشه؟ خوب بله احتمالاً میشه اما همینم خوبه دیگه!

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

اگه توی DeviceManager سیستم‌تون دقت کرده باشید، سیستم شما رو به‌عنوان یک پورت com‌ میشناسه. پس میتونید از طریق سریال با سیستم‌تون ارتباط داشته باشید.

هدف پروژه:

قراره همون ۳ تا LED پروژه سوم رو به همون شیوه، روشن و خاموش کنیم؛ اما این بار به‌جای دکمه، از کامپیوتر بهش دستور میدیم.

من کدهای اضافی رو حذف کردم و به این کد تبدیلش کردم:

توی Setup گفتم که قراره با نرخ 9600 با پورت سریال ارتباط برقرار کنم و برای شروع، بهترین کار سلام کردنه!

نوشتن توی سریال به همین سادگی که دیدید هست. خوندنش هم اون‌قدرها مشکل نیست. اگه دقت کرده باشید توی Loop هربار بررسی می‌کنیم که دیتایی برای خوندن وجود داره یا نه و اگه وجود داره اون رو چاپ می کنیم.

برنامه رو اجرا کنید. برای دیدن اطلاعاتی که دارید روی سریال ارسال می کنید نیازی به چشم بصیرت نیست! از منوی Tools گزینه SerialMonitor رو انتخاب کنید. یک پنجره باز میشه که باید کلمه Hello رو توش ببینید.

از اون بهتر اینکه میتونید همون‌جا، تو همون پنجره برای دستگاه‌تون پیام ارسال کنید؛ مثلا ۲ رو بنویسید و دکمه Send رو بزنید.

همون‌طور که می‌بینید نرم‌افزار میگه: “من 50 رو دریافت کردم.” دلیل اینکه شما اونجا ۲ نوشتید و اینجا ۵۰ اومده تورم نیست! دلیلش اینه که اطلاعات به‌صورت اسکی منتقل میشه و کاراکتر ۲ کد اسکی ۵۰ رو داره.

پس اگه ۴۸ تا ازش کم کنیم میشه همون عدد واقعی خودمون. یه خط ساده توی شرط اضافه می‌کنم تا برنامه کامل بشه.

اگه خط بالا رو به برنامه اضافه کنید، کار تمومه. حالا برنامه رو اجرا کنید و عدد ۲ رو وارد کنید (دقت کنید که کیبوردتون فارسی نباشه) و لذت روشن کردن LED از راه دور رو بچشید!

مثل قبل هم با فرستادن عدد ۶ تمام LED ها روشن میشن،خوب بود نه؟ یکم ساده بود. چطوره ارتباط دوم رو هم تو همین پروژه بگیریم؟

ارتباط با شیلدها:

ارتباط بعدی چیه؟ درسته بورد های آردوینو فوق‌العاده هستند اما انتظار ندارید که تمام عمرمون رو با همین فسقلی‌ها تلف کنیم؟! بوردهای آردوینو، بوردهای جانبی رو هم پشتیبانی می‌کنن که اصلاحاً بهشون Shield‌ میگن. یعنی شما یه بورد دیگه که امکان خاصی بهتون میده رو بر میدارید و پیوندش میدید به همین آردوینو‌ها تا ببینیم چی از توش در میاد!

فعلا من توی خنزر پنزرهام فقط یه جوی استیک مخصوص آردوینو دارم. پس چاره ای نداریم جز اینکه از همون استفاده کنیم!

می‌خواهیم باهاش یکم بازی کنیم. به نظر کلا جوی استیک فقط برای بازیه!

این دسته جوی استیک رو چهار هزار تومان تهیه کردیم. همینطور که می بینید پایه‌هاش طوری هستند که نمیشه توی برد فرو کرد و باید سیم‌های یک سر مادگی و یک سر نری داشته باشید. من چندتاشون که به هم چسبیده رو دارم.

راه اندازی جوی استیک با آردینو

این ماژول تقریبا پایه‌های مشخصی داره اما اگه براتون ناآشنا بود میتونید از روی اینترنت دیتاشیتش رو پیدا کنید و یکم درباره‌اش اطلاع پیدا کنید.

ماژول ما یک پایه‌ی زمین، یک پایه‌ی تغذیه ،دوتا پایه مربوط به حرکت جوی استیک توی دو سمت و یک پایه مربوط به فشار دادن به‌صورت دکمه داره.

سیم‌ها رو متصل می کنیم. طبیعتاً اون دوتا پایه که مقدار حرکت جوی استیک رو نشون میدن باید آنالوگ باشن؛ چون فقط صفر و یک نیست. اون پایه مربوط به فشار دادن دکمه هم باید دیجیتال باشه.

معرفی پین آنالوگ به برنامه:

خوب اولین باره که داریم از پین‌های آنالوگ استفاده می کنیم. چطور معرفی‌شون کنیم؟ این خط‌ها رو توی setup اضافه می‌کنیم:

خیلی هم ساده بود! ماژول توی هر جهت، عددی بین 0 تا 1023 به شما میده. (اگه نمیدونستید هم با یه خوندن از پایه و چاپ توی سریال، میتونستید متوجه بشید.)

ما میتونیم یک مقداری مثلا 250 و 750 رو برای حد قرار بدیم و وقتی مقدار از اون حد رد شد، Led اون سمت رو روشن کنیم. یا بیاید یه کار باحال‌تر کنیم! مقدار رو توی رنج 0-255 قرار بدیم و به همون مقدار نور Led رو از زیاد به کم تغییر بدیم!

صورت‌مسئله‌ی نهایی:

اگه دکمه جوی استیک زده شد، کنترل از دست سریال خارج بشه و با جوی استیک Led ها رو روشن خاموش کنیم.

اگه به سمت راست حرکت کرد Led سمت راست رو روشن میکنیم. برای چپ هم همین‌طور. بالا و پایین رو هم نور Led وسط رو کم و زیاد می‌کنیم.

اول متغیر‌هایی که فکر می‌کنیم لازمه رو معرفی می‌کنیم و یک سری متغیر هم برای استاندارد شدن کد استفاده می‌کنیم:

 

برای خوندن از پایه آنالوگ که قبلا آموزش دیدیم و مشکلی نداریم. تنها بحث قبل از ارائه کد نهایی اینه که درسته که پایه‌های بردهای آردوینو همه مثل هم هستن اما در باطن مثل پنج انگشت دست هستن! یعنی برای این پروژه شما باید دقت داشته باشید که اون Led که قراره نورش کم و زیاد بشه به چه پایه‌ای از برد متصل شده؛ چون همه‌ی پایه‌های دیجیتال برد قابلیت AnalogWrite رو به‌صورت دقیق پیاده‌سازی نمی‌کنند. این قابلیت که بهش PWM میگن (و به ما هم فعلا هیچ ربطی نداره که چطور کار میکنه!) فقط توی پایه‌های 3-5-7-9 و 11 پیاده سازی شده. ما تو این مثال Led وسطی رو به پایه 3 وصل کردیم.

نمونه کد بعد از تغییرات:
خطاهای احتمالی و نکات:

آیا من بدون خطا تونستم به این کد برسم؟ معلومه که نه! تا خطا نباشه اشتباه هم نیست!

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

نکته: جوی استیک رو باید به حد کافی به سمت پایین فشار بدید و صدای فشرده شدن دکمه رو بشنوید تا پایه تحریک بشه.

خروجی نهایی:

 

 

حمایت از meisam

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

دیدگاه ها

5 دیدگاه

  • محمد یاسین سورانی
    ۱۰ آبان ۱۴۰۰

    عالی بود عالی

  • I.SABOORI
    ۶ تیر ۱۳۹۶

    سلام.من تا شماره چهار مطالب آردویینو رو خوندم ولی فقط یه مشکلی که داشت این بود که کد هایی که نوشته شده بود راه حلی برای نوشتنش یا جاهایی که باید نوشته میشد گفته نشده بود و فقط کد ها نوشته شده بود و کسی که میخوند فقط باید کپی میکرد.

    • Zeus ‌
      زئوس
      ۷ تیر ۱۳۹۶

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

  • اندرسون
    ۴ تیر ۱۳۹۶

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

    • میثم BitBird
      meisam
      ۴ تیر ۱۳۹۶

      ممنون، به زودی وارد دنیایی دیگری از آردوینو می شویم که خودمان هم شب ها از هیجانش خواب نداریم!

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

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

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

امنیت همیشه و در همه‌ی اعصار، مقوله‌ی مهم و قابل‌توجه‌ ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموت‌های کنترل خواهیم پرداخت....

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 11 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

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

Zeus ‌ Zeus ‌
  • 3 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک