Den optimala fjärrkontrollen
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Den optimala fjärrkontrollen
Nu har jag äntligen startat mitt projekt att skapa den optimala fjärrkontrollen till tv mm. Tycker alla fjärrkontroller är mer eller mindre skadade i sin design, för många knappar, ologisk placering, inte särskilt genomtäntk design. Så varför inte göra en egen optimal fjärrkontroll? Ger förvisso en del prestationsångest med tanke på hur mycket jag klagar på befintliga designer, men skam den som ger sig.
Grundtanken är att använda en liten Arduino Pro Mini som drivs med ett litet Li-ionbatteri. Detta har inbyggd skyddselektronik och laddas av en enkel laddare från Lawicel/Sparkfun. Tangentbordet består av vanliga miniatyrswitchar, höljet blir hemsnidat. Antalet knappar minimeras så att kontrollen bara har de knappar som används i dagligt bruk. Det handlar då om att kunna reglera volymen på tv:n, byta kanal på digitalboxen och vissa funktioner på min Creative DDTS-100 ljudavkodare.
Den mest irriterande funktionen som används ofta är kanabyte via kanalguiden (EPG). Tryck på 'EPG', bläddra fram önskad kanal, tryck 'Ok', tryck 'X'. I min design blir EPG, Ok och X en och samma togglande knapp, ena trycket ger 'EPG', det andra skickar 'Ok' och 'X'.
För att spara ström ska an accelerationssensor användas så att fjärren vaknar när man lyfter den. Mjukvaran baseras på Ken Shirrifs IR-bibliotek för Arduino, färdig kod för att hantera multipla switchar samt en del eget.
I dagsläget har jag byggt en prototyp som har de flesta funktioner. Reglera TV-volym, EPG/Ok/X, bläddra kanaler, slå på DDTS, byt ingång på DDTS, reglera volym på DDTS fungerar. Mjukvaran är nästan klar så långt, nu återstår att vänta på att acc-sensorn landar i brevlådan och att höljet blir färdigsnidat. Det blir nog den knepigate biten att få bra...
Grundtanken är att använda en liten Arduino Pro Mini som drivs med ett litet Li-ionbatteri. Detta har inbyggd skyddselektronik och laddas av en enkel laddare från Lawicel/Sparkfun. Tangentbordet består av vanliga miniatyrswitchar, höljet blir hemsnidat. Antalet knappar minimeras så att kontrollen bara har de knappar som används i dagligt bruk. Det handlar då om att kunna reglera volymen på tv:n, byta kanal på digitalboxen och vissa funktioner på min Creative DDTS-100 ljudavkodare.
Den mest irriterande funktionen som används ofta är kanabyte via kanalguiden (EPG). Tryck på 'EPG', bläddra fram önskad kanal, tryck 'Ok', tryck 'X'. I min design blir EPG, Ok och X en och samma togglande knapp, ena trycket ger 'EPG', det andra skickar 'Ok' och 'X'.
För att spara ström ska an accelerationssensor användas så att fjärren vaknar när man lyfter den. Mjukvaran baseras på Ken Shirrifs IR-bibliotek för Arduino, färdig kod för att hantera multipla switchar samt en del eget.
I dagsläget har jag byggt en prototyp som har de flesta funktioner. Reglera TV-volym, EPG/Ok/X, bläddra kanaler, slå på DDTS, byt ingång på DDTS, reglera volym på DDTS fungerar. Mjukvaran är nästan klar så långt, nu återstår att vänta på att acc-sensorn landar i brevlådan och att höljet blir färdigsnidat. Det blir nog den knepigate biten att få bra...
Re: Den optimala fjärrkontrollen
Spännande.
Om man får komma med lite förslag så är ju batteritid en viktig fråga.
För de flesta accelerometrar har man möjlighet att programmera gränsvärden vilket medför att den höjer en interrupt-pinne, om gränsvärdet(eller högre) uppstår.
Man kan lägga ofta accelerometern i strömsparläge och ändå ha gränsvärdes funktionen. Nu har du ju redan beställt accelerometer så kika om den inte har denna
funktionalitet.
Tanken är sedan att du sätter Arduinon i riktig sleep (kika på Narcoleptic libraryt) och väcker den med HW PIN interrupt vilken kopplas till accelerometern.
Sedan är det ju inte svårare än att rörelse eller knapptryckning "nollar" en räknare och när denna tillåts nå ett visst värde plockas Arduinon ner i sleep igen.
Om man får komma med lite förslag så är ju batteritid en viktig fråga.
För de flesta accelerometrar har man möjlighet att programmera gränsvärden vilket medför att den höjer en interrupt-pinne, om gränsvärdet(eller högre) uppstår.
Man kan lägga ofta accelerometern i strömsparläge och ändå ha gränsvärdes funktionen. Nu har du ju redan beställt accelerometer så kika om den inte har denna
funktionalitet.
Tanken är sedan att du sätter Arduinon i riktig sleep (kika på Narcoleptic libraryt) och väcker den med HW PIN interrupt vilken kopplas till accelerometern.
Sedan är det ju inte svårare än att rörelse eller knapptryckning "nollar" en räknare och när denna tillåts nå ett visst värde plockas Arduinon ner i sleep igen.
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Den optimala fjärrkontrollen
Tack för tipset om Narcoleptic. Har tänkt att använda HW-interrupt och sen försöka få processorn att sova så gott det går. Läste nånstans om nån som tom plockade bort lysdioden sin Mini Pro och fick ned förbrukningen till typ 10 uA, ska bli spännande att se hur lågt ned det går att komma. Annars är laddaren smart med en microusb-kontakt, bara att koppla till laptopen när det behöver laddas. Dessutom är den parallellkopplad så fjärren går att använda även vid laddning.
Re: Den optimala fjärrkontrollen
Angående knappen som skiftar funktion vid varje tryckning, blir det inte drygt om TVn råkar missa en av tryckningarna?
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Den optimala fjärrkontrollen
Nje, då är det ju bara att trycka en extra gång.
Acc-sensorn är en Adxl345-baserad, http://www.ebay.com/itm/1pcs-ADXL345-3- ... 3a78ff075d. Den verkar ha stöd för djupsömn.
Det jag funderar på är om de inställningar man gör via SPI/I2C är permanenta? Hade vart bra om man kunde ställa in den en gång för alla (till att ge en interrupt vid minsta rörelse) och sen bara ha plus, gnd och Int inkopplat.
Acc-sensorn är en Adxl345-baserad, http://www.ebay.com/itm/1pcs-ADXL345-3- ... 3a78ff075d. Den verkar ha stöd för djupsömn.
Det jag funderar på är om de inställningar man gör via SPI/I2C är permanenta? Hade vart bra om man kunde ställa in den en gång för alla (till att ge en interrupt vid minsta rörelse) och sen bara ha plus, gnd och Int inkopplat.
Re: Den optimala fjärrkontrollen
Lovvärt initiativ!
(Men volymkontrollen ska väl reglera stereon och inte TV'n, säger ljudnörden inom mig
)
Accelerometern är kanske overkill?
Hur snabbt vaknar mikrokontrollern? Kan du inte koppla så att varje knapp dels ger en I/O-signal och dels slår på strömmen till mikrokontrollern, och den sen stänger av sig själv (ev efter en timerstyrd tid ifall nu uppstarten faktiskt tar icke försumbar tid, för att det inte ska kännas "segt" att använda den).
(Men volymkontrollen ska väl reglera stereon och inte TV'n, säger ljudnörden inom mig

Accelerometern är kanske overkill?
Hur snabbt vaknar mikrokontrollern? Kan du inte koppla så att varje knapp dels ger en I/O-signal och dels slår på strömmen till mikrokontrollern, och den sen stänger av sig själv (ev efter en timerstyrd tid ifall nu uppstarten faktiskt tar icke försumbar tid, för att det inte ska kännas "segt" att använda den).
-
- Inlägg: 8092
- Blev medlem: 18 januari 2009, 00:48:24
- Ort: Alvesta, Småland
Re: Den optimala fjärrkontrollen
Accelerometer kan ju va nice om man har display på den eller bakgrundsbelyst
tänds upp så fort man lyfter den 


Re: Den optimala fjärrkontrollen
Vad jag minns behåller den ingetnting.PHermansson skrev:Nje, då är det ju bara att trycka en extra gång.
Acc-sensorn är en Adxl345-baserad, http://www.ebay.com/itm/1pcs-ADXL345-3- ... 3a78ff075d. Den verkar ha stöd för djupsömn.
Det jag funderar på är om de inställningar man gör via SPI/I2C är permanenta? Hade vart bra om man kunde ställa in den en gång för alla (till att ge en interrupt vid minsta rörelse) och sen bara ha plus, gnd och Int inkopplat.
Men det är ju inget problem tycker jag.
Enda chansen att du förlorar matning till den är ju att du byter batterier, eller batterierna blir urladdade.
Om du gör dina inställningar i "Setup" delen på din Arduino kod kommer ju inställningarna sättas vid strömsättning och således alltid vara satta.
Observera att accelerometern inte tappar några inställningar i vare sig Low Power, Sleep eller Standby mode.
En sak jag reagerade på är bilden på accelerometern.
345'an matas typiskt med 2.5V och max 3.6V. Dom har stoppat på en LDO (3.3V skulle jag gissa) men det finns inget som tyder på att man gör nivåkonvertering på I/O.
Det cippet har absolute max rating 3.9V på I/O och jag gissar att man gör det lite smutsiga "kina standard tricket" att bara lägga en resistor i serie som strömbegränsar.
Troligen håller grejorna med denna metod, men det är störande att dom trixar.
Jag hade perssonligen gjort en lösning där allt gick på 3.3V och där du plockar ner frekvensen på din Arduino.
Förutom att det blir sjyssta nivåer osv. kommer man ner betydligt mer i strömförbrukning som bunus.
Nu inefattar ju det eget kretskort och lite "fippel" i "borads.txt" i Arduino IDE't, så jag har förståelse för om du vill köra med färdiga kort osv.
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Den optimala fjärrkontrollen
Jo första tanken var en diod-or-grind med 1N4148 från alla knappar till Int0, men det är coolare med en acc-meterMiaM skrev:Lovvärt initiativ!
(Men volymkontrollen ska väl reglera stereon och inte TV'n, säger ljudnörden inom mig)
Accelerometern är kanske overkill?
Hur snabbt vaknar mikrokontrollern? Kan du inte koppla så att varje knapp dels ger en I/O-signal och dels slår på strömmen till mikrokontrollern, och den sen stänger av sig själv (ev efter en timerstyrd tid ifall nu uppstarten faktiskt tar icke försumbar tid, för att det inte ska kännas "segt" att använda den).

Ok då får jag koppla in signalerna till I2C också, ska nog gå att lösa trots att jag använt en ingång till varje knapp, har ingen matrisuppkopppling (tänkte att pinnarna räcker ändå). Vad gäller drivspänning så är det 3.3V som gäller, den Mini Pro jag använder kör på 3.3V med en frekvens på 8 megahertz.
Re: Den optimala fjärrkontrollen
Efter att ha jobbat i diverse projekt rörande fjärrkontroller till multimediautrustning så skulle det vara intressant att få en skiss på hur du tänkt dig knapp-layouten?
Har du funderat på att använda accelerometern även för att känna igen gester? Hur har du tänkt lösa överföringen av signalerna? De flesta fjärrkontroller går ju via IR, men eftersom du bygger själv är väl inte priset så intressant, så då kan du ju satsa på trevligare lösningar, type Zigbee eller bluetooth.
/R
Har du funderat på att använda accelerometern även för att känna igen gester? Hur har du tänkt lösa överföringen av signalerna? De flesta fjärrkontroller går ju via IR, men eftersom du bygger själv är väl inte priset så intressant, så då kan du ju satsa på trevligare lösningar, type Zigbee eller bluetooth.
/R
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Den optimala fjärrkontrollen
Nopp det blir IR, det är snabbt och enkelt att få igång, och dessutom kompatibelt med mottagarna. I annat fall får man ju ha någon konversationsbox som skickar ut IR. Det är iofs möjligt att göra en sådan, men tycker det är knepigt att hitta en bra placering för den.
Ska se när jag hinner rita upp knappsatsen, den är under utprovning nu. Har just monterat acc-sensorn och börjat testa den. I första skedet blir den bara för av/på för själva fjärren, men det kan ju utvecklas sedan. Det kommer ju att bli ganska enkelt att uppdatera mjukvaran om man känner för det.
Ska se när jag hinner rita upp knappsatsen, den är under utprovning nu. Har just monterat acc-sensorn och börjat testa den. I första skedet blir den bara för av/på för själva fjärren, men det kan ju utvecklas sedan. Det kommer ju att bli ganska enkelt att uppdatera mjukvaran om man känner för det.
Re: Den optimala fjärrkontrollen
Ja, finns det ingen plats för konverteringsbox så blir det ju jobbigt att köra annat än IR.
Jag ser fram emot layouten. I min mening så är det nog det svåraste att få till i ett sånt här projekt, särskilt med tanken på trådtiteln.
Jag ser fram emot layouten. I min mening så är det nog det svåraste att få till i ett sånt här projekt, särskilt med tanken på trådtiteln.

- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Den optimala fjärrkontrollen
Har fortsatt jobba med kodden nu och kommit en bit på väg. Nu har jag dessutom slått i en begränsning i Arduino som jag stött på förr. När koden växer över en viss nivå slutar allt fungera. Istället för att skriva ut hela startmeddelandet (i det här fallet "MyIrSend") skrivs bara "My" ut. Tar jag bort något stort i setup som tex inkluderingen av ADXL-biblioteket fungerar det bra. Misstänker att det är ram-minnet som inte räcker till riktigt, det har man ingen koll på i Arduino. Så nu får jag se om man kan ta bort några bibliotek och optimera koden.