Progetto Arduino: spada laser

Che la Forza sia con te.


Versione 1.0 (“Wooosh”)

Ricordati di attivare l’audio del video!

Strumenti

  • Arduino UNO
  • Giroscopio
  • Lettore di scheda SD
  • Amplificatore e speaker
  • Tubi di plastica o cartone
  • Cavi elettrici e resistenze

Nell’impugnatura della spada laser è nascosto un giroscopio in grado di rilevare le rotazioni della spada. Se il movimento è abbastanza repentino, lo speaker riproduce un file audio memorizzato nella scheda SD (si tratta del tipico “woosh” di una spada laser!). E’ stato necessario collegare un amplificatore prima dello speaker per generare un suono di sufficiente intensità.

Diagramma dei collegamenti

Codice

Clicca qui per visualizzare
#include "SimpleSDAudio.h"
#include "Wire.h"
#include <SPI.h>

#define delayTime 2

const int MPU_addr=0x68; // I2C address of the MPU-6050
int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;
long lasttime = 0;

void setup(){

Wire.begin();
Wire.beginTransmission(MPU_addr);
Wire.write(0x6B); // PWR_MGMT_1 register
Wire.write(0); // set to zero (wakes up the MPU-6050)
Wire.endTransmission(true);
Serial.begin(9600);

SdPlay.setSDCSPin(4);

if (!SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO | SSDA_MODE_AUTOWORKER))
{ Serial.println("Scheda non riconosciuta");
while(1); }

if(!SdPlay.setFile("On1.wav"))
{ Serial.println("File audio non trovato");
while(1); }

}

void loop(){

Wire.beginTransmission(MPU_addr);
Wire.write(0x3B); // starting with register 0x3B (ACCEL_XOUT_H)
Wire.endTransmission(false);
Wire.requestFrom(MPU_addr,14,true); // request a total of 14 registers
GyX=Wire.read()<<8|Wire.read(); // 0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L)
GyY=Wire.read()<<8|Wire.read(); // 0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L)
GyZ=Wire.read()<<8|Wire.read(); // 0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L)
Serial.print("GyX = "); Serial.print(GyX);
Serial.print(" | GyY = "); Serial.print(GyY);
Serial.print(" | GyZ = "); Serial.println(GyZ);

if(GyX < -10000 || GyX > 10000) {
SdPlay.play(); // speaker PIN 9
delay(1000);
}

}

Galleria

Commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *