من منا سمع صوت صرصور الليل من قبل وقد استمر في إطلاق
صوته المشهور الذي قد يضايق الكثيرين ليلاً
هناك الكثيرين ممن قد يجد هذا الصوت مزعجاُ بينما قد
يجده الآخرون يبعث على الإسترخاء والإحساس بجمال الطبيعة
قد يكون هذا الصوت مزعجاُ بالفعل لو أنه بالقرب من مكان
نومك بالليل ولا تستطيع إيجاده أو إسكاته
بينما قد يجده البعض مساعداً على النوم خاصة لو كان الصوت
خاقتاُ وذلك لأنه مستمر ذو إيقاع ثابت
حتى أن هناك بعض البرامج على هواتف آيفون وأندرويد تساعد
على النوم عن طريق تشغيل هذه الأصوات المستمرة
من الممكن أن تجد هذا المشروع شيقاً ومسلياً . وخاصة أنك
تستطيع التحكم في صرصور الليل في هذه الحالة كما أنك تستطيع إسكاته أو إيقافه .
كما أنك يمكنك التحكم في ارتفاع الصوت
وبالفعل وجدت البرنامج مكتوباُ بالفعل وقد كتبه أحد
الأشخاص بمهارة عالية
كما أنه كتب هذا البرنامج بحيث يصدر الأصوات بطريقة
عشوائية لا يمكن اكتشافها ليكون بمثابة مزحة لأصدقائه
وأيضاُ كتب نسخة أخرى من البرنامج بحيث تصدر الأصوات
بانتظام كما يمكنك التحكم في شدة الصوت عن طريق إشارات تعديل إتساع النبضة
PWM Pulse Width Modulation
وقد أعجبتني هذه النسخة كثيراً حيث أنها تشبه صرصور الليل الطبيعي الذي يصدر أصواتاً ذات إيقاع منتظم
هذه هي الخطوات التي قمت بتنفيذها
الأدوات المستخدمة
- لوحة أردوينو
- سماعة
- أسلاك للتوصيل
قم بتحميل البرنامج على لوحة أردوينو
قم بتوصيل السماعة بلوحة أردوينو
#include "Volume3.h"
#define speakerPin 9
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
chirpFade();
delay(random(100,5000));
}
void chirpFade() {
uint16_t f = 3900;
uint8_t times = random(1,3);
float master = 1.0;
uint16_t v = 0;
uint8_t vDir = 1;
float vb = 0;
while (times > 0) {
while (vb < 1.0) {
if (v < 1023 && vDir == 1) {
v += 16;
}
else {
vDir = 0;
}
if (v > 0 && vDir == 0) {
v -= 16;
}
else {
vDir = 1;
}
vol.tone(speakerPin, f, v * constrain(vb, 0.0, 1.0)*master);
delayMicroseconds(50);
vb += 0.003;
}
while (vb > 0.0) {
if (v < 1023 && vDir == 1) {
v += 16;
}
else {
vDir = 0;
}
if (v > 0 && vDir == 0) {
v -= 16;
}
else {
vDir = 1;
}
vol.tone(speakerPin, f, v * constrain(vb, 0.0, 1.0)*master);
delayMicroseconds(50);
vb -= 0.001;
}
times--;
master -= 0.75;
}
vol.noTone();
}