از زمانی که فردوسی بزرگ “عجم زنده کرد بدان پارسی” سالها گذشته. بعد از اون هر جا مردم خواستند یادشون باشه یا به یاد کسی بیارند که بسی رنج برده شده، یکم مشکل داشتن؛ چون حکیم توس اهل کمکاری نبود و خوندن شش هزار بیت برای این یادآوری هم کار سختی بود. تا اینکه یک روز دو نفر به اسمهای روحالله خالقی و حسین گلگلاب (که من قدیم فکر میکردم به خاطر تجلیل از کارش این رو بهش میگن!) تصمیم گرفتن یک نسخه مینیاتوری از شاهنامه رو بسازند و همه بزرگی اون رو توی چند بیت و چند میزان آهنگ بگنجونن.
بعد از اون مردانی از پارس حتی در ثریا هم اون رو زمزمه کردن تا اینکه من کاشف به عمل آوردم هنوز در دنیای آردوینو این آهنگ طنینانداز نشده. این شد که تصمیم گرفتم روح فردوسی رو بیش از این منتظر نگذارم!
البته پر واضح و مبرهن است که با ابزار قبلی که داشتم، نمیشد چنین کاری کرد. لذا بستهی زیر رو به قیمت هشتاد هزار تومان تهیه کردم که شامل مجموعهای از شیلدهای آموزش آردوینو ساخت کشور دوست و همسایه، چین است.
خوب دوستان چشم بادومی، زحمت یک راهنمای ساده رو هم به خودشون ندادن و به نامناسبترین شکل ممکن حتی بردهای مشابه رو هم بهطور واضحی از هم جداسازی نکردند. اما خوب چه میشه کرد. چینی هستند دیگه!
از بین اون همه شیلد، این دوتا رو انتخاب میکنیم. سمت راستی بازر[بیزر] پسیو هست و سمت چپی هم SMD color.
اگه دنبال دیتا شیت بازر پسیو توی آردوینو بگردید متوجه میشید که عملکرد سادهای داره: پایه مثبت و منفی که کاملاً مشخص هستن و یک پایه s هم وجود داره که بر اساس فرکانسی که بهش میدین صدای متفاوتی ایجاد میکنه. صداش خیلی خوشایند نیست اما برای ساخت آهنگ کافیه.
برای به صدا درآوردنش توابعی مانند زیر استفاده میشن:
C++
1
2
3
4
5
tone(3,1500);
delay(1000);
noTone(3);
delay(3000);
تابع tone همونطور که مشخصه، روی پایهی مشخصی، صدا رو با فرکانس اعلامشده ایجاد میکنه و تو همین وضعیت باقی میمونه تا اینکه برای قطع کردن صدا از تابع noTone استفاده کنیم. پیشنهاد میکنم برای جلوگیری از صدمات و حملات احتمالی و ناگهانی سایرین(!) از یک مقاومت بین پایه S استفاده کنید تا شاید صدای ناخوشایندش یکم تلطیف بشه!
SMD Color هم چهارپایه داره: پایه اول به زمین و هرکدام از اون سه پایه باقیمونده برای روشن کردن سه رنگ اصلی سبز، آبی و قرمز هستن.
صورتمسئله اصلی:
پرچم ایران رو در هنگام نواخته شدن قسمتی از سرود ای ایران به اهتزاز در بیارید!
برد رو مشابه تصویر زیر، پیادهسازی میکنیم:
همونطور که مشخص هست از چهارپایه دیجیتال بهعنوان خروجی استفاده کردم؛ یکی برای صدا و ۳ پایه برای دستور روشن شدن رنگ بر روی SMD Color.
خوشبختانه در این قسمت از آموزش آردوینو قرار نیست آموزش آهنگسازی با آردوینو رو ببینید؛ در نتیجه من قطعهای که قبلاً با تکیه بر دانش ناب موسیقی ایجاد کردم رو مستقیماً قرار میدم!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
voidplayMusic()
{
tone(BUZZER,1000);
delay(500);
tone(BUZZER,1500);
delay(500);
tone(BUZZER,1000);
delay(500);
tone(BUZZER,1500);
delay(500);
tone(BUZZER,1520);
delay(500);
tone(BUZZER,1600);
delay(250);
tone(BUZZER,1700);
delay(250);
tone(BUZZER,1700);
delay(250);
tone(BUZZER,1600);
delay(250);
tone(BUZZER,1500);
delay(1000);
noTone(BUZZER);
delay(3000);
}
درصورتیکه این تابع رو در تابع Loop فراخوانی کنید (برای متغیر Buzzer مقدار ۳ رو قرار بدید) و مدار رو درست متصل کرده باشید، موسیقی دلنواز رو خواهید شنید. (امیدوارم روح روحالله خالقی توی گور ناراحت نشده باشه، هرچی باشه یک بازر که بیشتر نیست!)
حالا نوبت پرچم میرسه. برای خواناتر و سادهتر شدن استفاده، ۳ تابع زیر رو تعریف میکنیم:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
voidGreenLed()
{
digitalWrite(BLUE,LOW);
digitalWrite(RED,LOW);
digitalWrite(GREEN,HIGH);
}
voidRedLed()
{
digitalWrite(BLUE,LOW);
digitalWrite(GREEN,LOW);
digitalWrite(RED,HIGH);
}
voidWhiteLed()
{
digitalWrite(BLUE,HIGH);
digitalWrite(GREEN,HIGH);
digitalWrite(RED,HIGH);
}
چون نه ما توی پرچم رنگ آبی داریم و نه این شیلد رنگ سفید رو میتونه ایجاد کنه، برای رنگ سفید سبز، قرمز و آبی رو همزمان روشن میکنیم.
آردوینو بهصورت پیشفرض دستورات رو بهصورت خطی ایجاد میکنه، یعنی اگر از این توابع بعد از playMusic استفاده کنید، اول موسیقی رو میشنوید و بعد رنگها روشن میشن. پس لازم هست توی قسمت PlayMusic جاسازیش کنیم.
کد نهایی به این صورت میشه:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//By Sisoog
//آموزش آردوینو پروژه پنجم
intBUZZER=3;
intBLUE=4;
intGREEN=5;
intRED=6;
voidsetup(){
// put your setup code here, to run once:
pinMode(BUZZER,OUTPUT);
pinMode(BLUE,OUTPUT);
pinMode(GREEN,OUTPUT);
pinMode(RED,OUTPUT);
}
voidloop(){
playMusic();
}
voidGreenLed()
{
digitalWrite(BLUE,LOW);
digitalWrite(RED,LOW);
digitalWrite(GREEN,HIGH);
}
voidRedLed()
{
digitalWrite(BLUE,LOW);
digitalWrite(GREEN,LOW);
digitalWrite(RED,HIGH);
}
voidWhiteLed()
{
digitalWrite(BLUE,HIGH);
digitalWrite(GREEN,HIGH);
digitalWrite(RED,HIGH);
}
voidplayMusic()
{
GreenLed();
tone(BUZZER,1000);
delay(500);
tone(BUZZER,1500);
delay(500);
tone(BUZZER,1000);
WhiteLed();
delay(500);
tone(BUZZER,1500);
delay(500);
tone(BUZZER,1520);
delay(500);
tone(BUZZER,1600);
delay(250);
tone(BUZZER,1700);
delay(250);
Red();
tone(BUZZER,1700);
delay(250);
tone(BUZZER,1600);
delay(250);
tone(BUZZER,1500);
delay(1000);
noTone(BUZZER);
delay(3000);
}
کد رو اجرا کنید، بایستید و دستتون رو روی قلبتون قرار بدید!
ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموتهای درب بازکن تا ریموتهای دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی میکنند و آنهم ارسال اطلاعات بهصورت بیسیم است....
امنیت همیشه و در همهی اعصار، مقولهی مهم و قابلتوجه ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموتهای کنترل خواهیم پرداخت....
دیدگاه ها
0 دیدگاه