Sunday, December 11, 2011

Arduino Mega 1280/2560 help & tips


Το Arduino mega έχει κάποιες διαφορές με τα προηγούμενα και είναι πρόβλημα γιατί τα περισσότερα tutorial αναφέρονται στο Uno ή στο Duemilanove. Επίσης υπάρχει και ένα πρόβλημα με τα shields που απευθύνονται για αυτές τις υλοποιήσεις.

Pinout:
Αρχικά, τα πινς του mega είναι διαφορετικά από των υπόλοιπων. Καλό είναι να έχετε κατά νου την αντιστοιχία που υπάρχει. Βασικό είναι το γεγονός ότι τα πινς SPI που χρειάζονται για προγραμματισμό και για shields όπως το Ethernet δεν είναι τα ίδια. Ενώ λοιπόν το shield κουμπώνει πάνω στο mega στις μπροστά υποδοχές, δεν δουλεύει.
Από εδώ με την αντιστοιχία των πινς έχουμε ότι:
  • MISO - 50 (και όχι το αντίστοιχο 12 για uno,duemilanove)
  • MOSI - 51 (αντί για 11)
  • SCK - 52 (αντί για 13)
  • SS - 53 (αντί για 10)
Άρα εάν στον κώδικά μας δεν περιέχεται η βιβλιοθήκη ' pins_arduino.h ' που φροντίζει να κάνει τις αλλαγές για το mega, πρέπει να βρούμε στο κώδικα τις αντίστοιχες καταχωρήσεις και να τις αλλάξουμε. Είναι της μορφής ' #define MISO 12 ' και να κάνουμε τις αντίστοιχες αλλαγές. Μπορεί να χρειαστεί πέρα από τον αυτό καθαυτό κώδικα να αλλάξουμε και βιβλιοθήκες που χρησιμοποιεί το πρόγραμμά μας και δεν περιέχουν το ' #include "pins_arduino.h" '.




Autoreset:
Για να αποτρέψουμε το autoreset στο mega πρέπει να συνδέσουμε έναν πυκνωτή 100nF και πάνω μεταξύ RESET και +5V.

Χρήση shield για Uno/Duemilanove:
Τα shileds αυτά είναι πιο μικρά αλλά μπαίνουν μια χαρά στις μπροστινές υποδοχές. Εάν δεν δουλέυουν τότε το πιο πιθανό είναι ότι χρησιμοποιούν τα SPI pins και πρέπει να τα συνδέσουμε με τα αντίστοιχα του mega. Για να το κανουμε αυτό, λυγίζουμε προς τα έξω τα 4 αντίστοιχα πινς του shield (10-13) και συνδέουμε με καλώδια τα αντίστοιχα όπως έγραψα πιο πάνω.

Tuesday, November 29, 2011

Στήνοντας ένα λειτουργικό τερματικό (Μέρος ΙΙ, messenger + music)

Λοιπόν, συνεχίζοντας επιτέλους τα ποστ που αφορούν το τερματικό θα περιγράψω παρακάτω μερικά προγράμματα που τα θεωρώ αρκετά χρήσιμα.

Monday, November 14, 2011

Εισαγωγή στο Arduino, serial communication

Λοιπόν συνεχίζοντας από το προηγούμενο παράδειγμα, όπου είδαμε εισαγωγικά μια πολύ απλή εφαρμογή, τώρα θα βάλουμε τον υπολογιστή να επικοινωνήσει με το Arduino. Ο υπολογιστής είναι συνδεδεμένος μέσω USB με το Arduino. Εκμεταλλευόμενοι αυτό θα χρησιμοποιήσουμε την σειριακή σύνδεση που υπάρχει μεταξύ τους και θα μεταδώσουμε "ερεθίσματα" στο interface του Arduino.

Ξεκινάμε από το πολύ απλό παράδειγμα που υπάρχει στο site του Arduino, arduino.cc για να δοκιμάσουμε απλοϊκά την σειριακή σύνδεση.

Διαδικασία:
Συνδέουμε το Arduino στον υπολογιστή και ανοίγουμε το interface του. Μετά αφού επιλέξουμε το board μας και την θύρα που είναι συνδεδεμένο, φορτώνουμε το αντίστοιχο πρόγραμμα.

Ψηφιακή Είσοδος:

Επιλέγουμε λοιπόν: File -> Examples -> Basics -> DigitalReadSerial .

Sunday, November 13, 2011

Arduino ISP programmer, ή αλλιώς προγραμματίζοντας με το Arduino

-->
Μπορεί να μην έχω αναλύσει και πολλά για το Arduino που να αφορούν και πιο νέους στο "κόλπο" αλλά αυτό νομίζω πως πρέπει να το γράψω. Με τον παρακάτω "απλό" τρόπο μπορούμε να μετατρέψουμε το Arduino board που διαθέτουμε σε avr isp programmer και να προγραμματίσουμε πληθώρα από chips τα οποία είναι πιο μικρά και πιο φθηνά ώστε απ' τη μια να κάνουν τη δουλειά μας και απ' την άλλη να την κάνουν οικονομικά.


Προαπαιτούμενα:

Θα χρειαστούμε ένα Arduino, είτε το Duemilanove (ή Diecimila) ή το Mega αναλόγως τι έχουμε και φυσικά το interface του Arduino. Ακόμη, χρειαζόμαστε ένα ράστερ (breadboard) και μερικά υλικά ακόμα που αλλάζουν ανάλογα με την περίσταση.

Tuesday, November 8, 2011

Στήνοντας ένα λειτουργικό τερματικό (Μέρος Ι)

Στο αμέσως προηγούμενο ποστ είχα αναφερθεί στη λειτουργία και στη χρησιμότητα του screen, αν επιλέξουμε να κάνουμε κάποια πράγματα από την κονσόλα για να βελτιώσουμε τη και ακόμη και να επιταχύνουμε κάποιες εργασίες στο pc. Τώρα θα παραθέσω κάποια προγράμματα που εκτελούν κάποιες απλές εργασίες οι οποίες μπορούν να γίνουν άνετα και από την κονσόλα, γλιτώνοντας πόρους και μνήμη.

Έχουμε και λέμε:


  • vim: Ένα πολύ καλό πρόγραμμα για επεξεργασία κειμένου, με πληθώρα plugins. Αν μάθετε να το χρησιμοποιείται δεν θα απογοητευτείτε. Ξεκινήστε με το vim-tutor.
  • rtorrent: Πρόγραμμα για κατέβασμα torrent. Απλό λιτό και απέριττο.
  • mpg123: Πρόγραμμα αναπαραγωγής mp3. Απλά φορτώστε μια λίστα και αφήστε το από πίσω να παίζει.
  • wget: Κατεβάζει τα πάντα και συμφέρει. Το μόνο που του λείπει είναι το GUI.
  • finch: Το pidgin xωρίς GUI. Όλα τα πρωτόκολλα επικοινωνίας στην γραμμή εντολών.
  • lynx: Περιήγηση στο Internet. Βασικά δεν βολεύει για κλασσικές δουλειές, κυρίως για αυτοματισμούς.
  • w3m: Αντίστοιχο του lynx.
  • mutt: Ε-mail client, αρκετά βολικός μετά από λίγο στήσιμο κυρίως για λίστες που δεν έχουν mutlimedia περιεχόμενο.
  • 0verkill: Ένα online 2d deathmatch game γιατί και στην κονσόλα μπορείς να "σκοτώνεις" κόσμο http://artax.karlin.mff.cuni.cz/~brain/0verkill/.
Αυτά προς το παρόν, σύντομα θα δούμε την πραγματική αξία που έχουν αυτές οι εφαρμογές και πως μπορούν πραγματικά να κάνουν διαφορά στην καθημερινή επαφή με τον υπολογιστή.

Saturday, November 5, 2011

Fritzing-Πλακέτες γρήγορα και εύκολα

Στον προηγούμενο οδηγό όπου περιέγραφα τη διαδικασία δημιουργίας μιας πλακέτας ενώ γνωρίζουμε το κύκλωμα και το έχουμε υλοποιήσει σε breadboard για να βεβαιωθούμε ότι δουλεύει, είχα παρουσιάσει σύντομα το πρόγραμμα fritzing το οποίο μας επέτρεπε να μεταβούμε γρήγορα στην πλακέτα. Εδώ θα ψάξουμε λίγο παραπάνω το πρόγραμμα για να δούμε τι άλλες δυνατότητες έχει και μέχρι που φτάνει.
Καλό είναι να ανατρέξετε εδώ για να δείτε πάνω κάτω πως λειτουργεί για αρχή.
Download link

αρχική οθόνη (2)

Friday, November 4, 2011

Τερματικό, ένας σύντομος οδηγός για το screen

Ξεκινώντας, η κονσόλα στα Linux ή αλλιώς το τερματικό είναι πολύ χρήσιμο ακόμη και για καθημερινή χρήση απ' τη στιγμή που θα εξοικειωθεί κανείς έστω και λίγο μαζί του. Ορισμένα πράγματα που χειροκίνητα μπορεί να είναι πάρα μα πάρα πολύ βαρετά με τη βοήθεια της κονσόλας γίνονται στο πι και φι!

Πρώτα απ' όλα, έχουμε το screen. Το screen μας προσφέρει τη δυνατότητα να τρέχουμε πολλές εφαρμογές από το τερματικό, είναι κάτι όπως ο window manager. Φανταστείτε πόσο άβολα νιώθουμε όταν το pc φορτώνει στην κονσόλα και προσπαθούμε απεγνωσμένα να σηκώσουμε το GUI (startx και τέτοια...) γιατί είναι σχεδόν άχρηστο το pc όταν έχεις στο μυαλό σου ότι μπορεί να τρέξει μόνο ένα πρόγραμμα. Ε λοιπόν το screen μας λύνει τα χέρια.

Αλλά για να περνάμε απευθείας στο ψητό, δώστε στην κονσόλα, screen. Δεν φαίνεται να έγινε τίποτα, κι όμως μόλις δημιουργήσαμε το πρώτο στιγμιότυπο του screen, ένα bash shell (συνήθως).
Επειδή το screen τρέχει πίσω από κάθε εντολή στην κονσόλα, για να δώσουμε εντολές στο screen πρέπει πριν, να πατήσουμε [ Ctrl + a ]. Άρα για όλες τις εντολές που ακολουθούν παρακάτω πρέπει πρώτα να δώσουμε τον παραπάνω συνδυασμό και μετά να προχωρήσουμε, εκτός κι αν περιγράφεται αλλιώς.

Βασικές εντολές για το screen: