Στον ιστόχωρο αυτό θα παρουσιάσουμε τα βασικά χαρακτηριστικά της πλατφόρμας arduino βασισμένοι στο βιβλίο του Εμμανουήλ Πουλάκη "Προγραμματίζοντας με τον μικροελεγκτή Arduino
",
Το Arduino είναι μια ηλεκτρονική πλατφόρμα ανοικτού κώδικα και σχεδιασμού, που βασίζεται σε ευέλικτο και εύκολο στη χρήση υλικό και λογισμικό. Προορίζεται για καλλιτέχνες, σχεδιαστές, υλοποίηση χόμπι και δραστηριοτήτων, και γενικότερα για οποιονδήποτε ενδιαφέρεται να δημιουργήσει αλληλεπιδραστικά αντικείμενα ή περιβάλλοντα.
Για να μιλήσουμε λίγο πιο τεχνικά, υπάρχει ένα κύκλωμα που χρησιμοποιεί μικροελεγκτή, το οποίο μας δίνει ένα αριθμό πυλών οι οποίες μπορεί να λειτουργήσουν είτε ως είσοδοι είτε ως έξοδοι στα κυκλώματά μας. Αυτές τις εισόδους ή εξόδους μπορούμε να τις διαχειριστούμε γράφοντας κώδικα στο περιβάλλον προγραμματισμού Arduino IDE που έχει βασιστεί στη γλώσσα C/C++.
Στην επίσημη σελίδα του Arduino (http://arduino.cc/) μπορείτε να βρείτε πολλές πληροφορίες για αυτό, και να κατεβάσετε το περιβάλλον προγραμματισμού από την αντίστοιχη σελίδα (http://arduino.cc/en/Main/Software).
1. Εκτός από τη βασική έκδοση του περιβάλλοντος Arduino IDE, υπάρχει και μια παραλλαγμένη έκδοση του Scratch*, η οποία μπορεί να χρησιμοποιηθεί για να γράψουμε προγράμματα για το Arduino, η S4A - Scratch For Arduino*, η οποία επίσης είναι ανοικτού κώδικα και δωρεάν. Το πλεονέκτημα της έκδοσης αυτής είναι ο οπτικός προγραμματισμός (blocks όπως στο Scratch) σε σχέση με το γράψιμο εντολών στο κλασσικό περιβάλλον. Παρόμοιας λογικής είναι και το ArduBlock*, το οποίο επίσης χρησιμοποιεί οπτικό προγραμματισμό μέσω έτοιμων blocks για τον προγραμματισμό του. Το Tinkercad συνδυάζει και τις 2 δυνατότητες προγραμματισμού σε ένα πολύ καλό περιβάλλον προσομοίωσης.
Ακόμα, υπάρχουν οπτικές εκδόσεις στο διαδίκτυο (web περιβάλλοντα), όπως το BlocklyDuino* ή το ArduinoMio*. Μπορείτε να επισκεφθείτε τα περιβάλλοντα αυτά από τις αντίστοιχες ιστοσελίδες τους*. Θα δούμε αναλυτικά τη λειτουργία του μικροελεγκτή και τον βασικό προγραμματισμό του, μέσα από την κλασσική πλατφόρμα του Arduino IDE, ώστε να εισαχθεί ο αναγνώστης στο βασικό περιβάλλον και αφού αποκτήσει μια πρώτη ευχέρεια και κατανόηση των βασικών αρχών στον προγραμματισμό, να δοκιμάσει μόνος ή με βοήθεια και τις υπόλοιπες προσφερόμενες λύσεις.
2. Προμήθεια απαραίτητων υλικών
Το κύκλωμα των μονάδων του Arduino είναι ανοικτό, δηλαδή ο σχεδιασμός και τα μέρη του είναι γνωστά και δίνονται από τους κατασκευαστές του, με αποτέλεσμα όποιος θελήσει να μπορεί να το υλοποιήσει. Έτσι, υπάρχει υλικό με την ονομασία Arduino που προέρχεται από τους δημιουργούς και επίσημους κατασκευαστές του στην Ιταλία, ενώ μπορείτε να βρείτε πάρα πολλές ακόμα υλοποιήσεις μονάδων του, απόλυτα συμβατές με τα προγράμματα και κυκλώματα που ενδεχομένως ήδη υπάρχουν και δουλεύουν με τις επίσημες μονάδες Arduino. Η μοναδική δέσμευση που ζήτησαν οι δημιουργοί του Arduino, είναι να αναφέρονται με άλλη ονομασία οι κατασκευές τρίτων, κρατώντας την ονομασία Arduino για αυτούς. Η κοινότητα το σεβάστηκε κι έτσι θα βρείτε να κυκλοφορούν πολλές άλλες εκδόσεις οι οποίες συνήθως έχουν ονόματα που καταλήγουν σε -ino, όπως μια από τις κινέζικες εκδοχές του το Funduino.
Οι επίσημοι δημιουργοί πουλάνε υλικό μέσω της ιστοσελίδας τους (http://store.arduino.cc/), ενώ υπάρχουν και επίσημοι συνεργάτες για την Ελλάδα (http://arduino.cc/en/Main/Buy).
Αυτό που θα χρειαστείτε για αρχή είναι:
• μια μονάδα, όπως είναι το Arduino Uno R3 το οποίο χρησιμοποιούμε και στα παραδείγματα εδώ, το οποίο με 14 ψηφιακές εισόδους/εξόδους και 6 αναλογικές εισόδους (Pins) είναι υπεραρκετό για τις πρώτες σας εφαρμογές (και το αντίστοιχο usb καλώδιο για να συνδεθεί στον υπολογιστή σας),
• καλώδια για να συνδέετε τα pins με ότι διαχειρίζεστε, • μια βάση όπου μπορείτε να συνδέετε και να βραχυκυκλώνετε αυτά που χρησιμοποιείτε (breadboard) και τέλος • μερικά leds, αντιστάσεις, πυκνωτές, ποτενσιόμετρα, αισθητήρες κτλ για τις πρώτες σας υλοποιήσεις.
Για να μιλήσουμε λίγο πιο τεχνικά, υπάρχει ένα κύκλωμα που χρησιμοποιεί μικροελεγκτή, το οποίο μας δίνει ένα αριθμό πυλών οι οποίες μπορεί να λειτουργήσουν είτε ως είσοδοι είτε ως έξοδοι στα κυκλώματά μας. Αυτές τις εισόδους ή εξόδους μπορούμε να τις διαχειριστούμε γράφοντας κώδικα στο περιβάλλον προγραμματισμού Arduino IDE που έχει βασιστεί στη γλώσσα C/C++.
Στην επίσημη σελίδα του Arduino (http://arduino.cc/) μπορείτε να βρείτε πολλές πληροφορίες για αυτό, και να κατεβάσετε το περιβάλλον προγραμματισμού από την αντίστοιχη σελίδα (http://arduino.cc/en/Main/Software).
1. Εκτός από τη βασική έκδοση του περιβάλλοντος Arduino IDE, υπάρχει και μια παραλλαγμένη έκδοση του Scratch*, η οποία μπορεί να χρησιμοποιηθεί για να γράψουμε προγράμματα για το Arduino, η S4A - Scratch For Arduino*, η οποία επίσης είναι ανοικτού κώδικα και δωρεάν. Το πλεονέκτημα της έκδοσης αυτής είναι ο οπτικός προγραμματισμός (blocks όπως στο Scratch) σε σχέση με το γράψιμο εντολών στο κλασσικό περιβάλλον. Παρόμοιας λογικής είναι και το ArduBlock*, το οποίο επίσης χρησιμοποιεί οπτικό προγραμματισμό μέσω έτοιμων blocks για τον προγραμματισμό του. Το Tinkercad συνδυάζει και τις 2 δυνατότητες προγραμματισμού σε ένα πολύ καλό περιβάλλον προσομοίωσης.
Ακόμα, υπάρχουν οπτικές εκδόσεις στο διαδίκτυο (web περιβάλλοντα), όπως το BlocklyDuino* ή το ArduinoMio*. Μπορείτε να επισκεφθείτε τα περιβάλλοντα αυτά από τις αντίστοιχες ιστοσελίδες τους*. Θα δούμε αναλυτικά τη λειτουργία του μικροελεγκτή και τον βασικό προγραμματισμό του, μέσα από την κλασσική πλατφόρμα του Arduino IDE, ώστε να εισαχθεί ο αναγνώστης στο βασικό περιβάλλον και αφού αποκτήσει μια πρώτη ευχέρεια και κατανόηση των βασικών αρχών στον προγραμματισμό, να δοκιμάσει μόνος ή με βοήθεια και τις υπόλοιπες προσφερόμενες λύσεις.
2. Προμήθεια απαραίτητων υλικών
Το κύκλωμα των μονάδων του Arduino είναι ανοικτό, δηλαδή ο σχεδιασμός και τα μέρη του είναι γνωστά και δίνονται από τους κατασκευαστές του, με αποτέλεσμα όποιος θελήσει να μπορεί να το υλοποιήσει. Έτσι, υπάρχει υλικό με την ονομασία Arduino που προέρχεται από τους δημιουργούς και επίσημους κατασκευαστές του στην Ιταλία, ενώ μπορείτε να βρείτε πάρα πολλές ακόμα υλοποιήσεις μονάδων του, απόλυτα συμβατές με τα προγράμματα και κυκλώματα που ενδεχομένως ήδη υπάρχουν και δουλεύουν με τις επίσημες μονάδες Arduino. Η μοναδική δέσμευση που ζήτησαν οι δημιουργοί του Arduino, είναι να αναφέρονται με άλλη ονομασία οι κατασκευές τρίτων, κρατώντας την ονομασία Arduino για αυτούς. Η κοινότητα το σεβάστηκε κι έτσι θα βρείτε να κυκλοφορούν πολλές άλλες εκδόσεις οι οποίες συνήθως έχουν ονόματα που καταλήγουν σε -ino, όπως μια από τις κινέζικες εκδοχές του το Funduino.
Οι επίσημοι δημιουργοί πουλάνε υλικό μέσω της ιστοσελίδας τους (http://store.arduino.cc/), ενώ υπάρχουν και επίσημοι συνεργάτες για την Ελλάδα (http://arduino.cc/en/Main/Buy).
Αυτό που θα χρειαστείτε για αρχή είναι:
• μια μονάδα, όπως είναι το Arduino Uno R3 το οποίο χρησιμοποιούμε και στα παραδείγματα εδώ, το οποίο με 14 ψηφιακές εισόδους/εξόδους και 6 αναλογικές εισόδους (Pins) είναι υπεραρκετό για τις πρώτες σας εφαρμογές (και το αντίστοιχο usb καλώδιο για να συνδεθεί στον υπολογιστή σας),
• καλώδια για να συνδέετε τα pins με ότι διαχειρίζεστε, • μια βάση όπου μπορείτε να συνδέετε και να βραχυκυκλώνετε αυτά που χρησιμοποιείτε (breadboard) και τέλος • μερικά leds, αντιστάσεις, πυκνωτές, ποτενσιόμετρα, αισθητήρες κτλ για τις πρώτες σας υλοποιήσεις.
Γενικά, προτείνουμε να βρείτε ένα κιτ αρχαρίων (starter kit) που περιλαμβάνει συνήθως μονάδα, usb καλώδιο, breadboard, καλώδια με σκληρό βύσμα στην άκρη (θηλυκά και αρσενικά), καθώς και αρκετά leds, αντιστάσεις, πυκνωτές, ποτενσιόμετρο, φωτοευαίσθητες αντιστάσεις, κουμπιά κλπ, όπως π.χ. το Arduino Starter Kit (http://store.arduino.cc/product/K000007).
Είναι θεμιτό γενικά να υποστηρίζονται οι κατασκευαστές και δημιουργοί του Arduino, στο σημείο αυτό όμως θα πρέπει να παρατηρήσουμε ότι αντίστοιχες υλοποιήσεις, υλικά και κιτ του Arduino, ειδικά αυτά που προέρχονται από την Κίνα αγοράζονται με πολύ μικρότερο κόστος, συμπεριλαμβανομένων και των μεταφορικών τους, που μπορεί να φτάσει και στο 1/3 της αντίστοιχης αξίας.
3. Εγκατάσταση περιβάλλοντος Arduino IDE
Για να προγραμματίσετε τη μονάδα σας θα χρειαστείτε το περιβάλλον προγραμματισμού Arduino
IDE (εικόνα 1).
3. Εγκατάσταση περιβάλλοντος Arduino IDE
Για να προγραμματίσετε τη μονάδα σας θα χρειαστείτε το περιβάλλον προγραμματισμού Arduino
IDE (εικόνα 1).
Εικόνα 1 – Περιβάλλον προγραμματισμού Arduino IDE
Στο περιβάλλον αυτό γράφετε κώδικα (βασίζεται στη γλώσσα C/C++) τον οποίο μετά μεταγλωττίζετε και μεταφορτώνετε στη μονάδα σας. Το Arduino IDE υπάρχει σε εκδόσεις για Windows, Mac και Linux και μπορείτε να το κατεβάσετε εντελώς δωρεάν από την επίσημη ιστοσελίδα (http://arduino.cc/en/Main/Software).
Το περιβάλλον αυτό έχει εξελληνισμένο μενού, καθώς και αρκετά έτοιμα παραδείγματα χρήσης βασικών λειτουργιών (Αρχείο => Παραδείγματα).
Το περιβάλλον αυτό έχει εξελληνισμένο μενού, καθώς και αρκετά έτοιμα παραδείγματα χρήσης βασικών λειτουργιών (Αρχείο => Παραδείγματα).
4. Ρεύμα λειτουργίας
Το Arduino μπορεί να δουλέψει με ρεύμα από τη USB θύρα του υπολογιστή σας ή με αυτόνομη παροχή ρεύματος από μπαταρία. Η μονάδα παρέχει σταθερά τάση 5V στις εξόδους της. Για παροχή ρεύματος στη μονάδα από εξωτερική πηγή δέχεται τροφοδοσία από εξωτερικό βύσμα - συνιστώμενη παρεχόμενη τάση λειτουργίας είναι στα 7V έως 12V, ώστε να μπορεί να λειτουργήσει και να δώσει σταθερά τα 5V στην έξοδο (βλ. http://arduino.cc/en/Main/arduinoBoardUno). Μπορείτε να συνδέσετε την παροχή ρεύματος απευθείας στα pins που προορίζονται για αυτό το σκοπό: (+) στο Pin VCC IN και (-) στο Gnd δίπλα του. Στην περίπτωση που είναι συνδεδεμένη η μονάδα σας μόνιμα με θύρα USB τότε δουλεύει χωρίς πρόβλημα με τα 5V που παρέχει η USB θύρα.
5. Θύρες εισόδου/εξόδου (Pins)
Το Arduino Uno R3 έχει 14 ψηφιακές θύρες εισόδου ή εξόδου (digital input/outpit pins) και έξι αναλογικές εισόδους (analog input pins). Οι 14 ψηφιακές θύρες ονομάζονται με νούμερα από το 0 έως το 13, ενώ οι έξι αναλογικές με το γράμμα Α ακολουθούμενο από ένα νούμερο από 0 μέχρι το 5 (π.χ. Α3). Στην έξοδο τα pins μπορούν να δώσουν 0 έως και 5V τάση. Από τις 14 ψηφιακές θύρες οι έξι, και ειδικότερα οι 3, 5, 6, 9, 10, 11, είναι και PWM θύρες (Pulse Width Modulation), δηλαδή μπορούν να προσομοιώσουν αναλογικές εξόδους.
Το Arduino μπορεί να δουλέψει με ρεύμα από τη USB θύρα του υπολογιστή σας ή με αυτόνομη παροχή ρεύματος από μπαταρία. Η μονάδα παρέχει σταθερά τάση 5V στις εξόδους της. Για παροχή ρεύματος στη μονάδα από εξωτερική πηγή δέχεται τροφοδοσία από εξωτερικό βύσμα - συνιστώμενη παρεχόμενη τάση λειτουργίας είναι στα 7V έως 12V, ώστε να μπορεί να λειτουργήσει και να δώσει σταθερά τα 5V στην έξοδο (βλ. http://arduino.cc/en/Main/arduinoBoardUno). Μπορείτε να συνδέσετε την παροχή ρεύματος απευθείας στα pins που προορίζονται για αυτό το σκοπό: (+) στο Pin VCC IN και (-) στο Gnd δίπλα του. Στην περίπτωση που είναι συνδεδεμένη η μονάδα σας μόνιμα με θύρα USB τότε δουλεύει χωρίς πρόβλημα με τα 5V που παρέχει η USB θύρα.
5. Θύρες εισόδου/εξόδου (Pins)
Το Arduino Uno R3 έχει 14 ψηφιακές θύρες εισόδου ή εξόδου (digital input/outpit pins) και έξι αναλογικές εισόδους (analog input pins). Οι 14 ψηφιακές θύρες ονομάζονται με νούμερα από το 0 έως το 13, ενώ οι έξι αναλογικές με το γράμμα Α ακολουθούμενο από ένα νούμερο από 0 μέχρι το 5 (π.χ. Α3). Στην έξοδο τα pins μπορούν να δώσουν 0 έως και 5V τάση. Από τις 14 ψηφιακές θύρες οι έξι, και ειδικότερα οι 3, 5, 6, 9, 10, 11, είναι και PWM θύρες (Pulse Width Modulation), δηλαδή μπορούν να προσομοιώσουν αναλογικές εξόδους.
Έτσι, συνοπτικά για την είσοδο και έξοδο έχουμε:
• Για ψηφιακή είσοδο, χρησιμοποιούμε τις 14 ψηφιακές 0..13. Όταν δουλεύουν ψηφιακά, η είσοδος μπορεί να είναι ή 0 ή 5V, με τον χαρακτηρισμό LOW ή HIGH όπως θα δούμε παρακάτω.
• Για ψηφιακή έξοδο, χρησιμοποιούμε τις 14 ψηφιακές 0..13. Όταν δουλεύουν ψηφιακά, η έξοδος μπορεί να είναι 0 ή 5V, με τον χαρακτηρισμό LOW ή HIGH όπως θα δούμε παρακάτω.
• Για αναλογική είσοδο, δηλαδή να διαβάσουμε τιμές ρεύματος στο διάστημα 0 έως 5V, χρησιμοποιούμε τις έξι αναλογικές θύρες A0..A5.
• Για ψηφιακή είσοδο, χρησιμοποιούμε τις 14 ψηφιακές 0..13. Όταν δουλεύουν ψηφιακά, η είσοδος μπορεί να είναι ή 0 ή 5V, με τον χαρακτηρισμό LOW ή HIGH όπως θα δούμε παρακάτω.
• Για ψηφιακή έξοδο, χρησιμοποιούμε τις 14 ψηφιακές 0..13. Όταν δουλεύουν ψηφιακά, η έξοδος μπορεί να είναι 0 ή 5V, με τον χαρακτηρισμό LOW ή HIGH όπως θα δούμε παρακάτω.
• Για αναλογική είσοδο, δηλαδή να διαβάσουμε τιμές ρεύματος στο διάστημα 0 έως 5V, χρησιμοποιούμε τις έξι αναλογικές θύρες A0..A5.
• Για αναλογική έξοδο, μπορούμε να χρησιμοποιήσουμε τις έξι PWM ψηφιακές θύρες (3, 5, 6, 9, 10, 11), οι οποίες θα μας δώσουν ρεύμα εξόδου όποιας τιμή θέλουμε στο διάστημα από 0 έως 5V. Γράφοντας κώδικα θα πρέπει να αρχικοποιήσουμε τις θύρες που χρησιμοποιούμε με τη συνάρτηση pinMode(), δηλαδή να δίνουμε την πληροφορία για όποιες χρησιμοποιήσουμε αν θα είναι για είσοδο ή για έξοδο. Η συνάρτηση αυτή αναλύεται στην επόμενη ενότητα.
Όταν χρησιμοποιείται η σειριακή οθόνη παρακολούθησης της επικοινωνίας με τον υπολογιστή, χρησιμοποιούνται τα pins 0 και 1 για αυτό, οπότε προτείνουμε να μην τα χρησιμοποιείτε στις εφαρμογές σας, εκτός αν αυτό είναι απαραίτητο (π.χ. δεν μας φτάνουν τα υπόλοιπα 12 pins για την εφαρμογή μας).
Επίσης, στη θύρα 13 υπάρχει συνήθως συνδεδεμένο ήδη ένα Led πάνω στην πλακέτα Arduino Uno, κι έτσι μπορούμε να το χρησιμοποιούμε για σχετικές λειτουργίες.
Σχόλια
Δημοσίευση σχολίου