Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Code pour mon robot



  1. #1
    Raynor74

    Code pour mon robot

    Bonjours à tous,

    cet pourtant un code simple mais qui ne veut pas marcher sur mon boe-bot : je voudrais que mon robot avance quand j'appuis sur le bouton 1 de la télécommande et s’arrête quand j'appuis sur deux, pour le moment, il avance quand j'appuis sur 1 mains ne s'arrête pas quand j'appuis sur 2.

    Mon Code :
    Code:
    ' {$STAMP BS2}
    ' {$PBASIC 2.5}
    
    
    irPulse        VAR     Word
    remoteCode     VAR     Byte
    
    Get_Ir_Remote_Code:
    
      remoteCode = 0
    
      DO
        RCTIME 9, 1, irPulse
      LOOP UNTIL irPulse > 1000
      RCTIME 9, 0, irPulse
      IF irPulse > 1125 OR irPulse < 675 THEN GOTO Get_Ir_Remote_Code
    
      RCTIME 9, 0, irPulse
      IF irPulse > 300 THEN remoteCode.BIT0 = 1
      RCTIME 9, 0, irPulse
      IF irPulse > 300 THEN remoteCode.BIT1 = 1
      RCTIME 9, 0, irPulse
      IF irPulse > 300 THEN remoteCode.BIT2 = 1
      RCTIME 9, 0, irPulse
      IF irPulse > 300 THEN remoteCode.BIT3 = 1
      RCTIME 9, 0, irPulse
      IF irPulse > 300 THEN remoteCode.BIT4 = 1
      RCTIME 9, 0, irPulse
      IF irPulse > 300 THEN remoteCode.BIT5 = 1
      RCTIME 9, 0, irPulse
      IF irPulse > 300 THEN remoteCode.BIT6 = 1
      IF (remoteCode < 10) THEN remoteCode = remoteCode + 1
      IF (remoteCode = 10) THEN remoteCode = 0
    
      IF (remoteCode = 1) THEN
       PULSOUT 14, 650
       PULSOUT 15, 850
       PAUSE 20
      ELSEIF (remoteCode = 2) then
        PULSOUT 14, 000
       PULSOUT 15, 000
       PAUSE 20
      ENDIF

    Merci pour votre aide.

    -----

    Dernière modification par Antoane ; 07/06/2015 à 17h59. Motif: Ajout balises [code]

  2. Publicité
  3. #2
    Raynor74

    Re : Code pour mon robot

    up s'il vous plait

  4. #3
    vincent66

    Re : Code pour mon robot

    Bonsoir,
    ça ne viendrait pas du fait qu'il y a panoplie de "IF THEN ELSE" imbriqués dans une boucle "DO" qui n'a pas de condition de sortie...?
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  5. #4
    Raynor74

    Re : Code pour mon robot

    Pourrai tu me montrai ce que ca donne car après plusieurs autre tentatives ca ne marche toujours pas.

  6. #5
    paulfjujo

    Re : Code pour mon robot

    ton programme n'est pas bouclé.
    la premiere boucle Do est bien fermée par le Loop until

    rajoute déja un goto au debut du programme à la fin de celui ci

    Code:
    .....
    IF (remoteCode = 1) THEN
    PULSOUT 14, 650
    PULSOUT 15, 850
    PAUSE 20
    ELSEIF (remoteCode = 2) then
    PULSOUT 14, 000
    PULSOUT 15, 000
    PAUSE 20
    ENDIF
    
    GOTO Get_Ir_Remote_Code

  7. A voir en vidéo sur Futura
  8. #6
    Raynor74

    Re : Code pour mon robot

    Je suis désoler mais le robot avance tant que j'appuis mais moi je veux que même quand je n'appuis pas, mon robot avance quand même. Une nouvelle tentative serai très bien apprèciée

  9. Publicité
  10. #7
    paulfjujo

    Re : Code pour mon robot

    test separement la valeur de remote code
    RAZ remote code si detection irPulse OK
    nota: je ne connais pas PBASIC..
    je suppose que la cde PULSOUT... reste active tant qu'on ne la RAZ pas avec la valeur 000

    Code:
    Get_Ir_Remote_Code:
    
    DO
    RCTIME 9, 1, irPulse
    LOOP UNTIL irPulse > 1000
    RCTIME 9, 0, irPulse
    IF irPulse > 1125 OR irPulse < 675 THEN GOTO Get_Ir_Remote_Code
    
    remoteCode = 0
    
    RCTIME 9, 0, irPulse
    IF irPulse > 300 THEN remoteCode.BIT0 = 1
    RCTIME 9, 0, irPulse
    IF irPulse > 300 THEN remoteCode.BIT1 = 1
    RCTIME 9, 0, irPulse
    IF irPulse > 300 THEN remoteCode.BIT2 = 1
    RCTIME 9, 0, irPulse
    IF irPulse > 300 THEN remoteCode.BIT3 = 1
    RCTIME 9, 0, irPulse
    IF irPulse > 300 THEN remoteCode.BIT4 = 1
    RCTIME 9, 0, irPulse
    IF irPulse > 300 THEN remoteCode.BIT5 = 1
    RCTIME 9, 0, irPulse
    IF irPulse > 300 THEN remoteCode.BIT6 = 1
    IF (remoteCode < 10) THEN remoteCode = remoteCode + 1
    IF (remoteCode = 10) THEN remoteCode = 0
    
    IF (remoteCode = 1) THEN
    PULSOUT 14, 650
    PULSOUT 15, 850
    PAUSE 20
    ENDIF
    IF (remoteCode = 2) then
    PULSOUT 14, 000
    PULSOUT 15, 000
    PAUSE 20
    ENDIF

  11. #8
    Raynor74

    Re : Code pour mon robot

    Non, ca ne marche toujours pas, ca me semble bizarre que ca ne marche pas

  12. #9
    freepicbasic

    Re : Code pour mon robot

    Quels signaux envoi la telec ?
    RCTIM lit une résistance , est ce bien adapté à un pulse ou autre?
    Le moteur est commandé comment ?

    pulsout envoie juste un pulse
    un pulse de taille 0 c est pas de pulse du tout !


    Il faut boucler le prog comme déjà indiqué
    Dernière modification par freepicbasic ; 05/06/2015 à 20h42.
    A+, pat

  13. #10
    Raynor74

    Re : Code pour mon robot

    1) Elle envoie des bit de donné
    2)rctime est bien adaptés, pulse(in ou out) ne marche pas
    3) le moteur est commander en lui envoyant un nombre de pulsation par minute

    Voici mon programme (j'ai mis des qti) :

    Code:
    ' {$STAMP BS2}
    ' {$PBASIC 2.5}
    
    qtiLeft        VAR     Bit
    qtiCenter      VAR     Bit
    qtiRight       VAR     Bit
    irPulse        VAR     Word
    remoteCode     VAR     Byte
    
    Get_Ir_Remote_Code:
    
      remoteCode = 0
    
      DO
        RCTIME 9, 1, irPulse
      LOOP UNTIL irPulse > 1000
      RCTIME 9, 0, irPulse
      IF irPulse > 1125 OR irPulse < 675 THEN GOTO Get_Ir_Remote_Code
    
      RCTIME 9, 0, irPulse
      IF irPulse > 300 THEN remoteCode.BIT0 = 1
      RCTIME 9, 0, irPulse
      IF irPulse > 300 THEN remoteCode.BIT1 = 1
      RCTIME 9, 0, irPulse
      IF irPulse > 300 THEN remoteCode.BIT2 = 1
      RCTIME 9, 0, irPulse
      IF irPulse > 300 THEN remoteCode.BIT3 = 1
      RCTIME 9, 0, irPulse
      IF irPulse > 300 THEN remoteCode.BIT4 = 1
      RCTIME 9, 0, irPulse
      IF irPulse > 300 THEN remoteCode.BIT5 = 1
      RCTIME 9, 0, irPulse
      IF irPulse > 300 THEN remoteCode.BIT6 = 1
      IF (remoteCode < 10) THEN remoteCode = remoteCode + 1
      IF (remoteCode = 10) THEN remoteCode = 0
    
      IF (remoteCode = 1) THEN
       PULSOUT 14, 650
       PULSOUT 15, 850
       PAUSE 20
       GOSUB  Qti_Check
      ENDIF
    IF (remoteCode = 2) THEN
    PULSOUT 14, 850
    PULSOUT 15, 650
    PAUSE 20
    ENDIF
    
    Qti_Check :
    DO
     HIGH 5: PAUSE 1: qtiRight = IN3: INPUT 5
     HIGH 6: PAUSE 1: qtiCenter = IN3: INPUT 6
     HIGH 7: PAUSE 1: qtiLeft = IN3: INPUT 7
     PAUSE 100
    
     IF (qtiRight = 1)AND (qtiCenter = 0) THEN
      PULSOUT 14, 650
      PULSOUT 15, 650
      PAUSE 20
     ELSEIF (qtiLeft = 1)AND (qtiCenter = 0)THEN
      PULSOUT 14, 850
      PULSOUT 15, 850
      PAUSE 20
     ELSEIF (qtiCenter = 1) THEN
      PULSOUT 14, 850
      PULSOUT 15, 850
      PAUSE 20
     ELSE
      PULSOUT 14, 650
      PULSOUT 15, 850
      PAUSE 20
    ENDIF
    LOOP

    J'ai compris le problem : il y a un conflit entre mais deux fonction, la 1 me fais reculer quand j'appuis sur 2 mais la 2 me fait repartir aussitôt devant et ces pour ça que ca ne marche pas, comment y parvenir
    Dernière modification par Antoane ; 07/06/2015 à 17h58. Motif: Ajout balises [code]

  14. #11
    Raynor74

    Re : Code pour mon robot

    S'il vous plait j'ai besoin d'aide en extrème urgence

Sur le même thème :

Discussions similaires

  1. code vb 2008 pour code bouton eteindre ou allumer une lampe
    Par candolf dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 16/02/2013, 20h44
  2. Batterie pour robot
    Par mortaurat dans le forum Électronique
    Réponses: 4
    Dernier message: 17/12/2010, 09h07
  3. Un langage codé léger, 2 caractères non codé=1 caractère codé. Une solution?
    Par Santofr dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 30/06/2010, 10h02
  4. Commandes pour mon robot
    Par vivoudu88 dans le forum Électronique
    Réponses: 0
    Dernier message: 02/10/2009, 18h45
  5. pour la cam du robot
    Par jamyroquai dans le forum Électronique
    Réponses: 2
    Dernier message: 03/10/2006, 19h23