Rebeccas Outfit

7 Schritt:Schritt 1: Materialliste Schritt 2: Hardware Arduino Schritt 3: Sonnenbrillen Schritt 4: Stromversorgung Schritt 5: Lautsprecher (optional) Schritt 6: Arduino Code Schritt 7: Setup

Rebeccas Outfit

Rebeccas Outfit

Rebeccas Outfit

Rebeccas Outfit

Rebeccas Outfit

Rebeccas Outfit

Alle 15 Artikel anzeigen
Rebeccas Outfit ist ein Lauf Zubehör entwickelt, um die Läufer zu motivieren, ein schnelles Tempo von ihm / ihr Unterziehen einer horrenden Musik zu halten. Rebeccas Outfit einen Song auf dem Niveau der Belästigung Rebecca Black "Friday" zu spielen; wenn der Läufer schnell läuft, wird der Song schneller als die normale Wiedergabegeschwindigkeit zu spielen, und wenn die Läufer noch steht, wird der Song langsamer als die normale Wiedergabegeschwindigkeit zu spielen. Wenn der Läufer will den Song zu über schneller sein (und auch klingen hilarious) er / sie wird sicherlich motiviert läuft in einem schnellen Tempo zu halten.

Ein weiterer Bestandteil ist eine Sonnenbrille mit einer Reihe von LEDs an der Spitze. Die LEDs werden mit zunehmender Häufigkeit bei steigender Geschwindigkeit des Läufers zu blinken.

Dies wird durch eine Arduino mit einem Wave-Schild erreicht, Musik zu spielen, und ein Beschleunigungsmesser, um die Geschwindigkeit des runner.Step 1 berechnen: Materialliste



Arduino (wir haben die Uno SMD, aber theoretisch könnten Sie ein anderes verwenden)
Wav-Schild http://www.ladyada.net/make/waveshield/
Accelerometer http://datasheet.octopart.com/MMA1260EG-Freescale-Semiconductor-datasheet-142002.pdf
Löten supplies
Wires
Kopfhörer / Lautsprecher
12-Volt-Batterie
SD-Karte
alte Sonnenbrille
Klettband
Ein- / Ausschalter
Hot glueStep 2: Arduino Hardware

Rebeccas Outfit
1. Legen Sie die zusammen Wellenabschirmschicht gemäß den Anweisungen auf der Website (http://www.ladyada.net/make/waveshield/make.html).

2. Setzen Sie auf einen Beschleunigungsmesser Breakout-Board.

3. Schließen Sie den Beschleunigungsmesser durch Löten Drähte mit den richtigen Pins auf dem Schild - 5 Volt Strom an Pin 6, Erde an Pin 7 und Analogeingang 0 bis Stift 4. Es ist wahrscheinlich am besten, um für Stabilität Kopfstifte zu verwenden.

4. Löten Sie einen Draht lange genug, um aus der Hüfte, um Ihr Gesicht zu digitalen Stift 7 lange genug, um aus der Hüfte, um Ihr Gesicht (oder einem anderen digitalen Stift zu erreichen zu erreichen (auch auf LEDs angeschlossen werden), aber Sie müssen das ändern Code).

5. Löten Sie einen Draht lange genug, um aus der Hüfte, um Ihr Gesicht zu erreichen (auch eine Verbindung mit LEDs) an den Erdungsstift.

6. Schließen Sie den Schirm an die Arduino.Step 3: Sonnenbrillen

Rebeccas Outfit
1. Legen Sie ein Stück Pappe hinter den Sonnenbrillen und Spuren aus den Umriss der Spitze der Sonnenbrillen Frames.

2. Schneiden Sie den Karton, so dass sie eine dünne (~ 4.3 inch) Streifen in der Form der Spitze der Sonnenbrillen Frames ist.

3. Stecken Sie die LEDs in den Karton, mit den langen Leitungen auf der Unterseite. Sie können Löcher in den Karton zunächst mit einer Reißzwecke zu erstellen.

4. Schließen Sie die all die langen Leitungen zusammen mit Drähten und Lot; Das gleiche für die kurzen Leitungen, so daß sie in einer Linie verbunden sind.

5. Schließen Sie die langen Leitungen auf den Draht auf dem Arduino, die auf +5 Volt unter Verwendung von Lot angeschlossen ist, und schließen Sie die kurzen Leitungen an den Draht mit der Erde verbunden.

6. Legen Sie den Karton auf der Oberseite der Sonnenbrille und befestigen Sie es mit einer Schicht aus heißem glue.Step 4: Stromversorgung

Rebeccas Outfit
1. Schließen Sie die Drähte von einer 9 Volt Batterie-Anschluss an ein DC 2,1-mm-Stecker.

2. Legen Sie einen Schalter zwischen einem der von der Batterie angeschlossen Drähte, so dass Sie das Gerät ein- / auszuschalten.

3. Stecken Sie den 9-Volt-Batterie an den Anschluss, und stecken Sie das Kabel in der Arduino.Step 5: Lautsprecher (optional)

Rebeccas Outfit
The Wave Schild bietet eine Jack 3,5 mm Stecker, so dass Sie in jedem Standard-Kopfhörer oder Lautsprecher an Rebeccas Outfit stecken kann.
Unsere Lösung ist die Heißkleber ein Lautsprecher an einen Hut, und gleich um laufen mit dem Hut auf dem Kopf. Wir haben wirklich glaube, das ist die beste Lösung, so dass Sie Menschen um Sie zu ärgern, und nicht nur yourself.Step 6: Arduino Code

Rebeccas Outfit
/ * Achten Sie darauf, die WaveHC Bibliothek herunterladen, zur Verfügung hier:
* Http://www.ladyada.net/make/waveshield/download.html
*
* Code aus http://www.ladyada.net/media/wavshield/SampleRateMod.pde geändert
*
* Die Ausrichtung der Beschleunigungsmesser ist wichtig für die dieser Code ordnungsgemäß ausgeführt. Das
* Beschleunigungsmesser sollte in etwa parallel zu der Arduino, mit dem Lautstärkeregler auf die
* Gerät ruht auf Ihre Hüfte.
* /

#include <WaveHC.h>
#include <WaveUtil.h>

SdReader Karte; // Dieses Objekt enthält die Informationen für die Karte
FatVolume vol; // Dies enthält die Informationen für die Partition auf der Karte
FatReader root; // Dies enthält die Informationen für die Volumina Stammverzeichnis
FatReader Datei; // Dieses Objekt stellen die WAV-Datei
WaveHC Welle; // Dies ist die einzige Welle (Audio) Objekt, da wir nur spielen ein zu einer Zeit

/ *
* Definieren Sie Makro, um Fehlermeldungen in Flash-Speicher setzen
* /
#define Fehler (msg) error_P (PSTR (msg))

// LED Zeug
langes Intervall = 1000;
int ledPin = 7; // Die Anzahl der LED-pin

int LED-Status = LOW; // LED-Status verwendet, um die LED gesetzt
Lang previousMillis = 0; // Wird zuletzt LED speichern wurde aktualisiert

//////////////////////////////////// EINRICHTEN
Leere setup () {
pinMode (ledPin, OUTPUT);
Serial.begin (9600);
Serial.println ("Wave-Test!");

// Card.init (true) versuchen, wenn Fehler auf V1.0 Wellenabschirmschicht auftreten
if (! card.init ()) {
Fehler (". Karte init failed!");
}
// Ermöglichen optimize lesen - einige Karten können Timeout
card.partialBlockRead (true);

if (! vol.init (Karte)) {
Fehler ("No-Partition!");
}
if (! root.openRoot (vol)) {
Fehler ("konnte nicht geöffnet werden root");
}
putstring_nl ("Dateien gefunden:");
root.ls ();
}

// Vorwärts declarition
Leere playcomplete (FatReader & file);

//////////////////////////////////// LOOP
Leere Schleife () {
uint8_t i, r;
char c, name [15];
dir_t dir;

root.rewind ();
// Durch die Dateien in dem Verzeichnis zu blättern
while (root.readDir (dir)> 0) {
// Nur spielen WAV-Dateien
if (! strncmp_P ((char *) & dir.name [8] PSTR ("WAV")).) fortzusetzen;

if (! File.open (vol, dir)) {
putstring ("kann nicht geöffnet werden");
printEntryName (dir);
fortzusetzen;
}
putstring ("\ n \ rPlaying");
printEntryName (dir);
Serial.println ();
playcomplete (file);
file.close ();
}
}

/////////////////////////////////// HELFER
/ *
* Druckfehlermeldung und Stillstand
* /
Leere error_P (const char * str)
{
PgmPrint ("Error:");
SerialPrint_P (str);
sdErrorCheck ();
while (1);
}
/ *
* Druckfehlermeldung und Stillstand wenn SD I / O-Fehler, ideal für das Debugging!
* /
Leere sdErrorCheck (void)
{
if (card.errorCode ()!) return;
PgmPrint ("\ r \ nSD I / O-Fehler:");
Serial.print (card.errorCode (), HEX);
PgmPrint (",");
Serial.println (card.errorData (), HEX);
while (1);
}
int16_t lastpotval = 0;
#define Hysterese 3
/ *
* Spiel-Datei mit Beispielsatzänderungen
* /

Leere makeLEDsblink () {
unsigned long currentMillis = millis ();
// Putstring ("currentMillis ="); Serial.println (currentMillis);
// Putstring ("prevMillis ="); Serial.println (previousMillis);
// Putstring ("interval ="); Serial.println (Intervall);
if (currentMillis - previousMillis> Intervall) {
// Sie das letzte Mal blinzelte die LED sparen
previousMillis = currentMillis;

// Wenn die LED ausgeschaltet ist schalten Sie ihn ein und umgekehrt:
if (LED-Status == LOW) {
LED-Status = HIGH; }
else {
LED-Status = LOW;
}

// Stellen Sie die LED mit der LED-Status der Variablen:
digital (ledPin, LED-Status);
}
}

Leere playcomplete (FatReader & file) {
int16_t potval = 450;
uint32_t newsamplerate;
int COUNTER1 = 0;
int COUNTER2 = 0;
int accelValue;

if (! wave.create (Datei)) {
putstring_nl ("Keine gültige WAV"); zurück;
}
// Ok Zeit zu spielen!
wave.play ();

while (wave.isplaying) {
makeLEDsblink ();
accelValue = analogRead (0);
Serial.println (accelValue);
if (accelValue <350) {
COUNTER2 ++;
}
if (COUNTER1> 30) {
Serial.println (COUNTER2);
potval = (COUNTER2 * 18) + 450;
COUNTER1 = 0;
COUNTER2 = 0;
}
if (((potval - lastpotval)> Hysterese) || ((lastpotval - potval)> Hysterese)) {
putstring ("pot ="); Serial.println (potval, DEC);
putstring ("tickspersam ="); Serial.print (wave.dwSamplesPerSec, DEC); putstring ("->");
newsamplerate = wave.dwSamplesPerSec;
newsamplerate * = potval;
newsamplerate / = 512; // Wir wollen 'split' zwischen beschleunigt und verlangsamt.
if (newsamplerate> 48000) {
newsamplerate = 48000;
}
if (newsamplerate <1000) {
newsamplerate = 1000;
}
wave.setSampleRate (newsamplerate);
interval = 7500000 / newsamplerate;
putstring ("interval ="); Serial.println (potval, DEC); Serial.println (Intervall);
Serial.println (newsamplerate, DEC);
lastpotval = potval;
}
Verzögerung (100);
COUNTER1 ++;
}
sdErrorCheck ();
} Schritt 7: Setup

Rebeccas Outfit
1. Laden Sie den Code unten auf die Arduino

2. Finden Sie WAV-Dateien und laden Sie sie auf die SD-Karte

3. Stecken Sie die SD-Karte in den Wave-Schild.

4. Schließen Sie die Lautsprecher oder Ihre Lieblings-Kopfhörer in die Audiobuchse

5. Drehen Sie den Schalter auf, und stellen Sie sicher, dass der Lautstärkeregler ist auf einen hörbaren Pegel eingeschaltet.

Über das Eingabefeld:
Um die Arduino und die Batterie enthält, haben wir ein eigenes 3D-gedruckten Kunststoff-Box, dass wir an einem Gürtel befestigt, um es auf der "runner" zu halten. Sie können jede Box, die über die richtigen Größe zu verwenden, oder kreiere deine eigenen.
Wir empfehlen Ihnen, die Arduino (und den Beschleunigungsmesser) heften sich an die Innenseite der Box, um es zu vermeiden bewegen und berühren Sie das Feld. Wir verwendeten Klettaufkleber, alles in der Box befestigen.