Pages: 1 [2] 3 4   Go Down
Author Topic: Multitâches DuinOS  (Read 5990 times)
0 Members and 1 Guest are viewing this topic.
France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

En lisant l'erreur il semblerai que le probléme ce situe dans duinOS.h à la ligne 14 soit :
Code:
#include <avr/eeprom.h>
Petit coup d'oeil rapide sur la ligne au dessus :
Code:
/* EEPROM routines used only with the WinAVR compiler. */
traduit : Les routines EEPROM ne peut être utilisé qu'avec winAVR.

Je suis sur que la compilation n'est pas faite sous windows smiley-wink
Pour empêché ce probléme sous linux/mac il faut commenter cette ligne.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 0
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Merci de te pencher sur mon problème mais je fais quoi?

J'ai pas compris en fait hein?? J'suis désolé.
Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3227
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu mets la ligne comme si c'était un commentaire

Code:
// #include <avr/eeprom.h>
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Offline Offline
Newbie
*
Karma: 0
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Alors j'ai réussi à faire fonctionner (sous windows) la mega2560 + arduino0022 + Duinos V0.3.

Pour ce, faire la mise à jour (r32) de Duinos V0.3 avec le code SVN via Turtoise et remplacer le fichier port.c comme proposé au dessus.

Pour le moment j'ai testé uniquement l'exemple des leds qui clignotent simultanément.

Merci à skywodd pour son aide et sont fichier providentielle ainsi que pour tous ceux qui m'ont répondu

« Last Edit: August 26, 2011, 05:46:15 am by Telson » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Alors des nouvelles de Duinos....j'essai de faire fonctionner deux tâches similtanément, ces tâches sont des commandes de moteur pas à pas. Cependant, les moteurs tournent continuellement et ce même lorsque je supprime le contenu  de la fonction loop.

Je suppose donc que les Taskloop suffise pour faire fonctionner les moteurs????

voici mon code:

Code:
#include <Stepper.h>

const int stepsPerRevolution = 200;  // Nombre de pas par révolution

// initialize the stepper library on pins 8 through 11:
Stepper MD(stepsPerRevolution, 22,23,24,25);
Stepper MG(stepsPerRevolution, 32,33,34,35);

// Déclaration des deux tâches parallèles  
  
taskLoop(MoteurG)  
{  
  MG.step(20);
}  

  
taskLoop(MoteurD)  
{  
  MD.step(20);
}  


// Fonctions habituelles  
void setup()    
{      
  

  
  // set the speed at 60 rpm:
  MG.setSpeed(60);
  MD.setSpeed(60);
  // initialize the serial port:
  Serial.begin(9600);  
    
  // Création des deux tâches  
  createTaskLoop(MoteurG, NORMAL_PRIORITY);  
  createTaskLoop(MoteurD, NORMAL_PRIORITY);  
}  


void loop()                      
{  
  Serial.println("Début de boucle");
  // Deux tâches en parallèle pendant 2 secondes  
  Serial.println("Les deux moteurs");
  resumeTask(MoteurG);  
  resumeTask(MoteurD);  
  delay(2000);  
  
  // Puis seulement le moteur gauche pendant 5 secondes
  Serial.println("Le moteur gauche");  
  suspendTask(MoteurD);  
  delay(5000);  

  // Puis seulement le moteur droit  pendant 5 secondes
  Serial.println("Le moteur droit");
  resumeTask(MoteurD);  
  suspendTask(MoteurG);  
  delay(5000);  
  // et on recommence (loop)
  Serial.println("En fin de boucle");
}  


Qu'en pensez vous ???
« Last Edit: August 29, 2011, 08:14:47 am by Telson » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour,

Quelqu'un aurait déjà t'il utilisé un capteur ultrason SR HC04 avec Duinos, pour ma part il exécute 8-10 mesures puis plus rien j'suis obligé de re uploader le programme....

Merci.

cordialement.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Suite aux problèmes :

Duinos et Serial.println, après 8-10 affichages tout se fige.....

Le problème vient de Serial.println(duration), cela fait planter le programme.....
Cette variable est une unsigned long avec bien sur duration = duration/58.....

Lorsque j’utilise Serial.println("D") pour marquer le début de la fonction loop et lorsque je place Serial.println("F") pour marquer la fin de la boucle loop il n’y à aucun problème.

Par contre si je met, Serial.println(345) le programme se fige et avec Serial.println(32) le programme fonctionne.
Les valeurs D, F, 32 et 345 sont des valeurs d’essais choisies un peu,beaucoup, au hasard.....


Voici une première réponse de Julien, que je remercie sur PoBot :
http://www.pobot.org/Premiers-pas-avec-DuinOS.html#forum1360

"Conflit dans les interruptions matérielles nécessaires à gérer la liaison série et à gérer l’ordonnanceur (DuinOS).
C’est très sensible, il faut mieux mettre l’affichage hors du programme temps réel, dans une tâche dédiée à l’affichage, qui n’est pas sensible au temps"


Donc, est ce que quelqu'un aurait trouvé la solution ou une parade?????

Sinon, vous me direz MAIS pourquoi utiliser Serial.println dans le programme hein???!!! Ba c'est très pratique pour voir comment celui-ci se déroule......

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
je profite de ce topic à propos de multitache.

J'envisage de me mettre à l'arduino pour une application assez précise (contrôle de température de différent appareillage et gestion de groupes froids). Pour cela je vais avoir besoin de multitâche (le bloc arduino doit être autonome et pouvoir être paramétré facilement, sans pendant ce temps arrêter le contrôle des autres éléments). Je pourrais faire sans mais ça sera plus chiant...alors autant utiliser le rtos puisque ça existe!

J'hésite aujourd'hui entre un arduino mega2560 et un chipkit max32.

Arduino est passé en version 1.0. en fouillant sur le site de duinos il semble que la dernière version de celui-ci serait compatible arduino 1.0.
skywodd, est ce que ton patch pour mega2560 sera toujours fonctionnel pour duinos et arduino 1 ??

Sinon est ce que ça vous semble envisageable de mettre freertos sur un chipkit max32 (le pic32 est supporté par freertos mais va surement y avoir de la bricole à faire ... j'ai pas encore trouvé si quelqu'un l'avais déjà utilisé)?

Ou alors est ce que l'arduino DUE va sortir un jour ? est ce utopiste de penser que duinos pour être adapter pour? (freertos supporte le proc arm Cortex-M3) ??

Si je trouve un truc un peu plus puissant que l'arduino mega, j'trouverai toujours la possibilité d'utiliser les MHz supplémentaires  smiley-wink !

Merci!

Logged

Thomas

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'hésite aujourd'hui entre un arduino mega2560 et un chipkit max32.
Question de budget mais surtout de matériels et de connaissances, les pic32 sont des micro-contrôleurs PIC de microchip.
Par conséquent les codes source utilisant des registres pour AVR, interruptions ou autre ne compilerons pas.
De bonne connaissance en prog PIC, Mplab, et un debuggeur PICKIT3 sont plus que conseillé.

Arduino est passé en version 1.0. en fouillant sur le site de duinos il semble que la dernière version de celui-ci serait compatible arduino 1.0.
skywodd, est ce que ton patch pour mega2560 sera toujours fonctionnel pour duinos et arduino 1 ??
Il faudrait vérifier mais normalement ça devrait marcher pareil, au pire c'est pas bien compliqué à (re)modifier.

Sinon est ce que ça vous semble envisageable de mettre freertos sur un chipkit max32 (le pic32 est supporté par freertos mais va surement y avoir de la bricole à faire ... j'ai pas encore trouvé si quelqu'un l'avais déjà utilisé)?
C'est envisageable et même déja fait http://www.freertos.org/port_PIC32_MIPS_MK4.html
Par contre un debuggeur compatible PIC32MX est obligatoire sinon c'est impossible de faire du debug.

Ou alors est ce que l'arduino DUE va sortir un jour ? est ce utopiste de penser que duinos pour être adapter pour? (freertos supporte le proc arm Cortex-M3) ??
Pourquoi cherche tu absolument quelque chose "arduino" ?
Si tu compte vraiment partir sur une solution RTOS regarde du coté des STM32(L / VL)(M4) discovery, des cartes LPC1768 / LPC1769.
Le kernel FreeRTOS est porté en natif sur ces plateforme depuis trés longtemps.
Et codé en vrai c/c++ sera beaucoup plus véloce que codé en arduino, par contre ça demande un temps d'adaptation.

Si je trouve un truc un peu plus puissant que l'arduino mega, j'trouverai toujours la possibilité d'utiliser les MHz supplémentaires  smiley-wink !
Vouloir un maximum de MHz ne changera pas grand chose, c'est le RTOS qui gére les temps d'éxécution, de plus a moins d'avoir un cpu multi-coeur ce n'est jamais du vrai multitâche smiley-wink
Il faut savoir peser budget, connaissance, et performance smiley-wink
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir,

afin d'apprendre la programmation de microcontroleur j'ai démarré avec un arduino mega2560.

J'ai bien installé arduino 1.0, DuinOS(version 0.4 en svn) et le patch port.c afin de l'utiliser avec la mega2560.

J'ai essayé de faire fonctionner le code trouvé à l'adresse: http://www.pobot.org/Premiers-pas-avec-DuinOS.html. Le code compile et s'upload correctement, mais à l'utilisation, les LEDs clignotent beaucoup trop vite (20 à 30x plus rapide qu'attendu).

J'imagine qu'il y a un pb de paramétrage dans les fichiers de duinos, j'ai déjà pas mal cherché mais rien n'y fait le clignotement est toujours trop rapide!

Est ce que ce code fonctionne correctement sur un arduino UNO ??
Est ce que quelq'un a des idées pour que ça fonctionne?

Merci
Logged

Thomas

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai essayé de faire fonctionner le code trouvé à l'adresse: http://www.pobot.org/Premiers-pas-avec-DuinOS.html. Le code compile et s'upload correctement, mais à l'utilisation, les LEDs clignotent beaucoup trop vite (20 à 30x plus rapide qu'attendu).
20 à 30x plus !? C'est beaucoup !

J'imagine qu'il y a un pb de paramétrage dans les fichiers de duinos, j'ai déjà pas mal cherché mais rien n'y fait le clignotement est toujours trop rapide!
Ce n'est pas une question de paramétrage de duinos, ou alors c'est au niveau de la configuration du timer0 ...
A tu essayais avec la version 0.3 par pure curiosité ?

Est ce que ce code fonctionne correctement sur un arduino UNO ??
Est ce que quelq'un a des idées pour que ça fonctionne?
Je n'est pas de carte sous la main pour le moment, je test ça demain aprés-midi en 1.0 + duinOS 0.4 patché smiley-wink
(2h du matin ... mais qu'est ce que je fou encore sur le forum moi smiley-mr-green)
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ça fonctionne avec arduino 0021 + duinos v0.3 + patch...

Dommage j'aurais bien utilisé arduino 1.0 au lieu de 0021...

Et avec un arduino UNO, ça donne quoi?
Logged

Thomas

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ça fonctionne avec arduino 0021 + duinos v0.3 + patch...

Dommage j'aurais bien utilisé arduino 1.0 au lieu de 0021...
Bon j'ai refait mon patch pour duinOS 0.4 et arduino 1.0 smiley-wink
Une ligne critique avait était modifié, affectant la gestion de tout ce qui est lié au temps, c'est maintenant réglé smiley-wink

Le patch + le nouveau boards.txt pour arduino 1.0
-> http://code.google.com/p/duinos/issues/detail?id=7
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Waouu!...
ça marche! génial, Merci!
Logged

Thomas

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Waouu!...
ça marche! génial, Merci!
Pas de quoi smiley-wink

Si ça marche pour toi aussi (et si tu as un compte google) écris un petit commentaire sur la page de mon patch pour dire que tout va bien.
Ça permettra aux autres utilisateurs de duinOS d'avoir un avis autre que celui du concepteur du patch smiley-wink
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Pages: 1 [2] 3 4   Go Up
Jump to: