Skip navigation

Το αναπτυξιακό Arduino

Η πλακέτα του Arduino

Ο Arduino είναι ένας single-board μικροελεγκτής, δηλαδή μια απλή μητρική πλακέτα ανοικτού κώδικα με ενσωματωμένο μικροελεγκτή και εισόδους/εξόδους, η οποία μπορεί να προγραμματιστεί με τη γλώσσα Wiring (που ουσιαστικλά είναι η γλώσσα προγραμματισμού C++ μαζί με ένα σύνολο από βιβλιοθήκες, υλοποιημένες επίσης στην C++). Ο Arduino μπορεί να χρησιμοποιηθεί για την ανάπτυξη ανεξάρτητων διαδραστικών αντικειμένων, αλλά και να συνδεθεί με υπολογιστή μέσω προγραμμάτων σε Processing, Max/MSP, Pure Data ή SuperCollider.

Η καρδιά του Arduino είναι ένας μικροεπεξεργαστής. Αυτός είναι το “μυαλό” του Arduino και είναι προγραμματισμένος με τρόπο, ώστε να ελέγχει τα 14 ψηφιακά Ι/Ο pins και τα 6 αναλογικά που υπάρχουν πάνω στην πλακέτα ανάπτυξης. Δια μέσου αυτών των 20 pins γίνονται όλες οι διασυνδέσεις με τα εξωτερικά στοιχεία (κινητήρες, LEDs, LCD οθόνες κλπ), αλλά και με τους αισθητήρες (Ultrasonic, θερμόμετρα, accelometers κ.α).

Στην πλακέτα ανάπτυξης υπάρχει μία θύρα USB, μέσω της οποίας γίνεται η μεταφορά δεδομένων προς κάποια άλλη συσκευή (συνήθως έναν υπολογιστή) και το αντίστροφο. Η κύρια χρήση αυτής της θύρας, στα αρχικά στάδια εκμάθησης, είναι η μεταφορά του προγράμματος από τον υπολογιστή στον μικροεπεξεργαστή, αλλά και η οπτικοποίηση των δεδομένων που απορρέουν από την λειτουργία της συσκευής μετά τον προγραμματισμό της.

Στην παρακάτω εικόνα παρουσιάζονται τα κύρια μέρη της πλακέτας του Αrduino.

Χαρακτηριστικά λειτουργίας:

  • Τάση λειτουργίας 5V
  • Τάση εισόδου/τροφοδοσίας 7-12V
  • Ρεύμα εξόδου 40mA για κάθε είσοδο/έξοδο
  • Ρεύμα εξόδου 50mA για την έξοδο 3.3V
  • Flash μνήμη 32KB
  • SRAM 2KB
  • EEPROM 1KB
  • Microcontroller: ATmega328
  • Ψηφιακά I/O Pins: 14 (εκ των οποίων 6 περιέχουν PWM εξόδους)
  • Αναλογικά Pins εισόδου: 6
  • Ταχύτητα ρολογιού (Clock Speed): 16 MHz

'Εχουν αναπτυχθεί διαφορετικές πλατφόρμες Arduino, όπου η κάθε μία είτε αποτελεί εξέλιξη κάποιας άλλης, είτε έχει αναπτυχθεί για κάποιο συγκεκριμένο σκοπό:

  • Arduino Uno
  • Arduino Stamp
  • Arduino Diecimila
  • Arduino Fio
  • Arduino Duemilanove
  • Arduino NG
  • Arduino Mega1280
  • Arduino NG+
  • Arduino Mega2560
  • Arduino Extreme
  • Arduino Mini
  • Arduino Bluetooth
  • Arduino Nano
  • LilyPad Arduino
  • Arduino USB
  • Serial Arduino

Οι πλατφόρμες Arduino διαθέτουν τρείς βασικές μνήμες:

  • Flash memory (32 Kbytes) στην οποία τοποθετείται κάθε φορά το πρόγραμμα που πρόκειται να εκτελεστεί, καθώς και ο φορτωτής εκκίνησης (bootloader) που διευκολύνει την διαδικασία του προγραμματισμού της πλατφόρμας.
  • SRAM memory (στατική μνήμη τυχαίας προσπέλασης των 2 Kbytes) η οποία χρησιμοποιείται για την προσωρινή αποθήκευση των στατικών και των μεταβλητών δεδομένων του προγράμματος που εκτελείται.
  • ΕEPROM memory (1 Kbytes) στην οποία αποθηκεύονται οι τιμές των μεταβλητών όταν η πλατφόρμα σβήσει. Χρησιμοποιείται για την αποθήκευση ρυθμίσεων και άλλων παραμέτρων του Arduino.

Η μνήμη Flash και η μνήμη ΕEPROM είναι σταθερές, δηλαδή οι πληροφορίες παραμένουν μετά την απενεργοποίησης του ρεύματος. Η μνήμη SRAM είναι ασταθής και οι πληροφορίες χάνονται όταν παύσει η τροφοδοσία της.

Το Arduino Uno τροφοδοτείται είτε από εξωτερική τροφοδοσία που παρέχεται είτε μέσω μιας υποδοχής των 2.1mm (θετικός πόλος στο κέντρο) που βρίσκεται στην κάτω αριστερή γωνία του Arduino, είτε απευθείας από την θύρα USB του υπολογιστή. H επιλογή της πηγής γίνεται αυτόματα από το αναπτυξιακό. Ως εξωτερική τροφοδοσία ορίζεται είτε μια μπαταρία, είτε μετασχηματιστής των 9Volt από 220V. Η μπαταρία μπορεί να συνδεθεί στις υποδοχές του Arduino Vin και GND, όπου τοποθετούνται ο θετικός πόλος και ο αρνητικός αντίστοιχα. Από την άλλη, αν τροφοδοτηθεί με μετασχηματιστή, απλά πρέπει να τοποθετηθεί το βύσμα στην υποδοχή που υπάρχει.

Η πλακέτα μπορεί να λειτουργήσει με εξωτερική πηγή από 6 έως 20 Volts. Αν ωστόσο τροφοδοτηθεί με λιγότερα από 7 Volt, το ενσωμετωμένο κύκλωμα σταθεροποίησης τάσης δεν θα καταφέρει να εξάγει τάση 5 Volts. Αντίθετα, αν δώσουμε πάνω από 12 Volts θα υπερθερμανθεί ο σταθεροποιητής τάσης της πλακέτας και ενδεχομένως να καταστραφεί. Συνεπώς, μια ιδανική τάση είναι τα 9 Volts.

Οι ακροδέκτες τροφοδοσίας είναι οι εξής:

  • VIN. Ακροδέκτης για μη σταθεροποιημένη τάση. Συνήθως εδώ συνδέεται μια εξωτερική πηγή τροφοδοσίας.
  • 5V. Ακροδέκτης σταθεροποιημένης τάσης 5Volt. Η ρυθμιζόμενη παροχή ηλεκτρικού ρεύματος που χρησιμοποιείται για την τροφοδοσία του μικροελεγκτή ή άλλων ηλεκτρονικών στοιχείων της πλακέτας. Αυτό μπορεί να προέρχεται είτε από Vin με ενσωματωμένο ρυθμιστή ή να παρέχεται από USB ή άλλη ρυθμιζόμενη παροχή 5V.
  • 3V3. Μέγιστη κατανάλωση ρεύματος είναι 50mA.
  • GND. Γειωμένες ακίδες

Το λογισμικό του Αrduino

Τα προγράμματα (“sketches” στη γλώσσα του Arduino) γράφονται στο περιβάλλον προγραμματισμού του Arduino με τη γλώσσα προγραμματισμού Wiring (C, C++).. Όταν ένα “sketch” είναι έτοιμο, πρέπει να μεταφερεί στον μικροεπεξεργαστή μέσω της USB θύρας.

Το περιβάλλον ανάπτυξης (IDE) του Arduino είναι μία πολυπλατφορμική εφαρμογή γραμμένη σε Java και αυτό το καθιστά μεταφέρσιμο στα περισσότερα λειτουργικά συστήματα. Το IDE του Arduino περιέχει έναν έξυπνο συντάκτη, μεταγλωττιστή της C/C++, τερματικό για σειριακή επικοινωνία με το Arduino, κ.α. Το IDE του Arduino χρησιμοποιεί εργαλεία GNU toolchain και AVR Libc για να παρέχει την μεταγλώττιση προγραμμάτων από C/C++ σε κατάλληλες AVR εντολές γλώσσας μηχανής, καθώς και το εργαλείο avrudude για την αποστολή του εκτελέσιμου προγράμματος στην Flash memory του Arduino.

Βασικές λειτουργίες του IDE είναι οι ακόλουθες:

  • Ο έλεγχος του κώδικα για λάθη.
  • Ο τερματισμός της σειριακής κονσόλας.
  • Η δημιουργία νέου έργου (sketch).
  • Η παρουσίαση μενού με όλα τα αποθηκευμένα έργα.
  • Η αποθήκευση του έργου.
  • Η μεταγλώττιση του κώδικα και το ανέβασμα του στο Arduino.
  • Η εμφάνιση της σειριακής κονσόλας.
  • Η αποστολή και λήψη δεδομένων μέσω της σειριακής θύρας.

Μπορείτε να κατεβάσετε δωρεάν την τελευταία έκδοση του Arduino-IDE από την ιστοσελίδα http://arduino.cc/en/Main/Software.

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

Εργαστηριακή άσκηση

  1. Να αναγνωρίσετε τα μέρη μιας πλακέτας Arduino.
  2. Να εγκαταστήσετε στον Η/Υ το λογισμικό και τους drivers του Arduino.
  3. Να περιηγηθείτε στο μενού του IDE του Arduino.
  4. Να συνδέσετε το Arduino στον Η/Υ και μέσω του IDE να το προγραμματίσετε με ένα οποιοδήποτε έτοιμο πρόγραμμα.

(c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ84

Αδειοδοτημένο υπό τους όρους Creative Commons Attribution Share Alike License 4.0