Ένα απλό remote presence bot

Άλλο ένα πρόγραμμα για το Robot της DeA (αυτό με τον Basic Stamp II). Είναι της εποχής που είχα καεί με τους micro (και ας είχα μόνο έναν 😛 )! Στην ουσία, το robot αυτό μπορείς να το χειρίζεσαι από κάπου απομακρυσμένα και μέσω κάποιας κάμερας, μικροφώνου και ηχείων, είναι σαν να βρίσκεσαι ο ίδιος εκεί.

Τι είχα κάνει.. 😛 Πατέντες. Είχα πάρει το μισό «κουτί» του robot της DeA, από την σειρά «Κατασκεύασε και προγραμμάτισε το δικό σου Ρομπότ». Έτσι είναι συναρμολογημένο πλήρως..
DeA Robot

Είχα βγάλει δηλαδή το πάνω-πάνω πλαστικό. Πάνω εκεί είχα βάλει ένα βιβλίο, ήταν σαν «τραπεζάκι» ένα πράμα. Πάνω σε αυτό έβαζα το πιστό και πολύ αγαπημένο μου 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
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-

Αυτό ήταν.. Άλλη μια καμμενο-πρότζεκτ παρουσίαση έλαβε τέλος 😛

6 σχόλια στο “Ένα απλό remote presence bot”

  1. Και να φανταστείς το έγραψα 2 φορές. Δεν μπορούσα να σκεφτώ, χαχα. Θα το ξαναπεράσω ένα χεράκι βερνίκι όταν ευκαιρήσω 😉

    Thanks for dropping by!

  2. Γεια σας! Πριν από λίγο καιρό βρήκα στο πατάρι ( δεν ξέρω ποιος την αγόρασε μη ρωτάτε ) την σειρά αυτή της DeA με το ρομποτάκι της parallax εντελώς απείραχτη ως και το τεύχος 20.Αυτό σημαίνει ότι έχω φτιαγμένο όλο το σύστημα χωρίς όμως το διαφανές πλαστικό και την breadboard(διάτρητη πλακέτα βάσης).Ξέρω ότι τα arduino είναι πολύ καλύτερα σε κάθε τομέα από τον Basic Stamp αλλά έχω καεί.Με την pbasic δεν έχω πρόβλημα ( μπροστά στην c++ kai javascript είναι εύκολη) και την breadboard την παρήγγειλα από ebay 🙂 .Όμως θέλω βοήθεια να βρω αισθητήρες (φωτοκύτταρο,θερμόμετρο,υπερύθρων και ότι άλλο μπορείτε να μου προτείνετε ) γιατί δεν ξέρω ποιοι είναι συμβατοί με το ρομπότ. Επειδή πάω πρώτη λυκείου και σε λίγο καιρό θα διαβάζω για εξετάσεις 😛 θα το εκτιμούσα ιδιαίτερα αν είχα σύντομα απάντηση.Ευχαριστώ προκαταβολικά.

    1. Καλησπέρα φίλε Παναγιώτη!
      Εφόσον πήρες από το eBay την breadboard, κάνε έναν έξτρα κόπο και πάρε ένα Arduino clone με $10! Αξίζει 🙂

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

      Καλή συνέχεια!

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *