تمرین های پایان فصل 4

Ratings
(0)

 اگر برنامه طبق خواست ما کار نکرد چه کنیم؟

IDE آردوینو یک گزینه ی قوی در نام گذاری فایل ها و فولدرها دارد و این قابلیت مخصوص ایجاد اسکچ ها است نه کتابخانه ها(libraries). بنابرین ما نیاز داریم بر روی فایل ها یک سری عملیات دستی(manual)  انجام دهیم تا همه چز سر جای صحیح خود قرار بگیرد. در آخرین تصویر مقاله ی بالا، می توانید چینش نهایی فولدرها(دایرکتوری ها) را مشاهده کنید. اگر بیش از یک نسخه از IDE آردوینو را نصب کرده اید، مطمئن شوید که دارید از فولدر صحیح کتابخانه ها(libraries ) استفاده می کنید.

به یاد داشته باشید که اغلب اوقات باید IDE آردوینو را  ری استارت کنید.  وقتی که ما یکی از فایل هایی که به کتابخانه ی(library) ما تعلق دارند را تغییر دهیم، باید IDE را ری استارت کنیم. اگر رنگی سازی سینتکس کاری نمی کند، مطمئن شوید که فایل keywords واقعا به صورت keywords.txt نام کذاری شده باشد. دوباره بررسی کنید که تمام آبجکت ها(objects) و مشخص کننده های نوع(type specifiers)، توسط یک کاراکتر تب(tab) از یکدیگر جدا شده باشند. اکنون IDE را ری استارت کنید.


 تمرین ها

 1. کدهای مورس فقط از حروف و اعداد پشتیبانی نمی کنند، بلکه از نمادهایی مثل کاما نیز پشتیبانی می کنند. کلاس Telegraph را بهبود ببخشید تا بتواند تمام کاراکترهای کد مورس را مورد پشتیبانی قرار دهد.

 2. چشمک زدن ال ای دی ها، عالی است اما وقتی که ما به کدهای مورس فکر می کنیم، معمولا چیزی مثل بوق زدن صداها در ذهن می آید، بنابراین ال ای دی ها را با یک اسپیکر پیزو(piezo speaker) جایگزین کنید؛ چون هم ارزان است و هم استفاده از آن ساده است. تصویر زیر، روش اتصال اسپیکر پیزو به آردوینو نشان داده شده است. اسپیکرهای پزو یک پین اتصال به زمین(ground ) و یک پین سیگنال دارند، بنابراین سیم اتصال به زمین اسپیکر را به سیم ground آردوینو متصل کنید و سیم سیگنال را به پین شماره 13 در آردوینو وصل کنید.

 

 سپس متد output_symbol را با کدهای زیر جایگزین کنید:

void Telegraph::output_symbol(const int length) {
const int frequency = 131;
tone(_output_pin, frequency, length);

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

 برای اطلاعات بیشتر در مورد تولید نوت ها با یک اسپیکر پیزو   به مثال زیر بروید که در IDE آردوینو وجود دارد:

File > Examples > 02.Digital > toneMelody

 3. IDE آردوینو یک راه جایگزین برای به کار بردن ارتباطات سریال به ما نشان می دهد. نگاهی به ارتباطات سریال با استفاده از زبان های متفاوت، در صفحه 255 بیاندازید و کتاب خانه ی کد مورد مورد نظر را بازنویسی کنید تا از یک تابع جدید به نام serialEvent استفاده کند. همچنین از آبجکت های String به جای آرایه های کاراکتری(character arrays) استفاده کنید.

 4. طراحی کتابخانه ی مذکور را بهبود ببخشید تا پشتیبانی از دستگاه های خروجی(output devices) متفاوت، ساده تر شود. شما می توانید برخی انواع آبجکت OutputDevice را به کانستراکتور کلاس Telegraph پاس بدهید. سپس یک LedDevice و SpeakerDevice را از OutputDevice مشتق کنید. این موضوع می تواند چیزی شبیه به زیر باشد:

class OutputDevice {
public:
virtual void output_symbol(const int length);
};
class Led : public OutputDevice {
public:
void output_symbol(const int length) {
// ...
}
};
class Speaker : public OutputDevice {
public:
void output_symbol(const int length) {
// ...
}
};

 سپس می توانید از این کلاس ها به صورت زیر استفاده کنید:

Led led;
Speaker speaker;
OutputDevice* led_device = &led;
OutputDevice* speaker_device = &speaker;
led_device->output_symbol(200);
speaker_device->output_symbol(200);

 ریست کردن بستگی به شما دارد.

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

{module کمک نقدی به نویسنده}

  • بازدید: 529

نوشتن دیدگاه

لطفا نظرات خود را بیان کنید. به سوالات در سریع ترین زمان پاسخ داده خواهد شد.اما به نکات زیر توجه کنید:
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.

ارسال