Récepteur infrarouge et module pulseio - Niveau intermédiaire
La carte cpx est équipée d'un récepteur et d'un émetteur infrarouge. CircuitPython offre des modules permettant le décodage des informations reçues. Le code permettant d'exploiter les signaux reçus d'une télécommande est donc très simple comme on peut le voir dans l'exemple ci-dessous, tiré de la page Adafruit :
Méthode : Décodage d'un signal infrarouge
1
import pulseio
2
import board
3
import adafruit_irremote
4
5
# Crée une entrée pulseio pour écouter les signaux reçus par le récepteur IR.6
pulsein = pulseio.PulseIn(board.IR_RX, maxlen=120, idle_state=True)
7
# Crée un decodeur qui va récupérer les impulsions pulsein et les transformer en codes8
decoder = adafruit_irremote.GenericDecode()
9
10
while True:
11
pulses = decoder.read_pulses(pulsein)
12
try:13
# Essaye de décoder les signaux reçus14
received_code = decoder.decode_bits(pulses, debug=False)
15
except adafruit_irremote.IRNECRepeatException:
16
# We got an unusual short code, probably a 'repeat' signal17
# print("NEC repeat!")18
continue19
except adafruit_irremote.IRDecodeException as e:
20
# Something got distorted or maybe its not an NEC-type remote?21
# print("Failed to decode: ", e.args)22
continue23
24
print("Code NEC reçu: ", received_code)
25
if received_code == [255, 2, 255, 0]:
26
print("Reçu NEC Vol-")
27
if received_code == [255, 2, 127, 128]:
28
print("Reçu NEC Play/Pause")
29
if received_code == [255, 2, 191, 64]:
30
print("Reçu NEC Vol+")
31
Exemple :
Voici un exemple d'affichage dans la console suite à l'appui sur des touches d'une télécommande infrarouge. On peut donc voir qu'il est très facile d'exploiter ces informations pour exécuter des actions.
