1. Εισαγωγή στην πλατφόρμα Arduino

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

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

Η πλακέτα Arduino τροφοδοτείται με τάση από την πόρτα USB, όπως το Arduino είναι συνδεμένο με το PC ή από εξωτερική είσοδο σταθερής τάσης VDC.

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

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

Ο προγραμματισμός του μικροελεγκτή της πλακέτας Arduino βασίζεται σε μια έκδοση της γλώσσας C, μια ισχυρή γλώσσα που μας επιτρέπει να αναπτύσσουμε την εφαρμογή μας χωρίς ιδιαίτερη δυσκολία, μέσα στο περιβάλλον προγραμματισμού Arduino IDE.

Arduino Uno

Ο κυρίαρχος της οικογένειας πλακετών Arduino είναι η πλακέτα Arduino Uno. H πλακέτα αυτή χρησιμοποιεί ένα μικροελεγκτή AVR και συγκεκριμένα τον ATmega328. Αυτό το μέλος Arduino παρέχει 14 ψηφιακές εισόδους ή εξόδους (από τις οποίες οι 6 μπορούν να διαμορφωθούν σαν αναλογικοί έξοδοι με την μέθοδο διαμόρφωσης παλμών), καθώς και 6 αναλογικές εισόδους.

Το κύκλωμα του Arduino Uno περιέχει ένα USB κονέκτορα για επικοινωνία με τον προσωπικό υπολογιστή, όπου μέσω αυτού μπορούμε να ανεβάζουμε κώδικα στο Arduino και να τροφοδοτούμε την πλακέτα με τάση. Στο Arduino Uno, η τροφοδοσία τάσης μπορεί να γίνει και από ένα κονέκτορα DC που βρίσκεται πάνω στην πλακέτα. Επίσης η πλακέτα Arduino Uno διαθέτει ένα μπουτόν για την επανεκκίνηση της λειτουργίας του Arduino στην περίπτωση που κάτι πάει στραβά.

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

Arduino Leonardo

Το Arduino Leonardo χρησιμοποιεί τον μικροελεγκτή Atmega32u4, ο οποίος παρέχει 20 ψηφιακές εισόδους ή εξόδους, 7 αναλογικές εξόδους με την μέθοδο PWM και 12 αναλογικές εισόδους.

Το Arduino Leonardo έχει την ίδια διάταξη ακροδεκτών όπως το Uno αλλά με επιπρόσθετους ακροδέκτες για τις έξτρα εργασίες.

Ένα όμορφο χαρακτηριστικό του Arduino Leonardo είναι ότι μπορεί προσομοιώσει ένα πληκτρολόγιο και ένα ποντίκι όταν συνδεθεί με τον προσωπικό μας υπολογιστή χρησιμοποιώντας την USB πόρτα. Μπορείς να γράψεις κώδικα που όταν τρέξει στο Arduino Leonardo θα είναι δυνατή η αποστολή σημάτων πληκτρολογίου και ποντικιού στο PC για διάφορους σκοπούς.

Arduino Micro

To Arduino Micro είναι μια μικρών διαστάσεων πλακέτα το οποίο παρέχει τη βασική λειτουργικότητα της οικογένειας Arduino. Χρησιμοποιεί τον ίδιο μικροελεγκτή Atmega32u4 όπως στο Arduino Leonardo. To Arduino Micro παρέχει 20 ψηφιακές εισόδους ή εξόδους, 7 αναλογικές εξόδους με την μέθοδο PWM και 12 αναλογικές εισόδους. Χρησιμοποιεί την λογική 5V στους ακροδέκτες και περιέχει ένα κρύσταλλο 16MHz.

Έχει μεγάλη ζήτηση λόγω των μικρών διαστάσεων και συγκεκριμένα 4,8cm μήκος και 1,77cm πλάτος αρκετά μικρό ώστε να μπορεί να χρησιμοποιηθεί σε οποιαδήποτε ηλεκτρονική εφαρμογή.

Χρησιμοποιεί μια micro USB πόρτα για να επικοινωνεί με τον προσωπικό υπολογιστή ή να χρησιμοποιηθεί σαν προσομοιωτής πληκτρολογίου και ποντικιού όπως το Arduino Leonardo μπορεί.

Arduino Nano

To Arduino Nano όπως το Arduino Micro, είναι μια μικρού μεγέθους πλακέτα της πλατφόρμας Arduino. Χρησιμοποιεί ένα μικροελεγκτή AVR και συγκεκριμένα τον Atmega328 σε συσκευασία SMD. Ενσωματώνει ένα driver δηλαδή ένα ειδικό ολοκληρωμένο κύκλωμα για να μπορεί να επικοινωνήσει με το PC μέσω ενός καλωδίου. Ο driver είναι ένα τσιπ πάνω στη πλακέτα του Arduino Nano, σε αντίθεση με την πλακέτα Arduino Leonardo το οποίο είναι ενσωματωμένο μέσα στον μικροελεγκτή ATmega32u4 που αποτελεί την καρδιά του Leonardo.

Το Arduino Nano τροφοδοτείται με τάση 5V από το καλώδιο USB ή από τάση 7 έως 12V στον κατάλληλο ακροδέκτη.

Το Arduino Nano περιέχει 14 ψηφιακές εισόδους ή εξόδους, όπου από αυτές οι 6 μπορούν να διαμορφωθούν σαν αναλογικές έξοδοι με την μέθοδο PWM καθώς επίσης περιέχει 8 αναλογικές εισόδους.

Arduino Mega

Το Arduino Mega σαν μέλος της οικογένειας Arduino είναι μια πλακέτα με τις περισσότερες εισόδους / εξόδους, συνεπώς παρέχει μεγαλύτερη λειτουργικότητα από ότι το Arduino Uno. Χρησιμοποιεί τον μικροελεγκτή ΑΤmega2560, συνεπώς το σύστημα παρέχει 54 ψηφιακές εισόδους ή εξόδους, 15 αναλογικές εξόδους με την μέθοδο PWM, 16 αναλογικές εισόδους και 4 UARTS για σειριακή επικοινωνία.

Το Arduino Mega έχει την διάταξη ακροδεκτών όπως το Uno, άλλα είναι επεκταμένη στην κάτω πλευρά. Τα ψηφιακά σήματα στις εσόδους ή εξόδους πρέπει να είναι της τάξης 3.3V μιας που ο μικροελεγκτής ATmega2560 δουλεύει με ψηφιακά σήματα τάσης 0 και 3.3V.

Arduino Due

Η πλακέτα Arduino Duo χρησιμοποιεί των υψηλών επιδόσεων επεξεργαστή 32-bit ARM Cortex – M3 αντί για τον στάνταρτ μικροελεγκτή ATmega328 που είναι ενσωματωμένος στο Arduino Uno και έτσι με τον ARM έχουμε υψηλή επεξεργαστική ισχύ σε σχέση με τους μικροελεγκτές ATmega.

To Arduino Due παρέχει 54 ψηφιακές εισόδους ή εξόδους και 4 σειριακές UART πόρτες. Επίσης περιέχει μεγαλύτερη μνήμη flash και συγκεκριμένα 512ΚΒ για την αποθήκευση του κώδικα καθώς επίσης αυξημένη μνήμη τύπου SRAM για την αποθήκευση δεδομένων.

Το Arduino Due χρησιμοποιεί την στάνταρτ διάταξη ακροδεκτών όπως το Arduino, άλλα επεκταμένη με μια κάθετη πινοσειρά στην δεξιά μεριά. Αυτό επιτρέπει σε ένα Due να χρησιμοποιεί shields σχεδιασμένα για το Arduino Mega.

Ανόμοια με τις υπόλοιπες πλακέτες Arduino, το Arduino Due εργάζεται στα 3,3V. Εφαρμόζοντας τάση μεγαλύτερη από 3,3V σε οποιοδήποτε πινς εισόδου/εξόδου θα κάνει ζημιά στην πλακέτα.

Arduino Yun

To Arduino Yun είναι μια ενδιαφέρουσα πλακέτα της πλατφόρμας Arduino. Στο υλικό της περιλαμβάνει ένα AVR μικροελεγκτή τον ATmega32u4 μαζί με ένα επεξεργαστή Atheros τα οποία τρέχουν το λειτουργικό σύστημα Linux.

Τα δυο ολοκληρωμένα κυκλώματα επικοινωνούν κατευθείαν μαζί τους και έτσι ο AVR μικροελεγκτής μπορεί να περάσει δεδομένα στο σύστημα Atheros. To Arduino Yun με το λειτουργικό σύστημα Linux, περιλαμβάνει μια πόρτα Ethernet και δυνατότητα Wi-Fi για εξωτερική επικοινωνία.

Arduino Ethernet

Η πλακέτα Arduino Ethernet συνδυάζει ένα μικροελεγκτή όπως εκείνου του Arduino Uno μαζί με μια ενσύρματη Ethernet πόρτα σε μια μονάδα Arduino. Αυτό το σύστημα επιτρέπει να έχουμε πρόσβαση στην πλακέτα Arduino από μακρυά για να διαβάζουμε δεδομένα ή να δίνουμε εντολές στις εξόδους του Arduino.

Αναλυτικά με το Arduino Uno.

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

Με την πλατφόρμα Arduino μπορούμε να φτιάξουμε εφαρμογές που μπορούν να ελέγξουν το χώρο γύρω μας. Το Arduino χρησιμοποιείται σε αμέτρητες εφαρμογές για τον ψηφιακό έλεγχο εισόδου και εξόδου . Ο έλεγχος εισόδου – εξόδου γίνεται είτε ψηφιακά π.χ. display είτε αναλογικά π.χ. motors, που με το κατάλληλο πρόγραμμα Arduino μπορούμε να κάνουμε το σύστημα να συμπεριφέρεται όπως θέλουμε.

Τώρα ας ξεκινήσουμε την περιγραφή της μονάδας του Arduino Uno. Αρχίζοντας από την αριστερή πλευρά της πλακέτας θα δούμε δυο βύσματα το USB και το βύσμα τροφοδοσίας DC.  O USB κονέκτορας συνδέει την πλακέτα Arduino στο PC για τρεις λόγους: Για να τροφοδοτήσει την πλακέτα με τάση, να μεταφέρει τον κώδικα στον μικροελεγκτή και να στείλει ή να λάβει δεδομένα από το PC. O κονέκτορας τροφοδοσίας χρησιμοποιείται για την τροφοδοσία του Arduino Uno με εξωτερική τάση, όταν δεν είναι συνδεμένος με την USB θύρα του υπολογιστή.

Πιο κάτω από το κέντρο της πλακέτας του Arduino USB διακρίνεται η καρδιά του Uno, ένας μικροελεγκτής και συγκεκριμένα τον ATmega328. Αυτός είναι ένας μικρού μεγέθους υπολογιστής που μέσα του περιλαμβάνει ένα επεξεργαστή που εκτελεί τις εντολές του συστήματος, την μνήμη SRAM όπου αποθηκεύονται τα δεδομένα και την μνήμη flash που αποθηκεύονται οι εντολές του προγράμματος.

Το Arduino Uno έχει δυο παράλληλες πινοσειρές: Η πάνω πινοσειρά που ονομάζεται 0 έως 13 και είναι οι ψηφιακές είσοδοι ή έξοδοι του Arduino Uno. Μπορούν να διαβάσουν ψηφιακά σήματα ή να παρέχουν ψηφιακές τάσεις. Τα πινς 0 και1 είναι γνωστά ως σειριακή πόρτα και μπορούν να χρησιμοποιηθούν στην επικοινωνία του Arduino Uno με την USB πόρτα του προσωπικού μας υπολογιστή με ένα οδηγό IC ενδιάμεσα. Οι ακροδέκτες που ονομάζονται με το σύμβολο ~ μπροστά από το όνομα του πιν χρησιμοποιούνται για την παραγωγή αναλογικών τάσεων με τη μέθοδο διαμόρφωσης παλμών. Η κάτω πινοσειρά παρέχει τις dc τάσεις εξόδου ή εσόδου καθώς και 6 αναλογικές εισόδους. Οι ακροδέκτες A4 και Α5 χρησιμοποιούνται από το I2C πρωτόκολλο.

Όπως σε όλα τα υπολογιστικά συστήματα, έτσι και σε όλες πλακέτες Arduino, αν κάτι πάει στραβά, μπορoύμε να το επανεκκινήσουμε το σύστημα με το μπουτόν RESET. Το μπουτόν RESET υπάρχει και στο Arduino Uno το οποίο βοηθά να εκκινήσουμε το Arduino όταν το πρόγραμμα καταρρεύσει.

Ένα άλλο μεγάλο πλεονέκτημα του Arduino Uno, όπως σε κάθε Arduino, είναι η ευκολία να επεκτείνεται. Οι δύο σειρές ακροδεκτών στην πάνω και κάτω μεριά πινοσειρών επιτρέπουν την σύνδεση shields όπως ονομάζονται, δηλαδή άλλες πλακέτες με ακροδέκτες που κουμπώνουν πάνω στο Arduino.

Για παράδειγμα το shield της φωτογραφίας, είναι μια πλακέτα shield που περιλαμβάνει ένα ethernet interface που επιτρέπει στο Arduino να συνδέεται στο διαδίκτυο.

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

Για να μπορέσουμε να φορτώσουμε τον κώδικα της εφαρμογής μας στο Arduino, τον οποίο έχουμε δημιουργήσει με την εφαρμογή Arduino IDE του προσωπικού μας υπολογιστή, ο μικροελεγκτής της πλακέτας Arduino έχει προ εγκαταστημένο ένα ειδικό πρόγραμμα που ονομάζεται bootloader.