Bonjour,
J'ai commencé à architecturer mon programme de régulation pour m'affranchir des temps d'attente d'acquisition de température des capteurs OneWire (DS18B20) qui sont pénalisants pour la réactivité de l'ensemble.
Je suis parti sur l'utilisation de millis() et le déclenchement de blocs logiques à intervalles réguliers (3 secondes pour les relevés de température, 5 secondes pour les vannes 3 voies, etc...). Ca fonctionne plutôt bien !
Et puis, je suis tombé sur un projet qui me semble intéressant : leOS (leOS2 pour la deuxième mouture)
Au lieu de se baser sur le comptage des millisecondes, l'auteur se place un niveau plus bas et exploite le Watchdog (utilisé notamment pour rebooter l'AVR en cas de freeze).
Sa librairie permet de mettre de créer des tâches, de les mettre en pause, de les reprendre, etc...
Si vous voulez plus d'infos : http://www.leonardomiliani.com/2012/leo ... g=en#leos2
Je vais essayer de le mettre en oeuvre pour comparer à ma solution maison...
Bons développements !
Edit : en PJ un exemple tout simple avec 3 tâches (2 Leds et 1 Serial.print)
Multitasking sur Arduino
Modérateurs : ramses, Balajol, monteric, j2c
-
- Stagiaire Solaire
- Messages : 78
- Enregistré le : lun. mars 11, 2013 14:53 pm
- Localisation : Mérignac (33)
- Fichiers joints
-
- leOS2_2leds_1serial.txt
- Exemple leOS2
- (2.1 Kio) Téléchargé 295 fois
Modifié en dernier par nafan le mer. avr. 24, 2013 15:06 pm, modifié 4 fois.
-
- Stagiaire Solaire
- Messages : 78
- Enregistré le : lun. mars 11, 2013 14:53 pm
- Localisation : Mérignac (33)
Bonjour,
Désolé, je ne connais pas du tout le M3, et donc pas Scoop non plus...
Avant d'être accro à l'Arduino, j'étais sur du Siemens LOGO! (mais c'était vraiment trop limité)
Je regarderai ce soir pour voir si c'est comparable, si je trouve un moment (Je prépare le montage de mes panneaux pour ce week-end).
Désolé, je ne connais pas du tout le M3, et donc pas Scoop non plus...
Avant d'être accro à l'Arduino, j'étais sur du Siemens LOGO! (mais c'était vraiment trop limité)
Je regarderai ce soir pour voir si c'est comparable, si je trouve un moment (Je prépare le montage de mes panneaux pour ce week-end).
-
- Stagiaire Solaire
- Messages : 78
- Enregistré le : lun. mars 11, 2013 14:53 pm
- Localisation : Mérignac (33)
Alors, ce que j'ai pu constater hier soir :
- La mise en oeuvre de leOS2 est très simple, mais mon relevé de température OneWire est répété 10 fois par appel... je ne comprends pas pourquoi.
- Scoop est un peu plus laborieux au niveau des déclarations, mais semble plus stable dans mon cas.
En conclusion : Comme je suis un peu juste au niveau mémoire sur le Duemilanove, et que ma solution maison fonctionne très bien, je ne vais pas m'embêter avec une librairie supplémentaire pour le moment.
- La mise en oeuvre de leOS2 est très simple, mais mon relevé de température OneWire est répété 10 fois par appel... je ne comprends pas pourquoi.
- Scoop est un peu plus laborieux au niveau des déclarations, mais semble plus stable dans mon cas.
En conclusion : Comme je suis un peu juste au niveau mémoire sur le Duemilanove, et que ma solution maison fonctionne très bien, je ne vais pas m'embêter avec une librairie supplémentaire pour le moment.