Construcción de droides C3PO (42 / 43 paso)

Paso 42: Arduino Uno R3

La Arduino Uno R3 Lee un valor binario de 4 dígitos de la Arduino Mega 2560 y reproduce un archivo de audio asociado con el valor binario. Esta es la voz del droide C3PO. Consulte los planos eléctricos para obtener información de conexión.

John Guarnero

Septiembre de 2014

#include

#include

#include

#include

inp6 int = 0;

int inp7 = 0;

int inp8 = 0;

int inp9 = 0;

int TC_Value = 8;

int Last_TC = 0;

int Demonstration_Value = 0;

int Last_Demonstration_Value = 1;

Tarjeta SdReader; Este objeto contiene la información de la tarjeta

FatVolume vol; Contiene la información de la partición en la tarjeta

FatReader raíz; Esto contiene la información para el sistema de archivos en la tarjeta

FatReader f; Esto contiene la información del archivo estamos jugamos

Ola WaveHC; Este es el único objeto (audio) de la onda, puesto que sólo jugaremos uno a la vez

dirLevel de uint8_t; aplicar sangría a nivel de nombres de archivo/dir

dirBuf de dir_t; buffer para directorio lecturas

/*

* Definir macro para mensajes de error en memoria flash

*/

#define error(msg) error_P(PSTR(msg))

Definiciones de la función (definimos aquí, pero el código está a continuación)

juego vacío (FatReader & dir);

PROGRAMA DE INSTALACIÓN

void setup() {}

Serial.Begin(9600); Biblioteca Serial a 9600 bps para la depuración

putstring_nl ("\nWave test!"); decir que nos despertamos!

putstring ("memoria RAM libre:"); Esto puede ayudar con la depuración, es malo quedarse sin RAM

Serial.println(FreeRam());

Si (! card.init(true)) {//play con spi de 4 MHz si 8MHz no funciona para usted

Si (! card.init()) {//play con spi de 8 MHz (por defecto más rápido!)

error ("tarjeta init. no se pudo!"); Algo salió mal, permite imprimir por qué

}

permiten optimizar la lectura - algunas tarjetas pueden tiempo de espera. Desactivar si tienes problemas

card.partialBlockRead(true);

Ahora buscaremos una partición FAT!

parte de uint8_t;

para (parte = 0; parte < 5; parte ++) {/ / tenemos hasta 5 ranuras en

Si (vol.init (tarjeta, parte))

rotura; encontró uno, así que

}

Si (parte == 5) {/ / si terminamos por no encontrar uno :(

error ("No válida partición FAT!"); Decir lo que pasó

}

Permite decir al usuario sobre lo ocurrido

putstring ("partición de uso");

Serial.Print (parte, DEC);

putstring (", el tipo es grasa");

Serial.println(Vol.fatType(), DEC); ¿FAT16 o FAT32?

Intente abrir el directorio raíz

Si (! {root.openRoot(vol))}

error ("no puede abrir raíz dir!"); Algo salió mal,

}

//

putstring_nl ("archivos encontrados (* = fragmentadas):");

Imprima todos los archivos en los directorios.

root.LS(LS_R | LS_FLAG_FRAGMENTED);

}

AYUDANTES DE

/*

* imprimir mensaje de error y detener la

*/

void error_P (const char * str) {}

PgmPrint ("Error:");

SerialPrint_P(str);

sdErrorCheck();

while(1);

}

void sdErrorCheck(void) {}

Si (! card.errorCode()) retorno;

PgmPrint ("\r\nSD I/O error:");

Serial.Print(Card.ErrorCode(), hexagonal);

PgmPrint (",");

Serial.println(Card.errorData(), hexagonal);

while(1);

}

Inicio de bucle

void loop()

{

byte me;

inp6 = digitalRead(6); 1 binario

inp7 = digitalRead(7); 2 binario

inp8 = digitalRead(8); Binario 4

inp9 = digitalRead(9); 8 binario

Si (inp6 == alto & & inp7 == baja & & inp8 == baja & & inp9 == LOW) / / 1 2 4 8

{//Happy cumpleaños Emily

Serial.println("1");

TC_Value = 1;

playcomplete("1.wav");

retardo (1);

}

Si (inp6 == baja & & inp7 == alto & & inp8 == baja & & inp9 == LOW) / / 1 2 4 8

{//Happy cumpleaños Kim

Serial.println("2");

TC_Value = 2;

playcomplete("2.wav");

retardo (1);

}

Si (inp6 == alto & & inp7 == alto & & inp8 == baja & & inp9 == LOW) / / 1 2 4 8

{//Happy cumpleaños Megan

Serial.println("3");

TC_Value = 3;

playcomplete("3.wav");

retardo (1);

}

Si (inp6 == baja & & inp7 == baja & & inp8 == alto & & inp9 == LOW) / / 1 2 4 8

{//Welcome a la casa de Guarnero

Serial.println("4");

TC_Value = 4;

playcomplete("4.wav");

retardo (1);

}

Si (inp6 == alto & & inp7 == baja & & inp8 == alto & & inp9 == LOW) / / 1 2 4 8

{Halloween //Happy

Serial.println("5");

TC_Value = 5;

playcomplete("5.wav");

retardo (1);

}

Si (inp6 == baja & & inp7 == alto & & inp8 == alto & & inp9 == LOW) / / 1 2 4 8

{//Happy aniversario

Serial.println("6");

TC_Value = 6;

playcomplete("6.wav");

retardo (1);

}

Si (inp6 == alto & & inp7 == alto & & inp8 == HIGH & & inp9 == LOW) / / 1 2 4 8

{//Say algunos chistes

Serial.println("7");

TC_Value = 7;

playcomplete("7.wav");

retardo (1);

}

Si (inp6 == baja & & inp7 == baja & & inp8 == baja & & inp9 == HIGH) / / 1 2 4 8

{//Kim Santo diálogo y diálogo Kim R2D2

Serial.println("8");

TC_Value = 8;

playcomplete("8.wav");

retardo (1);

}

Si (inp6 == alto & & inp7 == baja & & inp8 == baja & & inp9 == HIGH) / / 1 2 4 8

{//Happy gracias

Serial.println("9");

TC_Value = 9;

playcomplete("9.wav");

retardo (1);

}

Si (inp6 == baja & & inp7 == alto & & inp8 == baja & & inp9 == HIGH) / / 1 2 4 8

{//Kims diálogo de bollos

Serial.println("10");

TC_Value = 10;

playcomplete("10.wav");

retardo (1);

}

Si (inp6 == alto & & inp7 == alto & & inp8 == baja & & inp9 == HIGH) / / 1 2 4 8

{//Master Juan y perdido en espacio

Serial.println("11");

TC_Value = 11;

playcomplete("11.wav");

retardo (1);

}

Si (inp6 == baja & & inp7 == baja & & inp8 == alto & & inp9 == HIGH) / / 1 2 4 8

{//Merry de Navidad

Serial.println("12");

TC_Value = 12;

playcomplete("12.wav");

retardo (1);

}

Last_TC = TC_Value;

Serial.println(Last_TC);

//

}

Fin del bucle

Reproduce un archivo completo de principio a fin sin pausa.

void playcomplete(char *name) {}

llamar a nuestro ayudante para buscar y reproducir este nombre

playfile(Name);

mientras (wave.isplaying) {}

no hacer nada durante la reproducción de audio

}

Audio se hace juego

}

void playfile(char *name) {}

ver si el objeto ola está haciendo algo

Si (wave.isplaying) {/ / sonido ya lo detenerlo

Wave.STOP(); Basta

}

Buscar en el directorio raíz y abre el archivo

Si (! f.open (raíz, nombre)) {}

putstring ("no puede abrir archivo"); Serial.Print(Name); retorno;

}

Leer bien el archivo y convertirlo en un objeto de onda

Si (! {wave.create(f))}

putstring_nl ("no un válido WAV"); retorno;

}

OK el tiempo para jugar! iniciar la reproducción

Wave.Play();

}

Artículos Relacionados

DIY tamaño natural teléfono controlado BB8 droide

DIY tamaño natural teléfono controlado BB8 droide

Hoy, os voy a enseñar cómo construir un trabajo, tamaño natural, droide Starwars BB-8 controlados por teléfono ! En este tutorial sólo vamos a utilizar los materiales domésticos y un pequeño circuito de Arduino.`Mi regalo de Navidad para papá: Uno de
Zapatos pintan Star Wars C3PO y R2D2!

Zapatos pintan Star Wars C3PO y R2D2!

Star Wars C3PO y R2D2 pintan tacones!Sí, son los zapatos que buscas!Me inspiré por estos tacones de R2D2 que Mikeasaurus!No añadir la tecnología y que les mezclé un poco... pero¿Quién no quiere zapatos droide???Me encanta la forma que estos resultaro
Droide de BB-8, 3D impreso y controlada remoto

Droide de BB-8, 3D impreso y controlada remoto

Mi propia versión BB-8, el nuevo droide de Star Wars: la fuerza despierta.Salida del vídeo para una demostración y Resumen del proceso de montaje.Es alimentado por una placa Arduino y mando a distancia controlado por RF. Este droide uno mismo-equilib
Droide de energía GNK-USB

Droide de energía GNK-USB

A principios de año, pregunté a "Internet" para un cargador USB en forma de un "droide de energía GNK" de Star Wars. Para aquellos que no conozcas, droides GNK (pronunciado "gonk") son personajes secundarios en escenas de fon
Cabeza de droide de depósito de chatarra - Halloween Candy cubo de Jawas

Cabeza de droide de depósito de chatarra - Halloween Candy cubo de Jawas

Para Halloween, mis hijos querían vestir como Jawas de Star Wars. Y gracias a todos los grandes trajes de Jawa y apoyos en este sitio, se transformaron rápidamente en dos pequeños carroñeros de Tatooine.Sin embargo, en lugar de utilizar halloween can
Permite hacer A $20 droides

Permite hacer A $20 droides

construcción de su propio estilo de R2d2 astromecánico puede obtener muy caro muy rápido y muy complejo para construir. Desafié a idear una forma de construir un droide astromecánico de estilo que es relativamente barato de construir y no tienes que
Steampunk style demi-droid EZ-Robot controlled

Steampunk style demi-droid EZ-Robot controlled

FRED (amable robot Entertainment Droid) es que un Instructable inspirado "Steampunk" estilo demi-droide de maderas y metales reciclados. Su cabeza es una fuente de inspiración de varios ejemplos de YT. Los ojos son hechos a mano de resina de epo
Escala completa mouse droid de star wars

Escala completa mouse droid de star wars

Me encanta star wars y siempre han querido construir cosas de la franquicia de la película. Tengo mi propia armadura de soldado de asalto, después de visitar un día de galaxias en nuestro centro de Ciencia local, que decidí que quería hacer un droide
Star Wars el Mié Tredwell droide

Star Wars el Mié Tredwell droide

en este Instructable fina muestra cómo hacer un droide de star wars escala Tredwell "de star wars. la construcción es moderadamente difícil y es una larga y también es un R/C Si eliges que sea.El droide Tredwell fue un puntal en star wars episodio 4:
R/C LEGO® Dart Shooter droide

R/C LEGO® Dart Shooter droide

juguete implica interacción! Pero cuando construyo LEGO® pista Bot careció de cualquier interacción. En la época que construyó el Bot de pista de LEGO no estaba pensando en la parte de la interacción de la misma en todos. Así que decidí construir otr
Multi-Functional Star Wars Astromech Droid

Multi-Functional Star Wars Astromech Droid

E4-B4Droide astromecánico para el hogar.Enlaces de vídeo para dispositivos móviles que no juegan las miniaturas de vídeo anteriores:La realización de Video de droide astromecánico E4-B4E4-B4: Mostrar Video, parte 1E4-B4: Rocket Man VideoE4-B4: ¿Te ap
Q5 una temática de Star Wars droide astromecánico Driod

Q5 una temática de Star Wars droide astromecánico Driod

Así que usted es un fan del universo Star Wars y desea construir su propia representación de un trabajo Astomech Driod. Si usted está preocupado no con exactitud pero solo quiero algo que se ve bien y funciona entonces este Instructable es para usted
Fábrica de reparación de droides de LEGO (Lego, 3D impresión, 3D pluma, papel maché, LED y más)

Fábrica de reparación de droides de LEGO (Lego, 3D impresión, 3D pluma, papel maché, LED y más)

Mi hijo está en Legos de una manera muy grande. Me vio en la Web de Instructables mirando la página de concursos. Inmediatamente me preguntó si había algo que podía presentar. Después de algunas discusiones, acordamos que trabajaríamos juntos para pr
Star Wars droide de ratón "Mouse Droid"

Star Wars droide de ratón "Mouse Droid"

en este Instructable fina mostrará cómo hacer una escala mitad star wars droide ratón o "mouse droid" de star wars. la construcción es creativa rápida y barata (alrededor de $40).Primero: limpiar un área para su trabajo. usted necesitará un banc