Tek.no

Guide Arduino: Lag din egen fjernkontroll

Bygg din egen superfjernkontroll

Slik kan du samle alle trykkerne i én datastyrt enhet.

Shutterstock
6 Aug 2014 18:00

Oppsett av elektronikk og programvare

For 60 år siden kom en av de mer revolusjonerende oppfinnelsene for TV-titting til verden; den trådløse fjernkontrollen. Noen år før dette hadde en trådbasert fjernkontroll med kabel festet til TV-en blitt introdusert, men på grunn av at så mange snublet i kabelen kom det inn en rekke klager på denne løsningen.

Eugene Polley i Zenith Electronic utviklet derfor en trådløs fjernkontroll som brukte lys for å styre TV-en istedet. Denne fikk navnet «the Flashmatic». Men det var ikke en feilfri løsning dette heller. Oppfinnelsen benyttet seg av fotoceller for å oppdage lyset fra fjernkontrollen, så dersom TV-en ble utsatt for direkte sollys, kunne man risikere at den skiftet kanal eller skrudde seg av på egenhånd.

I 1956 utviklet Robert Adler, som også jobbet for Zenith, en fjernkontroll uten batteri. Dette var en mekanisk fjernkontroll basert på ultralyd. Når man trykket på en knapp slo en mekanisk hammer i en tast som laget en lyd med en frekvens høyere enn det mennesket kan høre. I TV-en satt det en mikrofon som kunne gjenkjenne denne lyden og dermed utføre en funksjon. Denne ble brukt over mange år før man senere gikk over til å bruke infrarøde signaler, som blir brukt den dag i dag.

En fjernkontroll er som regel laget bare for å kontrollere akkurat den enheten du har kjøpt, men visste du at det faktisk er mulig å lage sin egen universalfjernkontroll som kan styre alle dine enheter? I denne guiden skal vi vise deg hvordan du kan lage din egen, ved hjelp av knøttemaskinen Arduino og noen enkle komponenter.

Få også med deg forrige del i serien:
Slik kommer du i gang med knøttemaskinen Arduino »

Verktøy for entusiaster

En Arduino er et utrolig kult verktøy for teknologientusiaster. Det er et elektronikkort som fungerer som en slags liten datamaskin. Den har en liten prosessor, litt minne og litt lagringsplass. Du kan plugge den inn i USB-porten på PC-en din og programmere den ved hjelp av en forenklet versjon av programmeringsspråkene C/C++, som er perfekt for nybegynnere. Den har flere innganger og utganger hvor du kan koble til annen elektronikk som for eksempel en lysdiode, en bryter, en temperatursensor, et enkelt LCD-display eller andre elektronikkomponenter.

I tillegg til å ha mulighet for å koble på enkle komponenter som en bryter eller en lysdiode, finnes det også såkalte Arduino «shields», eller «skjold» på norsk. Dette er elektronikkort som kan utvide Arduinoen med funksjonalitet som for eksempel WiFi, 3G, GSM, MP3-avspilling og masse annet.

Fordelene med en Arduino er at den er laget på en slik måte at selv de som ikke har teknisk bakgrunn skal kunne klare å bruke den. Det å lage noe med en Arduino er utrolig lærerikt, og med litt kunnskaper om hvordan den fungerer kan du kan lage alt fra et automatisk vanningssystem til en mobiltelefon. I denne guiden vil du lære hvordan du kan bruke en Arduino, sammen med tre enkle komponenter, til å lage din egen ultimate drømmefjernkontroll.

Prinsippet bak en fjernkontroll

En typisk fjernkontroll for TV-er, stereoanlegg og DVD-spillere bruker infrarøde (IR) signaler for å sende data over til den enheten som skal styres. Hvilke data som blir sendt avgjør hvilken funksjon som utføres, for eksempel «volum opp». For å lage en fjernkontroll trenger vi å sende infrarøde signaler med de dataene som trengs for å utføre den funksjonen vi vil utføre. Men hvordan vet vi hvilke data vi skal sende for å oppnå hvilken funksjon?

For noen TV-er er disse dataene dokumentert og lett tilgjengelig på Internett, mens for andre TV-er er det nærmest umulig å finne noe som helst informasjon. For å finne ut hvilke data som blir sendt fra din fjernkontroll må vi derfor lese av disse først, slik at vi enkelt og greit bare kan kopiere de funksjonene vi ønsker å ha med. Vi må også finne ut hvilken protokoll de blir sendt på, fordi forskjellige fjernkontroller bruker forskjellige måter å kode dataene på.

I denne guiden skal vi derfor først lage en «fjernkontrolleser», som kan lese data og protokolltype fra en nesten hvilken som helst fjernkontroll som bruker infrarøde signaler.

Når vi har funnet dataene og protokollen som skal brukes, skal vi bruke denne til å lage en testfjernkontroll. Til slutt skal vi utvide med flere fjernkontrollfunksjoner, og koble disse opp mot tastaturkombinasjoner på datamaskinen din slik at den blir lett å bruke. I den ferdige fjernkontrollen kan du til og med kombinere forskjellige funksjoner fra forskjellige fjernkontrollere.

For å lage vår fjernkontroll skal vi altså:

  • Lage en fjernkontrolleser
  • Lage en testfjernkontroll
  • Kombinere flere funksjoner til en multifunksjonell fjernkontroll
  • Koble fjernkontrollen opp mot tastaturkombinasjoner på datamaskinen

Hva trenger vi?

I denne guiden bruker vi en Arduino UNO, men andre typer Arduino-versjoner kan også brukes. Vi trenger også en motstand, en IR-diode og en IR-mottaker. Alle disse komponentene er lett tilgjengelige på nettbutikker som selger elektronikkomponenter. Dessverre har vi ikke så mange gode alternativer i Norge som selger til privatkunder, men det finnes mange internasjonale alternativer som sender til Norge – for eksempel Adafruit, Sparkfun eller eBay, men nylig har også Digital Impuls i Oslo og Trondheim begynt å ta inn Arduino med komponenter.

Komponentliste:

  • Arduino Uno
  • Motstand (100 Ohm)
  • IR-diode
  • IR-mottaker (TSOP31238)

En Arduino er forholdsvis enkel å installere, og instruksjoner for hvordan du gjør det på ditt operativsystem kan du finne på Arduinos nettsider.

Koble opp elektronikken

Oppkobling av elektronikken.Foto: Hardware.no

Det første vi skal gjøre er å koble opp elektronikken. For fjernkontrolleseren trenger vi bare å koble opp IR-mottakeren. For fjernkontrollen trenger vi bare IR-dioden og motstanden. Men for enkelhets skyld kobler vi opp alt med en gang, slik at vi kan hoppe frem og tilbake mellom de to funksjonene uten å måtte koble om for hver gang.

Koble opp elektronikken som vist på bildet til høyre:

For at IR-mottakeren skal fungere må den kobles opp med strøm. Derfor kobler vi den til en 5-volts pinne, som du ser på den røde ledningen på bildet. Vi kobler den også til jord, vist med sort ledning, og jord er merket «GND» på kortet. Den siste pinnen er for å gi ut data, som vi har koblet med en gul ledning. Den kobler vi til en digital inngang på Arduinoen. Det er egentlig vilkårlig hvilken inngang som brukes, men kodeeksemplene vi skal bruke senere i artikkelen går ut ifra at den er koblet på pinne 11 som vist i bildet. Du bør derfor bruke nettopp pinne 11.

IR-dioden kobles på motstanden, som så kobles til pinne 3. På den andre siden kobles dioden ned til jord. Motstanden kan kobles i vilkårlig retning, men det er viktig at IR-dioden kobles med den korte pinnen mot jord. Her er det også viktig at det er pinne 3 som brukes siden kodeeksemplene senere går ut ifra dette.

Last ned og installer IR-bibliotek

IRremote-mappen

For å slippe å lage alt fra bunnen av, så skal vi bruke et bibliotek som heter Arduino-IRremote. Dette biblioteket inneholder eksempler vi skal ta utgangspunkt i for å lage vår fjernkontroll. Biblioteket har åpen kildekode, og kan lastes ned her. Dette biblioteket inneholder alt vi trenger for å sende og motta IR-signaler.

Last ned og installer biblioteket som beskrevet på nettsiden. Det er i prinsippet bare å laste ned en zip-fil, pakke den ut og gi den et nytt navn. Deretter legger du denne mappen i «...\Arduino\libraries». Dersom du for eksempel har innstallert Arduino i mappen «C:\Program Files\Arduino\», så skal IRremote-mappen legges slik at du får «C:\Program Files\Arduino\libraries\IRremote».

Les også