C3PO Droid konstruktion (42 / 43 steg)

Steg 42: Arduino Uno R3

Arduino Uno R3 läser en 4 siffrig binära värdet från Arduino Mega 2560 och spelar en ljudfil som associeras med det binära värdet. Detta är en röst för C3PO droid. Hänvisa till elritningar hookup information.

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;

SdReader kort; Detta objekt innehåller information för kortet

FatVolume vol; Detta innehåller information för partitionen på kortet

FatReader rot. Detta innehåller information för filsystemet på kortet

FatReader f; Detta innehåller information för filen vi är spelar

WaveHC våg; Detta är enda våg (audio)-objektet, eftersom vi bara kommer att spela en i taget

uint8_t dirLevel; indrag för fil/dir namn

dir_t dirBuf; buffert för katalog läsningar

/*

* Definiera makro för att få felmeddelanden i flash-minne

*/

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

Fungerar definitioner (vi definierar dem här, men koden är nedan)

void spela (FatReader & dir);

SETUP

void setup() {

Serial.BEGIN(9600); Ställ in följetong bibliotek på 9600 bps för felsökning

putstring_nl ("\nWave test!"); säga vi vaknade!

putstring ("fri slå ned:"); Detta kan hjälpa till med felsökning, slut RAM är dålig

Serial.println(FreeRam());

om (! card.init(true)) {//play med 4 MHz spi om 8MHz inte fungerar för dig

om (! card.init()) {//play med 8 MHz spi (standard snabbare!)

fel ("kort init. misslyckades!"); Något gick fel, kan skriva ut varför

}

Aktivera optimera Läs - vissa kort kan timeout. Inaktivera om du har problem

card.partialBlockRead(true);

Nu söker vi en FAT-partition!

uint8_t del;

för (del = 0; del < 5; del ++) {/ / vi har upp till 5 platser att titta i

om (vol.init (kort, del))

bryta; Vi hittade en, så ut

}

om (del == 5) {/ / om vi slutade inte att hitta en :(

fel ("ingen giltig FAT-partition!"); Säga vad som gick fel

}

Kan tala om för användaren om vad som hände

putstring ("använda partition");

Serial.Print (del, DEC);

putstring (", typ är FAT");

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

Försök öppna rotkatalogen

om (! root.openRoot(vol)) {

fel kan inte ("öppna rotfästa dir!"); Något gick fel,

}

//

putstring_nl ("hittade filer (* = fragmenterad):");

Skriva ut alla filer i alla kataloger.

root.ls(LS_R | LS_FLAG_FRAGMENTED);

}

HJÄLPARE

/*

* skriva ut felmeddelande och stoppa

*/

void error_P (const char * str) {

PgmPrint ("fel:");

SerialPrint_P(str);

sdErrorCheck();

While(1);

}

void sdErrorCheck(void) {

om (! card.errorCode()) återvända;

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

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

PgmPrint (",");

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

While(1);

}

Början av Loop

void loop()

{

byte i.

inp6 = digitalRead(6); Binär 1

inp7 = digitalRead(7); Binära 2

inp8 = digitalRead(8); Binära 4

inp9 = digitalRead(9); Binär 8

om (inp6 == hög & & inp7 == låg & & inp8 == låg & & inp9 == låg) / / 1 2 4 8

{//Happy födelsedag Emily

Serial.println("1");

TC_Value = 1;

playcomplete("1.wav");

fördröjning (1).

}

om (inp6 == låg & & inp7 == hög & & inp8 == låg & & inp9 == låg) / / 1 2 4 8

{//Happy födelsedag Kim

Serial.println("2");

TC_Value = 2;

playcomplete("2.wav");

fördröjning (1).

}

om (inp6 == hög & & inp7 == hög & & inp8 == låg & & inp9 == låg) / / 1 2 4 8

{//Happy födelsedag Megan

Serial.println("3");

TC_Value = 3;

playcomplete("3.wav");

fördröjning (1).

}

om (inp6 == låg & & inp7 == låg & & inp8 == hög & & inp9 == låg) / / 1 2 4 8

{//Welcome till Guarnero hus

Serial.println("4");

TC_Value = 4;

playcomplete("4.wav");

fördröjning (1).

}

om (inp6 == hög & & inp7 == låg & & inp8 == hög & & inp9 == låg) / / 1 2 4 8

{//Happy Halloween

Serial.println("5");

TC_Value = 5;

playcomplete("5.wav");

fördröjning (1).

}

om (inp6 == låg & & inp7 == hög & & inp8 == hög & & inp9 == låg) / / 1 2 4 8

{//Happy-årsjubileum

Serial.println("6");

TC_Value = 6;

playcomplete("6.wav");

fördröjning (1).

}

om (inp6 == hög & & inp7 == hög & & inp8 == hög & & inp9 == låg) / / 1 2 4 8

{//Say några skämt

Serial.println("7");

TC_Value = 7.

playcomplete("7.wav");

fördröjning (1).

}

om (inp6 == låg & & inp7 == låg & & inp8 == låg & & inp9 == hög) / / 1 2 4 8

{//Kim Saint dialogrutan & Kim R2D2 dialogrutan

Serial.println("8");

TC_Value = 8;

playcomplete("8.wav");

fördröjning (1).

}

om (inp6 == hög & & inp7 == låg & & inp8 == låg & & inp9 == hög) / / 1 2 4 8

{//Happy Thanksgiving

Serial.println("9");

TC_Value = 9;

playcomplete("9.wav");

fördröjning (1).

}

om (inp6 == låg & & inp7 == hög & & inp8 == låg & & inp9 == hög) / / 1 2 4 8

{//Kims bullar dialogrutan

Serial.println("10");

TC_Value = 10;

playcomplete("10.wav");

fördröjning (1).

}

om (inp6 == hög & & inp7 == hög & & inp8 == låg & & inp9 == hög) / / 1 2 4 8

{//Master John & Lost In Space

Serial.println("11");

TC_Value = 11;

playcomplete("11.wav");

fördröjning (1).

}

om (inp6 == låg & & inp7 == låg & & inp8 == hög & & inp9 == hög) / / 1 2 4 8

{//Merry jul

Serial.println("12");

TC_Value = 12;

playcomplete("12.wav");

fördröjning (1).

}

Last_TC = TC_Value;

Serial.println(Last_TC);

//

}

Slutet av loop

Spelar en full fil från början till slut med ingen paus.

void playcomplete(char *name) {

Ring vår hjälpare för att hitta och spela detta namn

playfile(Name);

samtidigt (wave.isplaying) {

göra ingenting samtidigt ljud spelar

}

Ljud är gjort spelar

}

void playfile(char *name) {

se om objektet våg för närvarande gör något

om (wave.isplaying) {/ / ljud redan spelar så stoppa det

Wave.stop(); Sluta

}

titta i rotkatalogen och öppna filen

om (! f.open (rot, namn)) {

putstring kunde inte ("öppna filen"); Serial.Print(Name); hemkomst.

}

OK läsa filen och förvandla det till en våg objekt

om (! wave.create(f)) {

putstring_nl ("inte en giltig WAV"); hemkomst.

}

OK dags att spela! starta uppspelningen

Wave.Play();

}

Se Steg
Relaterade Ämnen

Star Wars C3PO och R2D2 målade skor!

Star Wars C3PO och R2D2 målade klackar!Ja--det är skorna du söker!Jag blev inspirerad av dessa R2D2 klackar som Mikeasaurus gjorde!Jag inte lägga till tech och jag blandade dem upp lite... menVem vill inte ha missmatchad droid skor???Jag älskar hur d...

R/C LEGO® Dart Shooter Droid

leksak innebär samverkan! Men när jag bygger LEGO® Track Bot det saknade för interaktion. Vid tiden jag byggde LEGO spår Bot var jag inte tänka på det interaktion med det alls. Så jag bestämde mig att bygga ett annat spår Bot som har fler funktioner...

Hemgjord Motorola Droid Multimedia dock

tar mindre än 10 minuter och spara $30.Material du behöver:Magnet (platt, men starkare än en kylskåpsmagnet)liten ruta (minst 3 inches hög för sladden att passa)Droid nätkabelVerktyg:Tejprakblad eller vass knivSteg 1: Konstruktion:Skär 2 slitsar i de...

Bluetooth kontrollerade meddelande Droid--R2Blue2 (/ vad man inte ska göra)

detta är en instructable för bluetooth kontrollerad meddelande Droid. Jag kallar det R2Blue2. Det flyttar och visar meddelanden som du skriver med din telefon eller dator. Iallafall var det tänkt att. På grund av många problem som underpowered batter...

3D tryckta fjärrstyrda BB8 Droid - gör kursen

Detta instructable skapades enlighet projektet kravet på Makecourse vid University of South Florida (www.makecourse.com)Hej killar,Detta är mitt sista projekt för göra kursen på USF. Vi har kunnat bygga vad vi ville, så länge som det drivs med Arduin...

Flyta bort i denna slitsad konstruktion maneter kostym

detta instructable visar ett skolprojekt på min gymnasieskola att göra en kostym marine - tema för antingen en skede presentation eller för Halloween. Denna dräkt är tänkt att passa den genomsnittliga högstadiet studerande (4-6 klass). Dräkten kan en...

Hur man skapar en slitsad konstruktion kartong haj

denna shark kostym består av strikt kartong. Den är utformad med slitsade contruction, för att spara utrymme. Slitsade konstruktion hjälper också miljön eftersom den tillåter kostym göras helt av kartong, vilket eliminerar behovet av skadliga bindeme...

Slitsad konstruktion kartong sköldpadda kostym

priserna på precis allt har stigit hela tiden. Ingen vill spendera pengar på något som kommer att användas bara en gång, som en halloween-kostym i denna ekonomi. Detta är en "grön" sätt att återanvända svanmärkt och brukar kosta några pengar.Med...

Kolossala kartong kamera-Flat Pack konstruktion

freshmen eleverna på min skola skapas en rad av marint tema kostymer från återvunnen papp med slitsade konstruktion för församlingen. Kostymerna var gjorda för att passa högstadiet barn på Halloween och hade vara flat pack/skårad konstruktion design....

C3PO från Star Wars

alla älskar filmen Star Wars och minns alla de viktigaste karaktärerna från filmen. En av mina favorit karaktärer i filmen var C3PO. Den intelligent robot som Anakin Skywalker. Jag honom under 123 Design och försökte replikera honom. Det finns bilder...

En Power Ranger Mystic Phoenix Titan kostym gjort mestadels från regenererats konstruktion skum, aluminiumfolie och tejp.

Halloween kan lika gärna vara en perenn favorit på vårt hus. Precis som sin pappa, min son planerar månader i förväg exakt vad han skulle vilja vara och för det mesta, deltar i månaden lång verksamhet. Jag har varit att göra kostymer i år men inte do...

Konstruktion fläkt: Vad är det? Hur använder du det?

Har professionell erfarenhet med kontrollerad tillverkningsmiljöer, slog det mig att kunna ställa ett undertryck system i hushållens rum under en renovering skulle vara ett bra sätt att hålla konstruktion dammet från resten av huset.Detta instructabl...

LED-upplyst Starwars Battle Droid med STAP modell

ledsen att jag inte har steg för steg bilder för detta men jag tänkte jag skulle dela detta för starwars fans. Detta var en ändring av en Ertl / AMT polystyren modell kallas den "B1 Battle Droid med S.T.A.P." Du hittar den på eBay för ca $20 lev...

Commander Droid med Laser pistol

han är min egna anpassade Star Wars battle droid.Steg 1: Få bitarSteg 2: Bygga Commander Droid Steg 3: Bygga Laser pistol Steg 4: Komplett bitarSteg 5: Du klar med det! Detta är min första Instructable, så snälla favorit!...

Jämförande studie av dubbade konstruktion tegel

att ha barn är en bra ursäkt att köpa dig en massa neat leksaker. När jag var liten, hade jag inte nära så många Legos som mina söner, så nu jag får spela med dem, alltför.Genom åren har vi köpt mestadels Legos deras kvalitet och mängd och antal bygg...

Bouzouki konstruktion - att göra en traditionell grekisk stränginstrument musik

här är en enkel steg för steg guide att bygga en sex-strängad bouzouki.Titta på konstruktionsdetaljer skriven på bildernaKontakta mig för någon ytterligare information och hjälp här: fastardoSteg 1: -Att spara en tid jag började med en klar gjorde kr...

BB-8 Droid, 3D tryckt & fjärrstyrda

Min egen version BB-8, nya droid från Star Wars: The Force vaknar.Checka ut den video för en demo och översikt över församlingen.Den drivs av en Arduino ombord och fjärrstyras via RF. Denna droid själv balans på två hjul, spela upp ljud, och har fler...

BOM konstruktion

Detta är en grundläggande snabb tio minuters aktivitet jag gör med barnen. Det kallas bom konstruktion. Eleverna kommer att få ett par sidor av papper, konstruktion papper och ett par indexkort. Sedan använda dessa material, studenter kommer att behö...

5 minuters konstruktion is stövlar

Intro:så de senaste 2 dagarna har varit bara över fryspunkten temp och regnar: men idag är det 7 nedan, typiska februari Toronto väder. i morse fick jag arbeta och min sammandragning webbplats var en stor ark av is. Jag är inte beredd för sånt här så...