1. 按一次按鈕就唱小蜜蜂的一個音
Code:
// 定義聲音的音頻
#define NOTE_C5 523
#define NOTE_D5 587
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_G5 784
// 小蜜蜂的樂譜
int beeSong[] = {
NOTE_G5, NOTE_E5, NOTE_E5,
NOTE_F5, NOTE_D5, NOTE_D5,
NOTE_C5, NOTE_D5, NOTE_E5, NOTE_F5, NOTE_G5, NOTE_G5, NOTE_G5,
NOTE_G5, NOTE_E5, NOTE_E5,
NOTE_F5, NOTE_D5, NOTE_D5,
NOTE_C5, NOTE_E5, NOTE_G5, NOTE_G5, NOTE_C5
};
int now = 0; // 現在播放到哪一個音
void setup() {
pinMode(8, OUTPUT); //發聲音的BUZZER
pinMode(2, INPUT_PULLUP); // 把BUTTON(2號角位)打開
}
void loop() {
// 如果按鈕按下就唱歌
if (digitalRead(2) == LOW) {
tone(8, beeSong[now], 230);
delay(230);
now = (now+1)%24; // now 不能超過陣列的範圍
}
}
2. 用單心線戳每個腳位對應的洞就會發出聲音
Code:
// 定義聲音的音頻
#define NOTE_C5 523
#define NOTE_D5 587
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_G5 784
#define NOTE_A5 880
#define NOTE_B5 988
#define NOTE_HC5 1046
void setup() {
for (int i=2; i<=13; i++) {
pinMode(i, INPUT_PULLUP); // 把腳位的電位拉高
}
pinMode(8, OUTPUT); //發聲音的BUZZER
}
void loop() {
// 如果用單心線戳對應的洞就會發出聲音
if (digitalRead(2) == LOW) tone(8, NOTE_C5, 230);
if (digitalRead(3) == LOW) tone(8, NOTE_D5, 230);
if (digitalRead(4) == LOW) tone(8, NOTE_E5, 230);
if (digitalRead(5) == LOW) tone(8, NOTE_F5, 230);
if (digitalRead(6) == LOW) tone(8, NOTE_G5, 230);
if (digitalRead(7) == LOW) tone(8, NOTE_A5, 230);
if (digitalRead(9) == LOW) tone(8, NOTE_B5, 230);
if (digitalRead(10) == LOW) tone(8, NOTE_HC5, 230);
}
3. Processing的網路通訊程式
Server Code:
import processing.net.*;
Server server;
void setup() {
size(300, 300);
server = new Server(this, 7777); // 設定Server的Port號
}
void draw() {
// 接收Client端傳送過來的資料
Client client = server.available();
if (client != null) {
String receive = client.readString();
if (receive != null) println("Server received: " + receive);
}
}
Client Code:
import processing.net.*;
Client client;
void setup() {
size(300, 300);
client = new Client(this, "127.0.0.1", 7777); // 設定要傳過去的Server的IP和Port號
}
void draw() {
}
void mousePressed() {
client.write("Hello"); // 傳訊息給Server
}
沒有留言:
張貼留言