LK-IrReceiver: Unterschied zwischen den Versionen

Aus Linkerkit.de

Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „==Bild== none ==Technische Daten / Kurzbeschreibung== <div class="level2"> Linker Kit Platine mit einem IR Receiver.<br…“)
 
(Codebeispiel Raspberry)
 
(Eine dazwischenliegende Version des gleichen Benutzers werden nicht angezeigt)
Zeile 13: Zeile 13:
 
</div>
 
</div>
 
==Codebeispiel Arduino==
 
==Codebeispiel Arduino==
<pre class="code">#include <IRremote.h>
+
<pre class="brush:cpp">#include  
 
int RECV_PIN = 11;  
 
int RECV_PIN = 11;  
 
IRrecv irrecv(RECV_PIN);
 
IRrecv irrecv(RECV_PIN);
Zeile 32: Zeile 32:
 
   }
 
   }
 
}</pre>
 
}</pre>
 +
 
==Codebeispiel Raspberry==
 
==Codebeispiel Raspberry==
   
+
Für die Einrichtung eines Infrarot-Steuerungssystem, bietet sich unter Linux bietet die Software "lirc" an (veröffentlicht unter der LGPL - [http://www.lirc.org/ Website]).
 +
 
 +
Das LK-IrReceiver Modul sollte für die Verwendung an den Digitalen Port 4 des LinkerKit-Shields angeschlossen werden.
 +
 
 +
==Lirc Installation==
 +
Als erstes öffnen wir auf dem Desktop ein Terminal oder verbinden wir uns per SSH mit dem Raspberry Pi. Dort geben Sie den folgenden Befehl ein, um lirc auf den Raspberry Pi zu installieren:
 +
 
 +
<pre class="brush:bash">sudo apt-get install lirc -y</pre>
 +
 
 +
[Hierzu muss der Raspberry Pi mit dem Internet verbunden sein]
 +
Damit das lirc Modul direkt zum Start des Betriebssystem verfügbar ist, müssen folgende Zeilen am Ende der Datei "/boot/config.txt" hinzugefügt werden:
 +
 
 +
''dtoverlay=lirc-rpi,gpio_in_pin=4,gpio_out_pin=2,gpio_in_pull=up''
 +
 
 +
Hierbei definiert "gpio_in_pin=4" den Eingangspin für den IR-Receiver, sowie "gpio_out_pin=2" den Ausgangspin für den IR-Transmitter.
 +
 
 +
 
 +
Die Datei kann mit folgenden Befehl editiert werden:
 +
 
 +
<pre class="brush:bash">sudo nano /boot/config.txt
 +
</pre>
 +
Mit der Tastenfolge [Strg+X -> Y -> Enter] kann die Datei, nach dem hinzufügen der Zeile am unteren Ende, gespeichert und geschlossen werden.
 +
 
 +
Auch die Datei "/etc/lirc/hardware.conf" muss modifiziert werden. Hierbei ist der Befehl...
 +
 
 +
<pre class="brush:bash">sudo nano /etc/lirc/hardware.conf
 +
</pre>
 +
... zu verwenden. Hier müssen die die folgenden Zeilen modifiziert werden. An den entsprechenden Stellen muss dann ...
 +
 
 +
    ''DRIVER="UNCONFIGURED"''
 +
    ''--->>''  
 +
    ''DRIVER="default"''
 +
    ''DEVICE=""''
 +
    ''--->>''
 +
    ''DEVICE="/dev/lirc0"''
 +
    ''MODULES=""''
 +
    ''--->>'' 
 +
    ''MODULES="lirc_rpi"''
 +
 
 +
...geändert werden.
 +
 
 +
 
 +
Die modifizierte Datei muss dann wie folgt aussehen:
 +
 
 +
<pre class="brush:py"># /etc/lirc/hardware.conf
 +
#
 +
# Arguments which will be used when launching lircd
 +
LIRCD_ARGS=""
 +
 
 +
#Don't start lircmd even if there seems to be a good config file
 +
#START_LIRCMD=false
 +
 
 +
#Don't start irexec, even if a good config file seems to exist.
 +
#START_IREXEC=false
 +
 
 +
#Try to load appropriate kernel modules
 +
LOAD_MODULES=true
 +
 
 +
# Run "lircd --driver=help" for a list of supported drivers.
 +
DRIVER="default"
 +
# usually /dev/lirc0 is the correct setting for systems using udev
 +
DEVICE="/dev/lirc0"
 +
MODULES="lirc_rpi"
 +
 
 +
# Default configuration files for your hardware if any
 +
LIRCD_CONF=""
 +
LIRCMD_CONF=""
 +
</pre>
 +
Danach starten wir den Raspberry Pi mit dem folgenden Befehl neu:
 +
 
 +
<pre class="brush:bash">sudo reboot
 +
</pre>
 +
 
 +
==IR-Receiver Test==
 +
Um den angeschlossenen Receiver zu testen, muss vorab lirc mit dem Befehl...
 +
 
 +
<pre class="brush:bash">sudo /etc/init.d/lirc stop
 +
</pre>
 +
beendet werden. Danach kann mit...
 +
 
 +
<pre class="brush:bash">mode2 -d /dev/lirc0
 +
</pre>
 +
...getestet werden, ob am Raspberry Pi Signale detektiert werden können. Hierzu nehmen Sie eine Infrarot Fernbedienung und drücken eine beliebige Taste - es sollten Zeilen in der folgenden Form auftauchen:
 +
 
 +
<pre class="brush:bash">space 95253
 +
pulse 9022
 +
space 2210
 +
pulse 604
 +
space 95246
 +
pulse 9019
 +
space 2211
 +
pulse 601
 +
space 95252
 +
pulse 9019
 +
space 2210
 +
pulse 603
 +
space 95239
 +
pulse 9020
 +
space 2208
 +
pulse 603
 +
...
 +
</pre>
 +
Mit dem Befehl...
 +
 
 +
<pre class="brush:bash">sudo /etc/init.d/lirc start
 +
</pre>
 +
... kann der lirc-Dienst wieder gestartet werden.

Aktuelle Version vom 16. November 2016, 12:59 Uhr

Bild

LK-IrReceiver.jpg

Technische Daten / Kurzbeschreibung

Linker Kit Platine mit einem IR Receiver.
Der Infrarot Empfänger wird verwendet um Infrarotsignale zu empfangen und auch zum erkennen von Fernsteuerungen.
Es befindet sich ein Infrarot Detektor auf dem Infrarot Empfänger um das Infrarot Licht von Infrarotstrahlern emittiert zu bekommen.
Der Infrarot Empfänger kann Signale bis zu 10m empfangen.
Sollten die Signale weiter als 10m entfernt sein, kann der Empfänger diese Signale nicht mehr empfangen.

Spezifikation

Betriebsspannung: 3,3-5V
Entfernung: 10m
Maße: 20,9 × 24,8 × 11,5mm
Gewicht: 2,4g

Codebeispiel Arduino

#include 
int RECV_PIN = 11; 
IRrecv irrecv(RECV_PIN);
decode_results results;
 
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // startet den Receiver
}
 
void loop()
{
  if (irrecv.decode(&results))
  {
    Serial.println(results.value, HEX);
    irrecv.resume(); // erhält den nächsten Wert
  }
}

Codebeispiel Raspberry

Für die Einrichtung eines Infrarot-Steuerungssystem, bietet sich unter Linux bietet die Software "lirc" an (veröffentlicht unter der LGPL - Website).

Das LK-IrReceiver Modul sollte für die Verwendung an den Digitalen Port 4 des LinkerKit-Shields angeschlossen werden.

Lirc Installation

Als erstes öffnen wir auf dem Desktop ein Terminal oder verbinden wir uns per SSH mit dem Raspberry Pi. Dort geben Sie den folgenden Befehl ein, um lirc auf den Raspberry Pi zu installieren:

sudo apt-get install lirc -y

[Hierzu muss der Raspberry Pi mit dem Internet verbunden sein] Damit das lirc Modul direkt zum Start des Betriebssystem verfügbar ist, müssen folgende Zeilen am Ende der Datei "/boot/config.txt" hinzugefügt werden:

dtoverlay=lirc-rpi,gpio_in_pin=4,gpio_out_pin=2,gpio_in_pull=up

Hierbei definiert "gpio_in_pin=4" den Eingangspin für den IR-Receiver, sowie "gpio_out_pin=2" den Ausgangspin für den IR-Transmitter.


Die Datei kann mit folgenden Befehl editiert werden:

sudo nano /boot/config.txt

Mit der Tastenfolge [Strg+X -> Y -> Enter] kann die Datei, nach dem hinzufügen der Zeile am unteren Ende, gespeichert und geschlossen werden.

Auch die Datei "/etc/lirc/hardware.conf" muss modifiziert werden. Hierbei ist der Befehl...

sudo nano /etc/lirc/hardware.conf

... zu verwenden. Hier müssen die die folgenden Zeilen modifiziert werden. An den entsprechenden Stellen muss dann ...

    DRIVER="UNCONFIGURED" 
    --->>  
    DRIVER="default"
    DEVICE=""
    --->>
    DEVICE="/dev/lirc0"
    MODULES=""
    --->>  
    MODULES="lirc_rpi"

...geändert werden.


Die modifizierte Datei muss dann wie folgt aussehen:

# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS=""

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false

#Don't start irexec, even if a good config file seems to exist.
#START_IREXEC=false

#Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""

Danach starten wir den Raspberry Pi mit dem folgenden Befehl neu:

sudo reboot

IR-Receiver Test

Um den angeschlossenen Receiver zu testen, muss vorab lirc mit dem Befehl...

sudo /etc/init.d/lirc stop

beendet werden. Danach kann mit...

mode2 -d /dev/lirc0

...getestet werden, ob am Raspberry Pi Signale detektiert werden können. Hierzu nehmen Sie eine Infrarot Fernbedienung und drücken eine beliebige Taste - es sollten Zeilen in der folgenden Form auftauchen:

space 95253
pulse 9022
space 2210
pulse 604
space 95246
pulse 9019
space 2211
pulse 601
space 95252
pulse 9019
space 2210
pulse 603
space 95239
pulse 9020
space 2208
pulse 603
...

Mit dem Befehl...

sudo /etc/init.d/lirc start

... kann der lirc-Dienst wieder gestartet werden.