Mundarija:

Baraban studiyasi: 5 qadam
Baraban studiyasi: 5 qadam

Video: Baraban studiyasi: 5 qadam

Video: Baraban studiyasi: 5 qadam
Video: Кизга хеч Ким карамасин 😍😍#jasjan #togavajiyan 2024, Noyabr
Anonim
Barabanlar studiyasi
Barabanlar studiyasi

Barabanchilar soatlab mashg'ulot o'tkazishadi … Lekin hamma ham uyda barabanga ega bo'lolmaydi: bo'sh joy va shovqin - bu katta muammo!

Shu sababli, biz siz uyda o'ynashi mumkin bo'lgan ko'chma va sukunat davulini yaratmoqchi edik.

Bu barabanni ishlatish juda oson, siz faqat prokladkalarni urishingiz kerak va u haqiqiy barabanga o'xshaydi! Shuningdek, u displey bilan birga keladi, u erda siz qaysi padni urayotganingizni ko'rishingiz mumkin. Va agar siz uni sukut rejimida ishlatmoqchi bo'lsangiz, naushnikni noutbukga ulang!

1 -qadam: Sizga nima kerak

MATERIAL

  • Arduino Uno
  • Non paneli
  • Bir oz sim
  • 5x piezos
  • 5x 1M Ohmli rezistorlar
  • 5 ta banka qopqog'i
  • Eva ko'pik
  • Ko'pikli taxta

PROGRAMLAR:

  • Arduino IDE
  • Qayta ishlanmoqda

*Yuqoridagi dasturlarni kompyuteringizga yuklab olish uchun quyidagi havolalarga o'ting:

  • https://www.arduino.cc/en/main/software
  • https://www.arduino.cc/en/main/software

2 -qadam: O'chirish davri

O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri

Birinchidan, biz piezolarni lehimlashimiz kerak (sariq qismga GND va piezoning oq qismiga analog pinli sim).

Biz hamma narsani ulash uchun taxtadan foydalanamiz.

Rezistorni va piezoning simlarini yuqoridagi diagrammada ko'rsatilgandek ulang. Keyin GND simini Arduino -dagi GND -ga ulang. Nihoyat, piezoning har bir simini Arduino -dagi analog pinga quyida ko'rsatilgan tarzda ulang.

Analog pinlarga ulangan piezolar:

  • Caixa = A0;
  • Charlz = A1;
  • Tomtom = A2;
  • Crash = A3;
  • Bombo = A4;

3 -qadam: dasturlash

Dasturlash
Dasturlash

Biz oldindan o'rnatilgan dasturni ishlatmasdan, baraban uchun o'z ekranimizni yaratishga qaror qildik. Buning uchun biz Processing -dan foydalandik.

Biz uni shunday dasturladikki, piezo urilganda, mos keladigan baraban ovozi eshitiladi. Bundan tashqari, ekranda tegishli baraban namunasi yonadi.

Siz qayta ishlash ovozini va ketma -ket kutubxonalarni qayta ishlashni import qilishingiz kerak bo'ladi.

Ma'lumotlar papkasiga baraban tovushlarini qo'shishni unutmang!

ARDUINO kodi

// PIEZOS ANALOG PIN -kodlariga ulangan

const int caixa = A0;

const int charles = A1;

const int tomtom = A2;

const int halokati = A3;

const int bombo = A4;

const int chegarasi = 100; // aniqlangan tovush qachon taqillashi yoki yo'qligini aniqlash uchun chegara qiymati

// SENSOR PIN -kodlaridan o'qilgan qiymatni o'qing va saqlang

int caixaReading = 0;

int charlesReading = 0;

int tomtomReading = 0;

int crashReading = 0;

int bomboReading = 0;

bo'sh o'rnatish () {

Serial.begin (9600); // ketma -ket portdan foydalaning

}

void loop () {

// sensorni o'qing va uni o'zgarmaydigan sensorda saqlang O'qish:

caixaReading = analogRead (caixa);

// agar sensor o'qishi chegaradan katta bo'lsa:

agar (caixaReading> = ostona) {

// Agar CAIXA ni urgan bo'lsangiz, qayta ishlashga 0 yuboring

Serial.print ("0,");

Serial.println (caixaReading);

}

charlesReading = analogRead (charles);

agar (charlesReading> = ostona) {

// Agar CHARLESNI ursangiz, ishlov berishga 1 yuboring

Serial.print ("1,");

Serial.println (caixaReading);

}

tomtomReading = analogRead (tomtom);

agar (tomtomReading> = pol) {

// Agar CAIXA ni urgan bo'lsangiz, 2 ta ishlov berishga yuboring

Serial.print ("2,");

Serial.println (tomtomReading);

}

crashReading = analogRead (buzilish);

if (crashReading> = pol) {

// Agar siz CAIXA ni ursangiz, 3 ta ishlov berishga yuboring

Serial.print ("3,");

Serial.println (crashReading);

}

bomboReading = analogRead (bombo);

agar (bomboReading> = 15) {

// Agar CAIXA ni urgan bo'lsangiz, 4 ta ishlov berishga yuboring

Serial.print ("4,");

Serial.println (bomboReading);

}

kechikish (10); // ketma -ket port buferini ortiqcha yuklamaslik uchun kechiktirish

}

Qayta ishlash kodi

// Ovoz va seriyali kutubxonalarni import qilish

importni qayta ishlash.sound.*;

importni qayta ishlash.serial.*;

Seriyali myPort; // Serial sinfidan ob'ekt yaratish

String val; // Seriya portidan olingan ma'lumotlar

// baraban tovushlari

SoundFile fayllari;

SoundFile charles;

SoundFile tomtom;

SoundFile buzilishi;

SoundFile bombo;

// DRUMLAR STUDIO RASMLARI

PImg img0;

PImg img1;

Img2 tasviri;

PImg img3;

PImg img4;

PImg img5;

PImg img6;

// DRUMLAR STUDIYASI TUZGAN

suzuvchi n = 0;

suzuvchi n2 = 1;

suzuvchi n3 = 2;

suzuvchi n4 = 3;

suzuvchi n5 = 4;

float y = 0;

y2 = 1 suzuvchi;

suzuvchi y3 = 2;

suzuvchi y4 = 3;

suzuvchi y5 = 4;

bo'sh o'rnatish ()

{

// QANCHA PORT BO'LGANINI OCHING - bu siz foydalanayotgan narsadir

String portName = Serial.list () [0]; // portni mos kelishi uchun 0 ni 1 yoki 2 ga o'zgartiring

myPort = yangi Serial (bu, portName, 9600);

// DRUMLAR STUDIO KONSOLA

hajmi (720, 680);

fon (15, 15, 15);

strokeWeight (2);

// LOAD DRUM STUDIO RASMLARI

img0 = loadImage ("drumsstudio.png");

img1 = loadImage ("res.png");

img2 = loadImage ("caixa.png");

img3 = loadImage ("charles.png");

img4 = loadImage ("tomtom.png");

img5 = loadImage ("crash.png");

img6 = loadImage ("bombo.png");

// Ovozlarni yuklash

caixa = yangi SoundFile (bu, "caixa.aiff");

charles = yangi SoundFile (bu, "charles.aiff");

tomtom = yangi SoundFile (bu, "tomtom.aiff");

nosozlik = yangi SoundFile (bu, "crash.aiff");

bombo = yangi SoundFile (bu, "bombo.aiff");

}

bo'sh tortish ()

{

// TITULO DRUMS STUDIO

rasm (img0, 125, 0);

// To'lqinlar chizish

if (y> 720) // To'lqinlarni qaytadan boshlang

{

y = 0;

y2 = 1;

y3 = 2;

y4 = 3;

y5 = 4;

}

to'ldirish (0, 10);

to'g'ri (0, 0, kenglik, balandlik);

// Dejamos bo'sh joyni to'ldiradi

// dibujar la bola

to'ldirish (255);

insult (250, 255, 3);

nuqta (y, (balandlik-40) + sin (n) * 30);

n = n + 0,05;

y = y + 1;

insult (250, 255, 3);

nuqta (y2, (balandlik-40) + cos (n2) * 30);

n2 = n2 + 0,05;

y2 = y2 + 1;

insult (250, 255, 3);

nuqta (y3, (balandlik-40) + sin (n3) * 30);

n3 = n3 + 0,05;

y3 = y3 + 1;

insult (250, 255, 3);

nuqta (y4, (balandlik-40) + cos (n4) * 30);

n4 = n4 + 0,05;

y4 = y4 + 1;

insult (250, 255, 3);

nuqta (y5, (balandlik-40) + sin (n5) * 30);

n5 = n5 + 0,05;

y5 = y5 + 1;

// DIBUJO BATERIYA SIN NINGUNA PARTE ILUMINADA

rasm (img1, 0, 80);

// HAR KIRISh UChUN CHIQARISH

agar (myPort.available ()> 0)

{// Agar ma'lumotlar mavjud bo'lsa, val = myPort.readStringUntil ('\ n'); // o'qing va valda saqlang

println (val);

String list = split (val, ','); // Har bir kirish qiymatini olish uchun ro'yxatni oching

agar (ro'yxat! = null)

{

agar (ro'yxat [0]. teng ("0")) {// agar siz caixa ni urgan bo'lsangiz

caixa.play (); // Caixa ovozini ijro eting

tasvir (img2, 0, 80); // Caixa ekranda yoritilgan

println ("caixa"); // uni konsolda chop eting

} if if (list [0].equals ("1")) {// agar charlesga urgan bo'lsangiz

charles.play (); // charles ovozini ijro etish

tasvir (img3, 0, 80); // Charles ekranda yoritilgan

println ("charles"); // uni konsolda chop eting

} else if (list [0].equals ("2")) {// Agar siz tomga urgan bo'lsangiz

tomtom.play (); // Tomtom tovushini ijro etish

tasvir (img4, 0, 80); // Tomtom ekranda yoritilgan

println ("tomtom"); // uni konsolda chop eting

} if if (list [0].equals ("3")) {// Agar siz halokatga uchragan bo'lsangiz

crash.play (); // Buzilish ovozini ijro etish

rasm (img5, 0, 80); // Crash ekranda yoritilgan

println ("buzilish"); // uni konsolda chop eting

} if if (list [0]. equals ("4")) {// agar siz bombo urgan bo'lsangiz

bombo.play (); // Bombo ovozini ijro etish

rasm (img6, 0, 80); // Bombo ekranda yoritilgan

println ("bombo"); // uni konsolda chop eting

}

}

}

}

4 -qadam: Uni yarating

Uni qurish
Uni qurish
Uni qurish
Uni qurish
Uni qurish
Uni qurish
Uni qurish
Uni qurish

Prototipni amalga oshirish uchun bizda bor

jarayonni soddalashtirish uchun har kungi elementlardan foydalangan, lekin har doim funksionallik va yaxshi tugatishni qidirgan.

Birinchi qadam, kabellarni piezoelektrikka payvandlash edi, ular batareyani stolga qo'yish yoki amaliyotga boradigan joyga erkinlik berish uchun etarli uzunlikdagi kesish edi.

Ba'zi tadqiqotlardan so'ng, biz ko'rdikki, yostiq har bir zarba tebranishini piezoelektrikka optimal tarzda uzatishi muhim edi, shuning uchun yog'och yoki plastmassa kabi materiallar tashlab yuborildi. Nihoyat, biz konservalar uchun o'z vazifalariga mos keladigan va maqsadiga mos ko'rinishga ega bo'lgan metall qopqoqlardan foydalanishni tanladik.

Baraban tayoqchalari bilan harakat qilib, kutilganidek, zarbalar juda shovqinli bo'lib, jim baraban echimidan uzoqlashdi. Buni hal qilish uchun biz sirtni qopqoqning markaziy atrofi o'lchamiga kesilgan, Eva ko'pik bilan yopamiz. U etarlicha ingichka ikki tomonlama lenta bilan yopishtirilgan, shuning uchun o'ynayotganda yengillik sezilmaydi. Qolaversa, qovoqlarning chetidan bizni bemalol o'ynashimizga xalaqit beradigan bezovta qiluvchi ovoz chiqardi, biz yostiqning sirg'anib ketmasligi va har bir zarbani iloji boricha yumshatishining oldini olish uchun chetiga bir necha tomchi issiq eritilgan elim qo'ydik.

Tegish paytida to'rtta yostiqning tarqalib ketishiga yo'l qo'ymaslik uchun, biz ularni ichkaridan kichik yong'oq bilan mahkamlangan, yon tomondan kirgan tishli novda yordamida juft -juft qilib birlashtirdik. Biz o'ynay boshlaganimizda muammo shundaki, u metall material bo'lgani uchun tebranishlarni bir yostiqdan ikkinchisiga o'tkazdi, shuning uchun biz bitta o'ynaganimizda uning sherigi bir vaqtning o'zida ovoz chiqarib yubordi.

Nihoyat, biz tayoqlarni olib tashladik va piezo kabelining o'zini kasaba uyushmasi sifatida ishlatish etarli va undan ham amaliy ekanligini ko'rdik.

Pedalga kelsak, bizda sendvich o'rtasida piezoni ushlab turish haqida dastlabki fikr bor edi; piezoning erga to'g'ridan -to'g'ri ta'sirini oldini olish uchun. Buning uchun biz piezoni yog'och plastinka ustiga yopishtirdik va bir xil o'lchamdagi boshqa PVX plastinkani yopishtirdik, unga piezo va kabelni osonlashtiradigan va joylashtiradigan kichik yoriq yasadik.

Avvaliga biz har ikkala plastinka uchun ham PVX ishlatardik, lekin bir nechta sinovlardan so'ng biz bu material juda ko'p ta'sir o'tkazganini va uni piezoga uzatganini angladik.

Pedalning bo'shashib qolmasligi va qadam bosishining oldini olish uchun, biz sendvich orasiga kauchuk tasma qo'yib, pedalni oyog'imizdan ushlab turamiz va barabanning har bir urilishini ta'minlaymiz.

Nihoyat, yaxshiroq tugatish uchun biz o'zimiz protoboard va arduino joylashgan kichik qutini qurdik. Bu erda 5 ta kabel bir tomondan kiradi va USB kabelini boshqa tomondan ulash imkonini beradi. U qora tukli kartonga o'ralgan bo'lib, uni ishlatish oson va butun prototipning oq -qora estetikasini davom ettiradi.

Tavsiya: