Мазмуну:
- 1 -кадам: Көйгөй
- 2 -кадам: Долбоордун контексти
- 3 -кадам: Бөлүктөр / Куралдар керек
- 4 -кадам: Техникалык стратегия
- 5 -кадам: Код
- 6 -кадам: Видео
Video: NeckCrusher (Гитарага орнотулган эффект педалы): 6 кадам (Сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Дэйл Розен, Карлос Рейес жана Роб Кох
DATT 2000
1 -кадам: Көйгөй
Гитаранын педалдары музыкантты педаль аянтчасына чектейт. Чечим: Гитаранын педальдык функциясын гитаранын өзүнө куруңуз. Бул музыкантка педаль тактасынын жайгашкан жери менен чектелбестен, гитаранын моюнун интерфейс катары колдонуп, этап боюнча эркин жылууга мүмкүнчүлүк берет. Биз бул түшүнүктү биткрушка/ылдамдык эффекти түзмөк түзүү аркылуу изилдейбиз.
2 -кадам: Долбоордун контексти
Музыканттар гитарасынын үнүн башкаруу үчүн колдонгон көптөгөн гитара педалдары бар. Булардын көбү адатта стойкага негизделген же стомп кутуларында, андыктан эффекттерди көзөмөлдөөнү эффекттер бирдигинин жайгашкан жерине чектөө. Түзмөктү гитарага орнотуу оюнчуларга эффектин параметрлерин сахнанын каалаган жеринде башкарууга мүмкүнчүлүк берет. Бул алар чектелбейт жана алардын аткарылышы үчүн ары -бери эркин жүрө алат дегенди билдирет.
Arduino 8 биттик аудиого гана жөндөмдүү болгондуктан, сигналды жогорку тактыкта иштетүү мүмкүн эмес. Мына ошондуктан биз эффекттерди тандап алдык, анткени алар аз ишенимдүүлүккө, бурмаланган үндү түзүүгө негизделген. Бул бир гана Arduino менен мүмкүн болгон эффекттер.
3 -кадам: Бөлүктөр / Куралдар керек
● Impact Drill
● Сым кескичтер
● Сым тазалагычтар
● Паяльник
● Hot Glue Gun
● Тазалоочу насос
● Гитара ● Корпус
● Solder
● Ысык клей
● Arduino
● Proto Board
● Капталган зым
● Аудио джекстер (x2)
● потенциометрлер (x3)
● Конденсаторлор: 2.2 uF (x2)
● Ачык жез зымы
● Бурамалар (M3.5 *8)
● Резисторлор: 1 к, 10 к, 1,2 к, 1,5 к, 390 к
● * Op Amp (LM358) / * Транзистор (2N3442)
4 -кадам: Техникалык стратегия
Ички микросхема
Киргизүү/чыгаруу
Гитарадан келген аудио сигналды arduino колдоно турган жана өзгөртө турган нерсеге айландырышыбыз керек. Андан кийин биз ардуинодон келген сигналды кайра аудио сигналга айландырышыбыз керек. Arduino 0Vдан 5Vга чейинки чыңалууларды окуйт, аудио сигналдар -1Vдан 1Vга чейин. Бул которуулар резисторлордун жардамы менен жасалат. Сигнал ошондой эле чыгаруу схемасында айландырылат.
Arduino китепканасы: ArduinoDSP
Долбоордун сүрөттөмөсү (Interface)
Knobs Knob 1: Sample Rate
2 -баскыч: Бит майдалагыч
3 -баскыч: Бит которгуч
5 -кадам: Код
#"dsp.h" кошуу
#debine cbi (sfr, bit) (_SFR_BYTE (sfr) & = ~ _BV (bit)) #debine sbi (sfr, bit) (_SFR_BYTE (sfr) | = _BV (bit))
логикалык div32; логикалык div16;
туруксуз логикалык f_sample; туруксуз байт badc0; туруксуз байт badc1; туруксуз байт 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; байт bb;
байт dd [512]; // Audio Memory Array 8-Bit
void setup () {setupIO ();
// толкун 1 секунддан кийин кайра жүктөлөт fill_sinewave ();
// adc prescaler'ди 19 кГц ылдамдыкта cbi үчүн 64кө коюңуз (ADCSRA, ADPS2); sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // ADCH Register sbiдеги 8-бит ADC (ADMUX, ADLAR); sbi (ADMUX, REFS0); cbi (ADMUX, REFS1); cbi (ADMUX, MUX0); cbi (ADMUX, MUX1); cbi (ADMUX, MUX2); cbi (ADMUX, MUX3); // Timer2 PWM режими тез PWM cbiге коюлган (TCCR2A, COM2A0); sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // Timer2 cbi үчүн орнотуу (TCCR2B, WGM22); // Timer2 Clock Prescaler: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Timer2 PWM портун иштетүү sbi (DDRB, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;
}
void loop () {
// эффект потенциометринин жана айлануучу которгучтун абалын текшерүү readKnobs ();
// ************* // *** Кадимки *** // *************
if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {байт киргизүү = analogRead (солдо); чыгаруу (сол, киргизүү); }
// ************* // *** Phasor *** // *************
эгер (fx4> 100) {
fx1 = 0; fx2 = 0; fx3 = 0;
while (! f_sample) {// ADCден үлгү маанисин күтө} // Цикл 15625 KHz = 64uSec PORTD = PORTD | 128; f_sample = жалган; bb = badc1; dd [icnt1] = bb; // буферге жазуу fx4 = iw * badc0 / 255; // потенциометр iw1 = dd [icnt2] менен кечиктирилген үлгү; // кечигүү буферин оку badc0 = badc0 / 20; // 512 icnt1 ++ чек чеги; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // чек индекси 0.. icnt1 = icnt1 & 511; // чек индекси 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // PWM Чыгаруусуна Үлгү Мааниси
PORTD = PORTD ^ 128; чыгаруу (сол, PORTD); // Чыгуу}
// ************* // *** Flanger *** // ************* if (fx3> 100) {
fx1 = 0; fx2 = 0; fx4 = 0;
while (! f_sample) {// ADCден үлгү маанисин күтүү} // Цикл 15625 KHz = 64uSec
PORTD = PORTD | 128; f_sample = жалган; bb = dd [icnt]; // кечигүү буферин оку iw = 127 - bb; // субстраттык жылыш fx3 = iw * badc0 / 255; // потенциометр менен масштаб кечиктирилген үлгү iw1 = 127 - badc1; // жаңы үлгүдөгү субстраттык жылыш iw1 = iw1 + iw; // кечиктирилген үлгүнү жана жаңы үлгүнү кошуу, эгерде (iw1 127) iw1 = 127; // Аудио чектөөчү bb = 127 + iw1; // кошуу dd [icnt] = bb; // үлгүнү аудио буферинде сактаңыз icnt ++; icnt = icnt & 511; // чектик буфериндекс 0..511 OCR2A = bb; // PWM Чыгаруусуна Үлгү Мааниси
PORTD = PORTD ^ 128; чыгаруу (сол, PORTD); // Чыгуу
} }
жараксыз readKnobs () {fx1 = analogRead (1); fx2 = analogRead (2); fx3 = analogRead (3); fx4 = analogRead (4);
}
void fill_sinewave () {float pi = 3.141592; float dx; float fd; float fcnt; dx = 2 * pi / 512; // (iw = 0; iw <= 511; iw ++) {// үчүн 512 байт буферликти толтуруңуз 50 sinewawe fd = 127 * sin (fcnt) менен; // фундаменталдык обон fcnt = fcnt + dx; // 0дон 2xpi жана 1/512 өсүш аралыгында bb = 127 + fd; // scwawe dc ордун кошуу dd [iw] = bb; // массивге маанини жазуу
} }
// ********************************************** ****************** // Timer2 Interrupt Service 62.5 KHz // бул жерде аудио жана казан сигналы ылдамдыкта тандалат: 16Mhz / 256/2/2 = 15625 Гц ISR (TIMER2_OVF_vect) {
PORTB = PORTB | 1;
div32 =! div32; // бөлүү таймер2 жыштыгы / 2ден 31.25кГцке чейин (div32) {div16 =! div16; if (div16) {// 0 жана 1 үлгүлүү канал кезектешип ар бир каналга 15.6kHz badc0 = ADCH; // ADC каналын алуу 0 sbi (ADMUX, MUX0); // мультиплексорду 1 -каналга кой} башка {badc1 = ADCH; // ADC канал 1 cbi алуу (ADMUX, MUX0); // мультиплексорду 0 каналына коюу f_sample = true; } ibb ++; ibb--; ibb ++; ibb--; // конверсияны баштоо алдында кыска кечигүү sbi (ADCSRA, ADSC); // кийинки конверсияны баштоо}
}
6 -кадам: Видео
Потенциалдуу көйгөйлөр ● Пикап электр схемасы үчүн бир аз алсыз - оп -амп керек. - Видеодо сигналды күчөткүчтү колдондук. (Боз куту столдун үстүндө.)
Сунушталууда:
Зымсыз велосипедге орнотулган Bluetooth спикери: 11 кадам (сүрөттөр менен)
Зымсыз велосипедге орнотулган Bluetooth спикери: Саламатсызбы! Бул Нускамада мен сизге зымсыз велосипедге орнотулган Bluetooth колонкасын кантип курганымды көрсөтөм. Мен айтышым керек, бул ушул убакка чейин менин сүйүктүү долбоорлорумдун бири болушу мүмкүн. Бул сонун көрүнөт, сонун үнгө ээ жана футуристтик көрүнүшкө ээ! Ал катары
Таяныч кыймылынан майыптыгы бар адамдар үчүн көз айнекке орнотулган лазер көрсөткүчү: 9 кадам (сүрөттөр менен)
Таяныч кыймылынан майыптыгы бар адамдар үчүн көз айнекке орнотулган лазердик көрсөткүч: Церебралдык шал оорусунан жабыркагандар сыяктуу кыймыл-аракетинин оор бузулуулары бар адамдар көп учурда татаал байланыш муктаждыктарына ээ. Байланышка жардам берүү үчүн алфавит жазылган тактайларды же көбүнчө колдонулган сөздөрдү колдонуу талап кылынышы мүмкүн. Бирок, көптөгөн
Визорго орнотулган көп түстүү LED жарык терапиясы чырагы: 9 кадам (сүрөттөр менен)
Визорго орнотулган көп түстүү светодиотерапия лампасы: шляпаңыздагы жарык терапия лампасы менен сиз машыгуу жана иштөө сыяктуу ары-бери жылып жүрүүнү талап кылган иштерди жасай аласыз. Бул лампанын жарыктыгын көзөмөлдөөчү кызыл, сары, көк жана көк диоддору бар. 15 же 45 мүнөттөн кийин өчөт. Бул
Raspberry Pi: Дубалга орнотулган Календар жана Билдирүү Борбору: 5 кадам (Сүрөттөр менен)
Raspberry Pi: Дубалга орнотулган Календарь жана Билдирүү Борбору: & сандык доорго чейин ” көптөгөн үй -бүлөлөр алдыдагы окуялардын ай сайын көрүнүшүн көрсөтүү үчүн дубал календарын колдонушкан. Дубалга орнотулган календардын бул заманбап версиясы ошол эле негизги функцияларды камтыйт: Үй -бүлө мүчөлөрүнүн ай сайын күн тартибин шайкештештирүү
Лазер-синтитар Гитарага окшош оюнчук гитарадан: 6 кадам
Лазер-синтитар Гитара-баатырга окшош оюнчук гитарадан: Мени youtubeдагы лазердик арфалардын бардык видеолору шыктандырды, бирок мен алардын баарын джем сессиясына алып келүү үчүн өтө чоң деп таптым же аларга татаал орнотуу жана компьютер керек болгон. Мен кылдын ордуна лазер менен гитараны ойлодум. Анан мен сынган татты таптым