Αγαπητοί μας φίλοι,

Καλώς ήλθατε στην ιστοσελίδα μας. Ελπίζουμε η παραμονή σας κοντά μας να είναι για σας εποικοδομητική εμπειρία.

Προσπαθούμε με διαρκή επαφή μαζί σας να σας ενημερώνουμε για διάφορα ρομποτικα θέματα ποιότητας που ενδεχομένως να σας ενδιαφέρουν.

Σας ευχαριστούμε για το ενδιαφέρον σας και σας ευχόμαστε καλή συνέχεια.

Εγγραφείτε στο φόρουμ, είναι εύκολο και γρήγορο

Αγαπητοί μας φίλοι,

Καλώς ήλθατε στην ιστοσελίδα μας. Ελπίζουμε η παραμονή σας κοντά μας να είναι για σας εποικοδομητική εμπειρία.

Προσπαθούμε με διαρκή επαφή μαζί σας να σας ενημερώνουμε για διάφορα ρομποτικα θέματα ποιότητας που ενδεχομένως να σας ενδιαφέρουν.

Σας ευχαριστούμε για το ενδιαφέρον σας και σας ευχόμαστε καλή συνέχεια.

Θέλετε να αντιδράσετε στο μήνυμα; Φτιάξτε έναν λογαριασμό και συνδεθείτε για να συνεχίσετε.
Καλως ηρθατε στην κοινοτητα μας,για οποιαδηποτε απορια στειλετε e-mail στο info@batteryworld.gr

+3
Hary Dee
dimbot
Σταθης
7 απαντήσεις

    Robot Deagostini

    avatar
    TheKwsths


    Αριθμός μηνυμάτων : 31
    Ημερομηνία εγγραφής : 25/05/2011

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  TheKwsths Τετ Ιουν 08, 2011 10:19 pm

    Παιδιά έχω φτιάξει ένα πρόγραμμα που συνδιάζω και τα 2 ζεύγη αισθητήρων.
    Να το.

    '{$STAMP BS2}

    BaffoSX var in6
    BaffoDX var in4
    PBin var in2
    ricIR_SX var bit
    ricIR_DX var bit

    output 7
    output 1


    statoBaffi var nib

    M1a con 14
    M1b con 15
    M2a con 5
    M2b con 3

    Aspetta:
    if PBin = 1 then Aspetta
    pause 500

    main:

    freqout 7, 1, 38500
    ricIR_SX = in8

    freqout 1, 1, 38500
    ricIR_DX = in0

    if ricIR_SX =0 OR ricIR_DX = 0 then goback
    if BaffoDX = 0 AND BaffoSX = 0 then InvertiMarcia
    if BaffoDX = 1 AND BaffoSX=0 then DeviaDestra
    if BaffoDX=0 AND BaffoSX=1 then DeviaSinistra
    if PBin =0 then stopp
    if BaffoDX=1 AND BaffoSX=1 then Avanza

    goto main

    DeviaDestra:
    high M1a: low M1b
    pause 50
    low M2a: high M2b
    pause 300

    high M1a: low M1b:
    pause 50
    high M2a: low M2b:
    pause 300
    goto main

    DeviaSinistra:
    high M1a: low M1b
    pause 50
    low M2a: high M2b
    pause 300

    low M1a: high M1b:
    pause 50
    low M2a: high M2b:
    pause 300
    goto main


    Avanza:
    low M1a: high M1b
    pause 50
    high M2a: low M2b:
    pause 300
    goto main

    InvertiMarcia:
    high M1a: low M1b:
    pause 50
    low M2a: high M2b:
    pause 1000
    low M1a: high M1b:
    pause 50
    low M2a: high M2b:
    pause 3000
    goto main


    stopp:

    low 14: low 15
    pause 50
    low 3: low 5
    pause 500
    goto Aspetta


    goback:
    ' ---------------------------------------------------- πίσω ---------------------------------------------------------------

    low 5: high 3
    low 15: high 14
    pause 500

    low 14: high 15
    low 5: high 3
    pause 1500

    low 5: low 3
    low 14:low 15
    pause 50

    goto main
    avatar
    TheKwsths


    Αριθμός μηνυμάτων : 31
    Ημερομηνία εγγραφής : 25/05/2011

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  TheKwsths Τετ Ιουν 08, 2011 10:22 pm

    Ακόμα θέλω να ρωτήσω αν ξέρετε κάποιον αλγόριθμο για να αντιλαμβάνετε το ρομποτ την απόσταση από ένα αντικείμενο, με τη βοήθεια των αισθητήρων IR!!
    Ευχαριστώ!!!!
    dimbot
    dimbot
    Master


    Αριθμός μηνυμάτων : 344
    Ημερομηνία εγγραφής : 22/12/2009

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  dimbot Σαβ Ιουν 11, 2011 9:12 pm

    Μπράβο φίλε μου για το πρόγραμμα έχεις κάνει πολύ καλή δουλειά! cheers

    Βεβαίως και μπορώ να σου πω, αύριο που θα έχω χρόνο θα σου γράψω ένα κατάλληλο πρόγραμμα για τους συγκεκριμένους αισθητήρες.
    avatar
    TheKwsths


    Αριθμός μηνυμάτων : 31
    Ημερομηνία εγγραφής : 25/05/2011

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  TheKwsths Κυρ Ιουν 12, 2011 11:57 am

    Και κάτι άλλο, γίνετε να κινήσω το robot για συγγεκριμένες μοίρες με τους σερβοκινητήρες; scratch
    dimbot
    dimbot
    Master


    Αριθμός μηνυμάτων : 344
    Ημερομηνία εγγραφής : 22/12/2009

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  dimbot Κυρ Ιουν 12, 2011 4:46 pm

    Λοιπόν θα σου απαντήσω όσο πιο αναλυτικά μπορώ στις ερωτήσεις.

    Κατ'αρχήν το θέμα με τον κώδικα των αισθητήρων IR. Για να μπορεί να γίνει σωστά η πλοήγηση του ρομπότ θα πρέπει να έχει πάνω του τους 2 σερβοκινητήρες. Το πρόγραμμα αυτό δεν λειτουργεί με τα μοτεράκια dc.

    Λοιπόν εδώ είναι το πρόγραμμα:

    Κώδικας:
    '{$STAMP BS2}

    'P0   IRdetect_dx_front
    'P1   IRled_dx_front
    'P2   Pulsante Start
    'P3   IRdetect_dx_back
    'P4   Baffo_dx_front
    'P5   IRled_dx_back
    'P6   Baffo_sx_front
    'P7   IRled_sx_front
    'P8   IRdetect_sx_front
    'P9   libera
    'P10   Baffo_dx_back
    'P11   Baffo_sx_back
    'P12   Servomotore_sx
    'P13   Servomotore_dx
    'P14   IRdetect_sx_back
    'P15   IRled_sx_back
    '
    '

    PBin var in2

    baffo_dx_front   var   in4
    baffo_sx_front   var   in6
    baffo_dx_back   var   in10
    baffo_sx_back   var   in11

    IRdetect_dx_front   var   in0
    IRdetect_sx_front   var   in8
    IRdetect_dx_back   var   in3
    IRdetect_sx_back   var   in14



    IRled_dx_front   con   1
    IRled_sx_front   con   7
    IRled_dx_back   con   5
    IRled_sx_back   con   15

    servo_dx      con   13
    servo_sx      con   12



    stato_baffi    var   nib

    stato_IR      var   nib

    contatore      var   byte      

    direzione       var    bit      
                             



             

          
    Start:
       If PBin= 0 then Inizializza
       goto Start


    Inizializza:            
       direzione=0   
       stato_IR.bit2=0
       stato_IR.bit3=0
       stato_baffi.bit2=0
       stato_baffi.bit3=0
       

    Main:   


    Gestione_IR:
       gosub Rileva_IR
       branch stato_IR,[Cambia_Direzione,Destra,Sinistra,Gestione_Baffi]


    Gestione_Baffi:   
       gosub Rileva_Baffi
       branch stato_baffi,[Cambia_Direzione,Destra,Sinistra,Avanza]




    Rileva_Baffi:
      IF direzione=1 THEN Rileva_Baffi_back

      Rileva_Baffi_front:
        stato_baffi.BIT0=baffo_dx_front
        stato_baffi.BIT1=baffo_sx_front

        GOTO Rileva_Baffi_fine

      Rileva_Baffi_back:
        stato_baffi.bit0=baffo_sx_back
        stato_baffi.bit1=baffo_dx_back


      Rileva_Baffi_fine:
        return



    Rileva_IR:
      if direzione=1 then Rileva_IR_back

      Rileva_IR_front:
        freqout IRled_dx_front,1,37500
        stato_IR.bit0=IRdetect_dx_front
        freqout IRled_sx_front,1,37500
        stato_IR.bit1=IRdetect_sx_front
        goto Rileva_IR_fine

      Rileva_IR_back:
        freqout IRled_sx_back,1,37500
        stato_IR.bit0=IRdetect_sx_back
        freqout IRled_dx_back,1,37500
        stato_IR.bit1=IRdetect_dx_back

      Rileva_IR_fine:
        return





    Avanza:
       if direzione=1 then Avanza_back
       
       Avanza_front:
          for contatore = 0 to 10
          pulsout servo_sx, 1000
            pulsout servo_dx, 500
            pause 20
            next
          goto Main
       
       Avanza_back:
          for contatore = 0 to 10
          pulsout servo_sx, 500
            pulsout servo_dx, 1000
            pause 20
            next
          goto Main



    Destra:
       for contatore = 0 to 10
         pulsout servo_sx, 1000
         pulsout servo_dx, 1000
         pause 20
         next
       goto Main



    Sinistra:
       for contatore = 0 to 10
         pulsout servo_sx, 500
         pulsout servo_dx, 500
       pause 20
         next
       goto Main



    Cambia_Direzione:
       direzione=direzione+1
       goto Main

    dimbot
    dimbot
    Master


    Αριθμός μηνυμάτων : 344
    Ημερομηνία εγγραφής : 22/12/2009

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  dimbot Κυρ Ιουν 12, 2011 4:48 pm

    TheKwsths έγραψε:Και κάτι άλλο, γίνετε να κινήσω το robot για συγγεκριμένες μοίρες με τους σερβοκινητήρες; scratch
    Εννοείς στροφή?
    avatar
    TheKwsths


    Αριθμός μηνυμάτων : 31
    Ημερομηνία εγγραφής : 25/05/2011

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  TheKwsths Δευ Ιουν 13, 2011 3:19 pm

    ΝΑΙ Shocked
    dimbot
    dimbot
    Master


    Αριθμός μηνυμάτων : 344
    Ημερομηνία εγγραφής : 22/12/2009

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  dimbot Δευ Ιουν 13, 2011 10:36 pm

    Αρκετά περίπλοκη διαδικασία. Αυτό που χρειάζεται είναι στον παλμό (pulsout) να τοποθετείς τιμές ανάλογα με το χρόνο και την κατεύθυνση που θέλεις να περιστραφεί ο κάθε σεβοκινητήρας ώστε ο συνδυασμός αυτών των παραγόντων να οδηγήσει το ρομπότ σε στροφή συγκεκριμένων μοιρών.

    Δηλαδή στο σημείο του κώδικα:

    pulsout servo_sx, 500
    pulsout servo_dx, 1000

    Αυτά τα νούμερα αντιπροσωπεύουν τα ms/step, δηλαδή το χρόνο που θα κινηθεί ο κάθε σερβοκινητήρας, ο συνδυασμός των οποίων θα μας αποδώσει τις ανάλογες μοίρες.
    dimbot
    dimbot
    Master


    Αριθμός μηνυμάτων : 344
    Ημερομηνία εγγραφής : 22/12/2009

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  dimbot Δευ Ιουν 13, 2011 10:38 pm

    Με βηματικούς κινητήρες αυτή η διαδικασία είναι πιο απλοποιημένη.
    dimbot
    dimbot
    Master


    Αριθμός μηνυμάτων : 344
    Ημερομηνία εγγραφής : 22/12/2009

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  dimbot Δευ Ιουν 13, 2011 10:46 pm

    Ο Θοδωρής που έχει ασχοληθεί εκτενώς και σε βάθος με τον έλεγχο των continuous rotation servo σίγουρα μπορεί να δώσει μια πολύ πιο εκτενή και σαφή απάντηση.
    avatar
    TheKwsths


    Αριθμός μηνυμάτων : 31
    Ημερομηνία εγγραφής : 25/05/2011

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  TheKwsths Δευ Ιουν 13, 2011 11:48 pm

    Αφού δεν μπορούν να το κάνουν αυτό τότε τι πλεονεκτήματα έχουν σε σχέση με τους κινητήρες με ψήκτρες (τα μοτεράκια dc).
    dimbot
    dimbot
    Master


    Αριθμός μηνυμάτων : 344
    Ημερομηνία εγγραφής : 22/12/2009

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  dimbot Τρι Ιουν 14, 2011 11:31 am

    Όχι μπορούν να το κάνουν, αλλά σαφώς πολύ πιο δύσκολα από τους βηματικούς.

    Αλλά το βασικό πλεονέκτημά τους είναι άλλο σε σχέση με τους dc. Έχουν με μεγάλη διαφορά μεγαλύτερη ακρίβεια στην κίνησή τους και γι'αυτό επιλέγονται σε κατασκευές που απαιτούν ακρίβεια και προσοχή στη λεπτομέρεια (ανθρωποειδή ρομπότ, ρομποτικούς βραχίονες).

    Τώρα σε ρομπότ με ρόδες (όπως της dea) ή ερπύστριες, το πλεονέκτημα είναι ότι με αυτούς η κατασκευή θα έχει πιο ομαλή κίνηση και αμεσότητα στις εντολές σε σχέση με τα απλά dc.

    Πάντως μπορεί να γίνει αυτό που μου λες, περιμένω να συνδεθεί και ο Θοδωρής ώστε να το συζητήσουμε όλοι μαζί και να καταλήξουμε στην καλύτερη λύση. Στην ρομποτική ποτέ δεν εγκαταλείπουμε, όσο δύσκολο και αν είναι κάτι! Very Happy
    avatar
    TheKwsths


    Αριθμός μηνυμάτων : 31
    Ημερομηνία εγγραφής : 25/05/2011

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  TheKwsths Τρι Ιουν 14, 2011 1:16 pm

    ok θα περιμένω!!!!!
    avatar
    TheKwsths


    Αριθμός μηνυμάτων : 31
    Ημερομηνία εγγραφής : 25/05/2011

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  TheKwsths Τρι Ιουν 14, 2011 2:34 pm

    Και κάτι άλλο, μπορώ να συνδέσω βηματικούς στο robot της dea? scratch
    avatar
    TheKwsths


    Αριθμός μηνυμάτων : 31
    Ημερομηνία εγγραφής : 25/05/2011

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  TheKwsths Τρι Ιουν 14, 2011 2:40 pm

    dimbot έγραψε:Λοιπόν θα σου απαντήσω όσο πιο αναλυτικά μπορώ στις ερωτήσεις.

    Κατ'αρχήν το θέμα με τον κώδικα των αισθητήρων IR. Για να μπορεί να γίνει σωστά η πλοήγηση του ρομπότ θα πρέπει να έχει πάνω του τους 2 σερβοκινητήρες. Το πρόγραμμα αυτό δεν λειτουργεί με τα μοτεράκια dc.

    Λοιπόν εδώ είναι το πρόγραμμα:

    Κώδικας:
    '{$STAMP BS2}

    'P0   IRdetect_dx_front
    'P1   IRled_dx_front
    'P2   Pulsante Start
    'P3   IRdetect_dx_back
    'P4   Baffo_dx_front
    'P5   IRled_dx_back
    'P6   Baffo_sx_front
    'P7   IRled_sx_front
    'P8   IRdetect_sx_front
    'P9   libera
    'P10   Baffo_dx_back
    'P11   Baffo_sx_back
    'P12   Servomotore_sx
    'P13   Servomotore_dx
    'P14   IRdetect_sx_back
    'P15   IRled_sx_back
    '
    '

    PBin var in2

    baffo_dx_front   var   in4
    baffo_sx_front   var   in6
    baffo_dx_back   var   in10
    baffo_sx_back   var   in11

    IRdetect_dx_front   var   in0
    IRdetect_sx_front   var   in8
    IRdetect_dx_back   var   in3
    IRdetect_sx_back   var   in14



    IRled_dx_front   con   1
    IRled_sx_front   con   7
    IRled_dx_back   con   5
    IRled_sx_back   con   15

    servo_dx      con   13
    servo_sx      con   12



    stato_baffi    var   nib

    stato_IR      var   nib

    contatore      var   byte      

    direzione       var    bit      
                             



             

          
    Start:
       If PBin= 0 then Inizializza
       goto Start


    Inizializza:            
       direzione=0   
       stato_IR.bit2=0
       stato_IR.bit3=0
       stato_baffi.bit2=0
       stato_baffi.bit3=0
       

    Main:   


    Gestione_IR:
       gosub Rileva_IR
       branch stato_IR,[Cambia_Direzione,Destra,Sinistra,Gestione_Baffi]


    Gestione_Baffi:   
       gosub Rileva_Baffi
       branch stato_baffi,[Cambia_Direzione,Destra,Sinistra,Avanza]




    Rileva_Baffi:
      IF direzione=1 THEN Rileva_Baffi_back

      Rileva_Baffi_front:
        stato_baffi.BIT0=baffo_dx_front
        stato_baffi.BIT1=baffo_sx_front

        GOTO Rileva_Baffi_fine

      Rileva_Baffi_back:
        stato_baffi.bit0=baffo_sx_back
        stato_baffi.bit1=baffo_dx_back


      Rileva_Baffi_fine:
        return



    Rileva_IR:
      if direzione=1 then Rileva_IR_back

      Rileva_IR_front:
        freqout IRled_dx_front,1,37500
        stato_IR.bit0=IRdetect_dx_front
        freqout IRled_sx_front,1,37500
        stato_IR.bit1=IRdetect_sx_front
        goto Rileva_IR_fine

      Rileva_IR_back:
        freqout IRled_sx_back,1,37500
        stato_IR.bit0=IRdetect_sx_back
        freqout IRled_dx_back,1,37500
        stato_IR.bit1=IRdetect_dx_back

      Rileva_IR_fine:
        return





    Avanza:
       if direzione=1 then Avanza_back
       
       Avanza_front:
          for contatore = 0 to 10
          pulsout servo_sx, 1000
            pulsout servo_dx, 500
            pause 20
            next
          goto Main
       
       Avanza_back:
          for contatore = 0 to 10
          pulsout servo_sx, 500
            pulsout servo_dx, 1000
            pause 20
            next
          goto Main



    Destra:
       for contatore = 0 to 10
         pulsout servo_sx, 1000
         pulsout servo_dx, 1000
         pause 20
         next
       goto Main



    Sinistra:
       for contatore = 0 to 10
         pulsout servo_sx, 500
         pulsout servo_dx, 500
       pause 20
         next
       goto Main



    Cambia_Direzione:
       direzione=direzione+1
       goto Main


    Με αυτό το πρόγραμμα το robot είπαμε μπορει να αντιλαμβάνεται την απόσταση, σωστά;;;
    dimbot
    dimbot
    Master


    Αριθμός μηνυμάτων : 344
    Ημερομηνία εγγραφής : 22/12/2009

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  dimbot Τρι Ιουν 14, 2011 10:35 pm

    TheKwsths έγραψε:
    dimbot έγραψε:Λοιπόν θα σου απαντήσω όσο πιο αναλυτικά μπορώ στις ερωτήσεις.

    Κατ'αρχήν το θέμα με τον κώδικα των αισθητήρων IR. Για να μπορεί να γίνει σωστά η πλοήγηση του ρομπότ θα πρέπει να έχει πάνω του τους 2 σερβοκινητήρες. Το πρόγραμμα αυτό δεν λειτουργεί με τα μοτεράκια dc.

    Λοιπόν εδώ είναι το πρόγραμμα:

    Κώδικας:
    '{$STAMP BS2}

    'P0   IRdetect_dx_front
    'P1   IRled_dx_front
    'P2   Pulsante Start
    'P3   IRdetect_dx_back
    'P4   Baffo_dx_front
    'P5   IRled_dx_back
    'P6   Baffo_sx_front
    'P7   IRled_sx_front
    'P8   IRdetect_sx_front
    'P9   libera
    'P10   Baffo_dx_back
    'P11   Baffo_sx_back
    'P12   Servomotore_sx
    'P13   Servomotore_dx
    'P14   IRdetect_sx_back
    'P15   IRled_sx_back
    '
    '

    PBin var in2

    baffo_dx_front   var   in4
    baffo_sx_front   var   in6
    baffo_dx_back   var   in10
    baffo_sx_back   var   in11

    IRdetect_dx_front   var   in0
    IRdetect_sx_front   var   in8
    IRdetect_dx_back   var   in3
    IRdetect_sx_back   var   in14



    IRled_dx_front   con   1
    IRled_sx_front   con   7
    IRled_dx_back   con   5
    IRled_sx_back   con   15

    servo_dx      con   13
    servo_sx      con   12



    stato_baffi    var   nib

    stato_IR      var   nib

    contatore      var   byte      

    direzione       var    bit      
                             



             

          
    Start:
       If PBin= 0 then Inizializza
       goto Start


    Inizializza:            
       direzione=0   
       stato_IR.bit2=0
       stato_IR.bit3=0
       stato_baffi.bit2=0
       stato_baffi.bit3=0
       

    Main:   


    Gestione_IR:
       gosub Rileva_IR
       branch stato_IR,[Cambia_Direzione,Destra,Sinistra,Gestione_Baffi]


    Gestione_Baffi:   
       gosub Rileva_Baffi
       branch stato_baffi,[Cambia_Direzione,Destra,Sinistra,Avanza]




    Rileva_Baffi:
      IF direzione=1 THEN Rileva_Baffi_back

      Rileva_Baffi_front:
        stato_baffi.BIT0=baffo_dx_front
        stato_baffi.BIT1=baffo_sx_front

        GOTO Rileva_Baffi_fine

      Rileva_Baffi_back:
        stato_baffi.bit0=baffo_sx_back
        stato_baffi.bit1=baffo_dx_back


      Rileva_Baffi_fine:
        return



    Rileva_IR:
      if direzione=1 then Rileva_IR_back

      Rileva_IR_front:
        freqout IRled_dx_front,1,37500
        stato_IR.bit0=IRdetect_dx_front
        freqout IRled_sx_front,1,37500
        stato_IR.bit1=IRdetect_sx_front
        goto Rileva_IR_fine

      Rileva_IR_back:
        freqout IRled_sx_back,1,37500
        stato_IR.bit0=IRdetect_sx_back
        freqout IRled_dx_back,1,37500
        stato_IR.bit1=IRdetect_dx_back

      Rileva_IR_fine:
        return





    Avanza:
       if direzione=1 then Avanza_back
       
       Avanza_front:
          for contatore = 0 to 10
          pulsout servo_sx, 1000
            pulsout servo_dx, 500
            pause 20
            next
          goto Main
       
       Avanza_back:
          for contatore = 0 to 10
          pulsout servo_sx, 500
            pulsout servo_dx, 1000
            pause 20
            next
          goto Main



    Destra:
       for contatore = 0 to 10
         pulsout servo_sx, 1000
         pulsout servo_dx, 1000
         pause 20
         next
       goto Main



    Sinistra:
       for contatore = 0 to 10
         pulsout servo_sx, 500
         pulsout servo_dx, 500
       pause 20
         next
       goto Main



    Cambia_Direzione:
       direzione=direzione+1
       goto Main


    Με αυτό το πρόγραμμα το robot είπαμε μπορει να αντιλαμβάνεται την απόσταση, σωστά;;;
    Βεβαίως μπορεί να υπολογίζει την απόσταση και να αποφεύγει εμπόδια!


    Έχει επεξεργασθεί από τον/την dimbot στις Τρι Ιουν 14, 2011 10:41 pm, 1 φορά
    dimbot
    dimbot
    Master


    Αριθμός μηνυμάτων : 344
    Ημερομηνία εγγραφής : 22/12/2009

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  dimbot Τρι Ιουν 14, 2011 10:36 pm

    TheKwsths έγραψε:Και κάτι άλλο, μπορώ να συνδέσω βηματικούς στο robot της dea? scratch
    Ναι γίνεται, μπορούν να συνδεθούν με τον basic stamp 2 και την board of education με την κατάλληλη συνδεσμολογία στην breadboard.
    dimbot
    dimbot
    Master


    Αριθμός μηνυμάτων : 344
    Ημερομηνία εγγραφής : 22/12/2009

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  dimbot Τρι Ιουν 14, 2011 10:39 pm

    TheKwsths έγραψε:ok θα περιμένω!!!!!
    Καλά ο Θοδωρής σήμερα μου είπε μια εξαιρετική λύση για το θέμα του υπολογισμού των μοιρών της στροφής του ρομπότ μέσω σερβοκινητήρων. Είναι αρκετά περίπλοκη καθώς περιλαμβάνει εξίσωση 3 παραμέτρων και αρκετές γνώσεις σύνθετης γεωμετρίας! Θα του πω να την γράψει και εδώ γιατί πραγματικά αξίζει τον κόπο όσο δύσκολη και αν είναι!
    avatar
    TheKwsths


    Αριθμός μηνυμάτων : 31
    Ημερομηνία εγγραφής : 25/05/2011

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  TheKwsths Τετ Ιουν 15, 2011 2:46 pm

    Τα βηματικά μοτέρ δεν μπορούν να συνδεθούν εκεί που συνδέονται οι σερβοκηνητήρες;;;
    Επίσεις, δεν έχω πάρει τους σερβοκινητήρες από την Dea, μπορώ να αγοράσω από κάποιο κατάστημα ηλεκτρονικών και να τους συνδέσω στην μητρική όπως θα συνέδεα και αυτούς της Dea;;;;
    dimbot
    dimbot
    Master


    Αριθμός μηνυμάτων : 344
    Ημερομηνία εγγραφής : 22/12/2009

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  dimbot Τετ Ιουν 15, 2011 5:29 pm

    Βέβαια μπορούν να συνδεθούν με τα κατάλληλα δομικά στοιχεία μπορείς να το φτιάξεις αυτοσχέδια ώστε να στερεωθούν σε εκείνα τα σημεία. Για τους σερβοκινητήρες, μπορείς να χρησιμοποιήσεις οποιουσδήποτε και να τους συνδέσεις στη μητρική, αρκεί να είναι συνεχούς περιστροφής (continuous rotation).
    flokos
    flokos


    Αριθμός μηνυμάτων : 44
    Ημερομηνία εγγραφής : 15/04/2010

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  flokos Τετ Ιουν 15, 2011 6:07 pm

    Λοιπον θα δωσω λυση αλλα σε μορφη ψευδοκωδικα γιατι δεν εχω ασχοληθει με basic stamp .
    Λυση :
    Μετρα την αποσταση μεταξυ τον τροχων και την διαμετρο του τροχου .
    Μετα πρεπει να βρεις την περιοδο του σερβο για την ταχυτητα που θες ,συνηθως παραχεται η πληροφορια αυτη απο τον κατασκευαστη του σερβο η μπορεις να την βρεις αν μετρησεις την ταχυτητα που γυρναει το σερβο η οποια ειναι σταθερη . Υπολογιζεται απο τον τυπο Τ = 2π /U οπου U h γωνιακη ταχυτητα του σερβο .
    Υπολογισε την περιμετρο του τροχου με τον τυπο 2πρ (οπου ρ η ακτινα και μισο της διαμετρου του τροχου ).
    Υπολογισε το μηκος τοξου μια μοιρας απο τον τυπο πRμ / 360 οπου μ οι μοιρες (αρα βαζεις 1 αφου θες για μια μοιρα να βρεις )οπου R η ακτινα του κυκλου που διαγραφει το ρομποτ γυρω απο τον εαυτο του .
    Διαιρεσε την περιμετρο του τροχου με το μηκος τοξου του μεγαλου κυκλου μια μοιρας (απο εκει θα βρεις τι μερος του κυκλου του τροχου αντιστοιχει σε μια μοιρα στον μεγαλο κυκλο, πχ 1/4 του μηκους του τροχου και λοιπα).
    Πολλαπλασιασε την περιοδο του σερβο με οτι βρηκες παραπανω .
    Και κινησε τα σερβο το ενα με αναποδη ταχυτητα του αλλου μεχρι να περασει χρονιο διαστημα ισο με οτι βρηκες απο την παραπανω πραξη επι τις μοιρες που θες.
    avatar
    TheKwsths


    Αριθμός μηνυμάτων : 31
    Ημερομηνία εγγραφής : 25/05/2011

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  TheKwsths Τετ Ιουν 15, 2011 6:20 pm

    Ωραίος, βέβαια θα πρέπει να υπάρχει πλήρη σταθαρότητα από τους κηνητήρες κάτι που δεν συμβαίνει, και ακόμα το πάτωμα πρέπει να είναι λείο για να μην κολάει το robot
    flokos
    flokos


    Αριθμός μηνυμάτων : 44
    Ημερομηνία εγγραφής : 15/04/2010

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  flokos Τετ Ιουν 15, 2011 6:22 pm

    Κοιτα με ρωτησες πως να το κανεις οι εξωτερικοι παραγοντες δεν γινεται να υπολογιστουν σε τετοιο επιπεδο .
    Οποτε μην ζητας πολλα , ουτως η αλλος κατι τετοιο αποκλειεται να γινοταν με απολυτη ακριβεια.
    Παντα φιλικα.
    dimbot
    dimbot
    Master


    Αριθμός μηνυμάτων : 344
    Ημερομηνία εγγραφής : 22/12/2009

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  dimbot Τετ Ιουν 15, 2011 8:30 pm

    Μπράβο Θοδωρή μιλάμε για επιστημονική δουλειά!!! cheers
    avatar
    TheKwsths


    Αριθμός μηνυμάτων : 31
    Ημερομηνία εγγραφής : 25/05/2011

    Robot Deagostini - Σελίδα 2 Empty Απ: Robot Deagostini

    Δημοσίευση  TheKwsths Τετ Ιουν 15, 2011 10:45 pm

    όπα όπα με παρεξήγησες απλώς ήπα κάτι έξτρα, δεν σε αποδοκήμασα ούτος η άλλος αυτή η συμβουλή σου ήταν φοβερά χρήσημη για μένα.

      Η τρέχουσα ημερομηνία/ώρα είναι Παρ Απρ 19, 2024 1:50 pm