.gif)
Bonjour,
Sujet un peu spécial : j'ai développé un projet Lego dans le cadre du boulot (toute excuse est bonne à prendre
.gif)
Le sujet nécessite une petite introduction. Il s'agit ici d'étudier, d'un point de vue théorique, comment évolue la diversité génétique d'une population d'individus (peu importe l'espèce en question, mais pour simplifier, on va dire des bactéries). On fait les approximations suivantes:
- La population a une taille finie et fixe (nombre d'individus constant au cours du temps)
- Il n'y a pas de sélection, c'est-à-dire que chaque individu au sein de la population a des chances égales de survivre et de se reproduire
Le modèle de Moran a été introduit en 1958 (voir [1], en anglais). On introduit les caractéristiques suivantes:
- A chaque génération t, un individu meurt
- La place libérée est remplie par la naissance d'un nouvel individu, né d'un (de) parent(s) pris au hasard dans la population à la génération t
- Le modèle est inter-générationnel, c'est à dire que des individus d'âge différents se côtoient à chaque génération
- Le modèle est généralement structuré, car en général on choisit les parents parmi les "voisins" de l'emplacement libéré, c'est-à-dire là où l'individu est décédé.
- Code: Tout sélectionner
0 1 0 0 1 1 1 0 1 0
Avec 0 codant les blancs et 1 les oranges.
On prend un individu au hasard, lequel décède subitement d'une mort aussi brutale qu'irréversible, par exemple le 3, qui est de couleur blanche. Ca libère donc de la place:
- Code: Tout sélectionner
0 1 X 0 1 1 1 0 1 0
Ensuite on a une naissance, parce que c'est bien fait quand même la nature, et on choisit comme parent l'un des voisins, au hasard (ce sont des bactéries, qui se reproduisent par division à l'identique). Disons le 2, qui est de couleur orange. A la génération suivante, la position 3 est donc de couleur orange et ça donne:
- Code: Tout sélectionner
0 1 1 0 1 1 1 0 1 0
Et ça continue encore et encore... cette fois le 6 passe à trépas:
- Code: Tout sélectionner
0 1 1 0 1 X 1 0 1 0
Lequel est forcément remplacé par un nouveau 1, vu que les deux parents possible sont identiques et de couleur orange:
- Code: Tout sélectionner
0 1 1 0 1 1 1 0 1 0
etc etc. Si on continue, que se passe-t-il ? Et bien on a deux états possibles, qui sont des points de non-retour:
- soit tous les individus sont blancs (0)
- soit tous les individus sont oranges (1)
Rien de bien sorcier du point de vue ingénieurie (tout ça pour ça...
.gif)
- Les pertes d'adhérence des pneus entrainent un léger décalage qui s'accumule à chaque génération et du coup le tout part vite en sucette. Pour remédier à ça, j'ai mis des crémaillères et la motorisation se fait par 2 fois un triplet de 16t, pressées contre les crémaillères par des suspensions.
- Le détecteur de couleur est assez sensible et dépend beacoup de la lumière ambiante. Le fait que les billes soient brillantes n'arrange rien. Il y a donc deux réglages manuels: la hauteur de la pince par une crémaillère (méta-pièce Arocs) et le color-sensor par vérin LA.
Au passage, le robot et les dispenseurs sont fait uniquement à partir du camion Arocs 42043 (+ bien sûr les composants électriques Mindstorm EV3). La structure elle est faite à partir de l'excavatrice 42055, et plus précisément, les pièces supplémentaires une fois le modèle B construit (y'en a quelques unes !). Les crémaillères et les pièces studful viennent en plus.
Quelques images:









Voilà, c'est à peu près tout. Vu que c'est destiné à être présenté en public (et que ce sera la première fois que je ferai ce genre d'exhibition), tout commentaire et toute question sont plus que bienvenus, je m'efforcerai d'y répondre au mieux pour m'entraîner
.gif)
[EDIT] Photos actualisées. Au passage, le touch sensor à l'opposé du bras sert en mode "calibrage": une pression déclenche la détection de la couleur, qui est indiquée par les diodes sur le boitier, ainsi que par un message sonore. Cela sert à ajuster la hauteur du color sensor en fonction de la lumière ambiante. La tête IR, quant à elle, sert à démarrer et arrêter le programme à distance avec la télécommande.
[1] https://en.wikipedia.org/wiki/Moran_process