Je viens aujourd'hui vous parler de mon nouveau projet, que j'ai commencé avec l'ami Cgizmo il y a un petit mois.
"Tix" (c'est son petit nom) est un robot un peu spécial : il n'est pas construit avec un microcontrolleur, encore moins avec des portes logiques, non, non, il est constuit sur... un ordinateur :tare: !
J'ai récupéré donc mon ancien ordinateur qui ne me servait plus, je l'ai formaté et j'ai installé la version base de Debian Etch.
Mise en place de tix
Une fois debian installé, Cgizmo a configuré ssh, pour qu'on puisse contrôler le robot à distance, par internet, et un script qui fait un update du dépot svn de Tix, et qui compile les sources.
Programmation de Tix
Tix est codé en c++. Nous utilisons énormément les classes, pour monter en niveau. Par exemple, la classe io, qui gère le port parallèle, est appelée par la classe moteur qui l'utilise pour actionner un servomoteur, qui est appelée par une autre classe, et ainsi de suite.
Un schéma basique de la programmation du robot pourrait être celui la :
Intelligence artificielle
Tous les capteurs sont lancés en threds (comprenez en parallèles), et dès qu'ils recueillent une info, il le stocke dans une variable globale.
Une classe arbitre, elle, regarde en permanence ces variables globales, et en fonction de celles-ci, décide des choix à effectuer.
Avancement
Aujourd'hui, j'ai fait les premiers tests de la classe io grâce à une carte de mon lycée qui se branche sur le port parallèle, un peu similaire à celle-ci :

J'ai fait un petit chenillard pour tester tout ça :
PortIO port("00000000");
for(;;)
{
for(int i=0; i<=7; i++)
{
port.ModifyPin(i, 1);
port.printState();
usleep(50000);
port.ModifyPin(i, 0);
}
for(int i=7; i>0; i--)
{
port.ModifyPin(i, 1);
port.printState();
usleep(50000);
port.ModifyPin(i, 0);
}
}
[/code]
Conclusion : Ca marche niquel !
Cela nous donne pleins d'espoir pour la prochaine étape : lancer les capteurs en thread, et contrôler un servomoteur :) !
On vous tient au courant ;) !
A+, et n'hésitez pas à donner votre avis ou à poser des questions.
Robocop.