IPhone-kontrollerade Entertainment Center (22 / 24 steg)

Steg 22: Arduino programvara

Det fanns en hel del debatt om hur exakt du partitionera programvaran mellan Arduino och iPhone app. Men först ska jag ge lite bakgrund om det systemet som vi använder.

Arduinoen ansluter till vårt hem wifi nätverk och sätter upp en trådlös server. IPhone ansluter till servern och kommer att skicka någon form av information till Arduino beroende på indata från användaren.

Anledningen till att jag säger "någon sorts information" är eftersom det finns egentligen två typer av kommandon som vi kan skicka, hög nivå och låg nivå. Låga nivån kommandon skulle vara olika knapptryckningar på en avlägsen, som "slå på TV: N på" eller "slå upp en klick på förstärkaren". Höga nivån kommandon är buntar av dessa låg nivå funktioner som "Titta på DVD". Detta kommando måste slå på DVD-spelare, förstärkare och TV, sedan öppna den DVD driva, sedan inställd inställningen rätt ingång på förstärkaren, och ställa in TV: N till rätt ingång inställning, bör det också kontrollera att amp volymen är på en rimlig nivå, etc. Det finns en hel del information och kommandon instoppad i "Titta på DVD". Och så frågan är: skickar vi hög nivå kommandon till Arduino, och sedan den Arduino programvaran bryter ner dessa kommandon i alla separata låg nivå kommandon? Eller å andra sidan, vill vi göra allt av fördelningen i de låga kommandona på iPhone app och skicka individuella låg nivå kommandona ner till Arduino, som bara kör dem?

En annan fråga är. Varje låg nivå kommandot har en ~ 200 siffriga lista med tal som motsvarar en PWM kod för IR-LED som faktiskt ansvarar för att överföra informationen till oavsett medieenhet vi pratar med. Förvarar vi denna lista på Arduino eller iPhone app? (mer om denna typ av signal senare i det här steget).

Det enklaste och mest effektiva man kan göra skulle vara att lagra allt på Arduino. Detta sätt, vi behöver bara skicka en liten mängd information över trådlösa, och eftersom Arduino gör all bearbetning, det skulle vara lätt att styra allt från en webbsida precis som iPhone app. (om iPhone var skicka låg nivån kommandon via trådlös, sedan webbsidan skulle behöva göra samma sak och det skulle vara besvärligt att använda).

Dock den Arduino Uno endast har ca 32 kb minne ombord (vi ursprungligen med en Uno innan du byter till Mega). Det finns en micro SD kortläsare på wifi skölden, och vi planerar att använda som för att lagra vissa overflow data, men vi kunde inte få det att fungera.

Arduino Mega har mycket mer minne, ca 128 kb, men vi försökte använda den för att styra IR LEDs och det fungerade inte. Vi spårat problemet att slingan i koden som skapar bärvågsfrekvensen för IR-signalen. Låt mig förklara hur signalen faktiskt genereras och skickas:

Det fungerar mycket som en AM-radio. IR-LED: n blinkar på en viss bärvågsfrekvens (32 kHz), och sedan finns det en fyrkantsvåg ingraverad över det som faktiskt bär informationen. De listor som vi använder för att lagra informationen som kommandot ser ut något som [300, 50, 200, 60]. Detta innebär aktivera bärvågsfrekvensen för 300 millisekunder, och sedan stänga av den för 50, sedan slå på den för 200, och av 60. Varje kommando signal är faktiskt på väg 50 i kommandona "on-off".

Nu, för att faktiskt generera en signal som denna med Arduino, behöver du en funktion som matar ut bärfrekvensen, och sedan en annan funktion som anropar funktionen bärare vid rätt tid och rätt länge. Eftersom alla dessa Tidsproblem har så hög upplösning, är det också nödvändigt att anropa en funktion som berättar Arduino inte att göra något annat alls under denna process, att tidpunkten är mycket exakt. Annars skulle signalen inte identifieras av oavsett vilken enhet du är pekat det på, som en DVD-spelare till exempel.

Som jag sa, var problemet vi hittade i byte från Uno till Mega i funktionen bärare frekvens. Denna funktion har ett par digitala skrivkommandon som faktiskt generera signal, men den har också ett par förseningar så att sammantaget funktionen körs på rätt frekvens. Nu, en digital Skriv kommandot på en Uno faktiskt tar ca 3 millisekunder för att köra, så du måste räkna detta i när bestämma hur långa förseningar bör vara. Men en digital Skriv kommandot på en Mega tar lite längre tid, och så, när vi sätter Uno koden på Mega, vi genererar en felaktig bärfrekvens! Tack vare min pappa som listat allt detta ut.

Så, med detta problem fast, vi kunde övergå till att använda en Mega. Detta var bra eftersom den inte bara gav oss alla minne vi behövde (hoppas vi) att lagra alla låg nivå kommandot bryts ner och andra logik på Arduino, men också gav oss mer stift att arbeta med.

Se Steg
Relaterade Ämnen

IPhone kontrollerade ledde utan en dator eller internet

jag bygga en liten webside körs på arduino med ethernet I/O med hjälp av HTML och en liten bit av css.När du skickar en HTTP-begäran skriptet läser begäran och får ett kommando från den.Du behöver inte internet, bara ett fungerande nätverk och en dat...

Stor skärm Entertainment Center

stor skärm Entertainment Center:Den har en plats för följande utrustning / poster.65 tum stora skärmen TVTower högtalareSub WooferCenter-högtalareStereo mottagare5 CD / Laser Disc-spelareDVD-spelareBox-kabel / DVRFörvaring bakom dörrarSony Playstatio...

12 st Entertainment Center

12 bit Entertainment CenterUtformad och byggd av:Mike V.De 12 bit nöjescentrum kan hålla saker organiserade och ur vägen medan fortfarande lättillgängligt. Det tar en bit av en investering i både tid och pengar men har en stor funktion. Några av hyll...

Lastpall Entertainment Center

Så under längst tid var jag vill visa mina videospel konsoler med ett nöjescentrum. Jag sökte på internet och hittade idéer att människor köpte IKEA hyllor och tippade dem på deras sidor. Men jag verkligen hade inte några pengar att köpa en hylla ell...

Entertainment Center till Awesome kök spela in

För julen 2015 jag ville göra användning av min kreativa färdigheter att piska upp en riktigt awesome dag för min unga syskonbarn och brorsöner. Min familj har alltid haft en passion för matlagning och ungdomarna verkar trimmade för att dela denna pa...

Slutna Entertainment center fan

denna anvisningar kommer att berätta hur att kyla ner ditt slutna entertainment center. Jag var orolig överhettning min PS3 och mottagare så jag monterade en dator fläkt för att kyla ner.Jag ville inte spendera $30 på en PS3 intercooler som förmodlig...

Extra TV setup eller mini entertainment center.

Behöver du en extra TV. Vad kan du använda att du redan har att göra något arbete? Obs: Jag har faktiskt detta Ställ in redan och använda det i arbetsrummet för en extra TV som inte tar upp mycket plats. Fungerar utmärkt med äldre datorer och spelkon...

Uppdaterad Entertainment Center för platt-TV

Utmaningen:Jag hade ett nöjescentrum köpte ny 2004. Jag gillade stilen, men det skulle inte hysa en TV som är större än 35 inches bred. Detta fungerade inte i den nya världen med stor platt-TV. 2008, jag bestämde mig för att få en större TV-skärm men...

Att lägga till högtalare / Surround-ljud till en Stereo (Entertainment Center)

är du ute efter att lägga till surround-ljud i din entertainment center. Vill du lägga högtalarna till andra rum i ditt hem eller lägenhet. Så är videon för dig!I den här videon lägga jag 2 extra högtalare till en befintlig stereo som jag hade i min...

Spela kök Set från Entertainment Center

du vet de gamla underhållning centers som nu är nästan föråldrad eftersom de inte rymma platt-TV mycket bra? De gör utmärkta kök set med bara lite färg och kreativitet!Steg 1: Tog mig ett par veckor att hitta den perfekta på Craigslist. Letade efter...

Hem Automation (eller Robot Butler kallas Geoffrey) - iPhone kontrollerade, arduino baserat

att kunna styra allt från fickan har länge varit en dröm som delas av många. Tidigare har vi universella fjärrkontroller som kan styra både vår TV och radio, då vi hade trådlös vägguttag. Både bra saker, men hur troligt är det att du kommer att bära...

IPhone kontrollerade Internet PC robot använder arduino

Arduino Internet PC robot kontrollerad med iphone SPY Webcam robot på laptop hjul med handläggningsspråket + arduino... Programvara - av Francisco Dias...

2/4 entertainment Center

jag kallar detta det 2/4 Entertainment Centrerat eftersom det var tillverkat av 2 Bordsskivor och 4 stolar. Stolar och bord var kastas bort av en japansk restaurang. Jag plockade upp sex stolar och två bordsskivor. Bordsskivor var av två olika storle...

Anpassade Entertainment Center från Scratch (endast $350)

jag gillar mest är inte gjord av pengar. Jag ville ha en kvalitet centrum bit för mitt vardagsrum. Jag rekommenderar en promenad genom ikea för att se vilka mönster du gillar. Min nöjescentrum passar en 55 tums LCD. För detta projekt behöver du:16-20...

IOT: iPhone kontrollerade Mini Fan

Av Jayden Ma, utvecklaren på metallsmältverk av MaxusVara en del av Internet av saker (IOT) rörelsen och Använd den här självstudien för att kontrollera ett mini fan över din iPhone. Vem vet, du kan kontrollera andra elektroniska apparater i huset ef...

Entertainment Center att spela kök ombyggnad

I år pengar är lite tight. Inte kunna få något, även för min dotter, för gåvor lämnade mig i lite av en foul mood. Så istället för att tjura om vad jag kan göra jag bestämde mig att titta runt och tänka lite på vad jag kunde. Jag har nyligen märker a...

IPhone kontrollerad RGB LED (Arduino)

Detta projekt visar hur du ställer in Arduino med RGB LED och kontrollera den med din iPhone via ditt Wifi-nätverk. Du kan ställa in 15 olika färger + 2 program med iPhone app.URL för kort demovideo:https://Drive.Google.com/Open?ID=0B4_uJI1BOUG5dFpE....

Rustik Entertainment Center handgjorda

detta är en mycket unik rustik och västra tabeller jag gjort med matchande soffbord och slutet tabeller. Du kan ordna dem när du vill ett nytt utseende. Mycket billig att göra och och väldigt cool look....

DIY Entertainment Center

Detta är min första instructable, förhoppning att dela mer.Ville sätta en platt på mitt kontor, hade tre bokhyllor och trodde de skulle bara passa ihop och göra en underhållning centrerar. Men - det gjorde de inte! TV var faktiskt för stor för att pa...