Multitasking sur Arduino

Modérateurs: Balajol, monteric, ramses

Messagepar nafan » Mer Avr 24, 2013 14:41 pm

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é 147 fois
Modifié en dernier par nafan le Mer Avr 24, 2013 15:06 pm, modifié 4 fois.

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

Messagepar Samounet » Mer Avr 24, 2013 14:48 pm

Bonjour,

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

A+++
Avatar de l’utilisateur
Samounet
Expert Solaire
Expert Solaire
 
Messages: 619
Enregistré le: Sam Aoû 02, 2008 18:38 pm
Localisation: Saint Caprais (32)

Messagepar nafan » Mer Avr 24, 2013 15:02 pm

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

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

Messagepar Samounet » Mer Avr 24, 2013 16:17 pm

La librairie SCOOP, d'après ce que j'en ai compris, c'est le monde Arduino, pas M3. Devrait donc être plus proche.
Avatar de l’utilisateur
Samounet
Expert Solaire
Expert Solaire
 
Messages: 619
Enregistré le: Sam Aoû 02, 2008 18:38 pm
Localisation: Saint Caprais (32)

Messagepar nafan » Mer Avr 24, 2013 17:37 pm

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 Mar 11, 2013 14:53 pm
Localisation: Mérignac (33)

Messagepar nafan » Jeu Avr 25, 2013 10:54 am

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.

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


Retourner vers Arduino

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron