BON 9ième ANNIVERSAIRE FORUM-ECIGARETTE.COM

Modules WVMicrocontroleur chipset et Opensource

djinn
Pommier
Pommier
Messages : 96
Enregistré le : sam. 1 nov. 2014, 13:20
Genre : Non spécifié
Âge : 43

Re: Microcontroleur chipset et Opensource

Messagepar djinn » lun. 30 mars 2015, 23:12

gdb a écrit :Super, tu viens de réduire significativement le nombre de composants et de soudures

Bon, alors tant qu'on est sur ce registre: je pense qu'on peut aussi enlever la résistance pull-down entre le gate et la source du MOSFET. Son rôle est de permettre l'évacuation des charges de la gate pour que le FET puisse s'ouvrir.
  • Dans le cas d'un mod non-régulé, où la gate est commandée par un bouton poussoir directement connecté à Vcc, cette résistance est absolument nécessaire car ces charges n'ont nulle part où aller: en son absence, le mod continue à chauffer après qu'on ait relâché le bouton. :?
  • Dans notre cas en revanche, la gate est commandée par un pin en mode OUTPUT (faible impédance), ce n'est donc pas nécessaire: ces charges vont pouvoir s'évacuer vers le GND via le µC une fois ce pin à l'état LOW. :)
Encore un composant de gagné! :joker:
Bon, celui-là je peux pas vraiment le mettre à mon palmarès dans la mesure où, si je me souviens bien, c'est moi qui ai insisté pour qu'il soit ajouté à l'origine. :mrgreen:

gdb a écrit :en enlevant R2 en cas de mise à la masse par erreur (boite métallique, ...) de l'entrée analogique cela déclenchera un "faux" appuis sur fire.

Bien vu, je n'avais pas pensé à ça. :)
Pour autant, tout comme toi je ne trouve pas que ce soit vraiment un problème. Après tout, quand on fait des court-circuits il faut s'attendre à des surprises, c'est le deal quand on fait joujou avec l'électricité. ;)
En l'occurrence, je suis à peu près sûr de pouvoir foutre le feu à ma Cloupor Mini rien qu'en mettant le mauvais fil à la masse! :mrgreen:

gdb a écrit :J'espère que tu nous les fera partager (même si je crains que la "circuiterie" soit assez complexe).

Pas de souci, et non: aucune circuiterie supplémentaire. :-)
L'idée c'est simplement de:
  • ne pas mettre de voltage divider sur cette entrée
  • d'utiliser pour l'ADC la référence interne de l'ATmega qui est fixée à 1.1V
Ça permet de mesurer ~5x fois plus précisément qu'avec la référence à 5V la faible tension VDS(on) (quand le circuit est fermé). Le souci c'est que quand le circuit est ouvert, on a VDS(off)=Vbat, soit 8.4V en direct sur ce même pin. :shock:
Il suffit d'utiliser la forte impédance des pins en mode INPUT à notre avantage et de se retenir d'effectuer une conversion ADC à ce moment-là: ce n'est pas très difficile dans la mesure où c'est le µC qui décide si ce circuit est ouvert ou fermé. :)
Ce n'est pas la panacée: ça ne permet de récupérer que la moitié de la précision perdue dans le passage à l'IRL3034, mais c'est mieux que rien, et si les fluctuations dues à l'échauffement du FET sont deux fois moindres (elles devraient l'être d'avantage), ça suffira peut-être à avoir quelque chose d'exploitable. À voir!

gdb a écrit :Ok, ce n'est donc pas là que tu pourras faire du calcul en parallèle.

En effet, du moins si je compte exploiter ce gain potentiel de précision. Si je me contente de la précision d'analogRead(), je dois pouvoir remplacer des "while(pas prêt);" par des cycles qui servent à quelque chose. Encore faut-il que j'aie quelque chose à servir… ;-)

gdb a écrit :Bon maintenant je n'ai pas trop d'expérience sur les mod sophistiqués mais à moins d'avoir des yeux sur le menton, quel intérêt d'afficher des infos pendant la taffe ?

:D
L'idée c'est surtout de pouvoir afficher clairement quelques informations — pas nécessairement pendant la taffe. Il y a des gens qui ne sont que modérément enthousiasmés par les joies du morse. :mrgreen:
En l'occurrence, ce n'est pas mon cas: je suis plutôt le genre à kiffer une LED qui m'afficherait en morse la traduction en klingon de la tension en binaire. Geek powa! 8-)

Qu'est-ce qu'on pourrait afficher? Le voltage batterie (textuellement ou/et via une jolie jauge), le voltage de chauffe régulée (idem), le duty cycle (pour les geeks), le mode de calcul (moyenne/RMS simple/RMS Riemann), la durée de taffe, tout le tralala des puff counters (nombre de taffes, longueur moyenne, longueur totale, etc), des jolies courbes du profil de tension d'une impulsion, ou de la chute de tension aux batteries… pong? :mrgreen:
Si on parvient à la mesurer, la résistance du coil et donc la puissance en watts, le mode de chauffe (volts ou watts)…

Je reconnais que ce n'est pas obligatoire, et sachant que l'écran devrait être aussi cher que l'ensemble des autres composants réunis, il vaut mieux que ce soit une option. Mais il y a aussi beaucoup de gens, habitués aux mods du marché, pour qui c'est devenu une condition quasi sine qua non, du coup: pourquoi pas?

Avatar du membre
gdb
Hypérion
Hypérion
Messages : 2713
Enregistré le : mer. 11 janv. 2012, 22:28
Ecigarette (s) utilisée (s) : Evic VTC mini + Origen MKII (mesh avec chaussette en Fiber Freaks + fil Inox)
Genre : Homme
Âge : 49

Re: Microcontroleur chipset et Opensource

Messagepar gdb » dim. 5 avr. 2015, 00:32

Bonsoir à tous,

J'ai 2 nouvelles au sujet de mes expériences : une bonne et une moins bonne :D

La moins bonne est que le code de la semaine dernière qui fonctionne fait 12 Ko et que sa simplification/optimisation va demander des efforts pour le faire tourner sur attiny85 dont la mémoire de 8 Ko se trouve amputée de 2 Ko par le chargeur. Ce n'est pas la voie que je vais suivre dans l'immédiat car heureux possesseur d'une nano (32 Ko) qui devrait rentrer, en force s'il le faut, dans ma boite.

La bonne nouvelle est que j'ai testé les modifs simplificatrices proposées par djinn et elles fonctionnent toutes :respect:

Voici donc les schémas (à vérifier) mis à jour (également dans l'archive, répertoire 0.2) que je vais utiliser par la suite (en attendant que djinn nous mette au point son ohmmètre magique s'il en a le temps ;-)).

Image


Image


Je déposerai le programme qui prends en compte ces modifs demain matin (compte faire quelques modifs dessus encore).

djinn a écrit :L'idée c'est surtout de pouvoir afficher clairement quelques informations — pas nécessairement pendant la taffe. Il y a des gens qui ne sont que modérément enthousiasmés par les joies du morse. :mrgreen:
En l'occurrence, ce n'est pas mon cas: je suis plutôt le genre à kiffer une LED qui m'afficherait en morse la traduction en klingon de la tension en binaire. Geek powa! 8-)


:D tu as oublié de proposer le tout avec une échelle logarithmique :lol:

Il est clair qu'en dehors de l'action "fire" qui nécessite dans ma fonction pas mal de CPU le µC n'a en effet rien à faire et l'affichage d'informations sur un écran serai clairement un plus. Dans mes recherches j'avais retenu cet écran éventuellement compatible avec mes contraintes d'espace dans ma box. J'y viendrai peut-être si ma version "led" tient ses promesses (même si je trouve son prix assez élevé).

Que ce soit moi ou quelqu'un d'autre qui intègre un écran l'adaptation du code source actuel devrait être assez simple et si ce n'est pas le cas on y fera les modifs nécessaires en fonction des besoins. Donc si vous souhaitez vous concentrer sur cette partie n'hésitez pas à participer ;-)

A terme j'espère que le logiciel permettra a chacun d'y piocher les fonctionnalités qu'il souhaite pour se construire son électronique sur mesure.

En attendant je m'en vais peaufiner ma fonction fire pour intégrer la détection de court circuit à chaque acquisition et pas seulement en début de période du PWM...
Image

Pour soutenir la vape LIBRE et RESPONSABLE : Adhérez à l'AIDUCE !

Avatar du membre
athea
Modeur
Modeur
Messages : 1167
Enregistré le : dim. 1 févr. 2009, 07:44
Ecigarette (s) utilisée (s) : mode point bar
Localisation : normandie
Genre : Homme
Âge : 39
Contact :

Re: Microcontroleur chipset et Opensource

Messagepar athea » lun. 19 sept. 2016, 13:14

salut ,
je vient de finir ce projet de box arduino qui contrôle les petites alime dc dc de 110 watt,
le programme , verrouille et déverrouille le bouton fire ,une led s'allume d'une couleur qui correspond a la tension de la batterie (du vert qui vire au rouge )
une fois la batterie vide le bouton fire est verrouiller ,bref de quoi donner le vertige a evolve :lol:


phpBB [video]
Image

djinn
Pommier
Pommier
Messages : 96
Enregistré le : sam. 1 nov. 2014, 13:20
Genre : Non spécifié
Âge : 43

Re: Microcontroleur chipset et Opensource

Messagepar djinn » mar. 20 sept. 2016, 11:03

Joli athea!
Ça donne envie d'en savoir plus!
Et on peut voir l'intérieur? :-)

vierax
Sapin
Sapin
Messages : 260
Enregistré le : dim. 29 sept. 2013, 01:53
Ecigarette (s) utilisée (s) : ¤ Dany Extreme V2 (= Pipeline Pro 2)
Tayfun GSL
454 Big Block
¤ VAMO V5 Mukey double barrel en filaire avec un transfo 9V (matos de secours)
Igo-L

Fiber Freaks (première version) densité 1 ou 2 selon l'humeur + coton Bacon
base maison 90% PG végétal, 10% eau, nico 3.2 mg/mL
Arômes favoris : Hibiscus, Caramel Beurre Salé, Poire, Violette, Red Astair, Noisette, Châtaigne, Mandarine et Framboise
+ petits DIY allday : (Myrtille, Mûre, Kiwi) ou (Crêpe, Érable, Pécan)
Vape parfois sans arôme
Genre : Non spécifié
Âge : 33

Re: Microcontroleur chipset et Opensource

Messagepar vierax » mar. 20 sept. 2016, 13:19

Génial ! un pas de plus vers une vape open-source \o/

Du coup j'en profite pour demander si djinn tu as pu avancer ?
(en relisant le fil je me rend compte que je n'ai toujours pas transformé mes claviers PS/2 en USB via mes Teensy :S )

djinn
Pommier
Pommier
Messages : 96
Enregistré le : sam. 1 nov. 2014, 13:20
Genre : Non spécifié
Âge : 43

Re: Microcontroleur chipset et Opensource

Messagepar djinn » mar. 20 sept. 2016, 16:15

Oui, j'ai pu avancer!
Je ne me souviens plus trop où je m'étais arrêté dans ce fil, et je suis trop flemmard pour le relire…

En deux mots, on a commencé à travailler de concert avec gdb, lui sur une version ATmega328 et moi sur ATtiny85, malheureusement il a du mettre ce projet de côté pour raisons personnelles.
N'ayant plus trop de retour sur ce forum j'ai continué sur UKvapers où traînent quelques gars balèzes et bien motivés. Puis j'ai du moi aussi mettre ce projet de côté pour raisons personnelles. À cette époque j'avais sur le banc un mod PWM avec mesure de résistance en continu (contrôle de température), écran OLED et réglages via accéléromètre, reprogrammable via USB sans matériel intermédiaire, basé sur clone de digispark à 1€ (et 18mm de large ;) ). Genre ça:
Image
Mais il était également très modulaire (tout est remplaçable, par exemple potar ou boutons +/- à la place de l'accéléromètre, LED à la place de l'écran, etc). Il y a des traces de mes développements ici.
J'étais assez fier d'arriver à faire tenir tout ça dans moins de 6Ko de flash et 512 octets de RAM! Même l'affichage était raisonnablement rapide: voilà un test de vitesse en plein-écran fait à l'époque (il est au moins deux fois plus rapide aujourd'hui!):
phpBB [video]


Depuis, j'y ai consacré assez peu de temps, je me suis surtout concentré sur le développement logiciel: un micro-OS embarqué pour micro-contrôleurs ultra-légers que j'avais entamé pour ce projet. J'ai un pote qui attend une version (potar et LED à la place de l'écran) à coller dans une de ses box depuis plusieurs mois, et je traîne comme un boulet… Faut vraiment que je m'y remette!

Je suis aussi devenu pote avec le gars qui design et produit la SmartPWM board (elle aussi basée sur un ATtiny85), qui a connu plusieurs nouvelles versions, et qui continue dans son projet de développement d'une carte open-source. Je suis dans le train, même s'il n'a pas encore beaucoup avancé à ce jour. :p

Entre temps je suis aussi devenu un contributeur régulier du site AVRfreaks avec près de 600 posts en moins de 6 mois. Que de chemin parcouru depuis mes premiers pas dans ce fil!

djinn
Pommier
Pommier
Messages : 96
Enregistré le : sam. 1 nov. 2014, 13:20
Genre : Non spécifié
Âge : 43

Re: Microcontroleur chipset et Opensource

Messagepar djinn » mar. 20 sept. 2016, 16:29

Ah, mer…credi!
Je voulais éditer le post précédent mais j'avais oublié qu'on avait un délai limité sur ce forum. :-/
Tant pis, je le colle ici même si c'est un peu anachronique du coup.

Voilà un refresh complet du même écran (OLED 128x64 I²C) par mon OS tournant sur la même carte à base d'ATtiny85, affichant toutes les infos du mod:
Image
36ms, et sans interférer avec les fonctions principales du mod. Pas mal, non? :mrgreen:

vierax
Sapin
Sapin
Messages : 260
Enregistré le : dim. 29 sept. 2013, 01:53
Ecigarette (s) utilisée (s) : ¤ Dany Extreme V2 (= Pipeline Pro 2)
Tayfun GSL
454 Big Block
¤ VAMO V5 Mukey double barrel en filaire avec un transfo 9V (matos de secours)
Igo-L

Fiber Freaks (première version) densité 1 ou 2 selon l'humeur + coton Bacon
base maison 90% PG végétal, 10% eau, nico 3.2 mg/mL
Arômes favoris : Hibiscus, Caramel Beurre Salé, Poire, Violette, Red Astair, Noisette, Châtaigne, Mandarine et Framboise
+ petits DIY allday : (Myrtille, Mûre, Kiwi) ou (Crêpe, Érable, Pécan)
Vape parfois sans arôme
Genre : Non spécifié
Âge : 33

Re: Microcontroleur chipset et Opensource

Messagepar vierax » mer. 21 sept. 2016, 13:08

Waoh ! impressionnant ! :o

djinn
Pommier
Pommier
Messages : 96
Enregistré le : sam. 1 nov. 2014, 13:20
Genre : Non spécifié
Âge : 43

Re: Microcontroleur chipset et Opensource

Messagepar djinn » sam. 24 sept. 2016, 19:38

Merci!
Je sais pas vraiment ce qui t'as impressionné, mais je prends quand même! :mrgreen:

Il est assez efficace ce micro-OS. Je viens de comparer 3 versions de blink:
  1. blink.ino: le sketch exemple d'Arduino.
  2. blink.c: version minimaliste en pur C.
  3. blink_task.c: version tache de mon OS.
Ça donne les résultats suivants:

Code : Tout sélectionner

   text      data       bss     TOTAL   VERSION
    650         0         9       659   blink.ino
    166         0         2       168   blink_task.c
     82         0         0        82   blink.c
En terme de taille, blink_task s'en sort plutôt bien: beaucoup plus petit que la version Arduino, à peine plus volumineux que la version minimaliste.

Et encore, la comparaison n'est pas tout à fait honnête: contrairement aux deux autres version qui utilisent le CPU à 100% (attente active), le CPU dort 99.9% du temps (SLEEP_MODE_IDLE) avec blink_task:
Image
Dans cet exemple le scheduler bat tous les 10ms (100Hz), et le CPU est actif 0.012% du temps (0.016% quand il faut changer l'état de la LED).


Pour terminer mon tour de promo: l'API essaie de rester simple est élégante… :mrgreen:
Voilà par exemple le code source de blink_task.c:

Code : Tout sélectionner

#include <task.h>            // Définissons une tache [blink]
#define blink_TASKID  1337   // Chaque tache a une ID unique

#define LED_PIN  B1          // LED sur le pin PB1

task_setup(blink) {          // Initialisation: exécuté une fois au boot
   output(LED_PIN);
}

task_loop(blink) {           // Exécuté chaque fois que la tache est programmée.
   toggle(LED_PIN);
}
On peut voir une tache comme un sketch Arduino qui serait exécuté à la demande. On note en passant des fonctions "arduinesques" pour configurer un pin ou changer son état.

Enfin, il faut aussi configurer une application qui fasse tourner cette tache. Ultra simple (app.cgf):

Code : Tout sélectionner

#include <blink_task.c>

// Définit les taches de l'application:
#define TASKS  /* name    period delay active  */\
                 (blink,     100,    0,    ON)   
Dans cet exemple, on fait tourner la tache blink tous les 100 ticks (soit 1s avec notre scheduler réglé à 100Hz), et ce en commençant dès le boot (delay=0). Notre application ne fait rien d'autre.

Voilà un exemple plus réaliste d'application (mon mod, en l'occurrence!):

Code : Tout sélectionner

#define TASKS  /* name    period delay active  */\
                 (power,      10,    0,    ON)  /* POWER_DOWN if not-in-use  */\
                 (switch,      1,    0,    ON)  /* Debounce/monitor clicks   */\
                 (accel,      10,    0,    ON)  /* Check device attitude     */\
                 (main,        1,    0,    ON)  /* Main state machine        */\
                 (setting,    10,    0,   OFF)  /* Device setting monitor    */\
                 (pwm,         2,    0,   OFF)  /* Manage adaptative PWM     */\
                 (screen,     10,    0,    ON)  /* Manage OLED display       */\
Il est facile d'enlever ou ajouter une tache, de changer leur ordre (priorité) dans la liste, ou de modifier leur timing. Par exemple, pour un un mod sans écran il suffit d'effacer la tache screen de cette liste (et recompiler). :D

Bref, je m'emporte… :P

Avatar du membre
Gizmo93
Hypérion
Hypérion
Messages : 5951
Enregistré le : lun. 7 avr. 2014, 18:12
Ecigarette (s) utilisée (s) : ...
Flash-e-Vapor
Genre : Homme

Re: Microcontroleur chipset et Opensource

Messagepar Gizmo93 » sam. 24 sept. 2016, 19:47

:lol: j'y entrave que dalle à ce topic :lol:


Retourner vers « Modules WV »