Multitasking sur Arduino

Modérateurs : ramses, Balajol, monteric, j2c

Répondre
nafan
Stagiaire Solaire
Stagiaire Solaire
Messages : 78
Enregistré le : lun. mars 11, 2013 14:53 pm
Localisation : Mérignac (33)

Message par nafan »

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)
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.

Avatar du membre
Samounet
Expert Solaire
Expert Solaire
Messages : 617
Enregistré le : sam. août 02, 2008 18:38 pm
Localisation : Saint Caprais (32)

Message par Samounet »

Bonjour,

C'est quoi la différence de principe entre ta version et la librairie SCOOP qu'utilises PanMillenium pour son interface M3 ?

A+++

nafan
Stagiaire Solaire
Stagiaire Solaire
Messages : 78
Enregistré le : lun. mars 11, 2013 14:53 pm
Localisation : Mérignac (33)

Message par nafan »

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).

Avatar du membre
Samounet
Expert Solaire
Expert Solaire
Messages : 617
Enregistré le : sam. août 02, 2008 18:38 pm
Localisation : Saint Caprais (32)

Message par Samounet »

La librairie SCOOP, d'après ce que j'en ai compris, c'est le monde Arduino, pas M3. Devrait donc être plus proche.

nafan
Stagiaire Solaire
Stagiaire Solaire
Messages : 78
Enregistré le : lun. mars 11, 2013 14:53 pm
Localisation : Mérignac (33)

Message par nafan »

Je viens de jeter un oeil, et effectivement, ça y ressemble.

Je regarde de plus près ce soir. Merci pour le tuyau !

nafan
Stagiaire Solaire
Stagiaire Solaire
Messages : 78
Enregistré le : lun. mars 11, 2013 14:53 pm
Localisation : Mérignac (33)

Message par nafan »

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.

Répondre

Retourner vers « Arduino »