Turinys:
- 1 žingsnis: problema
- 2 žingsnis: projekto kontekstas
- 3 žingsnis: reikalingos dalys / įrankiai
- 4 žingsnis: Techninė strategija
- 5 žingsnis: kodas
- 6 žingsnis: vaizdo įrašas
Video: „NeckCrusher“(su gitara montuojamas efekto pedalas): 6 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Dale'as Rosenas, Carlosas Reyesas ir Robas Kochas
DATT 2000
1 žingsnis: problema
Gitaros pedalai apriboja muzikanto pedalų platformą. Sprendimas: sukurkite ir įterpkite gitaros pedalų funkcionalumą į pačią gitarą. Tai leidžia muzikantui laisvai judėti scenoje, naudojant gitaros kaklą kaip sąsają, o ne apsiribojant pedalo lentos vieta. Mes išnagrinėsime šią koncepciją sukurdami bitų trupintuvo/imties dažnio efekto įrenginį.
2 žingsnis: projekto kontekstas
Yra daug gitaros pedalų, kuriuos muzikantai naudoja manipuliuodami savo gitaros garsu. Dauguma jų dažniausiai yra stelažo arba „stomp box“įrenginiuose, todėl efektų valdymas apribojamas efektų bloko vieta. Prietaiso pritvirtinimas prie gitaros leidžia žaidėjams valdyti efekto parametrus bet kurioje scenos vietoje. Tai reiškia, kad jie nebus apriboti ir galės laisvai judėti dėl savo pasirodymo.
Kadangi „Arduino“gali tik 8 bitų garsą, neįmanoma apdoroti aukštos kokybės signalų. Štai kodėl mes pasirinkome padarytus efektus, nes jie pagrįsti žemo tikslumo, iškreipto garso sukūrimu. Tai yra vieninteliai efektai, kurie pagrįstai įmanomi naudojant „Arduino“.
3 žingsnis: reikalingos dalys / įrankiai
● Smūginis gręžtuvas
● Vielos pjaustytuvai
● Vielos nuėmikliai
● Lituoklis
● Karšto klijų pistoletas
● Lydymosi siurblys
● Gitara ● Gaubtas
● Lituoklis
● Karštas klijai
● Arduino
● Proto lenta
● Dengta viela
● Garso lizdai (x2)
● Potenciometrai (x3)
● Kondensatoriai: 2,2 uF (x2)
● Atvira varinė viela
● Varžtai (M3.5 *8)
● Rezistoriai: 1 k, 10 k, 1,2 k, 1,5 k, 390 k
● * Galinis stiprintuvas (LM358) / * tranzistorius (2N3442)
4 žingsnis: Techninė strategija
Vidinė grandinė
Įvesties išvesties
Turime iš gitaros sklindantį garso signalą paversti kažkuo, ką arduino gali naudoti ir keisti. Tada mes turėsime paversti signalą, gaunamą iš arduino, į garso signalą. „Arduino“nuskaito įtampą nuo 0V iki 5V, garso signalai yra nuo -1V iki 1V. Šios konversijos atliekamos naudojant rezistorius. Signalas taip pat bus paverstas išėjimo grandinėje.
„Arduino“biblioteka: „ArduinoDSP“
Projekto aprašymas (sąsaja)
Rankenėlės 1 rankenėlė: mėginio dažnis
2 rankenėlė: bitų smulkintuvas
3 rankenėlė: bitų perjungiklis
5 žingsnis: kodas
#include "dsp.h"
#define cbi (sfr, bit) (_SFR_BYTE (sfr) & = ~ _BV (bit)) #define sbi (sfr, bit) (_SFR_BYTE (sfr) | = _BV (bit))
loginis div32; loginis div16;
nepastovus loginis f_pavyzdys; nepastovus baitas badc0; nepastovus baitas badc1; nepastovus baitas ibb;
int fx1; int fx2; int fx3; int fx4;
int cnta; int icnt; int icnt1; int icnt2; int cnt2; int iw; int iw1; int iw2; baitas bb;
baitas dd [512]; // Garso atminties masyvas 8 bitų
void setup () {setupIO ();
// reload wave po 1 sekundės fill_sinewave ();
// nustatyti adc prescaler į 64 19kHz mėginių ėmimo dažniui cbi (ADCSRA, ADPS2); sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // 8 bitų ADC ADCH registre sbi (ADMUX, ADLAR); sbi (ADMUX, REFS0); cbi (ADMUX, REFS1); cbi (ADMUX, MUX0); cbi (ADMUX, MUX1); cbi (ADMUX, MUX2); cbi (ADMUX, MUX3); // Laikmatis2 PWM režimas nustatytas į greitą PWM cbi (TCCR2A, COM2A0); sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // „Timer2 cbi“sąranka (TCCR2B, WGM22); // „Timer2 Clock Prescaler“į: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Timer2 PWM Port Enable sbi (DDRB, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = blogas1;
}
void loop () {
// patikrinti efekto potenciometro ir sukamojo jungiklio būseną readKnobs ();
// ************* // ***Normalus*** // *************
if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {baitų įvestis = analogRead (kairėje); išėjimas (kairėje, įvestis); }
// ************* // *** Phasor *** // *************
jei (fx4> 100) {
fx1 = 0; fx2 = 0; fx3 = 0;
while (! f_sample) {// laukti mėginio vertės iš ADC} // Ciklas 15625 KHz = 64uSec PORTD = PORTD | 128; f_pavyzdys = klaidinga; bb = badc1; dd [icnt1] = bb; // rašyti į buferį fx4 = iw * badc0 / 255; // mastelio atidėtas mėginys su potenciometru iw1 = dd [icnt2]; // skaityti delsos buferį badc0 = badc0 / 20; // ribinė vertė iki 512 icnt1 ++; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // ribinis indeksas 0.. icnt1 = icnt1 & 511; // ribinis indeksas 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // Pavyzdinė vertė į PWM išvestį
PORTD = PORTD ^ 128; išėjimas (kairėje, PORTD); // Išvestis}
// ************* // *** Flanger *** // ************* if (fx3> 100) {
fx1 = 0; fx2 = 0; fx4 = 0;
while (! f_sample) {// laukti ADC vertės pavyzdžio} // ciklas 15625 KHz = 64uSec
PORTD = PORTD | 128; f_pavyzdys = klaidinga; bb = dd [icnt]; // skaityti delsos buferį iw = 127 - bb; // atimti poslinkį fx3 = iw * badc0 / 255; // mastelio atidėtas mėginys su potenciometru iw1 = 127 - badc1; // atimti poslinkį iš naujo mėginio iw1 = iw1 + iw; // pridėti uždelstą pavyzdį ir naują pavyzdį, jei (iw1 127) iw1 = 127; // Garso ribotuvas bb = 127 + iw1; // pridėti poslinkį dd [icnt] = bb; // saugoti pavyzdį garso buferyje icnt ++; icnt = icnt & 511; // limit bufferindex 0..511 OCR2A = bb; // Pavyzdinė vertė į PWM išvestį
PORTD = PORTD ^ 128; išėjimas (kairėje, PORTD); // Išėjimas
} }
void readKnobs () {fx1 = analogRead (1); fx2 = analogRead (2); fx3 = analogRead (3); fx4 = analogRead (4);
}
void fill_sinewave () {plūdė pi = 3.141592; plūdė dx; plūdė fd; float fcnt; dx = 2 * pi / 512; // užpildykite 512 baitų buferį (iw = 0; iw <= 511; iw ++) {// 50 taškų sinewawe fd = 127 * sin (fcnt); // pagrindinis tonas fcnt = fcnt + dx; // intervale nuo 0 iki 2xpi ir 1/512 žingsniais bb = 127 + fd; // pridėti dc ofsetą prie sinewawe dd [iw] = bb; // įrašyti reikšmę į masyvą
} }
// *********************************************** ***************** **** Hz ISR (TIMER2_OVF_vect) {
PORTB = PORTB | 1;
div32 =! div32; // padalinti laikmatį2 dažnis / 2 į 31,25 kHz, jei (div32) {div16 =! div16; if (div16) {// mėginio kanalas 0 ir 1 pakaitomis, todėl iš kiekvieno kanalo imama 15,6 kHz badc0 = ADCH; // gauti ADC kanalą 0 sbi (ADMUX, MUX0); // nustatyti multiplekserį į kanalą 1} else {badc1 = ADCH; // gauti ADC 1 kanalą cbi (ADMUX, MUX0); // nustatyti multiplekserį į kanalą 0 f_sample = true; } ibb ++; ibb--; ibb ++; ibb--; // trumpas atidėjimas prieš pradedant konversiją sbi (ADCSRA, ADSC); // pradėti kitą konversiją}
}
6 žingsnis: vaizdo įrašas
Galimos problemos ● Imtuvas yra šiek tiek per silpnas maitinimo grandinei - reikia operacinio stiprintuvo. - Vaizdo įraše panaudojome signalo stiprintuvą. (Pilka dėžutė guli ant stalo.)
Rekomenduojamas:
„Parasit Studio Bit Bit Breaker“gitaros efekto kūrimas: 5 žingsniai (su nuotraukomis)
„Parasit Studio“„Bit Breaker“gitaros efekto kūrimas: „Parasite Studio“yra „pasidaryk pats“gitaros efektų svetainė, kurioje pateikiama įvairių medžiagų savo gitaros efektams kurti, ypač tiems, kurie susiję su skaitmeniniais efektais, tokiais kaip bitbreaker ar fuzz. „Parasite Studio“adresas yra http://www.parasi
„Pasidaryk pats“įdomios meilės širdies persekiojimo efekto LED lemputės: 8 žingsniai (su nuotraukomis)
„Pasidaryk pats“įdomios meilės širdies persekiojimo efekto šviesos diodų lemputės: Ši struktūra apima tai, kaip padaryti nuostabius stebuklingus vejančių efektų LED žibintus savo meilužiui, tėvui, motinai, klasės draugams ir geriems draugams. Tai gana lengva sukurti, kol turite kantrybės. Rekomenduoju turėti litavimo patirties, jei gaminate
Į sieną montuojamas Raspberry Pi jutiklinis ekranas: 8 žingsniai (su nuotraukomis)
Į sieną montuojamas „Raspberry Pi“jutiklinis ekranas: „Raspberry Pi 7“" Jutiklinis ekranas yra nuostabi, nebrangi technologija. Nusprendžiau, kad noriu pritvirtinti vieną prie savo sienos, kad galėčiau naudoti namų automatizavimui. Tačiau nė vienas iš „pasidaryk pats“laikiklių, kuriuos radau internete, nesprendė problemos, kaip jį nuleisti be montavimo
„Pasidaryk pats“žiurkių klonų iškraipymo gitaros efekto pedalas - „Dead RAT“: 5 žingsniai (su nuotraukomis)
„Pasidaryk pats“žiurkių klonų iškraipymo gitaros efekto pedalas - „Dead RAT“: tai ne Mickey Mouse iškraipymo pedalas! Šis pedalas yra vieno iš mano mėgstamiausių 80 -ųjų efektų pedalų klonas … „ProCo“RAT iškraipymas. Tai yra pagrindinis „OpAmp“iškraipymo pedalas, naudojant klasikinį LM308N IC mikroschemą, kuri yra gana paprasta konstrukcija, skirta
„Pasidaryk pats“„Ethernet RJ-45“UTP kabelių testeris „UltraCheap“(montuojamas ant sienos): 7 žingsniai (su nuotraukomis)
„Pasidaryk pats“„Ethernet“RJ-45 UTP kabelių testeris „UltraCheap“(montuojamas ant sienos): „Sveiki vaikinai“„EnergyTR“vėl su jumis. Mes pagaminsime „pasidaryk pats“RJ45 kabelių testerį neįtikėtinai pigiai. Kaip žinote, kabelių testeriai yra tikrai brangūs įrenginiai ir žmonėms, kurie visada dirba su tinklu, tai yra esminė dalis. Aš pabandysiu