Programmation robot PIC basic
revean
-
revean -
revean -
Bonjour,
aujourd'hui je réalise un robot suiveur de ligne.
Le robot marche à l'aide de deux Servomoteur et de 4 capteur CNY 70 , contrôlé par un micro-controleur de marque PARALLAX.
J'ai aujourd'hui deux problèmes lié au programme , de 1 le sens de rotation de la sortie 8 , de deux , les capteurs qui ne marche pas.
Les servosmoteur tourne dans un sens différent et les capteurs ne capte rien ( avec le programme , ceux ci marche sous oscillo ) .
Voici le programme :
7 et 8 sont les servos et 1 2 3 4 les capteurs.
Pouvez vous me dire ou sont les erreurs et que faut il modifier ?
Merci d'avance !
PS : Les CNY70 fonctionne en logique inverse.
aujourd'hui je réalise un robot suiveur de ligne.
Le robot marche à l'aide de deux Servomoteur et de 4 capteur CNY 70 , contrôlé par un micro-controleur de marque PARALLAX.
J'ai aujourd'hui deux problèmes lié au programme , de 1 le sens de rotation de la sortie 8 , de deux , les capteurs qui ne marche pas.
Les servosmoteur tourne dans un sens différent et les capteurs ne capte rien ( avec le programme , ceux ci marche sous oscillo ) .
Voici le programme :
' {$STAMP BS2sx}
' {$PBASIC 2.0}
OUTPUT 7
OUTPUT 8
OUT7=1
OUT8=1 ' 1 2 |..| 3 4
INPUT 1 ' 7 8
INPUT 2
INPUT 3
INPUT 4
Start:
IF (IN3=1 AND IN2=1) THEN Go
IF (IN2=0 OR IN1=0) THEN GoGauche
IF (IN3=0 OR IN4=0) THEN GoDroite
GoDroite:
OUT8=1
PAUSE 1
OUT8=0
PAUSE 20
OUT7=1
PAUSE 1
OUT7=0
PAUSE 10
GOTO Start
GoGauche:
OUT7=1
PAUSE 1
OUT7=0
PAUSE 20
OUT8=1
PAUSE 1
OUT8=0
PAUSE 10
GOTO Start
Go:
OUT7=1
OUT8=1
PAUSE 1
OUT7=0
OUT8=0
PAUSE 10
GOTO Start
7 et 8 sont les servos et 1 2 3 4 les capteurs.
Pouvez vous me dire ou sont les erreurs et que faut il modifier ?
Merci d'avance !
PS : Les CNY70 fonctionne en logique inverse.
A voir également:
- Programmation robot PIC basic
- Pic hunter - Télécharger - Téléchargement & Transfert
- Microsoft 365 basic - Accueil - Microsoft Office
- Visual basic - Télécharger - Langages
- Pic collage gratuit - Télécharger - Photo & Graphisme
- Application de programmation - Guide
1 réponse
Je up en remetant le nouveau programme :
' {$STAMP BS2sx}
' {$PBASIC 2.5}
OUTPUT 12 'Définition des entrées pour les servomoteurs : ici entrée 12 et 13'
OUTPUT 13 ' 1 2 |..| 3 4
INPUT 7 ' 7 8
INPUT 8 'Définition des entrées pour les capteurs : ici entrée 7,8,9 et 10
INPUT 9
INPUT 10
Start:
IF (IN8=1 AND IN9=1 AND IN7=1 AND IN10=1) THEN Go 'aller tout droit si capteur 3 et 2 capte une ligne blanche'
IF (IN8=0 OR IN7=0 AND IN9=1 AND IN10=1) THEN GoGauche 'aller à gauche si capteur 2 et 1 capte une ligne noire'
IF (IN9=0 OR IN10=0 AND IN8=1 AND IN7=1) THEN GoDroite 'aller à droite si capteur 3 et 4 detecte une ligne noire'
GOTO Go
GoDroite: 'Pour tourner à droite on actionne le servomoteur droit plus rapidement que le servomoteur gauche'
'OUT12=1
'PAUSE 1
OUT12=0
'PAUSE 20
OUT13=1
PAUSE 1
OUT13=0
PAUSE 10
GOTO start
GoGauche: 'Pour tourner à gauche on actionne le servomoteur gauche plus rapidement que le servomoteur droit'
'OUT13=1
'PAUSE 1
OUT13=0
'PAUSE 20
OUT12=1
PAUSE 1
OUT12=0
PAUSE 10
GOTO start
Go: 'Pour aller tout droit on actionne les deux servomoteurs à la même vitesse'
OUT12=1
PAUSE 1
OUT12=0
PAUSE 10
OUT13=1
PAUSE 1
OUT13=0
PAUSE 10
GOTO start
Au final le robot ne peux faire qu'une fois les sous programmes ( gogauche go et godroite
Merci
' {$STAMP BS2sx}
' {$PBASIC 2.5}
OUTPUT 12 'Définition des entrées pour les servomoteurs : ici entrée 12 et 13'
OUTPUT 13 ' 1 2 |..| 3 4
INPUT 7 ' 7 8
INPUT 8 'Définition des entrées pour les capteurs : ici entrée 7,8,9 et 10
INPUT 9
INPUT 10
Start:
IF (IN8=1 AND IN9=1 AND IN7=1 AND IN10=1) THEN Go 'aller tout droit si capteur 3 et 2 capte une ligne blanche'
IF (IN8=0 OR IN7=0 AND IN9=1 AND IN10=1) THEN GoGauche 'aller à gauche si capteur 2 et 1 capte une ligne noire'
IF (IN9=0 OR IN10=0 AND IN8=1 AND IN7=1) THEN GoDroite 'aller à droite si capteur 3 et 4 detecte une ligne noire'
GOTO Go
GoDroite: 'Pour tourner à droite on actionne le servomoteur droit plus rapidement que le servomoteur gauche'
'OUT12=1
'PAUSE 1
OUT12=0
'PAUSE 20
OUT13=1
PAUSE 1
OUT13=0
PAUSE 10
GOTO start
GoGauche: 'Pour tourner à gauche on actionne le servomoteur gauche plus rapidement que le servomoteur droit'
'OUT13=1
'PAUSE 1
OUT13=0
'PAUSE 20
OUT12=1
PAUSE 1
OUT12=0
PAUSE 10
GOTO start
Go: 'Pour aller tout droit on actionne les deux servomoteurs à la même vitesse'
OUT12=1
PAUSE 1
OUT12=0
PAUSE 10
OUT13=1
PAUSE 1
OUT13=0
PAUSE 10
GOTO start
Au final le robot ne peux faire qu'une fois les sous programmes ( gogauche go et godroite
Merci