Aller au contenu


Photo
- - - - -

Comment gérer le temps d'une action...


  • Veuillez vous connecter pour répondre
7 réponses à ce sujet

#1 bennurre

bennurre

    Habitué

  • Membres
  • PipPip
  • 160 messages
  • Gender:Male

Posté 13 novembre 2011 - 06:08

Bonjour @ tous,

Je suis entrain de chercher une solution pour mon robot et j'ai besoin de vos lumières!

Je voudrais que mon robot exécute une action (ex avancer) et que si il n'a pas rencontré d obstacle pendant un certain temps, il fasse une autre action (ex demi tour)


Dans le loop:

Robot_avance

If robot_avance > 5minutes
Robot_demitour



Je pensais utiliser la fonction milli() et faire un truc du genre

Time= milli()
If Time + 30000
robot_demitour

Enfin, vous avez compris quoi!! LOL!

Le but, c'est que le robot ne peut avancer plus de 5 minutes sans qu'il est rencontré un obstacle, donc si on arrive á ce delay, il faut qu'il fasse demi tour pour essayer de se sortir de se problème...

Merci @ tous! Week end dur dur, du mal á réfléchir ! LOL!

...................................................

Mon premier projet arduino...

Blog de ma Tondeuse RC...

...................................................


#2 thorium90

thorium90

    Membre

  • Membres
  • 20 messages
  • Gender:Male
  • Location:Lyon
  • Interests:Devine ?

Posté 13 novembre 2011 - 10:05

Bonjour, la gestion du temps est un élément important dans la gestion de ton projet. Il semble avec ce que tu as écris que tu développe sur Arduino non ?
Si c'est bien le cas, voila quelques éléments de réponses :

#include <time.h>		//Librairie gestion du temps 
				//![EDIT : Inutile sur board Arduino]

Robot monRobot;			//(Variable Fictive)Represente le robot que tu auras soigneusement programmé
int tempsDerniereExecution;	//Contient la valeur du temps la derniere fois que la tache s'est exécutée
int tempsActuel;		//Contient la valeur du temps actuel a chaque relevé dans la boucle principale
int tempsCycle;			//Contient la valeur de temps d'un cycle

setup
{
	tempsDerniereExecution = 0;	//initialisation de la variable
	tempsActuel = 0;		//initialisation de la variable
	tempsCycle = 300000;		//initialisation de la variable Ici, on regle le cycle à 5 minutes
}

loop
{
	monRobot.gestionCollision();		//permet de traité la gestion des collisions de ton robot
	tempsActuel = millis();			//Récupére la valeur du temps actuel

	if (monRobot.getNBcollission > 0)	//permet de traiter la gestion des evenement en cas de collision avant la vérif toute les 5 minutes
	{
		monRobot.GereCollision();	//Action si collision
	}
	else
	{
		monRobot.continueTaRoute();	//Action si aucune collision
	}

	if (tempsActuel - tempsDerniereExecution >= tempsCycle) //Calcule le temps ecoulé depuis le dernier passage, si celui ci depasse la valeur du cycle, l'action s'execute
	{
		if (monRobot.getNBcollission = 0) //On vérifie si il y a eu une collision ces 5 dernieres minutes
		{
			monRobot.faisDemiTour();  //On fait le demi tour

		}
		tempsDerniereExecution = tempsActuel; //On réinitialise la variable pour la gestion du timer
	}

}

Tu pourra chopé plus d'explications ici => Gestion du temps sur Arduino

Voila, j'espère que tu as compris où je voulais en venir avec ce petit exemple.
Dis nous si t'as encore besoin d'aide ;)

++
Website : | Python | Arduino | Android | www.siliciumcorp.com
MyPastebin : Tous mes codes sources pastebin.com/u/thorium90

#3 bennurre

bennurre

    Habitué

  • Membres
  • PipPip
  • 160 messages
  • Gender:Male

Posté 14 novembre 2011 - 03:02

Bonjour, la gestion du temps est un élément important dans la gestion de ton projet. Il semble avec ce que tu as écris que tu développe sur Arduino non ?
Si c'est bien le cas, voila quelques éléments de réponses :

......

Voila, j'espère que tu as compris où je voulais en venir avec ce petit exemple.
Dis nous si t'as encore besoin d'aide ;)

++



euh !!! et bien merci merci !!! et ne me dis pas que tu as écris ce bout de programme sur un coin de nape au resto sinon je vais etre jaloux !!!

en plus j'ai tout tout compris !!! alors imagine !!!

j'ai plus qu'à adapter ça à mon code et faire des tests !!

merci encore du temps passé !!!

Have Fun !!!

...................................................

Mon premier projet arduino...

Blog de ma Tondeuse RC...

...................................................


#4 thorium90

thorium90

    Membre

  • Membres
  • 20 messages
  • Gender:Male
  • Location:Lyon
  • Interests:Devine ?

Posté 15 novembre 2011 - 11:16

Ravi d'avoir pu t'aider.

T’inquiète pas aucune nappe n'a été victime d'abus, L'individu "Nouveau document.txt" n'a cependant pas été épargné :P Héhé

A bientôt.
Website : | Python | Arduino | Android | www.siliciumcorp.com
MyPastebin : Tous mes codes sources pastebin.com/u/thorium90

#5 bennurre

bennurre

    Habitué

  • Membres
  • PipPip
  • 160 messages
  • Gender:Male

Posté 15 novembre 2011 - 11:17

Ravi d'avoir pu t'aider.

T’inquiète pas aucune nappe n'a été victime d'abus, L'individu "Nouveau document.txt" n'a cependant pas été épargné :P Héhé

A bientôt.



lol ! merci encore !! ;-)

...................................................

Mon premier projet arduino...

Blog de ma Tondeuse RC...

...................................................


#6 Microrupteurman

Microrupteurman

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 210 messages
  • Gender:Male
  • Location:Aquitaine,Gironde
  • Interests:Tout

Posté 25 novembre 2011 - 02:47

Salut, ca serai possible d'avoir un lien poue telechargé la librairie time ,

merci


J'ai trouvé time

 
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/

Besoin d'une impression 3D grand format ? Contactez moi !
 


#7 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp
  • Interests:https://t.me/pump_upp

Posté 25 novembre 2011 - 02:58

Ici je pense The download


édité a 15h00

A le t'en que j’écrivais t'avait déjà trouvais

#8 thorium90

thorium90

    Membre

  • Membres
  • 20 messages
  • Gender:Male
  • Location:Lyon
  • Interests:Devine ?

Posté 26 novembre 2011 - 01:18

Je suis désolé de vous avoir induit en erreur, mais pour faire appel aux fonctions millis(), micros(), delay() et delayMicroseconds() d'Arduino, il est inutile d'include <time.h>, c'est l'habitude du C ::oups::

Bonne continuation.
Website : | Python | Arduino | Android | www.siliciumcorp.com
MyPastebin : Tous mes codes sources pastebin.com/u/thorium90




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users