r o b o t i c h e l l a s

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

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

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

Σας ευχαριστούμε για το ενδιαφέρον σας και σας ευχόμαστε καλή συνέχεια.
r o b o t i c h e l l a s
Καλως ηρθατε στην κοινοτητα μας,για οποιαδηποτε απορια στειλετε e-mail στο info@robotic.gr

Robot Deagostini

Μοιραστείτε

Σταθης

Αριθμός μηνυμάτων : 4
Ημερομηνία εγγραφής : 04/01/2010
Ηλικία : 26
Τόπος : Kατερινη

Robot Deagostini

Δημοσίευση  Σταθης Την / Το Τρι Ιαν 05, 2010 12:08 am

Γεια σε ολους σας

Ειμαι νεος εδω μεσα και οπως βλεπω και το φορουμ ειναι νεο..Καλως σας βρηκα λοιπον

Ονομαζομαι Σταθης και εχω καποια επαφη με το αντικειμενο της ρομποτικης...

Ξεκινισα αρχικα απο το Ρομποτ που εδεινε καποτε σε τευχη η deagostini...μπορω να πω πως το εφτασα σε ενα καλο σημειο αν και δεν προχωρησα στην αγορα ολων των τευχων...
Xαζομαρα μου βεβαια γιατι τωρα το καιμενο καθεται χωρις τουλαχιστον τελειωμενο το μερος του καπακιου του απο πανω...Τελοσπαντων..

Ας μην πολυλογω..δοκιμασα να το προγραμματισω με ενα προγραμμα ενονοματι visual p-basic αλλα δεν εβγαλα ακρη..Τελικα το εχω παρατησει το θεμα εδω και 3 χρονια...καταφερα μοναχα σε μια στιγμη να το κανω να βρισκει τα εμποδια και να τα αποφευγει μεσω υπερηθρων..Γνωριζει κανεις πως ισως να χρησιμοποιησω το προγραμμα?

Αν οχι θα βρω ισως καποιο ατομο που να το παρει το ρομποτακι και να ασχοληθει σοβαρα μαζι του Smile
avatar
dimbot
Master

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

Απ: Robot Deagostini

Δημοσίευση  dimbot Την / Το Τρι Ιαν 05, 2010 12:32 pm

Καλώς ήρθες στην παρέα μας Στάθη! Cool

Μην το εγκαταλείψεις το ρομπότ, επειδή όλοι μας πάνω κάτω από αυτό ξεκινήσαμε με τη ρομποτική, μπορούμε να σου πούμε ακριβώς τι να κάνεις.

Κατ'αρχήν όλα τα προγράμματα του Dea είναι σε γλώσσα PBasic. Δηλαδή η PBasic δεν είναι ένα συγκεκριμένο πρόγραμμα για κάποια συγκεκριμένη λειτουργία αλλά η γλώσσα προγραμματισμού, στην οποία μπορούμε να διαμορφώσουμε συγκεκριμένα προγράμματα για τις λειτουργίες που επιθυμούμε να εκτελεί το ρομπότ. Θα σου γράψω μια στιγμή μερικά χρήσιμα προγράμματα σε γλώσσα PBasic για διάφορες λειτουργίες του ρομπότ.

Και κάτι άλλο. Έχεις πάρει τα τεύχη με τη ρομποτική "δαγκάνα" του ρομπότ; Άμα είναι να σου δώσω προγράμματα και γι'αυτή τη λειτουργία. Cool

Ελπίζω να βοήθησα! Wink
avatar
dimbot
Master

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

Απ: Robot Deagostini

Δημοσίευση  dimbot Την / Το Τρι Ιαν 05, 2010 12:38 pm

Πλοήγηση του ρομπότ με τη χρήση αισθητήρων αφής (κίνηση με DC μοτέρ):

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


'----- Δηλώσεις -------

pulse_count VAR Byte     
state VAR Nib       
old_state VAR Nib     
counter VAR Nib       

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



PBin    VAR  IN2 
Pwr    VAR  Bit 


'----- Ενεργοποίηση -----

old_state = %0010 


'------ Εκκίνηση ---------

start:

ChkPwr:  IF PBin = 1 THEN Cont
    Pwr = Pwr ^ 1
AspettaPB:  IF PBin = 0 THEN AspettaPB
Cont:    IF Pwr = 0 THEN start

'----- Κύρια Ρουτίνα -------

main:

check_whiskers:
  state.BIT0 = IN6         
  state.BIT1 = IN4
  IF old_state <> state THEN no_reset 

  counter = 0

no_reset:
  IF old_state ^ state <> %0011 THEN continue 
 
  counter = counter +1
  old_state = state         
  IF counter = 4 THEN u_turn       
                 

continue:
  BRANCH state, [u_turn, right_turn, left_turn, forward]

'----- Ρουτίνες Πλοήγησης -------

forward:
  LOW  M1a:  HIGH  M1b
  PAUSE 50
  HIGH  M2a:  LOW  M2b
  PAUSE 30
  GOTO main



left_turn:
  GOSUB backward
  HIGH M1a: LOW  M1b:
  PAUSE 50
  HIGH M2a: LOW  M2b:
  PAUSE 100
  GOTO main


right_turn:
  GOSUB backward
  LOW M1a: HIGH  M1b:
  PAUSE 50
  LOW M2a: HIGH  M2b:
  PAUSE 100
  GOTO main

u_turn:
  GOSUB backward
  HIGH M1a: LOW  M1b:
  PAUSE 50
  HIGH M2a: LOW  M2b:
  PAUSE 2000
  GOTO main


'----- Υπορουτίνα Πλοήγησης -----

backward:
  HIGH  M1a:  LOW  M1b
  PAUSE 50
  LOW  M2a:  HIGH  M2b
  PAUSE 100
  RETURN
avatar
dimbot
Master

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

Απ: Robot Deagostini

Δημοσίευση  dimbot Την / Το Τρι Ιαν 05, 2010 12:47 pm

Χρήση του αισθητήρα Line Follower (κίνηση με σερβοκινητήρες):

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

'*************************************************************************
'
'P0     Δεξιός δέκτης υπερύθρων
'P1     Δεξιός πομπός υπερύθρων
'P2     Δεξιός αισθητήρας 2 (Δεν χορηγείται)
'P3     Δεξιός αισθητήρας 1
'P4  Κεντρικός αισθητήρας
'P5  Αριστερός αισθητήρας 2 (Δεν χορηγείται)
'P6     Αριστερός αισθητήρας 1
'P7  --- ελεύθερος
'P8     Αριστερός δέκτης υπερύθρων για τηλεχειρισμό
'P9     --- ελεύθερος
'P10     Εντοπισμός πριν από τον τομέα LM 311
'P11    --- ελεύθερος
'P12     Αριστερός σερβοκινητήρας (X4)
'P13     Δεξιός σερβοκινητήρας (X3)
'P14     --- ελεύθερος
'P15     --- ελεύθερος
'
'
'*************************************************************************

'---------- Ορισμός σταθερών ---------------------

LED_ON       con       0       
LED_OFF       con       1

LINEA_BIANCA    con      0       
LINEA_NERA       con       1       

MODALITA       con       LINEA_NERA   

VERO         con       1
FALSO         con      0

Sx1         con      6
LINE         con      4
Dx1         con      3

SERVO_DX      con      13      
SERVO_SX      con      12

ANTIORARIO_DX   con      1000      
ANTIORARIO_SX   con      1000      
ORARIO_DX      con      500
ORARIO_SX      con       500

SERVO_STOP      con      750
VELOCITA100      con      100

'---------- Ορισμός μεταβλητών ---------------------

inCorsa      var      bit

ledPos       var       nib       
cont         var      nib
azione      var      nib

lfBits       var       nib       

' --------------- Ενεργοποίηση ------------------------------

pause 5000

outl = %01011000
dirl = %01011000          
azione = 1
inCorsa = FALSO

' ---------------- Κύριο Πρόγραμμα -------------------------

Main:

   gosub Lettura_Sensori                   
   
   if (lfBits <> %0010) then VerificaArrivo
   inCorsa = VERO

VerificaArrivo:
   if (lfBits <> %0111) then DecidiAzione
   if (inCorsa = FALSO) then Avanti
   goto Arresto

DecidiAzione:
   lookdown lfBits, [%0001, %0010, %0100], azione
   branch azione, [GiraDestra, Avanti, GiraSinistra]


GiraDestra:
   pulsout SERVO_DX, SERVO_STOP
   pulsout SERVO_SX, SERVO_STOP + VELOCITA100
goto Main


Avanti:
   pulsout SERVO_DX, ORARIO_DX + VELOCITA100
   pulsout SERVO_SX, ANTIORARIO_SX - VELOCITA100
goto Main

GiraSinistra:
   pulsout SERVO_DX, SERVO_STOP - VELOCITA100
   pulsout SERVO_SX, SERVO_STOP
goto Main

Arresto:
end

' --------------------- Υπορουτίνα --------------------------------

Lettura_Sensori:
   lfBits = 0                         
   for cont = 0 TO 2
      lookup cont, [Dx1, LINE, Sx1], ledPos
      outl.lowbit(ledPos) = LED_ON             
      pause 1                      
      lfBits.lowbit(cont) = in9 ^ MODALITA       
      outl.lowbit(ledPos) = LED_OFF          
   next
return
avatar
dimbot
Master

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

Απ: Robot Deagostini

Δημοσίευση  dimbot Την / Το Τρι Ιαν 05, 2010 12:53 pm

Πρόγραμμα για τον έλεγχο του ρομπότ με το τηλεχειριστήριο (κίνηση με σερβοκινητήρες):

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

'*************************************************************************
'
'P0  Δεξιός δέκτης υπερύθρων RIGHT ( δεν χρησιμοποιείται )
'P1  Ελεύθερη
'P2  Πλήκτρο εκκίνησης (ON) σε πλακέτα DEA BS2
'P3  Ελεύθερη
'P4  Δεξιό Μουστάκι (X6)
'P5  Ελεύθερη
'P6  Αριστερό Μουστάκι (X5)
'P7  Ελεύθερη
'P8  Αριστερός δέκτης υπερύθρων LEFT
'P9  Ελεύθερη
'P10  Ελεύθερη
'P11  Ελεύθερη
'P12  Αριστερός σερβοκινητήρας
'P13  Δεξιός σερβοκινητήρας
'P14  Ελεύθερη
'P15  Ελεύθερη
'
'-----------------------------Ορισμοί--------------------------------

              '  Σταθερές
              '  Είσοδοι
Servo_Sx    CON    12    '    Αριστερός σερβοκινητήρας I/O ακίδα P15.
Servo_Dx    CON    13    '    Δεξιός σερβοκινητήρας I/O ακίδα P1.

              '  Είσοδοι
l_IR_det_pin  CON    8    '    Αισθητήρας IR Left

              '  Χρόνοι
Centro    CON    750    '    Κέντρο (ανενεργός σερβοκινητήρας)
Reg_fine_Sx  CON    0    '  Ρύθμιση - σερβοκινητήρας SX
Reg_fine_Dx  CON    0    '    Ρύθμιση - σερβοκινητήρας DX
neg_edge    CON    0    '    Διαμόρφωση "pulsin".
              '
                'Μεταβλητές
              '
data_remote    VAR    Byte    '    Κωδικοί τηλεχειρισμού
velocita      VAR    Word    '    Ταχύτητα
rotazione    VAR    Word        '    Περιστροφή
Calc_impulso_Sx  VAR    Word    '    Μεταβλητή υπολογισμού σερβοκινητήρα SX
Calc_impulso_Dx  VAR    Word    '    Μεταβλητή τηλεχειρισμού σερβοκινητήρα DX
start_remote  VAR    Word    '  Παλμός τηλεχειρισμού Start
input_remote_0  VAR    Word    '  Κωδικοί τηλεχειρισμού
input_remote_1  VAR    Word    '  "
input_remote_2  VAR    Word    '  "
input_remote_3  VAR    Word    '  "
input_remote_4  VAR    Word    '  "

loop      VAR    Word

'---------------------------------------------------------------------------------
inizializzazione:          ' Boot

  OUTPUT Servo_Sx        ' Ορισμός εξόδων.
  OUTPUT Servo_Dx

'---------------------------------------------------------------------------------
Start:

  'debug ? data_remote    ' ενεργοποίηση μόνο για debug
  'debug ? start_remote  ' ενεργοποίηση  μόνο για debug
  GOSUB check_remote
  GOSUB Navigazione

IF data_remote=0 THEN servo_pulse
IF data_remote=1 THEN servo_pulse
IF data_remote=2 THEN servo_pulse
IF data_remote=3 THEN servo_pulse
IF data_remote=4 THEN servo_pulse
IF data_remote=5 THEN servo_pulse



GOTO Start            ' loop

'---------------------------------------------------------------------------------
check_remote:



  PULSIN l_IR_det_pin,neg_edge,start_remote
  PULSIN l_IR_det_pin,neg_edge,input_remote_0
  PULSIN l_IR_det_pin,neg_edge,input_remote_1
  PULSIN l_IR_det_pin,neg_edge,input_remote_2
  PULSIN l_IR_det_pin,neg_edge,input_remote_3
  PULSIN l_IR_det_pin,neg_edge,input_remote_4


  IF start_remote < 1000 THEN check_remote

  data_remote.bit0=input_remote_0.bit9
  data_remote.bit1=input_remote_1.bit9
  data_remote.bit2=input_remote_2.bit9
  data_remote.bit3=input_remote_3.bit9
  data_remote.bit4=input_remote_4.bit9



return

'---------------------------------------------------------------------------------
Navigazione:    ' Set "ταχύτητα" και "περιστροφή"

  branch data_remote,[a,b,c,d,e,f]

      'A=εμπρός δεξιά, B=εμπρός, C=εμπρός αριστερά



  a:  velocita = 0:    rotazione = 200:  goto exit_Navigazione
  b:  velocita = 350:  rotazione = 0:    goto exit_Navigazione
  c:  velocita = 0:    rotazione = -200:  goto exit_Navigazione


  'D=πίσω δεξιά, E=πίσω, F=πίσω αριστερά

  d:  velocita = 0:    rotazione = -100:  goto exit_Navigazione
  e:  velocita = -350:  rotazione = 0:    goto exit_Navigazione
  f:  velocita = 0:    rotazione = 100:  goto exit_Navigazione

  exit_Navigazione:



return

'---------------------------------------------------------------------------------
servo_pulse:  ' Υπολογισμοί και εκπομπή παλμών.


  'Συνολικοί υπολογισμοί στους σερβοκινητήρες


FOR loop = 1 TO 10
  Calc_impulso_Sx = velocita + rotazione + Centro + Reg_fine_Sx
  Calc_impulso_Dx = - velocita + rotazione + Centro + Reg_fine_Dx


  'Εκπομπή παλμών που υπολόγισαν οι σερβοκινητήρες

    pulsout Servo_Sx,Calc_impulso_Sx
    pulsout Servo_Dx,Calc_impulso_Dx
    pause 3

gosub baffi

next

go:
return

'---------------------------------------------------------------------------------
baffi:    ' υπορουτίνα εντοπισμού αντικειμένων με τα μουστάκια.

IF IN6 =0 AND IN4 =0 THEN gira' Πίσω εάν και οι δύο διακόπτες είναι κλειστοί.
IF IN4 =0 THEN destra_baffi  ' Δεξιά εάν ο αριστερός διακόπτης είναι κλειστός.
IF IN6 =0 THEN sinistra_baffi  ' Αριστερά εάν ο δεξιός διακόπτης είναι κλειστός.
RETURN





'---------------------- Πλοήγηση Μουστακιών ------------------------


destra_baffi:
      gosub indietro_baffi
      pause 20
      for loop = 1 to 100
         pulsout SERVO_DX, 500
         pulsout SERVO_SX, 500
         pause 20
      next

      return


gira:      
      for loop = 1 to 100
         pulsout SERVO_DX, 500
         pulsout SERVO_SX, 500
         pause 20
      next

      return


sinistra_baffi:
      gosub indietro_baffi
      pause 20
      for loop = 1 to 100
         pulsout SERVO_DX, 1000
         pulsout SERVO_SX, 1000
         pause 20
      next

      return


indietro_baffi:
      for loop = 1 to 100
         pulsout SERVO_DX, 1000
         pulsout SERVO_SX, 500
         pause 20
      next

return

goto Start

Σταθης

Αριθμός μηνυμάτων : 4
Ημερομηνία εγγραφής : 04/01/2010
Ηλικία : 26
Τόπος : Kατερινη

Απ: Robot Deagostini

Δημοσίευση  Σταθης Την / Το Τρι Ιαν 05, 2010 2:53 pm

Να σε καλα φιλαρακι!!!

Σημερα θα παρειγγελνα το καπακι απο πανω για να κλεισει κιολας αλλα αυτοι δεν σηκωνουν τηλεφωνα με τιποτα...τελοσπαντων.

Τωρα που καταλαβα καλυτερα καποια πραγματα με αυτα που μου ειπες θα ξαναασχοληθω σιγουρα cheers cheers

Πραγματικα σε ευχαριστω παρα πολυ cheers cheers cheers cheers

Και για τις ετοιμες λειτουργιες επισης cheers cheers cheers

Θα σας κρατησω ενημερους..παω να συνδεσω το ρομποτακι στον υπολογιστη cheers cheers

Ξεχασα να προσθεσω πως ναι εχω την ρομποτικη δαγκανα τοποθετημενη επανω στο ρομποτακι.. οποτε θα την προγραμματισουμε και αυτην...τι καλα Very Happy Very Happy
avatar
dimbot
Master

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

Απ: Robot Deagostini

Δημοσίευση  dimbot Την / Το Τρι Ιαν 05, 2010 3:14 pm

Να είσαι καλά φίλε μου!

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

Δυστυχώς θα σε απογοητεύσω αλλά έχουν εξαντληθεί όλα τα τεύχη της Dea στις αποθήκες της. Και εγώ είχα πάρει για να ζητήσω ένα τεύχος που μου έλειπε αλλά μου είπαν ότι... έχει καταργηθεί, επειδή... εξαντλήθηκαν τα αποθέματα (ομολογώ ότι ακόμα και τώρα δεν βγάζω νόημα στη φράση!!!). Έλεος με τη Dea!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Σου ετοιμάζω και το πρόγραμμα για τη δαγκάνα.

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

Αναμένουμε νέα σου!!! Cool
avatar
dimbot
Master

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

Απ: Robot Deagostini

Δημοσίευση  dimbot Την / Το Τρι Ιαν 05, 2010 3:26 pm

Πριν αρχίσεις τον προγραμματισμό, απαιτούνται ορισμένες συνδέσεις στην breadboard. Συγκεκριμένα τοποθετείς έναν πυκνωτή 100nF συνδεδεμένο με τη μία άκρη του σε Vdd. Την άλλη άκρη του τη συνδέεις σε μια αντίσταση 10Κ, η οποία με τη σειρά της συνδέεται στο Vss. Στη συνέχεια συνδέουμε πυκνωτή και αντίσταση 1ΟΚ, διαμέσου μιας αντίστασης των 220, στο I/O P11.

Το πρόγραμμα για τον έλεγχο της ρομποτικής πένσας:

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

'***************************************************************************
'P0  Δεξιός δέκτης υπερύθρων
'P1  Δεξιός πομπός υπερύθρων
'P2  Πλήκτρο εκκίνησης (ON) στην πλακέτα DEA BS2
'P3  Θύρα κινητήρα 2 (M2A) ακίδες εισόδου 10 και 15 του U2 Dc Motor ( X3 )
'P4  Δεξιό μουστάκι (X6)
'P5  Θύρα κινητήρα 2 (M2B) ακίδες εισόδου 2 και 7 του U2 Dc Motor ( X3 )
'P6  Αριστερό μουστάκι (X5)
'P7  Αριστερός πομπός υπερύθρων
'P8  Αριστερός δέκτης υπερύθρων
'P9  Ελεύθερος
'P10  Ελεύθερος
'P11  Κύκλωμα RC για τέλος διαδρομής
'P12  Δεξιός σερβοκινητήρας (X3)
'P13  Αριστερός σερβοκινητήρας (X4)
'P14  Θύρα κινητήρα 1 (M1A) ακίδες εισόδου 2 και 7 του U1 Dc Motor ( X2 )
'P15  Θύρα κινητήρα 1 (M1B) ακίδες εισόδου 10 και 15 του U1 Dc Motor ( X2 )
'
'
'*************************************************************************
' Υπόμνημα κινητήρα
' M1= Δεξιός κινητήρας από τη Σειριακή πλευρά, σε ακροδέκτη X2 (πλακέτα DC Motor)
' M2= Αριστερός κινητήρας από τη Ρυθμιστική πλευρά, σε ακροδέκτη X3 (πλακέτα DC Motor)
'
' Πίνακας κινήσεων
'
' Δεξιός κινητήρας M1, σε πλακέτα X2  DC Motor (οπίσθια όψη)
'    P15    P14
' Low  M1A  Low  M1B = Κινητήρας σταθερός
' High M1A  High  M1B = Κινητήρας σταθερός
' Low  M1A  high  M1B = Δεξιόστροφος κινητήρας
' High M1A  Low  M1B = Αριστερόστροφος κινητήρας
'
' Αριστερός κινητήρας M2, σε πλακέτα X3  DC Motor (οπίσθια όψη)
'    P3    P5
' Low  M2B  Low  M2A = Κινητήρας σταθερός
' High M2B  High  M2A = Κινητήρας σταθερός
' Low  M2B  high  M2A = Δεξιόστροφος κινητήρας
' High M2B  Low  M2A = Αριστερόστροφος κινητήρας
'
'************************************************************************
'
'Πίνακας Κωδικών Παλμών Τηλεχειρισμού SONY Συμβατό
'
'     Κωδικός 0 Εμπρός αριστερά
'     Κωδικός 1 Εμπρός
'     Κωδικός 2 Εμπρός δεξιά
'     Κωδικός 3 Πίσω αριστερά
'     Κωδικός 4 Πίσω
'     Κωδικός 5 Πίσω δεξιά
'     Κωδικός 6 Άνοιγμα ρύγχους λαβίδας
'     Κωδικός 7 Ανύψωση ανυψωτικού φορείου
'     Κωδικός 8 Κλείσιμο ρύγχους λαβίδας
'     Κωδικός 9 Χαμήλωμα ανυψωτικού φορείου
'


'--------------------- Ορισμός Μεταβλητών ---------------------

BaffoDx      var      in4      ' Ψευδώνυμο για τη θύρα του δεξιού μουστακιού
BaffoSx      var      in6      ' Ψευδώνυμο για τη θύρα του αριστερού μουστακιού

FC_aperto      var      bit      ' Μεταβλητή κατάστασης για τέλος διαδρομής ανοίγματος λαβίδας
FC_chiuso      var      bit      ' Μεταβλητή κατάστασης για τέλος διαδρομής κλεισίματος λαβίδας
FC_alzato      var      bit      ' Μεταβλητή κατάστασης για τέλος διαδρομής ανύψωσης φορείου
FC_abbassato   var      bit      ' Μεταβλητή κατάστασης για τέλος διαδρομής χαμηλώματος φορείου

contatore      var      nib      ' Βοηθητική μεταβλητή

codicePulsante   var      byte      ' Περιέχει την τιμή του κωδικού του πιεσμένου πλήκτρου
loop         var      byte      ' Μεταβλητή-μετρητής για τους σερβοκινητήρες

movDx         var      word      ' Μεταβλητές για την κίνηση των σερβοκινητήρων
movSx         var      word

impulso      var      word      ' Μεταβλητές για την αποκωδικοποιήση του σήματος IR του τηλεχειρισμού
inputIR0      var      word          
inputIR1      var      word         
inputIR2      var      word         
inputIR3      var      word         
inputIR4      var      word         

misuraRC      var      word      ' Μεταβλητή για τη μέτρηση της σταθεράς χρόνου RC
sogliaBecchi   var      word      ' Μεταβλητή ορίου τέλους διαδρομής για τα ρύγχη
sogliaCarrello   var      word      ' Μεταβλητή ορίου τέλους διαδρομής για το φορείο



'---------------------- Ορισμός Σταθερών --------------------


M1a         con      14      ' Σταθερές σχετικές με τις θύρες των κινητήρων DC
M1b         con      15      ' M1 = Κινητήρας DC στη θύρα X2
M2a         con      3      ' M2 = Κινητήρας DC στη θύρα X3
M2b         con      5
                     
IR_SX         con      8      ' Θύρα IR για την ανίχνευση σήματος από το τηλεχειριστήριο
ALTO         con      1      ' Υψηλή λογική τιμή
BASSO         con      0      ' Χαμηλή λογική τιμή
PORTA_RC      con      11      ' Θύρα στην οποία συνδέεται το κύκλωμα RC για τέλος διαδρομής

SERVO_DX      con      13      ' Θύρες σχετικές με τους σερβοκινητήρες
SERVO_SX      con      12

ANTIORARIO_DX   con      1000      ' Τιμές για την κίνηση των τροχών. Αντικατάστησε αυτές τις τιμές
ANTIORARIO_SX   con      1000      ' με τις τυπικές τιμές για τους σερβοκινητήρες σου
ORARIO_DX      con      500
ORARIO_SX      con       500


'------------------------ Κύριο Πρόγραμμα ---------------------

low   M1a:   low   M1b
low   M2a:   low   M2b            ' Αρχικά όλοι οι κινητήρες είναι σταθεροί

low SERVO_DX:   low SERVO_SX

goto valori_Fine_corsa            ' Μεταβαίνει στη ρουτίνα για να ελέγξεις τις τιμές
                           ' αναφοράς του RC για τα "τέλος διαδρομής"



main:   
   
     gosub decodifica            ' Μεταβαίνει στην υπορουτίνα αποκωδικοποίησης του σήματος

   branch codicePulsante, [AvantiSx, Avanti, AvantiDx, IndietroSx, Indietro, IndietroDx, Apri, Alza, Chiudi, Abbassa]

goto main

'-------------- Ρουτίνα πλοήγησης με σερβοκινητήρες ---------------------

AvantiSx:
   movDx = ANTIORARIO_DX   : movSx = ANTIORARIO_SX  : goto esegui

Avanti:
   movDx = ORARIO_DX    : movSx = ANTIORARIO_SX  : goto esegui

AvantiDx:
   movDx = ORARIO_DX    : movSx = ORARIO_SX      : goto esegui
   
IndietroSx:
   movDx = ORARIO_DX      : movSx = ORARIO_SX      : goto esegui

Indietro:
   movDx = ANTIORARIO_DX :     movSx = ORARIO_SX      : goto esegui

IndietroDx:
   movDx = ANTIORARIO_DX :     movSx = ANTIORARIO_SX  : goto esegui
   
esegui:
   for contatore = 1 to 10
      pulsout SERVO_DX, movDx                  
      pulsout SERVO_SX, movSx
      pause 3
   next
   gosub Baffi
goto main



'--------------- Ρουτίνες κίνησης λαβίδας ----------------

'***********************************************************************************
'* Ρουτίνες διαχείρισης των κινήσεων της λαβίδας. Και οι τέσσερις ρουτίνες έχουν
'* την ίδια δομή. Μπορείς να ενεργοποιήσεις τις οδηγίες του debug, για να ελέγχεις τις
'* οριακές τιμές και τις μετρήσεις που έχουν γίνει στη διάρκεια των κινήσεων.
'***********************************************************************************

Alza:
   FC_abbassato = 0                  ' ξεμπλοκάρει το τέλος διαδρομής της αντίθετης κατεύθυνσης
   if FC_Alzato = 1 then main            ' εάν το τέλος διαδρομής είναι ενεργό, επιστρέφει στο main
   low M2a:    high  M2b               ' ενεργοποιεί τους κινητήρες
   gosub RCT                     ' μετρά την τρέχουσα τιμή του RC
'debug "ανύψωση ", ? misuraRC
   if misuraRC < sogliaCarrello-2 then F_Up      ' Συγκρίνει τη μέτρηση που έχει γίνει με το όριο, πιθανώς ενεργοποιεί
                                  ' το τέλος διαδρομής
   pulsin IR_SX, BASSO, impulso            ' Ακούει για να δει εάν το πλήκτρο είναι ακόμα πιεσμένο
   if impulso >200 then Alza            ' Εάν το πλήκτρο είναι πιεσμένο, συνεχίζει την κίνηση.
goto arresto


Abbassa:
   FC_alzato = 0
   if FC_abbassato = 1 then main
   high    M2a:    low  M2b:
   gosub RCT
'debug "χαμήλωμα ", ? misuraRC
   if misuraRC < sogliaCarrello-2 then F_Down

   pulsin IR_SX, BASSO, impulso
   if impulso >200 then Abbassa
goto arresto


Chiudi:
   FC_aperto = 0
   if FC_chiuso = 1 then main
   low    M1a:    high  M1b:
   gosub RCT
'debug "κλείσιμο ", ? misuraRC
   if misuraRC < sogliaBecchi-2 then F_Closed

   pulsin IR_SX, BASSO, impulso
   if impulso >200 then Chiudi
goto arresto


Apri:
   FC_chiuso = 0
   if FC_aperto = 1 then main
   high    M1a:    low  M1b:
   gosub RCT
'debug "άνοιγμα ", ? misuraRC
   if misuraRC < sogliaBecchi-3 then F_Open

   pulsin IR_SX, BASSO, impulso
   if impulso >200 then Apri
goto arresto


Arresto:   
   low   M1a:   low   M1b               ' Σβήνει και τους δύο κινητήρες
   low   M2a:   low   M2b
   pause 10
'debug "παύση",cr
goto main


'-------------- Διαχείριση τέλους διαδρομής --------------------

'*****************************************************************************************
'* Ρουτίνα διαχείρισης των μεταβλητών κατάστασης του τέλους διαδρομής. Όταν επιτυγχάνεται
'* η θέση τέλους διαδρομής, το σχετικό τέλος διαδρομής πιστοποιείται και ρυθμίζεται
'* στην τιμή 1. Στη συνέχεια, μπορεί να ξεμπλοκάρει μόνο εκτελώντας την αντίθετη κίνηση.
'* (Βλέπε ρουτίνα διαχείρισης κινήσεων λαβίδας)
'*****************************************************************************************


F_Up: 
   FC_alzato =1
'debug "ανυψωμένο!",CR
   goto arresto

F_Down: 
   FC_abbassato =1
'debug "χαμηλωμένο!",CR
   goto arresto

F_Open: 
   FC_aperto=1
'debug "ανοιχτό!",CR
   goto arresto

F_Closed: 
   FC_chiuso=1
'debug "κλειστό!",CR
   goto arresto


'**************************************************************************************
'* Αυτή η Ρουτίνα εκτελείται μόνο μία φορά κατά την εκκίνηση του προγράμματος. Επιλέγει
'* την τιμή του RC του κυκλώματος στη θύρα P11 και τη θέτει ως όριο. Αυτά τα όρια
'* χρησιμοποιούνται στη συνέχεια για τη σύγκριση με τις μετρήσεις RC που έχουν γίνει
'* στη διάρκεια της κίνησης της λαβίδας.
'* Οι δυο κινητήρες τίθενται σε κίνηση για ελάχιστο χρονικό διάστημα στη διάρκεια του
'* οποίου ελέγχονται οι τιμές του RC.
'*
'* ΣΗΜΑΝΤΙΚΟ!!!!!!!!!!!!!
'* Όταν ξεκινά το πρόγραμμα η λαβίδα πρέπει να βρίσκεται στις ενδιάμεσες θέσεις, δεν πρέπει
'* να βρίσκεται ήδη στις θέσεις τέλους διαδρομής, διαφορετικά οι μετρήσεις που έχουν γίνει
'* από τη ρουτίνα παραποιούνται και δεν επιτρέπουν τη σωστή διαχείριση του τέλους διαδρομής
'**************************************************************************************

valori_Fine_corsa :


' Βρίσκει την οριακή τιμή για το φορείο
   low M2a:    high  M2b               ' Προκαλεί την ανύψωση του ανυψωτικού φορείου
   gosub RCT                     ' Μεταβαίνει στην υπορουτίνα μέτρησης RC
   sogliaCarrello = misuraRC            ' Θέτει τη μέτρηση που βρήκε ως όριο
'debug ? sogliaCarrello
   low M2a:    low  M2b               ' Σταματά τον κινητήρα

' Βρίσκει την οριακή τιμή για τη λαβίδα
   low M1a:    high  M1b               ' Κλείνει το ρύγχος της λαβίδας
    gosub RCT                     ' Μεταβαίνει στην υπορουτίνα μέτρησης RC

    sogliaBecchi = misuraRC               ' Θέτει τη μέτρηση που βρήκε ως όριο
'debug ? sogliaBecchi
    pause 50
    low M1a:    low  M1b               ' Σταματά τον κινητήρα

   misuraRC = 0

goto main


'------------ Υπορουτίνα ανάγνωσης Rctime --------------


RCT:
   high PORTA_RC
   pause 1
   rctime PORTA_RC, ALTO, misuraRC         ' Μετρά την τιμή της σταθεράς χρόνου RC του κυκλώματος
                                  ' που συνδέεται με τη θύρα PORTA_RC
   
pause 100
   
return

'---------- Υπορουτίνα αποκωδικοποίησης παλμών IR -----------

decodifica:
  rileva:
     pulsin IR_SX, BASSO, impulso
     pulsin IR_SX, BASSO, inputIR0
     pulsin IR_SX, BASSO, inputIR1
     pulsin IR_SX, BASSO, inputIR2
     pulsin IR_SX, BASSO, inputIR3
     pulsin IR_SX, BASSO, inputIR4
     
  if impulso < 1000 then rileva
 
     codicePulsante.bit0 = inputIR0.bit9
     codicePulsante.bit1 = inputIR1.bit9
     codicePulsante.bit2 = inputIR2.bit9
     codicePulsante.bit3 = inputIR3.bit9
     codicePulsante.bit4 = inputIR4.bit9   

return

'----------------- Υπορουτίνα εντοπισμού αντικειμένων με τα μουστάκια ---------------

Baffi:

   if BaffoDx = 0 and BaffoSx = 0 then gira      ' Πίσω εάν και οι δύο διακόπτες είναι κλειστοί.
   if BaffoDx = 0 then destra_baffi          ' Δεξιά εάν ο αριστερός διακόπτης είναι κλειστός.
   if BaffoSx = 0 then sinistra_baffi         ' Αριστερά εάν ο δεξιός διακόπτης είναι κλειστός.
RETURN

'---------------------- Ρουτίνα πλοήγησης μουστακιών ------------------------


destra_baffi:
      gosub indietro_baffi
      pause 20
      for loop = 1 to 100
         pulsout SERVO_DX, ORARIO_DX
         pulsout SERVO_SX, ORARIO_SX
         pause 20
      next

return

gira:      
      for loop = 1 to 100
         pulsout SERVO_DX, ORARIO_DX
         pulsout SERVO_SX, ORARIO_SX
         pause 20
      next

return


sinistra_baffi:
      gosub indietro_baffi
      pause 20
      for loop = 1 to 100
         pulsout SERVO_DX, ANTIORARIO_DX
         pulsout SERVO_SX, ANTIORARIO_SX
         pause 20
      next

return


indietro_baffi:
      for loop = 1 to 150
         pulsout SERVO_DX, ANTIORARIO_DX
         pulsout SERVO_SX, ORARIO_SX
         pause 20
      next

return

Σταθης

Αριθμός μηνυμάτων : 4
Ημερομηνία εγγραφής : 04/01/2010
Ηλικία : 26
Τόπος : Kατερινη

Απ: Robot Deagostini

Δημοσίευση  Σταθης Την / Το Τετ Ιαν 06, 2010 12:32 am

dimbot έγραψε:Να είσαι καλά φίλε μου!

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

Δυστυχώς θα σε απογοητεύσω αλλά έχουν εξαντληθεί όλα τα τεύχη της Dea στις αποθήκες της. Και εγώ είχα πάρει για να ζητήσω ένα τεύχος που μου έλειπε αλλά μου είπαν ότι... έχει καταργηθεί, επειδή... εξαντλήθηκαν τα αποθέματα (ομολογώ ότι ακόμα και τώρα δεν βγάζω νόημα στη φράση!!!). Έλεος με τη Dea!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Σου ετοιμάζω και το πρόγραμμα για τη δαγκάνα.

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

Αναμένουμε νέα σου!!! Cool

Oxi ρε γμτ...ετσι σου ειπαν???Δεν εχουν καθολου τευχη??? Sad Sad κριμα...

Τελοσπαντων τωρα ας λειτουργησει πρωτα σαν προγραματισμος και μετα βλεπουμε πως θα το κλεισουμε τον θολο απο πανω...

Μην βιαζεσαι παντως για να μου γραψεις τα προγραμματα...Τωρα πρεπει να βρω και υπολογιστη καινουριο...εδω και τοσο καιρο μπαινω απλα στο ιντερνετ απο ενα λαπτοπ παλιο που εχω...και εβαλα σημερα σε λειτουργια τον πυργο μου τον υπολογιστη και γεια σας...καικε ο σκληρος μου δισκος...Ετσι επειδη γουσταρε... Sad Sad Sad Sad

Οποτε πρεπεια να βρω υπολογιστη τωρα με σειριακη θυρα για να συνδεσω τον Coubix Very Happy Very Happy ετσι τον ονομασα Smile με την πρωτη ευκαιρια θα σας ενημερωσω!

Ευχαριστω για την θερμη υποδοχη σας και για την βοηθειας σας.!!!

Τα λεμε cheers cheers cheers cheers
avatar
Hary Dee

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

Απ: Robot Deagostini

Δημοσίευση  Hary Dee Την / Το Τρι Φεβ 09, 2010 3:35 pm

Στάθη πες αλεύρι! Στο hlektronika.gr ο Neoklis ΧΑΡΙΖΕΙ τα τεύχη που ψάχνεις!

Αν έχω καταλάβει σωστά για ποια τεύχη μιλάς...

Σταθης

Αριθμός μηνυμάτων : 4
Ημερομηνία εγγραφής : 04/01/2010
Ηλικία : 26
Τόπος : Kατερινη

Απ: Robot Deagostini

Δημοσίευση  Σταθης Την / Το Τετ Φεβ 10, 2010 10:34 am

Αλευρι!!!!

Ωραια!!

Πως να επικοινωνησω με το παιδι αυτο???

Γνωριζεις?


Επειδη εγω αυτην την στιγμη ειμαι στο σχολειο και δεν προλαβαινω να γραφτω στο site για να στειλω προσωπικο μυνημα στον Νεοκλη αν καποιος μπορει ας του στειλει ενα μυνημα να του πει!Αν γινετε βεβαια!!! Laughing Laughing

Ευχαριστω παρα πολυ Hary dee cheers cheers
avatar
Hary Dee

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

Απ: Robot Deagostini

Δημοσίευση  Hary Dee Την / Το Παρ Φεβ 12, 2010 12:15 am

Στάθη είχα ξεχάσει να βάλω "παρακολούθηση" στο θέμα και το είδα τώρα! Sorry αλλά να του στείλω pm που να λέει τι; Βέβαια μπορεί μέσα στο διήμερο να μίλησες και μόνος σου...
avatar
thanos

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

Απ: Robot Deagostini

Δημοσίευση  thanos Την / Το Τρι Μαρ 02, 2010 12:09 am

Απιστευτο αλλα και εγω με το ρομποτ της deagostini ειχα την πρωτη μου επαφη με τη ρομποτικη!!! Πρεπει να εκανε τρελες πωλησεις εκεινη η σειρα!
avatar
dimbot
Master

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

Απ: Robot Deagostini

Δημοσίευση  dimbot Την / Το Κυρ Μαϊος 09, 2010 10:58 am

Παιδιά κάτι που παρατήρησα στο αναπτυξιακό του ρομπότ της dea και μου έκανε εντύπωση. Δεν έχει μικροελεγκτή τον basic stamp αλλά ένα chip της pic!!! Παρόλα αυτά το αναπτυξιακό έχει ακριβώς την ίδια λειτουργία και προγραμματισμό με την Board of Education της parallax!!! Το έχετε παρατηρήσει και εσείς αυτό?

kikostaki

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

deagostini robot

Δημοσίευση  kikostaki Την / Το Δευ Αυγ 09, 2010 9:19 pm

Γεια σε ολους σας

Ειμαι νεος εδω μεσα.Καλως σας βρηκα λοιπον.
εχω το robot απο την deagostini και τωρα που μεγαλωσα λεω να αρχισω να ασχολουμαι.ομως εχω ενα προβλημα.αντεγραψα αυτο απο το περιοδικο για να δω πως θα κοινηθει και ετσι..επειδη 1 φορα ακομα το ειχα κουνησει.ομως δεν κουνιεται..αυτο ειναι το προγραμμα...


' {$STAMP BS2}

PBin VAR IN2
Pwr VAR Bit

start:
LOW 15: LOW 14
PAUSE 50
LOW 6: LOW 3

ChkPwr:
IF pbin = 0 THEN Cont
Pwr =Pwr ^ 1

AspettaPB:
IF pbin = 0 THEN AspettaPB

Cont:
IF pwr = 0 THEN start

MuoviRobot

HIGH 15: LOW 14
PAUSE 50
HIGH 6: LOW 3
PAUSE 5000

Pwr=0

GOTO start

Κανω τπτ λαθος?
avatar
dimbot
Master

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

Απ: Robot Deagostini

Δημοσίευση  dimbot Την / Το Τρι Αυγ 10, 2010 7:58 pm

Κατ'αρχήν καλώς ήρθες στην παρέα μας!!! Cool

Ένα συνηθισμένο λάθος, το οποίο κάνουν πολλοί με το ρομπότ της deagostini είναι ότι χρησιμοποιούν τον κώδικα για τα απλά dc μοτέρ για να κινήσουν τους σερβοκινητήρες και το αντίστροφο. Κοίταξε μήπως συμβαίνει αυτό το λάθος, αν το έχεις σωστό κοιτάμε τον κώδικα και τις συνδεσμολογίες.
avatar
dimbot
Master

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

Απ: Robot Deagostini

Δημοσίευση  dimbot Την / Το Τρι Αυγ 10, 2010 8:01 pm

Διάβασα τον κώδικα και είναι σωστός. Ρίξε και μια ματιά και στις συνδεσμολογίες αν συνεχίσει το πρόβλημα.

Αναμένουμε τα νέα σου! Wink

kikostaki

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

Απ: Robot Deagostini

Δημοσίευση  kikostaki Την / Το Τρι Αυγ 10, 2010 8:03 pm

ευχαριστω φιλε.το βρηκα χθες το βραδυ οτι ειχα κανει αυτο το λαθος.ευχαριστω για τη απαντηση παντως.μπορεις εναν κοδικα για να κουνησω τα σερβομοτερ?
avatar
dimbot
Master

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

Απ: Robot Deagostini

Δημοσίευση  dimbot Την / Το Τετ Αυγ 11, 2010 5:07 pm

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


Κώδικας:
'{$STAMP BS2}
'-----------------------------Ορισμοί--------------------------------

           
Servo_Sx    CON    12   
Servo_Dx    CON    13     

             
l_IR_det_pin  CON    8   

             
Centro    CON    750   
Reg_fine_Sx  CON    0   
Reg_fine_Dx  CON    0   
neg_edge    CON    0   
             
           
             
data_remote    VAR    Byte   
velocita      VAR    Word       
rotazione    VAR    Word           
Calc_impulso_Sx  VAR    Word       
Calc_impulso_Dx  VAR    Word   
start_remote  VAR    Word   
input_remote_0  VAR    Word   
input_remote_1  VAR    Word   
input_remote_2  VAR    Word   
input_remote_3  VAR    Word   
input_remote_4  VAR    Word   

loop      VAR    Word

'---------------------------------------------------------------------------------
inizializzazione:         

  OUTPUT Servo_Sx       
  OUTPUT Servo_Dx

'---------------------------------------------------------------------------------
Start:

  'debug ? data_remote   
  'debug ? start_remote 
  GOSUB check_remote
  GOSUB Navigazione

IF data_remote=0 THEN servo_pulse
IF data_remote=1 THEN servo_pulse
IF data_remote=2 THEN servo_pulse
IF data_remote=3 THEN servo_pulse
IF data_remote=4 THEN servo_pulse
IF data_remote=5 THEN servo_pulse



GOTO Start            ' loop

'---------------------------------------------------------------------------------
check_remote:



  PULSIN l_IR_det_pin,neg_edge,start_remote
  PULSIN l_IR_det_pin,neg_edge,input_remote_0
  PULSIN l_IR_det_pin,neg_edge,input_remote_1
  PULSIN l_IR_det_pin,neg_edge,input_remote_2
  PULSIN l_IR_det_pin,neg_edge,input_remote_3
  PULSIN l_IR_det_pin,neg_edge,input_remote_4


  IF start_remote < 1000 THEN check_remote

  data_remote.bit0=input_remote_0.bit9
  data_remote.bit1=input_remote_1.bit9
  data_remote.bit2=input_remote_2.bit9
  data_remote.bit3=input_remote_3.bit9
  data_remote.bit4=input_remote_4.bit9



return

'---------------------------------------------------------------------------------
Navigazione:   

  branch data_remote,[a,b,c,d,e,f]

     
  a:  velocita = 0:    rotazione = 200:  goto exit_Navigazione
  b:  velocita = 350:  rotazione = 0:    goto exit_Navigazione
  c:  velocita = 0:    rotazione = -200:  goto exit_Navigazione


 
  d:  velocita = 0:    rotazione = -100:  goto exit_Navigazione
  e:  velocita = -350:  rotazione = 0:    goto exit_Navigazione
  f:  velocita = 0:    rotazione = 100:  goto exit_Navigazione

  exit_Navigazione:



return

'---------------------------------------------------------------------------------
servo_pulse: 


 


FOR loop = 1 TO 10
  Calc_impulso_Sx = velocita + rotazione + Centro + Reg_fine_Sx
  Calc_impulso_Dx = - velocita + rotazione + Centro + Reg_fine_Dx



    pulsout Servo_Sx,Calc_impulso_Sx
    pulsout Servo_Dx,Calc_impulso_Dx
    pause 3

gosub baffi

next

go:
return

'---------------------------------------------------------------------------------
baffi: 

IF IN6 =0 AND IN4 =0 THEN gira
IF IN4 =0 THEN destra_baffi 
IF IN6 =0 THEN sinistra_baffi
RETURN





'---------------------- Πλοήγηση Μουστακιών ------------------------


destra_baffi:
      gosub indietro_baffi
      pause 20
      for loop = 1 to 100
         pulsout SERVO_DX, 500
         pulsout SERVO_SX, 500
         pause 20
      next

      return


gira:      
      for loop = 1 to 100
         pulsout SERVO_DX, 500
         pulsout SERVO_SX, 500
         pause 20
      next

      return


sinistra_baffi:
      gosub indietro_baffi
      pause 20
      for loop = 1 to 100
         pulsout SERVO_DX, 1000
         pulsout SERVO_SX, 1000
         pause 20
      next

      return


indietro_baffi:
      for loop = 1 to 100
         pulsout SERVO_DX, 1000
         pulsout SERVO_SX, 500
         pause 20
      next

return

goto Start



kikostaki

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

Απ: Robot Deagostini

Δημοσίευση  kikostaki Την / Το Τετ Αυγ 11, 2010 11:36 pm

πως μπορω να μετατρεψω αυτο:
high 14: low 15
pause 50
low 5: high 3
pause 300

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

αυτο σε αντολη για σερβοκινητηρες?

avatar
dimbot
Master

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

Απ: Robot Deagostini

Δημοσίευση  dimbot Την / Το Πεμ Αυγ 12, 2010 10:59 am

Στους σερβοκινητήρες χρησιμοποιείς την εντολή pulsout. Πρέπει πρώτα να δεις τι κίνηση θέλεις να κάνουν οι σερβοκινητήρες.
Οι τιμές που παίρνει ένας σερβοκινητήρας είναι από 500 έως 1000. Δηλαδή αν θέλεις να περιστρέφεται δεξιόστροφα του δίνεις τιμές από 500 έως 750 και για αριστερόστροφα από 750 έως 1000. Σε κάθε σερβοκινητήρα δίνεις ξεχωριστά εντολή στο πρόγραμμα. Συνδυάζοντας τις 2 εντολές μπορείς να καθορίσεις και τον τρόπο που θα κινηθεί το ρομπότ. Δηλαδή αν βάλεις και στα δύο τις ίδιες τιμές, το ρομπότ θα κινηθεί σε ευθεία πορεία (είτε εμπρός είτε πίσω, ανάλογα με το αν οι τιμές θα είναι 500-750 ή 750-1000). Αν βάλεις τιμές στον ένα σερβοκινητήρα και στον άλλο βάλεις την τιμή 750 (για ακινησία του ενός σερβοκινητήρα) το ρομπότ θα στρίψει και πάει λέγοντας.

Αν θέλεις σου δίνω και παράδειγμα.

kikostaki

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

Απ: Robot Deagostini

Δημοσίευση  kikostaki Την / Το Πεμ Αυγ 12, 2010 11:20 am

δωσε ενα παραδειγμα.αυτα που ειπες τα χερω.με αυτο που σε εδοσα προσπαθω να κανω τους σερβο να πανε πισω και μετα αριστερα αλλα δεν μπορω να το κανω γτ παει πολυ λιγο πισω και αριστερα

kikostaki

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

Απ: Robot Deagostini

Δημοσίευση  kikostaki Την / Το Πεμ Αυγ 12, 2010 11:23 am

αυτο δλδ παει πισω και αριστερα συνεχεια ενω εγω θελω πισς καποια δευτερολεπτα και μετα αριστερα.
avatar
dimbot
Master

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

Απ: Robot Deagostini

Δημοσίευση  dimbot Την / Το Τετ Αυγ 18, 2010 5:29 pm

Λοιπόν μπορείς να βρεις πάρα πολλά παραδείγματα και χρήσιμα προγράμματα για το ρομπότ σου στην ιστοσελίδα www.deagostini.gr

Ρίξε μία ματιά, σίγουρα θα σε βοηθήσει πολύ, καθώς τα παρουσιάζει πολύ αναλυτικά.

TheKwsths

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

Απ: Robot Deagostini

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

θα ανεβάσεις και άλλα προγράμματα για το ρομποτ;
Έχω μείνει στο 24 τεύχος, αν έχεις κάτι στο νού σου ανέβασέ το!
ΕΥΧΑΡΙΣΤΩ!!!!!

    Η τρέχουσα ημερομηνία/ώρα είναι Σαβ Δεκ 16, 2017 3:22 am