2015年12月28日 星期一

第十五週

今天的進度:
做出一個可以發出咚、鏘
的感應器

(敲下黑色圓圈 就有咚的聲音,跟鏘的聲音)


const int sensorPinA=0; const int ledPinA= 13; const int sensorPinB=1; const int ledPinB= 12; const int sensorPinC=2; const int ledPinC= 11; const int threshold= 50; long previousMillisA = 0; long previousMillisB = 0; long previousMillisC = 0; long interval = 50; // interval at which to blink (milliseconds) int i=0; int a1=1,a2=11; int b1=2,b2=22; int c1=3,c2=33; void setup() { Serial.begin(9600); pinMode(ledPinA, OUTPUT); pinMode(ledPinB, OUTPUT); pinMode(ledPinC, OUTPUT); } void loop() { int valA= analogRead(sensorPinA); int valB= analogRead(sensorPinB); int valC= analogRead(sensorPinC); if (valA >= threshold) if(millis() - previousMillisA > interval) { previousMillisA = millis(); if(i%2==0){ Serial.write(a1);Serial.println(a1);} if(i%2!=0){ Serial.write(a2);Serial.println(a2);} i++; } if (valB >= threshold) if(millis() - previousMillisB > interval) { previousMillisB = millis(); if(i%2==0){ Serial.write(b1);Serial.println(b1);} if(i%2!=0){ Serial.write(b2);Serial.println(b2);} i++; } if (valC >= threshold) if(millis() - previousMillisC > interval) { previousMillisC = millis(); if(i%2==0){ Serial.write(c1);Serial.println(c1);} if(i%2!=0){ Serial.write(c2);Serial.println(c2);} i++; } }





----------------------------------------------------------------------
import processing.serial.*; import ddf.minim.*; Minim minim; AudioPlayer drumA1; AudioPlayer drumA2; AudioPlayer drumB1; AudioPlayer drumB2; AudioPlayer drumC1; AudioPlayer drumC2; Serial myPort; // Create object from Serial class int val; // Data received from the serial port void setup() { size(200, 200); minim = new Minim(this); // I know that the first port in the serial list on my mac // is always my FTDI adaptor, so I open Serial.list()[0]. // On Windows machines, this generally opens COM1. // Open whatever port is the one you're using. String portName = Serial.list()[0]; // myPort = new Serial(this, "/dev/cu.usbmodem1411", 9600); myPort = new Serial(this, "COM3", 9600); drumA1= minim.loadFile("kick.mp3",128); drumA2=minim.loadFile("kick.mp3",128); drumB1= minim.loadFile("snare.mp3",128); drumB2=minim.loadFile("snare.mp3",128); drumC1= minim.loadFile("hat.mp3",128); drumC2=minim.loadFile("hat.mp3",128); } void draw() { if ( myPort.available() > 0) { // If data is available, val = myPort.read(); // read it and store it in val } background(205,170,125); if (val == 1) { drumA1.rewind(); drumA1.play(); fill(20); } if (val == 11) { drumA2.rewind(); drumA2.play(); fill(255); } if (val == 2) { drumB1.rewind(); drumB1.play(); fill(20); } if (val == 22) { drumB2.rewind(); drumB2.play(); fill(255); } if (val == 3) { drumC1.rewind(); drumC1.play(); fill(20); } if (val == 33) { drumC2.rewind(); drumC2.play(); fill(255); } rect(50, 50, 100, 100); }

沒有留言:

張貼留言