Expérimentation ATTiny85

Une lampe de bureau à Leds

Lamp led tot

 

            Et voilà ! un objet sans prétention, qui me prouve que je suis meilleur électronicien que designer ... Le but est double, malgré la banalité de la réalisation; me familiariser avec la création par imprimante 3D et  la programmation des produits Degispark ATTiny85. Pourquoi un micro contrôleur dans une simple lampe ? pour qu'elle ait l'air moins bête ! Cette lampe donne sa lumière par une matrice de leds haute luminosité, et a l'avantage de voir son intensité réglée graduellement par l'action sur un bouton unique (à droite, j'en veux plus, à gauche j'en veux moins  et au milieu, j'éteins en mémorisant le réglage). Pour l'ergonomie, la tête s'incline à volonté, et le bras, en plus de pivoter autour de son axe, s'incline de haut en bas.  La partie mécanique est réalisée avec une imprimante 3D pour les pièces en plastique ABS et avec du tube carré, en aluminium brossé de 10 mm de côté . L'alimentation est assurée par un bloc secteur de 6 volt ... Une variante à l'originale serait de mettre une batterie de piles rechargeables dans le pied : ça donnerait de l'autonomie sans la brancher et de la stabilité par abaissement du centre de gravité ...

Lamp led tot 

L'électronique en premier !

Le schema :

Lamp led sch

 

            Les leds sont montées dans mon diffuseur en 3 rangées en série de 7 leds en parallèle, avec une limitation de courant par une résistance de 2,2 Ohms/1W et les rôle de l'ATTiny85 est de leur donner un signal en PWM (modulation de largeur d'impulsion) dont la valeur efficace ne dépasse pas 3,5 volt ( dans le programme on limite la valeur à 220 sur 255)!  Le circuit du µcontroller inclus un régulateur à 5v qui est une tension un peu élevée pour cette configuration de leds, donc on ne va pas se gêner pour utiliser les avantages de la PWM de 0 (éclairage minimum) à 220 (éclairage maximum). L'amplification en courant est faite par un MOS-FET de puissance en TO220 le transistor IRZL44N ! Son 'gate' est tiré à la masse par une résistance de 10K (R3) et piloté à travers une autre de 1K(R2). une led et sa limitation (R4) permettent de visualiser le fonctionnement et de protéger le transistor en abaissant l'impédance d'entrée et en absorbant au pire des cas les courants inverses.

            Deux boutons poussoirs vont servir de commande en mettant au potentiel haut les entrées logiques, tirées à la masse par les résistance de pull down R5 et R6. L'alimentation n'est pas critique entre 6 et 12 volt et est appliquée directement sur l'ATTiny85 sur lequel est intégré un régulateur 5v de puissance 750mA !

Et tout ça pour 1,50$ ...

Lamp led tiny85  La forme de clé USB permet la programmation direct sur le PC ...

 

Le Circuit Imprimé :

Lamp led brd   Lamp led cmp

 

            Tout petit le circuit, mais il supporte tout les composants: Les CMS côté soudure et les traversants de l'autre côté ! Attention: j'ai monté les deux boutons poussoirs sur la même face que les CMS afin qu'ils viennent juste sous la barre de commande du boîtier ...La fixation par 3 vis parker tombe sur les bossages prévus à cet effet .

 

Le Programme : (ou Sketch)


/* Programme de lampe à LED avec réglage de l'intensité lumineuse.
 * Test de ATTiny085 avec sortie PWM et entrées Boutons poussoir.
 *  Par B.LECLERC/FEELGOOD
 */

const int UpButton = 1;   // Déclaration d' Entrees
const int DwButton = 2;

int led = 0;   // Déclaration de Sorties

int Val = 120; // variables

void setup()


  pinMode(led, OUTPUT);   // Direction des pinuches 
  pinMode(UpButton, INPUT);
  pinMode(DwButton, INPUT);
}


void loop(){
Debut: 

analogWrite(led, Val);  // Ecriture des valeurs aléatoires sur les sorties leds, pendant un certain temps !

if (digitalRead(UpButton)==HIGH){  // Monte de 0 à 80%  !
    Val = Val + 5;
  if (Val > 220)(Val = 220);  // Trop Grand --> Valeur maxi !
  delay (200);
}
if (digitalRead(DwButton)==HIGH){   // Descend de 200 à 0 
 Val = Val - 5;
  if (Val < 1)(Val = 0);  // Trop Petit --> Valeur 0 !
  delay (200);
}

if ((digitalRead(UpButton)==HIGH) & (digitalRead(DwButton)==HIGH)){  // Arrêt  !
analogWrite(led, 0);
  goto arret;
}

  goto Debut; 

arret:
  delay (4000);
if ((digitalRead(UpButton)==HIGH) or (digitalRead(DwButton)==HIGH)){
  goto Debut;
  delay (200);
}

goto arret;
}

 

            Tout petit aussi le sketch !  Après les classiques déclaration des entrées/sorties, on vient donner une valeur moyenne d'éclairement à 120/255 ème . Puis on entre dans la boucle qui scrute l'état logique des boutons, vient incrémenter ou décrémenter par pas de 5 la valeur précédente dans les limites de 0 à 220. Si l'on constate que les 2 poussoirs sont appuyés simultanément on saute sur une boucle de parking ad vitam aeternam (sauf si l'on sollicite de nouveau un des deux) .

            La programmation se fait avec l' IDE d'Arduino, après avoir téléchargé et installé le bootloader. Tout est résumé, et très bien sur le site  Digispark . Et en complément, pour les personnes qui auraient des difficultés  de téléversement, je joints un document, qui rappelle au pas à pas, la routine à suivre pour 'rentrer' dans cette board un peu spéciale qu'est le ATtiny85 avec l'IDE Arduino ... Ce document synthétise ce que l'on trouve sur le site Digispark et mon expérience personnelle menée pour ce projet .

Attiny85Attiny85 (352.38 Ko)

           Plus facile et moins 'lourde' pour le PC, la programmation de l'ATTiny85 par un Arduino Nano ou Uno : Le lien est ICI

 

Voilà pour l'électronique, nous allons extruder du plastique maintenant !

Réalisation matérielle :

Lamp led tete

            Toutes les pièces, à l'exception du tube carré aluminium brossé 10x10 mm longueur 1 m, ont été extrudées à l'imprimante 3D. C'était là un des seuls intérêts de ce projet; me familiariser à la création et la prise en main de quelques logiciels, gratuits bien-sûr ( pas avare mais pas riche !). 

            Le premier utilisé pour l'élaboration des formes est le fabuleux logiciel de Radiospares  qui est mis à disposition gracieusement et qui s'appelle Designspark Mechanical et qui fait parti d'un ensemble de logiciels, offert par la marque, bien professionnel et surtout sans prise en main abrutissante.

Lamp led designspark

            Ici, la création de la box du pied ! L'outil permet d'exporter directement des fichiers au format xxx.stl qui seront ensuite traités par le logiciel de tranchage et pilotage d'imprimante ou code pour carte SD si on choisi le mode autonome.

            Personnellement, j'ai choisi de travailler avec le soft de chez Repetier qui permet une prise en main facile et qui offre la possibilité de faire la sauvegarde des réglages pour ne pas avoir à tout re-paramétrer  à chaque fois que l'on veut faire un travail différent des modèles "par défaut". Il inclut un trancheur performant "CuraEngine" qui corrige les erreurs de conception et permet également l'édition du G-code de pilotage .

Lamp led repetier

 

            Une fois le G-code chargé sur la carte SD, l'imprimante n'aura plus qu'a extruder la matière pour la réalisation des différentes pièces! Certaines doivent être réalisées en deux exemplaires : c'est le cas pour la chape d'articulation et le corps du contre-poids.

 

Pour la réalisation => LES FICHIERS 

            On trouve ici le ZIP qui va permettre de reprendre les fichiers nécessaires à la réalisation de l'électronique et du plastique .

Lamp ledLamp led (76.96 Ko)

 

Lamp led cp

 

Ajouter un commentaire