C3PO Droid bouw (42 / 43 stap)

Stap 42: Arduino Uno R3

De Arduino Uno R3 leest een 4-cijferige binaire waarde van de Arduino Mega 2560 en speelt een audio-bestand de binaire waarde is gekoppeld. Dit is de stem van de C3PO droid. Verwijzen naar de elektrische tekeningen voor aansluiting informatie.

John Guarnero

September 2014

#include

#include

#include

#include

int inp6 = 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;

Kaart van de SdReader; Dit object bevat de gegevens voor de kaart

FatVolume vol; Dit houdt de informatie voor de partitie op de kaart

FatReader wortel; Dit bevat de gegevens voor het bestandssysteem op de kaart

F FatReader; Dit bevat de gegevens voor het bestand we aan het spelen bent

WaveHC Golf; Dit is de enige Golf (audio) object, omdat we zullen slechts één filter tegelijk spelen

uint8_t dirLevel; inspringing van niveau voor bestand/map namen

dir_t dirBuf; buffer voor de map leest

/*

* Het definiëren van macro om foutberichten in het flash-geheugen

*/

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

Functioneren van de definities (we definiëren hen hier, maar de code is hieronder)

leegte spelen (FatReader & dir);

SETUP

VOID Setup {}

Serial.begin(9600); Seriële bibliotheek 9600 bps voor foutopsporing instellen

putstring_nl ("\nWave test!"); zeggen dat we wakker!

putstring ("vrije RAM:"); Dit kan helpen met het opsporen van fouten, uit RAM lopend is slecht

Serial.println(FreeRam());

Als (! card.init(true)) {//play met 4 MHz spi als 8MHz niet voor u werkt

Als (! card.init()) {//play met 8 MHz spi (standaard sneller!)

fout ("Card init. mislukt!"); Er ging iets mis, laat uitprinten waarom

}

inschakelen optimaliseren lees - sommige kaarten kunnen timeout. Uitschakelen als u problemen ondervindt

card.partialBlockRead(true);

Nu gaan we voor een FAT-partitie!

uint8_t deel;

voor (deel = 0; deel < 5; deel ++) {/ / Wij hebben maximaal 5 "slots" om in te kijken

Als (vol.init (kaart, deel))

breken; We vonden een, dus kom uit

}

Als (deel == 5) {/ / als we uiteindelijk niet het vinden van een :(

fout ("geen geldige FAT-partitie!"); Zeggen wat er mis ging

}

Laat de gebruiker te vertellen over wat er gebeurd is

putstring ("Using partitie");

Serial.Print (deel, DEC);

putstring (", type is vet");

Serial.println(vol.fatType(), DEC); FAT16 of FAT32?

Probeert te openen van de root directory

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

fout kan niet ("open root dir!"); Er ging iets mis,

}

//

putstring_nl ("bestanden gevonden (* = gefragmenteerd):");

Afdrukken van alle bestanden in alle mappen.

root.ls(LS_R | LS_FLAG_FRAGMENTED);

}

HELPERS

/*

* afdrukken foutbericht en stoppen

*/

VOID error_P (const char * str) {}

PgmPrint ("fout:");

SerialPrint_P(str);

sdErrorCheck();

while(1);

}

ongeldig sdErrorCheck(void) {}

Als (! card.errorCode()) keren;

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

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

PgmPrint (",");

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

while(1);

}

Start van de Loop

void loop

{

byte i;

inp6 = digitalRead(6); Binaire 1

inp7 = digitalRead(7); Binaire 2

inp8 = digitalRead(8); Binaire 4

inp9 = digitalRead(9); Binaire 8

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

{//Happy verjaardag Emily

Serial.println("1");

TC_Value = 1;

playcomplete("1.wav");

vertraging (1);

}

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

{//Happy verjaardag Kim

Serial.println("2");

TC_Value = 2;

playcomplete("2.wav");

vertraging (1);

}

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

{//Happy verjaardag Megan

Serial.println("3");

TC_Value = 3;

playcomplete("3.wav");

vertraging (1);

}

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

{//Welcome op het Guarnero-huis

Serial.println("4");

TC_Value = 4;

playcomplete("4.wav");

vertraging (1);

}

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

{//Happy Halloween

Serial.println("5");

TC_Value = 5;

playcomplete("5.wav");

vertraging (1);

}

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

{//Happy verjaardag

Serial.println("6");

TC_Value = 6;

playcomplete("6.wav");

vertraging (1);

}

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

{//Say sommige grappen

Serial.println("7");

TC_Value = 7;

playcomplete("7.wav");

vertraging (1);

}

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

{//Kim Saint dialoogvenster & Kim R2D2 dialoogvenster

Serial.println("8");

TC_Value = 8;

playcomplete("8.wav");

vertraging (1);

}

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

{//Happy Thanksgiving

Serial.println("9");

TC_Value = 9;

playcomplete("9.wav");

vertraging (1);

}

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

{//Kims broodjes dialoogvenster

Serial.println("10");

TC_Value = 10;

playcomplete("10.wav");

vertraging (1);

}

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

{//Master John & Lost In Space

Serial.println("11");

TC_Value = 11;

playcomplete("11.wav");

vertraging (1);

}

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

{//Merry kerst

Serial.println("12");

TC_Value = 12;

playcomplete("12.wav");

vertraging (1);

}

Last_TC = TC_Value;

Serial.println(Last_TC);

//

}

Einde van de lus

Speelt een volledige bestand van begin tot eind met geen pauze.

ongeldig playcomplete(char *name) {}

Bel onze helper vinden en spelen deze naam

playfile(name);

terwijl (wave.isplaying) {}

niets te doen tijdens het afspelen van audio

}

Audio wordt gedaan spelen

}

ongeldig playfile(char *name) {}

Zie als de Golf-object is momenteel bezig met iets

Als (wave.isplaying) {/ / audio afspelen al zo stoppen

Wave.stop(); Stop ermee

}

kijken in de root directory en open het bestand

Als (! f.open (root, naam)) {}

putstring kon niet ("open bestand"); Serial.Print(name); terugkeer;

}

OK lees het bestand en zet hem in een golf-object

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

putstring_nl ("niet een geldig WAV"); terugkeer;

}

OK tijd om te spelen! Start het afspelen

Wave.Play();

}

Gerelateerde Artikelen

Star Wars MSE Droid "Muis Droid"

Star Wars MSE Droid "Muis Droid"

In deze fijne Instructable ik zal laten zien hoe het maken van een star wars halve schaal MSE Droid of "muis droid" uit star wars. de bouwstijl is creatief snel en goedkoop (ongeveer $40).Ten eerste: schakelt u een ruimte voor uw werk. moet u ee
Star Wars C3PO en R2D2 geschilderd schoenen!

Star Wars C3PO en R2D2 geschilderd schoenen!

Star Wars C3PO en R2D2 geschilderd hakken!Ja - dit zijn de schoenen die u zoekt!Ik was geïnspireerd door deze R2D2 hakken die Mikeasaurus deed!Ik heb niet de tech toevoegen en ik mengden ze een beetje... maarwie niet wil niet-overeenkomende droid sch
DIY levensgrote telefoon gecontroleerd BB8 Droid

DIY levensgrote telefoon gecontroleerd BB8 Droid

Vandaag, I 'm gonna leren u hoe te bouwen een werken, levensgrote, Starwars BB-8-droid telefoon-gecontroleerd ! In deze tutorial gaan we alleen gebruiken van huishoudelijke materialen en een beetje Arduino circuits.`Mijn Gift van Kerstmis voor Papa:
3D gedrukte Remote Controlled BB8 Droid - Make cursus

3D gedrukte Remote Controlled BB8 Droid - Make cursus

Dit instructable ontstond vervulling de project-eis van de Makecourse bij de Universiteit van Zuid-Florida (www.makecourse.com)Hallo jongens,Dit is mijn laatste project voor de cursus maken bij USF. We waren in staat om te bouwen wat die we wilden, z
Star Wars wo Tredwell Droid

Star Wars wo Tredwell Droid

In deze fijne Instructable ik zal laten zien hoe maak je een star wars schaaleindwaarde Tredwell droid "uit star wars. de bouwstijl is matig moeilijk en is een lange gebouwd en is ook een R/C als u ervoor kiest om te worden.De droid Tredwell was een
R/C LEGO® Dart Shooter Droid

R/C LEGO® Dart Shooter Droid

speelgoed impliceert interactie! Maar wanneer ik het opbouwen van LEGO® Track Bot het ontbrak van de tussenkomst. Op het moment dat ik de LEGO Track Bot bouwde was ik niet na te denken over het deel van de interactie van het at all. Dus besloten heb
Multi-Functional Star Wars Astromech Droid

Multi-Functional Star Wars Astromech Droid

E4-B4Astromech droid voor het huis.Video links voor mobiele apparaten die de videominiaturen bovenstaande animatie wordt niet afgespeeld:Het maken van E4-B4 Astromech Droid VideoE4-B4: Showcase Video, deel 1E4-B4: Rocket Man VideoE4-B4: Zin in een dr
Make A $20 Droid laat

Make A $20 Droid laat

bouw je eigen R2d2 stijl astromech droid kunt krijgen zeer duur, zeer snel en zeer complex om te bouwen. Ik betwist mezelf om te komen met een manier om het bouwen van een astromech stijl droid die zowel relatief goedkoop om te bouwen en u geen eigen
Steampunk style demi-droid EZ-Robot controlled

Steampunk style demi-droid EZ-Robot controlled

FRED (vriendelijke Robotic Entertainment Droid) is dat een Instructable geïnspireerd "Steampunk" stijl demi-droid is gemaakt van gerecyclede metalen en bossen. Haar hoofd is een inspiratie uit verschillende YT voorbeelden. De ogen zijn handgemaa
Lego Droid reparatie fabriek (Lego, 3D printen, 3D pen, papier Mache, LED, en meer)

Lego Droid reparatie fabriek (Lego, 3D printen, 3D pen, papier Mache, LED, en meer)

Mijn zoon is een zeer grote weg Legos. Hij zag me op de Instructables website kijken naar de wedstrijden pagina. Hij vroeg me onmiddellijk of er was alles wat die hij kon indienen. Na enige discussie, we afgesproken dat we zouden samenwerken om een p
Zelfgemaakte Motorola Droid Multimedia dock

Zelfgemaakte Motorola Droid Multimedia dock

duurt minder dan 10 minuten en bespaar $30.Materialen die u nodig hebt:Magneet (plat, maar sterker dan een koelkast magneet)klein vakje (ten minste 3 inch hoog voor het snoer te passen)Droid AC-netsnoerTools:Tapescheermes of scherp mesStap 1: Bouw:Sn
Moto Droid opladen en perifere kabel

Moto Droid opladen en perifere kabel

Opmerking: dit instructable zal alleen werken voor de Motorola Droid.De Motorola Droid is onderdeel van de nieuwe generatie smartphones dat eerlijk gezegd iets kan doen. Denk aan iets wat je doen wilt, en bam! er is een manier om dat te doen.Ik ben h
Bouw uw eigen DIY rustieke Pallet klok!

Bouw uw eigen DIY rustieke Pallet klok!

Check de video hierboven voor een volledige ondersteuning voor dit project!Dit eenvoudige project maakt gebruik van 3 planken van pallet hout met twee backing strips aan de achterzijde om hen te houden samen! Het hout werd geschuurd en beschadigd voo
LED licht meubilair ontwerp en bouw

LED licht meubilair ontwerp en bouw

Verlichting met hoge kleuren kleurweergave-index (CRI) nodig waren voor de instelling van een art studio. Diverse verlichting opties werden overwogen met inbegrip: gloeilampen en halogeen lampen, LED (LED) vervanging bollen, compacte fluorescerende l