阿木博主一句话概括:基于PureData和Arduino的压力传感器力度鼓机实战:压力值控制音量与音高
阿木博主为你简单介绍:
本文将探讨如何利用PureData和Arduino构建一个基于压力传感器的力度鼓机。通过Arduino读取压力传感器的数据,并将其发送到PureData处理,最终实现压力值控制音量与音高的功能。本文将详细介绍硬件连接、代码编写以及实现过程。
一、
随着电子音乐和电子乐器的发展,力度鼓机作为一种模拟传统鼓乐器的电子设备,越来越受到音乐制作人的青睐。本文将介绍如何利用PureData和Arduino构建一个简单的力度鼓机,通过压力传感器实时捕捉演奏者的力度,进而控制音量和音高。
二、硬件准备
1. Arduino Uno或Arduino Nano开发板
2. 压力传感器(如压力变阻器)
3. 连接线
4. 音频模块(如LM386放大器)
5. 动圈麦克风或电容麦克风
6. 音箱或耳机
三、软件准备
1. Arduino IDE
2. PureData软件
四、硬件连接
1. 将压力传感器的输出端连接到Arduino的A0模拟输入端。
2. 将Arduino的GND连接到压力传感器的GND。
3. 将Arduino的5V连接到压力传感器的VCC。
4. 将音频模块的输入端连接到Arduino的PWM输出端(如PWM 3)。
5. 将麦克风连接到音频模块的输入端。
6. 将音箱或耳机连接到音频模块的输出端。
五、Arduino代码编写
cpp
const int pressureSensorPin = A0; // 压力传感器连接到A0
const int audioOutPin = 3; // 音频模块连接到PWM 3
void setup() {
pinMode(audioOutPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int pressureValue = analogRead(pressureSensorPin); // 读取压力传感器的值
int volume = map(pressureValue, 0, 1023, 0, 255); // 将压力值映射到PWM值
analogWrite(audioOutPin, volume); // 输出PWM值到音频模块
// 将压力值发送到PureData
Serial.print(pressureValue);
Serial.print("");
delay(10);
}
六、PureData代码编写
```pd
N canvas 0 0 1280 720 12;
X obj 100 100 cnv 15 400 400 empty empty Pressure_Drum_Machine 20 12 0 14 -233017 -66577 0;
X obj 100 200 cnv 15 300 100 empty empty Pressure_Sensor 20 12 0 14 -233017 -66577 0;
X obj 100 300 cnv 15 300 100 empty empty Audio_Out 20 12 0 14 -233017 -66577 0;
X obj 100 500 cnv 15 300 100 empty empty Volume 20 12 0 14 -233017 -66577 0;
X obj 100 600 cnv 15 300 100 empty empty Pitch 20 12 0 14 -233017 -66577 0;
X obj 100 400 cnv 15 300 100 empty empty Pressure_Value 20 12 0 14 -233017 -66577 0;
X obj 100 700 cnv 15 300 100 empty empty Output 20 12 0 14 -233017 -66577 0;
X obj 100 110 cnv 15 300 100 empty empty Connect_to_Arduino 20 12 0 14 -233017 -66577 0;
X obj 100 120 cnv 15 300 100 empty empty Open_Serial_Port 20 12 0 14 -233017 -66577 0;
X obj 100 130 cnv 15 300 100 empty empty Set_Baud_Rate_to_9600 20 12 0 14 -233017 -66577 0;
X obj 100 140 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 150 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 160 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 170 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 180 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 190 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 200 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 210 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 220 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 230 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 240 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 250 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 260 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 270 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 280 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 290 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 300 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 310 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 320 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 330 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 340 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 350 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 360 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 370 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 380 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 390 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 400 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 410 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 420 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 430 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 440 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 450 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 460 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 470 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 480 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 490 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 500 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 510 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 520 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 530 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 540 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 550 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 560 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 570 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 580 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 590 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 600 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 610 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 620 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 630 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 640 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 650 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 660 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 670 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 680 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 690 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 700 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 710 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 720 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 730 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 740 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 750 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 760 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 770 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 780 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 790 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 800 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 810 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 820 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 830 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 840 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 850 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 860 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 870 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 880 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 890 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 900 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 910 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 920 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577 0;
X obj 100 930 cnv 15 300 100 empty empty Press_Return 20 12 0 14 -233017 -66577
Comments NOTHING