ΠΕΡΙΓΡΑΦΗ

Σύμφωνα με τον δημιουργό του, το Arduino είναι μια πλατφόρμα ανάπτυξης ηλεκτρονικών κατασκευών ανοικτών τεχνολογιών (υλικού και λογισμικού) βασισμένη σε ευέλικτο και εύκολο στη χρήση hardware και software που προορίζεται για οποιονδήποτε έχει λίγη προγραμματιστική εμπειρία, στοιχειώδεις γνώσεις ηλεκτρονικών και ενδιαφέρεται να δημιουργήσει διαδραστικά αντικείμενα ή περιβάλλοντα.

Στην ουσία το Arduino είναι πλακέττα που περιέχει κάποιον μικροελεγκτή ATmega της Atmel, σταθεροποιημένο τροφοδοτικό και κύκλωμα σύνδεσης σε θύρα USB. Τα σχέδια του Arduino καθώς και το software που χρειάζεται για την λειτουργία του, διανέμονται ελεύθερα και δωρεάν ώστε να μπορεί να κατασκευαστεί από τον καθένα (απ’ όπου και ο χαρακτηρισμός «ανοικτού υλικού»). Το Arduino διαθέτει εισόδους και εξόδους που αντιδρούν όπως προβλέπει το πρόγραμμα που γράψαμε και φορτώσαμε στον μικροελεγκτή με τη βοήθεια του υπολογιστή, μέσω θύρας USB. Η γλώσσα προγραμματισμού που χρησιμοποιεί (Wiring) είναι παρόμοια με την C, εύκολη στη σύνταξη και διατίθεται με άδεια χρήσης GPL για πλατφόρμες Linux, MAC και Windows.

Ο χρήστης μπορεί να συνδέσει επάνω στο Arduino πολλαπλές μονάδες εισόδου/ εξόδου όπως αισθητήρες, πλήκτρα, πληκτρολόγιο, οθόνες, LED, ρελαί, τρανζίστορ, κινητήρες κλπ, και να προγραμματίσει τον μικροελεγκτή να δέχεται δεδομένα από τις μονάδες εισόδου, να τα επεξεργάζεται και να στέλνει κατάλληλες εντολές στις μονάδες εξόδου. Η ρομποτική και οι αυτοματισμοί είναι δύο από τις πολλές περιοχές στις οποίες το Arduino διαπρέπει.

Αυτό που έκανε το Arduino ξεχωριστό στην αρχή είναι ότι όλο το κύκλωμα της πλακέτας διατίθεται με άδεια χρήσης Creative Commons, πράγμα που σημαίνει ότι ο καθένας μπορεί να κατασκευάσει την δική του πλακέτα όπως αυτός θέλει. Φυσικά για τους αρχάριους το να κατασκευάσουν την πλακέτα μόνοι τους είναι μάλλον δύσκολο, οπότε είναι προτιμώτερο να αγοράσουν μιαν έτοιμη πλακέτα Arduino από το Διαδίκτυο η οποία διατίθεται σε πάρα πολύ προσιτή τιμή (6 – 30 €). Πολλοί κατασκευαστές έβγαλαν στη συνέχεια αντίστοιχα προϊόντα σε αντίστοιχες (χαμηλές) τιμές. Αυτό όμως που κάνει το Arduino ξεχωριστό είναι τα χιλιάδες παραδείγματα ανοικτού κώδικα που μπορεί να βρή κανείς είτε ενσωματωμένα στο Arduino IDE είτε στο Διαδίκτυο (στην επίσημη ιστοσελίδα https://www.arduino.cc και σε ιστοσελίδες ερασιτεχνών και απλών χρηστών). Ως αποτέλεσμα, μπορούμε εύκολα να κατασκευάσουμε χιλιάδες κατασκευές αναλόγως φυσικά και της εμπειρίας μας στα ηλεκτρονικά.

Οι δυνατότητες που προσφέρει το Arduino είναι πάρα πολλές. Μπορούμε να το χρησιμοποιήσουμε σε εφαρμογές ρομποτικής και γενικότερα σε αυτοματισμούς καταφέρνοντας έτσι πάρα πολλά όπως: την κίνηση κινητήρων servo, stepper και DC, τη λήψη πληροφοριών από διάφορους αισθητήρες (θερμοκρασίας, υγρασίας, υπερύθρων κ.α), την αμφίδρομη σειριακή επικοινωνία μεταξύ Arduino και PC χρησιμοποιώντας γλώσσες προγραμματισμού (όπως Java και python), την αναπαραγωγή και αντίληψη ήχων και πάρα πολλά ακόμα.

Στο site του Arduino θα ανακαλύψετε πάρα πολλές πληροφορίες όσον αφορά τον προγραμματισμό της πλακέτας. Η πλακέτα Arduino μέχρι στιγμής διατίθεται σε 20 βασικές παραλλαγές οι οποίες αναφέρονται σε διαφορετικές χρήσεις η κάθε μια, ανάλογα με τις ανάγκες της εφαρμογής μας.

Εικόνα 1-1: Το πρώτο Arduino (Diecimila)

Το Arduino βέβαια, δεν είναι ούτε ο μοναδικός, ούτε και ο καλύτερος δυνατός τρόπος δημιουργίας μιας οποιασδήποτε διαδραστικής ηλεκτρονικής συσκευής. Όμως το κύριο πλεονέκτημά του είναι η τεράστια κοινότητα που το υποστηρίζει και η οποία έχει δημιουργήσει, συντηρεί και επεκτείνει μια ανάλογου μεγέθους online γνωσιακή βάση. Έτσι, παρότι ένας έμπειρος ηλεκτρονικός μπορεί να προτιμήσει διαφορετική πλατφόρμα ή εξαρτήματα ανάλογα με την εφαρμογή που έχει στον νου του, το Arduino, με το εκτενή και ανοικτή τεκμηρίωση που το συνοδεύει, καταφέρνει να κερδίσει όλους αυτούς τους χρηστες που διαθέτουν περιορισμένες γνώσεις ηλεκτρονικών.

Μικροελεγκτής – η καρδιά του Arduino

Το Arduino βασίζεται στον ATmega328, ένα μικροελεγκτή RISC των 8-bit, τον οποίο χρονίζει στα 16MHz. Ο ATmega328 διαθέτει ενσωματωμένη μνήμη τριών τύπων:

  • 2Kb μνήμης SRAM που είναι η ωφέλιμη μνήμη που μπορούν να χρησιμοποιήσουν τα προγράμματά σας για να αποθηκεύουν μεταβλητές, πίνακες κ.λπ. κατά το runtime. Όπως και σ’ έναν υπολογιστή, αυτή η μνήμη χάνει τα δεδομένα της όταν η παροχή ρεύματος στο Arduino σταματήσει ή αν γίνει reset.

  • 1Kb μνήμης EEPROM η οποία μπορεί να χρησιμοποιηθεί για «ωμή» εγγραφή/ανάγνωση δεδομένων (χωρίς datatype) ανά byte από τα προγράμματά σας κατά το runtime. Σε αντίθεση με την SRAM, η EEPROM δεν χάνει τα περιεχόμενά της με απώλεια τροφοδοσίας ή reset οπότε είναι το ανάλογο του ΒΙΟS.

  • 32Kb μνήμης Flash, από τα οποία τα 2Kb χρησιμοποιούνται από το firmware του Arduino που έχει εγκαταστήσει ήδη ο κατασκευαστής του. Το firmware αυτό που στην ορολογία του Arduino ονομάζεται bootloader (“φορτωτής”) είναι αναγκαίο για την εγκατάσταση των δικών σας προγραμμάτων στον μικροελεγκτή μέσω της θύρας USB, χωρίς δηλαδή να χρειάζεται εξωτερικός hardware programmer. Τα υπόλοιπα 30Kb της μνήμης Flash χρησιμοποιούνται για την αποθήκευση αυτών ακριβώς των προγραμμάτων, αφού πρώτα μεταγλωττιστούν στον υπολογιστή σας. Η μνήμη Flash, όπως και η EEPROM δεν χάνει τα περιεχόμενά της με απώλεια τροφοδοσίας ή reset. Επίσης, ενώ η μνήμη Flash υπό κανονικές συνθήκες δεν προορίζεται για χρήση runtime μέσα από τα προγράμματά σας, λόγω της μικρής συνολικής μνήμης που είναι διαθέσιμη σε αυτά (2Kb SRAM + 1Kb EEPROM), έχει σχεδιαστεί μια βιβλιοθήκη που επιτρέπει την χρήση όσου χώρου περισσεύει (30Kb μείον το μέγεθος του προγράμματός σας σε μεταγλωττισμένη μορφή).

ΠΕΡΙΕΧΟΜΕΝΑ

ΕΙΣΗΓΗΤHΣ