Librairie IR NEC pour ATTINY85

Posted on Jan 08 - by phil

1 Introduction

Le but de cette adaptation est de pouvoir utiliser la librairie IR sur des Attiny85.
La base de cette librairie est le fruit du travail de Ken Shirriff  (http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html)
Un portage a été fait par Nick Gammon sur le forum Arduino (http://arduino.cc/forum/index.php?topic=91488.msg687101#msg687101) . Il a fait la partie la plus difficile c'est-à-dire adapter la lib de Ken Shirriff en fonction des caractéristiques des ATTINY. En effet, il y a de nombreuses différences entre ATMEGA et ATTINY comme les timers et d’autres trucs encore auxquels je ne comprends pas grand-chose. Quoi qu’il en soit la librairie adapté est disponible ici http://gammon.com.au/Arduino/IRremote_Attiny.zip
Le problème de ce portage c’est que la librairie en l’état est « difficile » à utiliser. En effet, dans l’exemple donnée par Nick Gammon, il est impossible d’utiliser un « digital.write » c’est trop consommateur de mémoire… C’est dire si cela va être difficile de faire quelque chose de simple…

J’ai donc décidé de ne pas me prendre la tête et de faire un grand ménage pour libérer des ressources sur les ATTINY.
2 axes de nettoyages :
1 – Séparation en deux librairies une pour l’émission et l’autre pour la réception
2 – Gestion du protocole NEC uniquement
Voila la marche à suivre pour installer et utiliser la (les) librairie(s) pour Attiny85

2 Matériel utilisé

  • PC windows 7 SP1
  • Arduino IDE 1.0.2
  • Arduino board Duemilanove
  • Recepteur IR TSOP341 http://forum.snootlab.com/download/file.php?id=126
  • Ir Rx
  • Led IR BL-L513-IR http://forum.snootlab.com/download/file.php?id=127
  • Le nécessaire pour programmer les ATTINY (cf http://hlt.media.mit.edu/?p=1695 )

3 Préparation

3-1 Installation des libraires IRTinyTR et IRTinyRX

En premier lieu télécharger la librairie modifié ici

Cette librairie s’installe dans le répertoire « libraries » du sketchbook arduino comme toutes les autres lib.
A la racine du répertoire « libraries » il doit y avoir donc deux répertoires : IRTinyTX et IRTinyRX

2 Install Lib

Dans la capture d’écran ci-dessus le skectchbook s’appelle « ardval »

3-2 Ajouter les Attiny dans les hardware supporté par l’IDE arduino

Pour ce faire, rien de plus simple il suffit de telecharger le fichier arduino-tiny-0100-0015.zip ici =>  http://code.google.com/p/arduino-tiny/downloads/list

Ensuite localiser le repertoire hardware de votre sketchbook et dezipper le contenu de l’archive
3 Install Lib

4 Install Lib

Ça doit ressembler à ça. (pour que cela fonctionne, il faut redémarrer l’IDE Arduino)

3-3 Uploder le code arduinoAsIsp dans un Arduino (Duemilanove dans mon cas)

5 Arduinoas Isp

Sélection bonne board et bon programmateur

6 Arduinoas Isp

7 Arduinoas Isp

Utiliser l’Arduino avec le sketch Arduino as ISP pour programmer un ATTINYPour la partie hardware, je vous renvoie sur le site du MIT qui décrit très bien cette partie : http://hlt.media.mit.edu/?p=1695

Par contre n’utilisez pas ATtiny zip (from this GitHub repository https://github.com/damellis/attiny/archive/master.zip)

3-4 Modifier le bootolader de l’ATTINY


Une fois le hardware décrit plus haut en place, il suffit de sélectionner la board ATtiny85 @ 8 Mhz (internal oscillator ; BOD disabled) et le programmer Arduino as ISP. Cette manip est nécessaire, la lib ne fonctionnant qu’a une fréquence d’horloge de 8 Mhz

9 Burnbootloader

10 Burnbootloader

Enfin faire un « Burn Bootloader » (c’est assez rapide en général)

11 Burnbootloader

4 - Montage pour les deux sktechs de demo

4 - 1 montage basique : sketch SimpleIRTinyTX.ino et SimpleIRTinyRX.ino

Partie TX

Ce montage est composé donc de

  • 1 ATTINY 85 (@ 8 Mhz)
  • 1 LED IR (BL-L513-IR)
  • 1 bouton poussoir avec sa résistance de pull up
  • Une pile
  • Un switch (ON/OFF)

13 Simple Tx

Partie RX


Ce montage est composé donc de

  • 1 ATTINY 85 (@ 8 Mhz)
  • 1 récepteur IR TSOP341
  • 1 led basique avec une resistance
  • Une pile
  • Un switch (ON/OFF)

12 Simple Rx

Le fonctionnement des deux montages est simple : Si on appuie sur le outon de la partie TX, la led s’allume sinon elle s’éteint…

NEC IR with Attiny 85 from phil teta on Vimeo.

4-2 montage avancé : sketch FourLedsIRTinyRX.ino et AnalogIRtinyTX.ino

Partie TX

  • 1 ATTINY 85 (@ 8 Mhz)
  • 1 LED IR (BL-L513-IR)
  • 1 bouton poussoir avec sa résistance de pull up
  • 1 potar 40 kohms (valeur sans importance du moment que c’est supérieur à 10 k…)
  • Une pile
  • Un switch (ON/OFF)

14 Tx

Parie RX

  • 1 ATTINY 85 (@ 8 Mhz)
  • 1 récepteur IR TSOP341
  • 4 leds basiques avec résistance
  • Une pile
  • Un switch (ON/OFF)

15 Rx

Le fonctionnement de ces montages est le suivant

En fonction de la position du potar, un code IR est émis. Il y a 8 codes : tout éteint, Led 1 on, Led1 + Led2 on, Led2 on, Led2 + led3 on, Led3 on, Led 3 + Led 4 on, Led4 on.
Si on appuis sur le bouton poussoir, un code IR est transmis pour allumer toutes les leds…

NEC IR with Attiny 85 (2) from phil teta on Vimeo.

Other Posts