Άλλο ένα πρόγραμμα για το Robot της DeA (αυτό με τον Basic Stamp II). Είναι της εποχής που είχα καεί με τους micro (και ας είχα μόνο έναν 😛 )! Στην ουσία, το robot αυτό μπορείς να το χειρίζεσαι από κάπου απομακρυσμένα και μέσω κάποιας κάμερας, μικροφώνου και ηχείων, είναι σαν να βρίσκεσαι ο ίδιος εκεί.
Τι είχα κάνει.. 😛 Πατέντες. Είχα πάρει το μισό “κουτί” του robot της DeA, από την σειρά “Κατασκεύασε και προγραμμάτισε το δικό σου Ρομπότ”. Έτσι είναι συναρμολογημένο πλήρως..
Είχα βγάλει δηλαδή το πάνω-πάνω πλαστικό. Πάνω εκεί είχα βάλει ένα βιβλίο, ήταν σαν “τραπεζάκι” ένα πράμα. Πάνω σε αυτό έβαζα το πιστό και πολύ αγαπημένο μου EEE PC 1000H, το οποίο έτρεχε Skype και ένα serial to tcp προγραμματάκι (θα εξηγήσω στη συνέχεια). Έτσι λοιπόν μπορούσα να χειριστώ το robot μέσω Internet και να βλέπω που πάει μέσω της κάμερας του netbook! Ε και φυσικά να ακούω και να μιλάω 🙂 Δεν το δοκίμασα ποτέ εκτός σπιτιού, μόνο από διαφορετικά δωμάτια, αλλά τέλος πάντων 😛
Όπως είπα το netbook έτρεχε Skype και ένα πρόγραμμα.. Για να χειριστείς το robot έπρεπε να στείλεις κάποιες “εντολές” σε αυτό μέσω σειριακής θύρας. Αυτό γίνεται μόνο απ’ το ίδιο PC. Εδώ έρχεται το serial to tcp που σου επιτρέπει να χειριστείς (να στείλεις και να λάβεις δεδομένα) απ’ την σειριακή πόρτα ενός υπολογιστή μέσω δικτύου! Κάτι σαν γέφυρα ένα πράμα 😉 😛
Το πρόγραμμα που είχα γράψει για το robot είναι αυτό. Μέσα σε ένα απόγευμα όλα αυτά. Εκτός από μερικά κομμάτια του κώδικα!
' Program: Remote Presence Bot
' Author : giannoug
' - email: giannoug@gmail.com
' - site : www.giannou.net
' Version: v18.2.2009
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-
' {$STAMP BS2}
' {$PBASIC 2.5}
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-
' Σταθερές / Μεταβλητές | Constants / Variables
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-
turns VAR Nib
cmd VAR Word
SrvLStop CON 765 'Σε αυτή την τιμή οι
SrvRStop CON 750 'servo είναι νεκροί.
Gear1 CON 25 '"Ταχύτητες" για τους servo.
Gear2 CON 50 'Για μελλοντική χρήση και αν.
Gear3 CON 75
Gear4 CON 100
Gain CON 50
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-
' Pins
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-
ServoL PIN 13
ServoR PIN 12
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-
' Αρχικοποίηση | Startup
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-
'Κανά τσέκ αν θες.
DEBUG "D"
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-
' Κύριο πρόγραμμα | Main program
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-
DO
DEBUGIN cmd
IF cmd = "F" THEN
GOSUB ForwardPulse
ELSEIF cmd = "B" THEN
GOSUB BackwardPulse
ELSEIF cmd = "L" THEN
GOSUB LeftPulse
ELSEIF cmd = "R" THEN
GOSUB RightPulse
ENDIF
LOOP
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-
' Υπορουτίνες | Subroutines
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-
ForwardPulse:
FOR turns = 0 TO 10
PULSOUT ServoL, SrvLStop + Gear4
PULSOUT ServoR, SrvRStop - Gear4 - Gain
NEXT
RETURN
BackwardPulse:
FOR turns = 0 TO 10
PULSOUT ServoL, SrvLStop - Gear4
PULSOUT ServoR, SrvRStop + Gear4 + Gain - 90
NEXT
RETURN
LeftPulse:
FOR turns = 0 TO 10
PULSOUT ServoL, SrvLStop - Gear4
PULSOUT ServoR, SrvRStop - Gear4 - Gain
NEXT
RETURN
RightPulse:
FOR turns = 0 TO 10
PULSOUT ServoL, SrvLStop + Gear4
PULSOUT ServoR, SrvRStop + Gear4 - Gain
NEXT
RETURN
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-
' Τέλος | End
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-
Αυτό ήταν.. Άλλη μια καμμενο-πρότζεκτ παρουσίαση έλαβε τέλος 😛