Mundarija:

Ovozli pulsatsiyalanuvchi kalit: 6 qadam
Ovozli pulsatsiyalanuvchi kalit: 6 qadam

Video: Ovozli pulsatsiyalanuvchi kalit: 6 qadam

Video: Ovozli pulsatsiyalanuvchi kalit: 6 qadam
Video: Bachadondan disfunktsional qon ketishi 2024, Noyabr
Anonim
Image
Image

Siz to'shakda yotganingizda muammoga duch keldingiz, lekin to'satdan chiroqlar hali ham yonib turganini tushunib eting. Biroq, siz shunchalik charchadingizki, siz karavotda chiroqni o'chirishni xohlamaysiz, yoki Philip Hue atrof -muhit chiroqini sotib olish uchun sakson dollar sarflamaysiz, bu sizga telefon yordamida chiroqni o'chirishga imkon beradi. Agar siz an'anaviy chiroqni kalit bilan ishlatayotgan bo'lsangiz, nega bu dangasalikni hal qilish uchun Arduino -ning yangi romanini ko'rib chiqmaysiz?

Men bu loyiha g'oyasini taxminan bir yil oldin, yangi uyimga ko'chib kelganimda, yoritgichim to'shagimga yaqin emasligini bilib, har kecha to'shagimni charchatib yotqizganimda, to'shagimni tashlab ketishga majbur qilgandim., faqat Chiroqni O'chirish uchun (har kecha meni asabiylashtiradi)! Ammo, bu loyihani amalga oshirganimdan so'ng, menga katta foyda keltirdi va men bu g'oyani hamma INSTRUCTABLE foydalanuvchilariga aytib berishga umid qilaman, ular hozir ham yorug'lik o'chirgichi muammosidan aziyat chekmoqda.

Ovozli pulsing kalitining asosiy g'oyasi-KY-037 tovush detektori sensorini bir qator harakatlar qilish uchun ishga tushirish, shu jumladan uni o'chirish uchun haqiqiy yorug'lik tugmachasini bosish uchun servo dvigatelni yoqish. Shunday qilib, KY-037 tovush detektori sensori qanday ishlaydi: asosan, u har 20 millisekundda, atrofdagi tovushning intensivligini aniqlaydi (buni kodlash bo'limida, 5-qadamda o'rnatish mumkin) va qachon "Osiloskop izi" da g'ayrioddiy baland ovozli to'lqinni aniqlasa, u hisobni ishga tushiradi, ikkita ko'rsatkichga yetganda esa servo dvigatelni ishga tushiradi va chiroqlarni o'chiradi.

1 -qadam: materiallar

Ta'minotlar
Ta'minotlar
Ta'minotlar
Ta'minotlar

Ovozli pulsatsiyalanuvchi kalitni yaratish uchun bizga ba'zi materiallar kerak bo'ladi, masalan:

Elektronika:

  • Arduino Nano kartasi
  • Non paneli
  • Jumper simlari (Ayol - Ayol, Ayol - Erkak, Erkak - Erkak)
  • KY-037 tovushni aniqlash sensori moduli
  • Alyuminiy elektrolitik kondansatkichlar 220uF 25V
  • Servo dvigatel
  • Batareya banki
  • Tashqi quvvat manbai *(USB ikki boshli Du-Pont simli)
  • 9V batareya
  • 9V batareya ulagichi

Moddiy jihozlarni bezatish:

Karton (yoki yog'och, agar lazer bilan kesilsa)

Boshqalar

  • Tez quriydigan yopishqoq elim
  • Foydali pichoq
  • Mato kesish
  • Kompasni kesuvchi
  • Qalam va silgi
  • Yopishqoq loy
  • Ikki tomonlama lenta
  • Lenta
  • Lehimlash uskunalari

2 -qadam: elektron komponentlarni yig'ish

Elektron komponentlarni yig'ish
Elektron komponentlarni yig'ish
Elektron komponentlarni yig'ish
Elektron komponentlarni yig'ish
Elektron komponentlarni yig'ish
Elektron komponentlarni yig'ish

Modelni qurishdan oldin, biz elektron komponentalarni yig'ishimiz kerak, bu juda oddiy va bir necha bosqichda bajarilishi mumkin:

  1. 9V batareya ulagichi Arduino Nano kartasini lehimlang. Lehimlash texnikasini bilmaydigan odamlar uchun bu biroz qiyin bo'lishi mumkin, lekin bu loyihani muvaffaqiyatli amalga oshirish uchun zarur, chunki agar taxta etarli quvvat bilan ta'minlanmasa, u to'g'ri ishlamasligi mumkin. Lehimlash uchun qizil simni VIN piniga ulang; va qora sim GND piniga, ikkalasi ham taxtaning o'ng tomonida.
  2. O'tish simlarini Arduino Nano kartasiga ulang. Ushbu loyihada biz faqat A0, D2, GND va 5V pinlariga o'z hissamizni qo'shamiz.

    • Pimlarni ulash uchun non paneli yordamida biz G pinini KY-037 tovushni aniqlash sensori modulidan non paneliga ulashimiz kerak; bir xil ustunda (ehtiyot bo'ling, agar bitta ustunda bo'lmasa, sizning oxirgi loyihangiz ishlamaydi), servo dvigateldan qora simni va tashqi quvvat manbaidan qora simni ulang (siz buni GND pin, lekin 5V pin emas, chunki tashqi quvvat manbai sizning Arduino yoqilmaganda umumiy nuqtai nazarga ega bo'lishi kerak), keyin boshqa bir Erkak -Ayol jumper simini mos ravishda o'sha ustunga va Nano -ga ulang.
    • Keyin, KY-037 tovushni aniqlash sensori modulidagi "+" pinini o'sha ustundagi teshiklardan biriga ulang, so'ngra non panelidagi bir xil ustunga, ikkinchi tomonini esa nano-ga ulaydigan Erkak-Ayol jumper simini oling. taxta.
    • Shundan so'ng, servo dvigateldagi qizil simni ishlatilganiga qaramay, boshqa ustunga ulang va batareyani quvvatlantirish uchun qizil simni tashqi quvvat manbaidan o'sha ustunga joylashtiring. Haqiqatan ham, servo motorni quvvatlantirishi uchun USB-sub boshini quvvat bankiga ulang.
    • Shuningdek, GND va 5V pinli ikkita ustun ustunidan o'tib, KY-037 tovush detektori sensori uchun nisbatan barqaror muhit yaratish uchun sig'imning ikki oyog'ini ikkala ustunga joylashtiring.
    • Nihoyat, servo dvigateldagi oq simni Nano d2 piniga ulang. K0-037 tovushni aniqlash sensori modulidan A0 dan A0 ga mos ravishda Arduino Nano kartasiga ulang.

Va siz hamma narsani elektronika bilan tugatdingiz!

3 -qadam: Modelning dizayni

Modelning dizayni
Modelning dizayni

Ushbu loyiha uchun modelni qurish juda oson, chunki biz faqat olti qirrali qutini yaratishimiz kerak. Biroq, dizayn men ko'rsatgan AutoCAD fayli kabi aniq bo'lishi kerak edi.

Agar siz haqiqatan ham ushbu loyihani yaxshi va aniq qilishni xohlasangiz, ushbu loyihaning dizayn g'oyasini bilish uchun o'qishni davom ettiring.

Ovozli pulsatsiyalanuvchi kalitda olti qirrali quti bor, uning yon tomonidagi teshiklar har biri elektron komponentlarni joylashtirish uchun joy bo'lib, ular qurilmaning ishlashini ta'minlaydi.

  1. Yuqori qismida servo dvigatelni joylashtirish uchun 3 * kengligi 2 uzunlikdagi teshik bor, unga ishlash va tugmani bosish uchun joy ajratiladi;
  2. Qarama -qarshi pastki qism sifatida, biz shuni ta'kidlaymizki, bu faqat to'rtburchaklar asos bo'lib, unda hamma narsani ushlab turish va tasdiqlash uchun teshiklari yo'q; keyin o'ng tomonda, quvvat bankini quvvatlantirish uchun quvvat bankiga ulanish uchun tashqi quvvat manbai simining chiqishi uchun teshik kerak;
  3. Keyinchalik, chap tomonda, u o'ng chap tomonga o'xshaydi, lekin teshiksiz;
  4. Nihoyat, old tomondan, biz ko'proq teshiklarga muhtojmiz, bittasi 9V batareya ulagichi qutidan tashqarida bo'lishi kerak, shunda biz elektr quvvati tugaganda batareyani osongina o'zgartirishimiz mumkin, chunki chiqindilarni oldini olish uchun kalitni o'chirib qo'yishimiz kerak. batareya quvvati, ikkinchisi-KY-037 mikrofoni, qurilma atrofdagi tovush o'zgarishini aniqlay oladi;
  5. Bundan tashqari, pastki qismida teshik yo'q, hamma narsani ushlab turish va tasdiqlash uchun

4 -qadam: modelni yaratish

Modelni qurish
Modelni qurish
Modelni qurish
Modelni qurish
Modelni qurish
Modelni qurish

Biz o'z rejamizni puxta tuzganimizdan so'ng, endi modelni yaratish jarayoniga o'tishimiz kerak bo'ladi. Biroq, bu jarayon oldingi bosqichga qaraganda juda oson bo'ladi, xuddi shunday:

  1. AutoCAD faylida oltita tomonni karton bilan kesib oling yoki lazerli kesimdan foydalaning
  2. Yopishqoq yopishqoqni oling va bo'laklarning yon tomonlariga yopishtiring, shunda ham biz uning tarkibiy qismlarini tartibga solishimiz mumkin.
  3. 9V batareya ulagichini biz modelning old tomonida kesib o'tgan teshikka joylashtirdik
  4. KY-037 tovush detektori sensori modulini biz kesib o'tgan teshikka joylashtiring, lekin biroz kengroq qilib kesib olishni unutmang, men bergan diametr "men" komponentining taxminiy qiymati bo'lib, u har xil bo'lishi mumkin, shuningdek to'rtburchaklar qismi. yon tomonga tegib ketishi mumkin, bu uning etarlicha tiqilib qolmasligiga olib kelishi mumkin
  5. Stikerni non taxtasi oldidan yirtib tashlang va uni modelingizning old qismiga yopishtiring
  6. Servo dvigatelni biz modelning yuqori qismida kesib o'tgan teshikka yaxshilab joylashtiring

    • Bir oz yopishqoq loyni mustahkamlash uchun servo dvigatelning orqasiga qo'yishga harakat qiling
    • Bundan tashqari, uni mustahkamlash uchun ikki tomonlama lentani qo'yishni unutmang
  7. Tashqi USB kabelini strukturaning o'ng tomonida biz kesib o'tgan teshikdan chiqarib oling va quvvat manbaiga ulang.
  8. Orqa tomoningizni modelga yopishtiring, lekin agar siz o'zingizning ishingizga ishonchingiz komil bo'lmasa va siz hali ham qurilmangizni tartibga solishingiz yoki ta'mirlashingiz kerak bo'lsa, uni yopish uchun skotch lentalarini ishlating.

5 -qadam: kodlash

Kodlash
Kodlash
Kodlash
Kodlash

Va bu loyihada hech qanday qiziqarli va muhim qism yo'q, agar siz kodlamasangiz, sizning qurilmangiz hech qachon ishlamaydi, sizning modelingiz qanchalik yaxshi tuzilgan bo'lsa ham, sxemani tuzish qanchalik aniq bo'lsa ham, bu hech narsa emas. Shunday qilib, men bu erda faqat ushbu loyiha uchun kod yozdim va kodning sharhlar bo'limida har bir satr nimani anglatishini tushuntirdim, lekin agar kimdir hali ham muammoga duch kelsa, men izoh qoldirishdan xursand bo'laman. darhol javob berish (ishonaman).

Ushbu kodda men servo dvigatelni to'qson daraja va yuz sakkiz gradusga burishga ruxsat berishni tanladim, biroq har kimning uyida har xil kalitlarga ega bo'lishi mumkin va menimcha, bu hamma uchun o'zgarishi mumkin emas.. Mening kodimni ko'rib turib, shuni yodda tutingki, bu qurilma ovoz usuli yordamida yorug'likni "avtomatik" o'chirishga mo'ljallangan bo'lib, uni chalkashtirib yubormang va agar siz adashib qolsangiz, bu erdagi videoga murojaat qiling. eng boshi. Siz kodni quyida yoki Arduino veb -sayt yaratish havolasi orqali ko'rishingiz mumkin.

Arduino havola yaratish

Bundan tashqari, agar etarli odamlar kodni tushuntirish haqida so'rashsa, men bu haqda o'ylashim mumkin …

Arduino-Ovoz-Pulsing-Switch

#include // servo dvigatel uchun kutubxonani o'z ichiga oladi
int MIC = A0; // tovushni aniqlash komponenti A0 oyog'iga ulangan
mantiqiy o'tish = noto'g'ri; // almashtirishning dastlabki versiyasini yozib olish
int micVal; // aniqlangan tovushni yozib oling
Servo servo; // Servo dvigatelining nomini servo qilib o'rnating
imzosiz uzoq oqim = 0; // joriy vaqt tamg'asini yozib oling
imzosiz uzoq davom = 0; // oxirgi marta muhr yozing
imzosiz uzoq farq = 0; // ikkita vaqt tamg'asi orasidagi vaqt farqini yozib oling
imzosiz int soni = 0; // o'tish sonini yozib oling
void setup () {// bir marta ishga tushirish
servo.attach (2); // D-pinli oyoq 2 ga ulanish uchun servoni ishga tushiring
Serial.begin (9600); // serialni ishga tushirish
servo.write (180); // servoni boshlang'ich burchagiga aylantiring
}
void loop () {// loop abadiy
micVal = analogRead (MIC); // analog chiqishni o'qing
Serial.println (micVal); // atrof -muhit tovushining qiymatini chop eting
kechikish (20); // har yigirma soniyada
if (micVal> 180) {// agar bu erda 180 ga o'rnatgan chegaradan oshsa
joriy = millis (); // joriy vaqt tamg'asini yozib oling
++ soni; // hisoblagichlarga bitta qo'shing
//Serial.print("count= "); // o'tish vaqtini chiqaring, agar xohlasangiz, oching
//Serial.println(sayt); // raqamni chop eting, agar xohlasangiz oching
if (count> = 2) {// agar almashtirish soni ikkidan ko'p yoki teng bo'lsa, ikki vaqt tamg'asi 0,3 ~ 1,5 soniya davom etganligini aniqlang.
diff = joriy - oxirgi; // ikki vaqt tamg'asi orasidagi vaqt farqini hisoblang
if (diff> 300 && diff <1500) {// ikki vaqt tamg'asi 0,3 ~ 1,5 soniya davom etganligini aniqlang
toggle =! o'tish; // almashtirishning joriy holatini qaytarish
hisoblash = 0; // hisobni nolga aylantiring, yana sinovga tayyorlaning
} else {// agar vaqt cheklangan sanalar orasida davom etmasa, hisobni biriga qaytaring
hisoblash = 1; // hisobni hisoblamang
}
}
oxirgi = joriy; // keyingi taqqoslash uchun oxirgi vaqt tamg'asini yangilash uchun joriy vaqt tamg'asidan foydalaning
if (o'tish) {// o'tish yoqilganligini aniqlang
servo.write (90); // nurni ochish uchun servo 90 gradusga buriladi
kechikish (3000); // 5 soniya kechiktirish
servo.write (180); // servo asl joyiga qaytadi
kechikish (1000); // yana 5 soniya kechiktiring
hisoblash = 0; // qayta sanash uchun sanoqni boshlang'ich raqamga o'rnating
}
boshqa {
servo.write (180); // agar almashtirish ishlamasa, boshlang'ich 180 gradusda qolishdan ko'ra
}
}
}

GitHub tomonidan ❤ mezbonlik qilingan rawArduino-Sound-Pulsing-Switch-ni ko'rish

6 -qadam: tugatish

Image
Image
Tugatish
Tugatish

Endi siz loyihani tugatdingiz, endi siz ovozni o'chirish tugmasi bilan o'ynashingiz mumkin, bu sizning chirog'ingizni o'chiradi, bu sizning dangasalik hech qachon muammo bo'lmaydi! Esda tutingki, agar siz ushbu loyihani amalga oshirgan bo'lsangiz, loyihaning ajoyibligini ko'rsatish uchun uni menga va dunyoga onlayn tarzda ulashing!

Qiziquvchan bo'ling va o'rganishda davom eting! Omad!

Tavsiya: