touchmysound
Published © CC BY-NC-SA

Fingerscan: Music at Your Fingertips

A tactile music wearable, made of ten vibration motors attached to your fingernails…

BeginnerShowcase (no instructions)17,536
Fingerscan: Music at Your Fingertips

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×2
SparkFun Vibration motor
×10
Resistor 1k ohm
Resistor 1k ohm
×10
Capacitor 100 nF
Capacitor 100 nF
×10
1N4007 – High Voltage, High Current Rated Diode
1N4007 – High Voltage, High Current Rated Diode
×10
General Purpose Transistor NPN
General Purpose Transistor NPN
×10
Switch regulator 3.3v 1A
×1

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Hot glue gun (generic)
Hot glue gun (generic)

Story

Read more

Schematics

Fingerscan - schematics

see: https://goo.gl/9Gb5cq

Code

Left hand

Arduino
Upload to Arduino board A, modify at will!
  const int motorPin1 = 3;
  const int motorPin2 = 5;
  const int motorPin3 = 6;
  const int motorPin4 = 9;
  const int motorPin5 = 10;
  int randTime = 0;

void setup() {
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  pinMode(motorPin5, OUTPUT);
}

void loop() {
  steady(motorPin1);
  steady(motorPin2);
  steady(motorPin3);
  steady(motorPin4);
  steady(motorPin5);
}

void steady(int motorPin) {
  randTime = random(250);
  analogWrite(motorPin, 250);
  delay(randTime+50);
  analogWrite(motorPin, 0);
}

Right hand

Arduino
Upload to Arduino board B, modify at will!
  const int motorPin1 = 3;
  const int motorPin2 = 5;
  const int motorPin3 = 6;
  const int motorPin4 = 9;
  const int motorPin5 = 10;

void setup() {
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  pinMode(motorPin5, OUTPUT);
}

void loop() {
  ramp(motorPin1);
  ramp(motorPin2);
  ramp(motorPin3);
  ramp(motorPin4);
  ramp(motorPin5);
}

void ramp(int motorPin) {
  int randn;
   randn = random(10);
   for (int intensity = 0; intensity < 250; intensity++) {     analogWrite(motorPin, intensity);     delay(randn);   }   randn = random(20);    for (int intensity = 250; intensity > 0; intensity--) {

    analogWrite(motorPin, intensity);
    delay(randn);
  }
}

Credits

touchmysound

touchmysound

6 projects • 44 followers
Alessandro Perini's artistic production ranges from audiovisual and light-based works to net-art, land-art and vibration-based works.

Comments