top of page

ALGORITHME

 «Ensemble de règles opératoires dont l'application permet de résoudre un problème énoncé au moyen d'un nombre fini d'opérations. Un algorithme peut être traduit, grâce à un langage de programmation, en un programme exécutable par un ordinateur.» LAROUSSE

Dans cet algorithme nous avons choisi de traiter deux caractéristiques du robot aspirateur : la première est de ralentir lorsqu'il rencontre un objet quelconque et de prendre une autre direction, aléatoire, afin de ne pas percuter l'objet en question;  la deuxième est de sortir ou non la brosse suivant le support sur lequel il se trouve.

Dans la première partie de l'algorithme, le moteur est défini avec 250 tours par minute en marche normale, et 0 tour par minute lorsqu'il ralentit à l'approche d'un objet. La distance aux objets est analysée par les capteurs situés sur l'aspirateur. Cette information est traitée par l'algorithme : si la distance est inférieure ou égale à 0.04 m alors l’algorithme envoie une information codée en langage binaire pour que le nombre de tours par minute soit réglé à 0. Si cette distance est supérieure à 0.04 m alors l'aspirateur garde sa vitesse constante. Le tour par minute défini précédemment est repris par l'algorithme, lorsque il est égal à 0 et que la distance à l'objet est inférieure à 0.04 m, il détermine un angle de rotation aléatoire.

Dans l'autre partie, le support est détecté en s'intéressant à la vitesse relevée par les capteurs de vitesse puisque la vitesse change selon le support : si elle est comprise entre 0.500 et 0.750 kilomètres par heure, l'aspirateur se trouve sur de la moquette, il range donc sa brosse, si elle n'est pas comprise dans l'intervalle [0.500;0.750] l’aspirateur nettoie une surface de parquet ou de carrelage, il sort donc la brosse.

1   VARIABLES

2     distance EST_DU_TYPE NOMBRE

3     vitesse EST_DU_TYPE NOMBRE

4     Angle_de_virage EST_DU_TYPE NOMBRE

5     Brosse EST_DU_TYPE NOMBRE

6     Tourmin EST_DU_TYPE NOMBRE

7   DEBUT_ALGORITHME

8     LIRE distance

9     SI (distance>0.04) ALORS

10      DEBUT_SI

11      Tourmin PREND_LA_VALEUR 250

12      FIN_SI

13      SINON

14        DEBUT_SINON

15        Tourmin PREND_LA_VALEUR 0

16        Angle_de_virage PREND_LA_VALEUR random()

17        FIN_SINON

18    Angle_de_virage PREND_LA_VALEUR Angle_de_virage*90/1

19    AFFICHER "angle:"

20    AFFICHER Angle_de_virage

21    AFFICHER "vitesse:"

22    AFFICHER vitesse

23    LIRE vitesse

24    SI (vitesse<=0.750 ET vitesse>=0.500) ALORS

25      DEBUT_SI

26      Brosse PREND_LA_VALEUR 0

27      FIN_SI

28      SINON

29        DEBUT_SINON

30        SI (vitesse>0.750) ALORS

31          DEBUT_SI

32          Brosse PREND_LA_VALEUR 1

33          FIN_SI

34          SINON

35            DEBUT_SINON

36            AFFICHER "Position de la brosse non affectée"

37            FIN_SINON

38        FIN_SINON

39    AFFICHER Brosse

40  FIN_ALGORITHME

bottom of page