IPhone-Controlled Entertainment Center (22 / 24 stap)

Stap 22: Arduino Software

Er was veel discussie over hoe precies te partitioneren van de software tussen de Arduino en de iPhone app. Maar eerst zal ik wat achtergrond geven op de regeling die wij gebruiken.

De Arduino verbonden met ons netwerk van huiswifi en een draadloze server ingesteld. De iPhone verbinding met die server en stuurt een soort van informatie naar de Arduino afhankelijk van invoer van de gebruiker.

De reden dat ik zeg "soort informatie" is omdat er eigenlijk twee soorten opdrachten die we sturen kunnen, hoge niveau en laag niveau zijn. Lage niveau opdrachten zou verschillende knooppersen op een afstandsbediening, zoals "de TV op" of "het volume omhoog één klik op de versterker uitschakelen". Hoog niveau opdrachten zijn bundels van deze lage functies, zoals "Watch DVD". Deze opdracht moet inschakelen op de DVD-speler, versterker en TV, open de DVD-schijf, dan het amp ingesteld op de juiste ingang instelling vervolgens, zet de TV op de juiste ingang instelling, daarnaast moet worden gecontroleerd om ervoor te zorgen dat het volume van de versterker is op een redelijk niveau, enz. Er is een heleboel informatie en opdrachten gevuld in "Watch DVD". En dus, de vraag is: sturen we hoog niveau opdrachten naar de Arduino, en vervolgens de Arduino software breekt deze opdrachten in alle afzonderlijke laag niveau opdrachten? Of aan de andere kant, we doen alles voor de verdeling naar de laag commando's op de iPhone app, en stuur die afzonderlijke laag niveau opdrachten tot de Arduino, die deze gewoon worden uitgevoerd?

Een andere vraag is dit. Elke laag niveau opdracht heeft een lijst van de ~ 200 cijfer van getallen die overeenkomen met een PWM-code voor de IR-LED die eigenlijk verantwoordelijk voor het overbrengen van die informatie naar welke media-apparaat we zijn in gesprek met is. Wij deze lijst opslaan op de Arduino of de iPhone app? (meer over dit soort signaal verderop in deze stap gezegd).

De gemakkelijkste en meest efficiënte ding om te doen zou zijn om op te slaan alles op de Arduino. Op deze manier moeten wij slechts een kleine hoeveelheid informatie sturen over wireless, en aangezien de Arduino alle de verwerking doet, zou het gemakkelijk om te controleren alles van een webpagina, net als de iPhone app. (als de iPhone was het verzenden van laag niveau opdrachten via draadloze, dan de web-pagina hebben zou hetzelfde te doen en het zou lastig te gebruiken).

De Arduino Uno heeft echter alleen ongeveer 32 kb geheugen aan boord (we gebruikten oorspronkelijk een Uno voordat u naar Mega). Is er een micro SD-kaartlezer op de wifi-schild, en we waren van plan over het gebruik van die voor het opslaan van sommige van de gegevens van de overloop, maar we het werkend kon krijgen.

De Arduino Mega heeft veel meer geheugen, ongeveer 128 kb, maar we geprobeerd met behulp van het bepalen van de IR LEDs en werkte het niet. We het probleem aan de lus in de code die de draaggolffrequentie voor het infrarood signaal genereert opgespoord. Laat het me uitleggen hoe het signaal eigenlijk is gegenereerd en doorgegeven:

Het werkt een stuk als een AM-radio. De IR-LED knippert bij een bepaalde draaggolffrequentie (32 kHz), en dan is er een blokgolf bovenop dat dat eigenlijk bestemd is voor de informatie. De lijsten die zijn we met behulp van de opdracht gegevens opslaan lijken iets [300 50, 200, 60]. Dit betekent de draaggolffrequentie voor 300 milliseconden, inschakelen dan uitschakelen voor 50, vervolgens zwenking op weerom voort voor 200, en uit voor 60. Elke stuursignaal is eigenlijk ongeveer 50 van deze 'on-off'-opdrachten.

Nu moet je wilt eigenlijk genereren een signaal uitzien met Arduino, een functie die de draaggolffrequentie uitgangen, en vervolgens een andere functie die de vervoerder functie aanroept op het juiste moment en voor de juiste duur. Aangezien al deze kwesties timing dergelijke hoge resolutie hebben, is het ook noodzakelijk om een functie die de Arduino niet te doen iets anders helemaal tijdens dit proces vertelt, ervoor te zorgen dat de timing zeer nauwkeurig is roepen. Anders zou het signaal niet worden herkend door welk apparaat u bent wees het op, zoals een DVD-speler bijvoorbeeld.

Zoals ik al zei, was het probleem dat we vonden in het overschakelen van Uno naar Mega in de functie van de frequentie vervoerder. Deze functie heeft een paar digitale schrijven opdrachten die eigenlijk het genereren van het signaal, maar het heeft ook een paar vertragingen, zodat over het geheel genomen de functie op de juiste frequentie uitvoert. Nu, een digitale schrijven commando op een Uno eigenlijk duurt ongeveer 3 milliseconden uit te voeren, zodat u dit moet factor in het bepalen hoe lang de vertragingen wanneer moet worden. Echter, een digitale schrijven commando op een Mega duurt een beetje langer, en zo, wanneer we de Uno-code op de Mega, waren we een onjuiste draaggolffrequentie genereren! Dankzij mijn vader die dit alles bedacht.

Dus, met dit probleem opgelost, konden we overstappen naar het gebruik van een Mega. Dit was geweldig, omdat het niet alleen gaf ons al het geheugen die we nodig hadden (hopen we) voor het opslaan van alle het lage niveau opdracht breken en andere logica op de Arduino, maar ook ons gaf meer pinnen om mee te werken.

Gerelateerde Artikelen

Leisteen: de eenvoudige, aanpasbare, minimalistische entertainment center.

Leisteen: de eenvoudige, aanpasbare, minimalistische entertainment center.

Vertrekt het gemakkelijk genoeg: een jongen, gebouw meubilair met zijn vader. Nou, we wilden bouwen van meubels, maar alles wat ze deed was bouwen een vreselijk herbouwd rollen kabinet.Tien jaar later, geconfronteerd met een walgelijk, rommelige woon
Pallet Entertainment Center

Pallet Entertainment Center

Dus voor de langste tijd ik mijn video games consoles met een entertainment center weergeven willen was. Ik zocht het internet en ideeën dat mensen IKEA planken gekocht en hen op hun zijden getipt gevonden. Maar ik heb echt geen geld om te kopen een
Het toevoegen van luidsprekers / Surround Sound naar een Stereo (Entertainment Center)

Het toevoegen van luidsprekers / Surround Sound naar een Stereo (Entertainment Center)

bent u op zoek naar surroundgeluid toevoegen aan uw entertainment center. Wilt u sprekers toevoegen aan andere ruimten in uw huis of appartement. Dan is dit de video voor u!In deze video toevoegen ik 2 extra luidsprekers aan een bestaande stereo-inst
Wand inbouw multiplex Entertainment Center

Wand inbouw multiplex Entertainment Center

met dit instructable had ik een dinky weinig entertainment center en wil ed een groter. Ik keek op de prijzen voor de som van deze die ik wilde kopen, maar ze waren schandalig geprijsd... dus ik besluit te halen mijn eigen.Stap 1: bouw de basis zodat
Bijgewerkt Entertainment Center voor flatscreen TV

Bijgewerkt Entertainment Center voor flatscreen TV

De uitdaging:Ik had een entertainment center nieuw gekocht in 2004. Ik vond de stijl, maar het zou niet geschikt voor een groter dan 35 inch televisie. Zulks did niet werkzaamheden in de nieuwe wereld van grote flat-panel TVs. In 2008, ik besloten om
Entertainment Center en geweldige keuken Play instellen

Entertainment Center en geweldige keuken Play instellen

Voor kerst 2015 dat ik wilde maken gebruik van mijn creatieve vaardigheden om opwippen een echt geweldig cadeau voor mijn jonge nichtjes en neefjes. Mijn familie heeft altijd een passie voor koken en de jongeren lijkt primer om te delen deze passie z
Grote scherm Entertainment Center

Grote scherm Entertainment Center

grote scherm Entertainment Center:Het heeft een locatie voor de volgende uitrusting / artikelen.65 inch grote scherm TVTorenluidsprekersSubwooferCenter-luidsprekerStereo-ontvanger5 CD / Laser Disc-spelerDVD-spelerKabel vak / DVROpslag achter deurenSo
Entertainment Center

Entertainment Center

hier is een samenvatting van de boekenplank entertainment center dat ik een tijdje terug bouwde.  Ik heb al willen om te zetten van een Instructable hier voor een lange tijd, dus hier mijn eerste gaan op dit is.  Ons huis was beperkt in haar boekenka
12 stuk Entertainment Center

12 stuk Entertainment Center

12 stuk Entertainment CenterOntworpen en gebouwd door:Mike V.De 12 stuk entertainment center kunt houden dingen georganiseerd en uit de weg terwijl nog steeds gemakkelijk te bereiken. Het neemt een beetje van een investering van tijd en geld, maar di
Entertainment Center met drijvende sprekers gebouwd met behulp van Pocket Hole schrijnwerkerij

Entertainment Center met drijvende sprekers gebouwd met behulp van Pocket Hole schrijnwerkerij

Voor iedereen met een home cinema-systeem is een entertainment center een geweldige manier om te ordenen en weergeven van uw verschillende componenten. Echter het probleem dat ik had was het vinden van een die zou passen in de beperkte ruimte die ik
Spelen keuken Set van Entertainment Center

Spelen keuken Set van Entertainment Center

u weet die oude centra van het vermaak die nu bijna achterhaald zijn omdat ze niet heel goed geschikt voor flatscreen-tv's? Ze maken uitstekende keukensets met gewoon een beetje verf en creativiteit!Stap 1: Nam me een paar weken op zoek naar de perfe
DIY Entertainment Center

DIY Entertainment Center

Dit is mijn eerste instructable, hoop om te delen meer.Wilde zetten een flatscreen in mijn kantoor, had drie boekenkasten en dacht dat ze zou gewoon in elkaar passen en maak een entertainment center. Maar - zij niet! De TV was eigenlijk te groot om t
Bouwen van een Station naaien van een Entertainment Center

Bouwen van een Station naaien van een Entertainment Center

Zoals vele naaisters wil ik een kamer die ik aan mijn naaimachines en hun rotzooi besteden kan.  Nu heb ik de volgende beste ding: een stuk van meubilair dat geldt mijn machines en naaien levert op één plaats.Dit idee begon met een mooie kantoor kast
2/4 entertainment Center

2/4 entertainment Center

ik noem dit de 2/4 Entertainment Center, omdat het was gemaakt van 2 tafelbladen en 4 stoelen.  De stoelen en de tafels waren worden weggegooid door een Japans restaurant.  Ik pakte zes stoelen en twee tafelbladen.  De tafelbladen waren van twee vers