Microcontroller terminal

Εγκαινιάζω νέα κατηγορία. Έπρεπε να γίνει εδώ και καιρό μιας και το dev folder μου έχει γεμίσει μισοτελειωμένες μαλακίες! Τα λυπάμαι να τα διαγράφω έτσι. Εκεί μέσα θα βρεις ότι θες. Από mail bomber, μέχρι script που στέλνει εντολές στην σειριακή πόρτα 😛

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

1ο θέμα λοιπόν!

Linux serial console ή για την περίσταση «Microcontroller terminal». Μιλώντας γενικά, χρησιμοποιώντας την σειριακή πόρτα ενός PC, μπορείς να έχεις ένα τερματικό (aka terminal) στη διάθεσή σου! Ιδανικό εάν έχεις πολλά pc και δεν είναι δυνατό να τραβάς καλώδια για οθόνες και keyboard. Μιλάμε πάντα για περιπτώσεις που δεν λειτουργεί το δίκτυο, γιατί αλλιώς υπάρχει και το SSH 😛

Τι γίνεται λοιπόν αν δεν έχεις extra οθόνη ή δεν μπορείς να βάλεις οθόνη για κάποιον λόγο (και η βαρεμάρα είναι λόγος – σοβαρός). Εδώ αρχίζουν τα ωραία. Αφού χρησιμοποιείται η σειριακή θύρα, μπορείς άνετα να συνδέσεις έναν micro! Με μια LCD 2×16 και ένα keyboard PS/2 στην χειρότερη, θα είναι.. λουκούμι! Βέβαια θα είναι λίγο δύσκολο με μια μικρή LCD. Όσες φορές έχω χρησιμοποιήσει console έχω παρατηρήσει ότι μου χρειάζονται γύρω στις 6-7 γραμμές. Θα είναι σπαστικό για παράδειγμα να πατάς ls (που συνήθως πιάνει 2-3 σειρές) και να χάνονται απ’ την οθόνη. Μπορείς να το φτιάξεις έτσι ώστε με κάποια κουμπιά να κάνει scroll βέβαια 😉

Πως? Θα μπορούσε να χρησιμοποιηθεί ένας Parallax BASIC Stamp. Είναι αρκετά απλοί στον προγραμματισμό (μιλάμε για γλώσσα της γνωστής οικογενείας των BASIC!!). Ακόμη θα μπορούσε να χρησιμοποιηθεί ένας Atmel AVR για τον οποίο υπάρχουν ΠΑΡΑ πολλοί compiler. Από BASIC μέχρι C 😛 Είναι καλύτεροι (τουλάχιστον σε κάτι project που έχω δει) σε σχέση με τους BASIC Stamp. Δεν έχει πέσει κανείς στα χέρια μου 🙁 But I would love to 😛

Οθόνη.. Μια 2×16 είπαμε δεν είναι και ότι καλύτερο. Έκανα μια βόλτα στο store της Parallax. Δεν έχει μεγάλη ποικιλία, όχι ότι ξέρω τι LCD κυκλοφορούν 😛 Αυτήν εννοούσα όταν έλεγα 2×16 πριν. Ίσως φαίνεται μεγάλη, αλλά δεν είναι. Ανάμεσα σε αυτές που βρήκα, κατέληξα στην μεγαλύτερη, δηλαδή αυτή. Ε, είναι λίγο μεγαλύτερη. Μπορείς να συνδυάσεις 2 αν είσαι τόσο burned 😀

Για keyboard τώρα.. Ένα απλό PS/2 πιστεύω δεν βολεύει γιατί είναι μεγάλο. Έψαξα μήπως υπάρχουν μικρά και βρήκα. Το θέμα είναι ότι δεν είναι *αρκετά* μικρά. Σε σχέση με την οθόνη πάντα. Έχει και η Parallax keyboard, οπότε καλύτερα να το πάρει κάποιος από εκεί (μαζί με τις LCD π.χ.). Καθώς έγραφα το άρθρο μου πέρασε απ’ το μυαλό το keypad των κινητών! Αν υπάρχει τόσο μεγάλη ανάγκη για το μέγεθος τότε είναι ιδανικό 😉 Απ’ την άλλη θα σου βγαίνει η πίστη να γράψεις. Ένας λόγος που πήρα κινητό με QWERTY. Για το PINOUT υπάρχουν άπειρα site. Έψαξα και για το πως μπορεί να συνδεθεί σε έναν micro. Είναι διαφορετικός ο τρόπος για κάθε είδος micro. Για παράδειγμα είδα ότι για τον Basic Stamp χρειάζεται «serial encoder».. αν κάποιος θελήσει να κάνει το project δεν νομίζω να κολλήσει εδώ 😛 Στο www.greekbotics.gr αν θυμάμαι καλά είχα βρει πως γίνεται με AVR micro, τώρα δεν το βρίσκω 🙁

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

Αυτά για την ώρα 😉

Σχόλια10 Comments

  1. Ο/Η Mpasakis λέει:

    Λολ, κοιτάς να γλειτώσεις λευτά ρε, και πας στους Atmel? Έχει ορεότατους PIC που έχουν και δείγματα δωρεάν και έχουν και C compilers και και και και και:P Όσο για τις οθόνες, αρχικά δες τι Controler θες. Στη συνέχεια ψάξε για οθόνες γραφικών στο ebay, που θα δήχνουν πολύ πιο ωραία απο μία 2×16 ή 4×16 και θα σου βγεί γύρω στα 20 και πολλά λέω ευρώ, μαζί με backlight κλπ κλπ. Θες κι άλλα ή να σταματήσω εδώ;

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

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

  2. Ο/Η Γιώργος λέει:

    Πέρα απ’ το ότι δεν έχω ασχοληθεί με άλλους micro εκτός του BASIC Stamp (PIC είναι -κατά κάποιο- τρόπο και αυτός) και δεν είμαι γνώστης, έχω δει Atmel με 2-3€. Για αυτό, ακούω προτάσεις! 😛
    Όσο για τις οθόνες, όπως είπα, δεν ξέρω πως να τις δουλέψω. Οι 16×4 είναι αρκετά εύκολες 😛 (από ‘σο έχω διαβάσει δηλαδή!)

    Παλμούς για την σειριακή τώρα.. κάτι απλό δεν μπορώ να σκεφτώ. Ξέρω για την παράλληλη όμως. Μπορείς να έχεις 8 εξόδους (είχα δει ένα project με LED). Άρα λογικά μπορείς εκεί. Παλμός με 0 – 5V (0 και 1).
    Στα linux στέλνεις data στις port.. echo «data» > /dev/ttySx τόσο απλά xD 😛 Μάλιστα σκεφτόμουν να κάνω counter για τα visits του blog αλλά μου λείπουν parts (4x 7 segment + shift out controller) και είναι δύσκολο να αγοράσω από εδώ 🙁

    Δεν μπορώ να σε βοηθήσω πολύ, δεν τα κατέχω κιόλας (sorry αν πετάω μπαρούφες, μαθαίνω) 😛 Ενδιαφέρομαι να ακούσω την γνώμη σου και τις ιδέες σου 🙂

  3. Ο/Η Mpasakis λέει:

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

    Όσο για το άλλο αν μου εξασφαλήσεις ότι σε όπιον μπένει θα στέλνει ενα bit κάτι θα βρω να σου κάνω, χωρίς βέβαια να καταχωρεί δεδομένα κλπ αν και αυτό με λίγο ψάξιμο το βρίσκω.

  4. Ο/Η Γιώργος λέει:

    Έχω σκεφτεί πως μπορεί να γίνει. Κάθε φορά που μπαίνει επισκέπτης, απλά θα προσθέτει +1 σε μια μεταβλητή (είτε σε MySQL, είτε σε ένα .txt). Μετά την πρόσθεση θα στέλνει τον αριθμό με τον τρόπο που σου είπα παραπάνω 😛 Είναι δοκιμασμένο και δουλεύει.

  5. Ο/Η Mpasakis λέει:

    😛

    Εγώ σου λέω να έχεις hardware counter με ολοκληρομένα που στην ουσία στο εσωτερικό τους έχουν T Flip-Flop σε λειτουργία tongle:P

  6. Ο/Η Γιώργος λέει:

    Έχω ένα counter ολοκληρωμένο αλλά είναι στο 16αδικό (μετράει μέχρι το F 😛 ) και βγάζει (με την βοήθεια ενός άλλου ολοκληρωμένου) 1 7seg LED 😛

  7. Ο/Η Mpasakis λέει:

    Θες bcd counters τοσους οσους και τα ψηφία που θα τους δήνεις με την τέταρτη έξοδο του ενός στο clock του άλλου, και από τα άλλα που κάνουν τη μετατροπή για το led display και αυτά όσα τα ψηφία, και φυσικά τα led display.

    Απο κολήσεις τι ξερεις;

  8. Ο/Η Γιώργος λέει:

    Προτιμώ τον τρόπο που είχα σκεφτεί 😛

    Καλύτερα σε breadboard γιατί ποτέ δεν κρατάω τίποτα 😛 Δεν έχω κάνει και τίποτα το συνταρακτικό, απλά κυκλώματα για τον BASIC Stamp μόνο 😛

  9. Ο/Η Mpasakis λέει:

    Πάντως αν μετράει μέχρι το F είναι χαλασμένο γιατί το μέγιστο που μπορεί να πάει το 16αδικο είναι μέχρι το 15 αφου ξεκιναει και μετράει απο το 0 άρα πρέπει να πηγένει μέχρι το E 😛

  10. Ο/Η Γιώργος λέει:

    Το F είναι το τελευταίο, δηλαδή το 16.
    0 -> 0 και μέχρι το 10 ίδια όλα, από εκεί και πέρα μπαίνουν και τα A, B, C, D, E, F 😛

    http://en.wikipedia.org/wiki/Hexadecimal
    ..αν δεν με πιστεύεις 😛

Άφησε ένα σχόλιο