1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <PHYSIs_Master.h>            // Physis 전용 라이브러리 추가
 
#define C_PIN       2                 // 터치 센서 핀 번호
#define D_PIN       3
#define E_PIN       4
#define F_PIN       5
#define G_PIN       A0
#define A_PIN       A1
#define B_PIN       A2
#define C_H_PIN     A4
 
PHYSIs_BLE physisBLE;                 // Physis BLE 객체 선언
 
String oldData;                       // 기존 입력 정보 값
 
void setup() {
  Serial.begin(115200);
 
  if (!physisBLE.enable()) {                  // BLE 모듈 활성화 시도
    while (1) {
      delay(1000);                            // 모듈 활성화 실패 시, 다음 단계 진행 X
    }
  }
 
  Serial.print(F("# BLE Address : "));
  Serial.println(physisBLE.getAddress());     // Physis 메이커보드의 주소정보 호출 & 출력
 
  pinMode(C_PIN, INPUT);                      // 디지털 핀을 사용하는 터치 센서 핀 모드 설정
  pinMode(D_PIN, INPUT);
  pinMode(E_PIN, INPUT);
  pinMode(F_PIN, INPUT);
}
 
void loop() {
  inputReader();                              // 터치 입력 검출 함수 호출
  delay(50);
}
 
 
void inputReader() {
  // 터치 센서의 각각의 입력 상태를 확인
  bool c = digitalRead(C_PIN);                    
  bool d = digitalRead(D_PIN);
  bool e = digitalRead(E_PIN);
  bool f = digitalRead(F_PIN);
  bool g = analogRead(G_PIN) == 1023;
  bool a = analogRead(A_PIN) == 1023;
  bool b = analogRead(B_PIN) == 1023;
  bool ch = analogRead(C_H_PIN) == 1023;
 
  // 현재 입력에 대한 상태 문자열 생성
  String newData = String(c) + String(d) + String(e) + String(f) +
                   String(g) + String(a) + String(b) + String(ch);
 
  // 상태정보와 기존 입력 정보를 비교
  if (!newData.equals(oldData)) {           // 입력상태가 변경되었을 경우,
    physisBLE.sendMessage(newData);             // 현재 상태를 블루투스 메시지로 전송.
    oldData = newData;                          // 기존 입력 정보 갱신.
  }
}
cs

 

 

Physis_Piano.aia
0.35MB

+ Recent posts