This is a device that perceives motion in fidgeting to output a feedback noise. People tend to fidget subconsciously it but if they wear this device they will immediately realize they are shaking their leg/foot/etc. I also thought it would be interesting to perceive noise from human behavior that is in his or her organic time frame that is not always intended to create a rhythm or follow a pattern.
int prev_z = -1; #define SPEAKER_PIN 5 void setup() { pinMode(SPEAKER_PIN, OUTPUT); digitalWrite(SPEAKER_PIN, LOW); Serial.begin(9600); } void loop() { #define OFFSET 335 #define SCALE 0.013 int z_raw = analogRead(2); float z = ((z_raw - OFFSET) * SCALE)-0.83; // use rounding to smooth and ignore noise float sensitivity = .5; z = round(z*sensitivity)/sensitivity; // turn z into -1 or 1 int unit_z = z/(abs(z)); // ignore zeros if (unit_z == 0) { unit_z = -1; } // make a noise if z changed to going down if( unit_z < prev_z){ digitalWrite(LED_BUILTIN, HIGH); tone(SPEAKER_PIN, 50); } // otherwise do not output noise else { digitalWrite(LED_BUILTIN, LOW); noTone(SPEAKER_PIN); } // update previous z for next loop prev_z = unit_z; Serial.print(unit_z); delay(50); }
Leave a Reply
You must be logged in to post a comment.