Category: ATtiny

[Fr] AVR ISP à deux sous

J’ai trouvé un programmeur ISP pour Atmel AVR en kit pour seulement 5€90. D’après le vendeur, il fonctionne avec AVR Studio et AVRDUDE. Je l’ai commandé pour remplacer mon montage immense basé sur Arduino.

AVR ISP USB Stick

Le tout est disponible sur le site ehajo.de et l’envoi en France coûte 4€50.

Je vous tiens au courant de premiers tests dès qu’il arrive à la maison.

[Fr] Projet – Bougies électriques pour lanternes – Prototype 1

Tout d’abord, pour démontrer que l’idée de base décrite dans l’article Projet – Bougies électriques pour lanternes – Idées est techniquement valable, j’ai crée un prototype sur une platine d’expérimentation.

Circuit principal

Le circuit principal est très simple. J’ai pris les composants de plusieurs sets de composants achetés chez Reichelt.

Bougie éléctrique circuit proto

Bougie électrique circuit proto

L’alimentation se trouve en haut à gauche (“Power”). Sur SV1-1 et SV1-3 (le connecteur vers le contrôleur) se trouve la tension d’alimentation de 5 à 6V. La diode D1 sert à protéger le processeur d’une alimentation inversée. Les capas C3 et C4 servent à stabiliser la tension d’alimentation VCC.

Le processeur IC1 (un ATtiny85) dispose d’une connexion ICSP (in-circuit serial programming) qui sert à reprogrammer la flash du processeur. C’est le connecteur JP1. En réalité, sur la platine d’expérimentation ce connecteur n’existe pas, car la platine est directement connecté à un Arduino (cf. paragraphe plus loin).

La résistance R2 sert à définir l’état de la ligne de reset.

En bas à droite se trouve le filtre de l’entrée série “Data”. L’entrée “Data” se trouve sur le même connecteur que l’alimentation (SV1-2). Le filtre est un simple filtre passe bas (constante de temps 1ms) qui a pour but de filtrer des perturbations sur la ligne de données et de protéger l’entrée du processeur de surintensités (via la résistance série R1).

L’étage de sortie se trouve en bas à droite du circuit. Le NFET T1 pilote le pôle moins de la lampe. La résistance de série sur le gate (R100) sert à atténuer la pente de la commutation (pour comportement CEM). La résistance R3 garantit que le NFET s’éteint correctement.

La platine d’expérimentation montée ressemble à ça :

Bougie électrique - prototype

Bougie électrique – prototype

Note: J’ai mis quelques LEDs en plus, elles me servent de “débogeur du pauvre”.

Circuit de programmation

Pour programmer le Attiny85, j’utilise un Arduino, car il connecte parfaitement sur le PC et l’interface Arduino IDE permet de programmer des Attiny85 utilisant les librairies Arduino et l’Arduino en tant qu’ICSP (in-circuit serial programmer).

J’ai fait appel au site allemand suivant pour réaliser cette partie : arduinospielwiese.de.

Il faut connecter la platine d’expérimentation avec l’Arduino comme suit :

Arduino en tant que ICSP

Dans mon cas, le tout ressemble à cela :

Bougie électrique - Ensemble prototype et programmateur

Bougie électrique – Ensemble prototype et programmateur

Le premier programme

Tout d’abord, je voudrais bien savoir si l’étage de sortie fonctionne bien et si on arrive à obtenir un comportement similaire à une bougie avec l’ampoule.

Avec l’Arduino IDE, je programme le bootloader dans l’Attiny pour mettre les fuses (fusibles) dans les bonnes configurations (horloge de 8MHz par le résonateur interne).

Le programme minimum est le suivant :

void setup() {
  pinMode(0, OUTPUT);    //pwm lamp
}

void loop() {
  byte pwm_dc = 0;
  pwm_dc = random(128,255);
  analogWrite(0,pwm_dc);
  delay(100);
}

Dans la partie “setup” se trouve l’initialisation de la sortie de la lampe (gate drive). C’est une sortie PWM (modulation de largeur d’impulsion) qui est piloté à la fréquence de 490Hz (défini par les librairies Arduino). Le rapport cyclique de la sortie peut être ajusté utilisant la fonction analogWrite(pin,rapport) avec une valeur de 0 à 255 pour des rapports cycliques entre 0 et 100%.

Dans la partie “loop”, exécuté infiniment, se trouve un simple appel à la librairie de génération de nombre pseudo-aléatoires de l’Arduino. Une valeur entre 128 et 255 est généré à peu près 10 fois par seconde (random(128,255)) et appliqué en tant que rapport cyclique sur la sortie de la lampe. Le résultat est un signal PWM de 490Hz avec des rapports cycliques pseudo-aléatoires allant de 50 à 100%. La valeur du rapport cyclique change ca. 10 fois par seconde, ce qui imite à mon sens assez bien une bougie :

Vue directe

Vue indirecte

Ce qui manque … chalenge

Le programme présenté dans le dernier paragraphe est fonctionnel, gourmand en mémoire et temps de calcul, mais très rapidement implémenté (ça m’a pris 20 minutes au total). Mais, il ne sais que faire une simulation de bougie, ce qui ne remplit pas mon “cahier des charges”.

Malheureusement, il n’y a pas de libraire pour faire du Attiny85 un récepteur de données série fiable. On trouve des librairies “soft serial” qui font de la réception de données par “polling”, donc en regardant l’état de l’entrée de données en permanence. Le problème avec cette méthode est que le processeur ne fait plus que cela !

Ce que je veux faire, c’est d’utiliser l’entrée d’interruption externes de l’Attiny pour capturer un changement d’état sur la ligne de données série et de faire l’interprétation de la trame en utilisant une base de temps existante.

A creuser.

[Fr] Projet – Bougies électriques pour lanternes – Idées

Sur différents marchés aux puces, j’ai acheté des vieilles lampes à huile et lanternes, dans l’idée de décorer le jardin.

Les électrifier vient tout de suite à l’esprit, car je ne veux pas de feu dans le jardin avec les enfants. Mettre du 220V est une opération délicate, car l’humidité risque de faire circuler des courants de fuite sur le vieilles lampes ce qui est dangereux. Et au final, je ne veux pas être éblouit par 20 lampes quand je suis dans le jardin, je préfère d’y trouver un éclairage d’ambiance et non pas fonctionnel. En plus, je préfère que les lampes se comportent un peu comme des bougies, mais chacune individuellement.

L’idée de base

Créer un boitier étanche dans chaque lampe qui contient l’électronique nécessaire pour alimenter une lampe à incandescence de 5 ou 6 Volts (le LED m’est trop directionnel).

Concept mécanique de la bougie

Concept mécanique de la bougie

L’électronique doit être capable de piloter la lampe simulant une bougie probablement à d’aide d’un NFET.

Schéma électrique simplifié de la bougie

Schéma électrique simplifié de la bougie

Toutes les lampes doivent être connectés à un bus de données pour pouvoir recevoir des ordres (port série). Chaque lampe doit avoir son identifiant auquel elle répond.

Contrôleur de bougies électriques et les bougies

Contrôleur de bougies électriques et les bougies

Via le bus de commande, il doit être possible d’allumer et d’éteindre le lampe, changer son luminosité et son mode de fonctionnement (bougie, continu, …).

Le bus de commande serait commandé par une cellule maitre avec écran et bloc d’alimentation.

Choix technologiques

Les choix technologiques doivent être faite pour plusieurs éléments, dont le contrôleur, la bougie et la connectique.

Contrôleur

Le contrôleur peut être relativement grand, mais doit être étanche à l’eau pour pouvoir rester dans le jardin. Il doit être équipé d’un écran de texte et de plusieurs boutons. Il doit pouvoir fournir suffisamment de puissance électrique pour toutes les bougies.

Par simplicité, une carte Arduino Uno peut être utilisé comme cerveau du contrôleur. Une alimentation à découpage 220V – 5V d’au moins 3A doit être intégré.

Un boitier transparent aurait l’avantage de ne pas poser problèmes pour mettre un écran LCD ou OLED d’une manière étanche.

Bougies

Un processeur du type Atmel ATtiny 45 ou 85 à 8 pins est suffisant pour contrôler le NFET qui pilotera la lampe. La lampe est donc en permanence connecté aux 5V, et sa liaison à la masse est piloté via le NFET.

Le tout peut être soudé sur une petite carte électronique de 30x30mm. Les premiers protos pourront être fait sur une carte “strip board”. Le socle E10 pourra aussi être soudé sur la carte.

Pour rendre le tout étanche à l’eau, on peut envisager de couler le tout en résine ou en silicone. Le seul problème qui reste à évaluer, c’est le comportement thermique du NFET. Il n’est pas clair si la résine ou le silicone auront une influence négative sur le refroidissement du FET.

Connectique

Il faudra trouver une connectique capable de survivre à l’extérieur sans trop de corrosion (connectique en or), avec 3 pôles (5V, GND, Data).

Le jack audio de 2.5mm ou 3.5mm sera peut-être un candidat. A vérifier.

© 2019 Funky DIY

Theme by Anders NorenUp ↑