programmation dun robot pour les tpe - C - Programmation
Marsh Posté le 28-02-2012 à 20:41:20
Vous utilisez quel hardware?
Qu'est-ce qui marche pas : ça compile pas, ça fait rien du tout (aucun moteur ne bouge)
Et le langage, ça fait tout sauf C. On dirait du Basic
Marsh Posté le 29-01-2012 à 19:55:01
Je suis en première et si vous le savez dans quelques mois nous aurons les TPE je travaille donc avec mon groupe sur la voiture autonome nous avons commence la fabriquation du robot mais depuis plusieurs semaines nous restons bloqués au niveau du programme et nos professeurs n'arrive pas non plus à nous aider je m'en remet donc à votre aide.Ce programme doit donc suivre une ligne noirs à l'aide de capteurs et de même de s'arreter en cas d'obstacle passant devant le robot.La ligne noir représente les lignes blanches de la route avec lesquelles la voiture se dirige et l'obstacle simule un piéton.Nous avons donc commencer le programme nous arrivons à le faire nous rajoutons ue partie du programme permettant de suivre la ligne noir maois cela ne marche pas et nous trouvons pas d'erreur.Voici ce programme:
'Paramétrage et Déclarations
'Déclaration du µC
$regfile = "attiny2313.dat"
'Paramétrage de la fréquence d'horloge
$crystal = 16000000
'Configuration des entrées-sorties
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Portb.3 = Output
Config Portb.4 = Output
Config Portd.2 = Output
Config Portd.3 = Output
Config Pind.6 = Input
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 64
'Création des mnémoniques
Bp_start Alias Pind.6 'Bouton poussoir : 0 = appuyé, 1 = relâché
Mg Alias Pwm1a 'Commande du moteur gauche (de 0 à 255)
Md Alias Pwm1b 'Commande du moteur droit (de 0 à 255
Led1 Alias Portd.2 'LED 1
Led2 Alias Portd.3 'LED 2
Captg Alias Pinb.0 'Capteur gauche
Captd Alias Pinb.1 'Capteur droit
Dim I As Byte 'Variable I servant au test de démarrage progressif
Portd = 255
'PROGRAMME PRINCIPAL
'Extinction des deux LED
Reset Led1
Reset Led2
'Programme de test des moteurs
'Moteur droit seul
Md = 255
Mg = 0 'on allume la led1 pour suivre le déroulement du programme
Set Led1
'Attente d'une action sur le bouton poussoir
Bitwait Bp_start , Reset 'attente de l'appui sur le bouton poussoir
Waitms 200 'temporisation de 200 ms afin d'éliminer les rebonds sur le bouton poussoir
Bitwait Bp_start , Set 'attente qu'on relâche le bouton poussoir
'Moteur gauche seul
Md = 0
Mg = 255
Reset Led1 'on éteint la led1 et on allume la led2
Set Led2 'pour suivre le déroulement du programme
'Attente d'une action sur le bouton poussoir
Bitwait Bp_start , Reset 'attente de l'appui sur le bouton poussoir
Waitms 200 'temporisation de 200 ms afin d'éliminer les rebonds
Bitwait Bp_start , Set 'attente qu'on relâche le bouton poussoir
'LIGNE DROITE (les deux moteurs à fond)
Mg = 255 'Moteur Gauche à 255
Md = 255 'Moteur Droit à 255
Reset Led2
Set Led1
'TEMPORISATION de 5 secondes
Wait 5
'Arrêt des deux moteurs pendant 2 secondes
Mg = 0
Md = 0
Wait 2
Reset Led1
Set Led2
'démarrage progressif des moteurs
For I = 0 To 255 'On augmente la vitesse des deux moteurs de 1 toutes
Mg = I 'les 20 millisecondes
Md = I 'afin d'obtenir un démarrage progressif
Waitms 20 'il faut augmenter l'attente pour un démarrage plus doux
Next I 'ou la diminuer pour un démarrage plus brutal
Wait 5 'les deux moteurs restent à fond pendant 5 secondes
'Arrêt des deux moteurs
Mg = 0
Md = 0
Reset Led1
Reset Led2
End 'fin du programme
Si vous voyez un défaut merci de nous donner votre avis ou un quelquonque conseil et nous somme bloqués aussi pour faire la suite du programme permettant au robot de s'arreter ceci grace à un autre capteur.
Je vous remercie d'avance.