Difference between revisions of "Projets:Lab:2012:Couperobotique2013:Software"
Line 74: | Line 74: | ||
==Ligne droite== | ==Ligne droite== | ||
− | + | *Deux modes: | |
+ | **Marche Avant | ||
+ | **Marche Arrière | ||
+ | *Une distance | ||
==Rotation== | ==Rotation== | ||
+ | *Un angle entre -360 et 360 | ||
+ | **Négatif sens trigo(anti-horaire) | ||
+ | **Positif sens horaire | ||
=TODO= | =TODO= | ||
Line 92: | Line 98: | ||
*Gestion Roboclaw | *Gestion Roboclaw | ||
**Déplacement | **Déplacement | ||
− | ***[ | + | ***[DONE]Rotation |
− | ***[ | + | ***[DONE-TBT]Ligne droite |
− | ***[ | + | ***[DONE]Arc de cercle |
+ | ***Calcul de distance de déceleration | ||
**Coordonnées absolue | **Coordonnées absolue | ||
*Refaire la lib PCD8544 et virer wiringPi | *Refaire la lib PCD8544 et virer wiringPi |
Revision as of 10:23, 4 February 2013
Notice
Cette page va décrire la structure et le fonctionnement du soft
Structure du programme
Low Level
UART
i2c
GPIO
Devices
Roboclaw
Utilise la librarie UART
Une librairie qui permet d’exécuter toutes les commandes du roboclaw.
ads7830
Utilise la librarie i2c
Une librairie qui permet d'initialiser, de configurer et de lire d'ADC.
ads1015
Utilise la librarie i2c
Une librairie qui permet d'initialiser, de configurer et de lire d'ADC.
SFR10
Une librairie qui permet d'initialiser, de configurer, de démarrer le ranging et de lire la distance.
La distance est lue en ms, puis converti en mm, car ça augmente la précision.
PCA9685
Une librairie qui va configurer les pwms pour un fonctionnement avec servomoteurs et envoyer les angles.
Comporte des fonctions pour tester les angles.
MCP23017
Une librairie qui va configurer les gpios en E/S lire les entrées et écrire les sorties.
Applicatif
main
Récupère les arguments et lance les différents modes
coupe
Logiciel principal qui va recevoir les données des capteurs et va décider des actions pour ensuite agir sur les actionneurs.
motor_drive_test
Libraire qui permet de lancer des tests de sens de rotation des moteurs, et une mesure de réponse indicielle afin de déterminer le PID optimal.
motor_drive
Librairie qui permet de lancer des asservissements en position.
Comporte un thread qui gère le roboclaw. ===i2c_master Libraire qui lit en permanence les capteurs et envoie les commandes aux actionneurs.
Comporte un thread qui gère l'i2c.
Calcul pour déplacement
Commande Roboclaw
Pour commander la roboclaw il faut fournir 5 infos:
- distance roue gauche
- distance roue droite
- accélération/décélération des 2 roues
- vitesse roue gauche
- vitesse roue droite
Arc de cercle
Fonctionnement:
- Quatres modes
- Avant gauche
- Avant droite
- Arrière gauche
- Arrière droite
- Un angle
- Un rayon
Ligne droite
- Deux modes:
- Marche Avant
- Marche Arrière
- Une distance
Rotation
- Un angle entre -360 et 360
- Négatif sens trigo(anti-horaire)
- Positif sens horaire
TODO
- [OPTIONNEL]Renforcer la mesure de réponse indicielle au cas ou le moteur tourne dans le mauvais sens (segfault pour le moment)
- [DONE]Faire un mode test pour vérifier le sens des moteurs
- [TBTESTED]Faire une fonction de debug avec __line__ __file__
- [DONE]Ajouter des threads
- Tester l'i2c
- Avec SRF-10
- Avec ads7830
- Avec arduino
- Coder gpio raspi
- Gestion de l'i2c
- Tableau global des capteurs
- Rafraîchissement
- Gestion Roboclaw
- Déplacement
- [DONE]Rotation
- [DONE-TBT]Ligne droite
- [DONE]Arc de cercle
- Calcul de distance de déceleration
- Coordonnées absolue
- Déplacement
- Refaire la lib PCD8544 et virer wiringPi
- Coder l'interface CMUCAM2[OPTIONNEL]
- Ajouter serveur web[OPTIONNEL]
- Serveur de fichier
- Communication AJAX
- Coder interface de debug javascript