Mục lục:
- Bước 1: Vấn đề
- Bước 2: Bối cảnh dự án
- Bước 3: Bộ phận / Công cụ cần thiết
- Bước 4: Chiến lược kỹ thuật
- Bước 5: Mã
- Bước 6: Video
Video: NeckCrusher (Bàn đạp hiệu ứng gắn trên guitar): 6 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Dale Rosen, Carlos Reyes và Rob Koch
DATT 2000
Bước 1: Vấn đề
Bàn đạp của đàn ghita hạn chế người nhạc công ngồi trên bàn đạp. Giải pháp: Xây dựng và nhúng chức năng bàn đạp guitar vào chính cây đàn. Điều này cho phép nhạc công tự do di chuyển trên sân khấu, sử dụng cổ guitar làm giao diện thay vì bị hạn chế về vị trí của bàn đạp. Chúng tôi sẽ khám phá khái niệm này bằng cách tạo ra một thiết bị hiệu ứng tốc độ mẫu / bitcrusher.
Bước 2: Bối cảnh dự án
Có rất nhiều bàn đạp guitar được sử dụng bởi các nhạc sĩ để điều chỉnh âm thanh của guitar của họ. Hầu hết chúng thường nằm trong các đơn vị hộp dựa trên giá đỡ hoặc hộp dậm, do đó hạn chế việc kiểm soát các hiệu ứng đến vị trí của đơn vị hiệu ứng. Việc gắn thiết bị trên cây đàn giúp người chơi có thể kiểm soát các thông số của hiệu ứng ở bất kỳ vị trí nào trên sân khấu. Điều này có nghĩa là họ sẽ không bị hạn chế và có thể tự do di chuyển để thực hiện màn trình diễn của mình.
Vì Arduino chỉ có khả năng xử lý âm thanh 8 bit nên không thể xử lý tín hiệu có độ trung thực cao. Đây là lý do tại sao chúng tôi chọn các hiệu ứng mà chúng tôi đã làm, vì chúng dựa trên việc tạo ra âm thanh có độ trung thực thấp, bị méo. Đây là những hiệu ứng duy nhất có thể có với Arduino.
Bước 3: Bộ phận / Công cụ cần thiết
● Máy khoan tác động
● Máy cắt dây
● Dụng cụ cắt dây
● Sắt hàn
● Súng bắn keo nóng
● Bơm khử mùi
● Guitar ● Bao vây
● Hàn
● Keo nóng
● Arduino
● Ban Proto
● Dây tráng
● Giắc cắm âm thanh (x2)
● Chiết áp (x3)
● Tụ điện: 2,2 uF (x2)
● Dây đồng tiếp xúc
● Vít (M3.5 * 8)
● Điện trở: 1 k, 10 k, 1,2 k, 1,5 k, 390 k
● * Op Amp (LM358) / * Transistor (2N3442)
Bước 4: Chiến lược kỹ thuật
Mạch nội bộ
Đầu ra đầu vào
Chúng ta cần chuyển đổi tín hiệu âm thanh từ một cây đàn guitar sang một thứ mà arduino có thể sử dụng và sửa đổi. Sau đó, chúng ta sẽ cần chuyển đổi tín hiệu đến từ arduino trở lại thành tín hiệu âm thanh. Arduino đọc điện áp từ 0V đến 5V, tín hiệu âm thanh từ -1V đến 1V. Các chuyển đổi này được thực hiện bằng cách sử dụng điện trở. Tín hiệu cũng sẽ được chuyển đổi trong mạch đầu ra.
Thư viện Arduino: ArduinoDSP
Mô tả dự án (Giao diện)
Núm núm 1: Tỷ lệ mẫu
Núm 2: Máy nghiền bit
Núm 3: Bộ chuyển số bit
Bước 5: Mã
#include "dsp.h"
#define cbi (sfr, bit) (_SFR_BYTE (sfr) & = ~ _BV (bit)) #define sbi (sfr, bit) (_SFR_BYTE (sfr) | = _BV (bit))
boolean div32; boolean div16;
boolean dễ bay hơi f_sample; byte dễ bay hơi badc0; byte dễ bay hơi badc1; byte dễ bay hơi 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; byte bb;
byte dd [512]; // Mảng bộ nhớ âm thanh 8-bit
void setup () {setupIO ();
// tải lại wave sau 1 giây fill_sinewave ();
// set adc prescaler thành 64 cho tần số lấy mẫu 19kHz cbi (ADCSRA, ADPS2); sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // ADC 8-Bit trong ADCH Đăng ký sbi (ADMUX, ADLAR); sbi (ADMUX, REFS0); cbi (ADMUX, REFS1); cbi (ADMUX, MUX0); cbi (ADMUX, MUX1); cbi (ADMUX, MUX2); cbi (ADMUX, MUX3); // Chế độ Timer2 PWM được đặt thành cbi PWM nhanh (TCCR2A, COM2A0); sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // Thiết lập cho Timer2 cbi (TCCR2B, WGM22); // Định mức đồng hồ Timer2 thành: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Cổng Timer2 PWM Enable sbi (DDRB, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;
}
void loop () {
// kiểm tra trạng thái của chiết áp hiệu ứng và công tắc xoay readKnobs ();
// ************* // ***Bình thường*** // *************
if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {byte input = analogRead (left); đầu ra (trái, đầu vào); }
// ************* // *** Phasor *** // *************
nếu (fx4> 100) {
fx1 = 0; fx2 = 0; fx3 = 0;
while (! f_sample) {// đợi Giá trị mẫu từ ADC} // Chu kỳ 15625 KHz = 64uSec PORTD = PORTD | 128; f_sample = false; bb = badc1; dd [icnt1] = bb; // ghi vào bộ đệm fx4 = iw * badc0 / 255; // chia tỷ lệ mẫu bị trễ với chiết áp iw1 = dd [icnt2]; // đọc bộ đệm trễ badc0 = badc0 / 20; // giới hạn giá trị là 512 icnt1 ++; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // giới hạn chỉ số 0.. icnt1 = icnt1 & 511; // giới hạn chỉ số 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // Giá trị mẫu cho đầu ra PWM
PORTD = PORTD ^ 128; đầu ra (trái, PORTD); // Đầu ra}
// ************* // *** Mặt bích *** // ************* if (fx3> 100) {
fx1 = 0; fx2 = 0; fx4 = 0;
while (! f_sample) {// đợi Giá trị mẫu từ ADC} // Chu kỳ 15625 KHz = 64uSec
PORTD = PORTD | 128; f_sample = false; bb = dd [icnt]; // đọc bộ đệm trễ iw = 127 - bb; // giá trị bù trừ phụ fx3 = iw * badc0 / 255; // chia tỷ lệ mẫu bị trễ với chiết áp iw1 = 127 - badc1; // phần bù trừ từ mẫu mới iw1 = iw1 + iw; // thêm mẫu bị trễ và mẫu mới if (iw1 127) iw1 = 127; // Bộ giới hạn âm thanh bb = 127 + iw1; // thêm offset dd [icnt] = bb; // lưu trữ mẫu trong bộ đệm âm thanh icnt ++; icnt = icnt & 511; // giới hạn bufferindex 0..511 OCR2A = bb; // Giá trị mẫu cho đầu ra PWM
PORTD = PORTD ^ 128; đầu ra (trái, PORTD); // Đầu ra
} }
void 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; // điền vào vùng đệm 512 byte for (iw = 0; iw <= 511; iw ++) {// với 50 khoảng thời gian sinewawe fd = 127 * sin (fcnt); // âm cơ bản fcnt = fcnt + dx; // trong khoảng tăng từ 0 đến 2xpi và 1/512 bb = 127 + fd; // thêm phần bù dc vào sinewawe dd [iw] = bb; // ghi giá trị vào mảng
} }
// ************************************************ ****************** // Dịch vụ ngắt Timer2 ở 62,5 KHz // tại đây tín hiệu âm thanh và tín hiệu nồi được lấy mẫu theo tỷ lệ: 16Mhz / 256/2/2 = 15625 Hz ISR (TIMER2_OVF_vect) {
PORTB = PORTB | 1;
div32 =! div32; // chia tần số timer2 / 2 cho 31,25kHz if (div32) {div16 =! div16; if (div16) {// kênh mẫu 0 và 1 xen kẽ nên mỗi kênh được lấy mẫu với 15,6kHz badc0 = ADCH; // lấy kênh ADC 0 sbi (ADMUX, MUX0); // đặt bộ ghép kênh thành kênh 1} else {badc1 = ADCH; // lấy kênh ADC 1 cbi (ADMUX, MUX0); // đặt bộ ghép kênh thành kênh 0 f_sample = true; } ibb ++; ibb--; ibb ++; ibb--; // độ trễ ngắn trước khi bắt đầu chuyển đổi sbi (ADCSRA, ADSC); // bắt đầu chuyển đổi tiếp theo}
}
Bước 6: Video
Các vấn đề có thể xảy ra ● Pickup hơi quá yếu đối với mạch nguồn - cần một bộ khuếch đại op. - Trong video, chúng tôi đã sử dụng một bộ tăng cường tín hiệu. (Hộp màu xám nằm trên bàn.)
Đề xuất:
Bàn đạp Proto cho Hiệu ứng Guitar DIY: 5 bước (có hình ảnh)
Bàn đạp Proto cho Hiệu ứng đàn guitar tự làm: Thiết kế và tạo hiệu ứng đàn guitar của riêng bạn là một cách tuyệt vời để kết hợp niềm đam mê điện tử và guitar. Tuy nhiên, khi thử nghiệm các thiết kế mới, tôi nhận thấy mạch mỏng manh trên bảng mạch không hàn rất khó kết nối với bản vá c
Bàn đạp hiệu ứng âm nhạc và guitar ATMega1284P: 6 bước (có hình ảnh)
Bàn đạp hiệu ứng âm nhạc và guitar ATMega1284P: Tôi đã chuyển Arduino Uno ATMega328 Pedalshield (do Electrosmash phát triển và một phần dựa trên công việc tại Phòng thí nghiệm âm nhạc mở) sang ATMega1284P có RAM gấp tám lần so với Uno (16kB so với 2kB). Một lợi ích bất ngờ bổ sung là
Cách tôi gắn trên giá treo Bộ xử lý hiệu ứng guitar 6 pod của tôi: 10 bước (có hình ảnh)
Cách tôi gắn trên giá đỡ Bộ xử lý hiệu ứng guitar Line 6 Pod của tôi: Tôi đã mua một trong những đơn vị POD ban đầu của Dòng 6 khi chúng ra mắt lần đầu tiên vào năm 1998. Hồi đó nó có vẻ phi thường và cho đến ngày nay âm thanh vẫn tuyệt vời - vấn đề duy nhất là hình dạng của nó - Nói một cách dễ hiểu, nó trông thật ngớ ngẩn. Quan trọng hơn, trừ khi bạn có
Bàn đạp hiệu ứng đàn guitar biến dạng bản sao chuột tự làm - RAT chết: 5 bước (có hình ảnh)
Bàn đạp hiệu ứng đàn guitar làm biến dạng chuột sao chép tự làm - RAT đã chết: Đây không phải là bàn đạp làm biến dạng chuột Mickey! Bàn đạp này là bản sao của một bàn đạp hiệu ứng yêu thích của tôi từ những năm 80 … Biến dạng RAT của ProCo. Đó là một bàn đạp bóp méo OpAmp cơ bản sử dụng chip IC LM308N cổ điển, một cấu trúc khá đơn giản cho t
Làm cho máy ảnh của bạn thành "chế độ chụp đêm quân sự", thêm hiệu ứng ban đêm hoặc tạo chế độ chụp ảnh ban đêm trên bất kỳ máy ảnh nào !!!: 3 bước
Đặt Máy ảnh của bạn thành "Chế độ chụp đêm quân sự", Thêm Hiệu ứng Ban đêm hoặc Tạo Chế độ Cảnh báo Ban đêm trên Bất kỳ Máy ảnh nào !!!: *** Điều này đã được đưa vào CUỘC THI KỸ THUẬT SỐ DAYS PHOTO , Hãy bình chọn cho tôi ** * Nếu bạn cần bất kỳ trợ giúp nào, vui lòng gửi email: [email protected] Tôi nói tiếng Anh, Pháp, Nhật, Tây Ban Nha và tôi biết các ngôn ngữ khác nếu bạn