Εγκατάσταση Arduino IDE
Για να αναπτύξουμε τον κώδικα μιας εφαρμογής που να τρέχει σε μια πλακέτα Arduino, χρησιμοποιούμε την εφαρμογή Arduino IDE του προσωπικού υπολογιστή μας. Για να εγκαταστήσουμε το περιβάλλον Arduino IDE στον προσωπικό υπολογιστή μας, πρώτα πλοηγούμαστε στον ιστότοπο του Arduino εκείνο με διεύθυνση www.arduinο.cc Από την εμφανιζόμενη ιστοσελίδα, βρίσκουμε το κατάλληλο λογισμικό, που αφού το κατεβάσουμε το κάνουμε εγκατάσταση. Μετά την εγκατάσταση ανοίγουμε το περιβάλλον του Arduino IDE μέσα από το οποίο αναπτύσσουμε τον κώδικα της εφαρμογής για τη πλακέτα Arduino που έχουμε.
Γνωριμία με το Arduino IDE
Όπως φαίνεται στην ακόλουθη εικόνα, το Arduino IDE είναι όμοιο με ένα επεξεργαστή κειμένου αλλά με επιπρόσθετες δυνατότητες για την παραγωγή του κώδικα της εφαρμογή μας. Μπορούμε να γράφουμε τον κώδικα στην περιοχή κειμένου, να τον επικυρώνουμε και τελικά να τον ανεβάζουμε στην μνήμη προγράμματος του μικροελεγκτή, με την βοήθεια ενός μικρού προγράμματος (bootloader) που ήδη υπάρχει στη μνήμη flash του Arduino. Μόλις ολοκληρωθεί το ανέβασμα ο κώδικας τρέχει αυτόματα. Αυτή η διαδικασία προϋποθέτει ότι έχουμε δηλώσει στο περιβάλλον IDE τον τύπο Arduino που χρησιμοποιούμε και τη θύρα επικοινωνίας στο οποίο είναι διασυνδεμένη η πλακέτα Arduino.
Το περιβάλλον IDE χωρίζεται σε τρεις κύριες περιοχές: 1] περιοχή εντολών 2] εισαγωγή κειμένου 3] περιοχή μηνυμάτων
Περιοχή εντολών όπως φαίνεται στο σχήμα, περιλαμβάνει την μπάρα τίτλου, τα στοιχεία μενού και τα εικονίδια εντολών. Η μπάρα τίτλου απεικονίζει το όνομα του κώδικα, όπως επίσης τον αριθμό έκδοσης του IDE. Κάτω από την μπάρα τίτλου είναι μια σειρά από επιλογές μενού (Αρχείο, Επεξεργασία, Σχέδιο, Εργαλεία και βοήθεια). Ακριβώς από κάτω βρίσκονται τα εικονίδια εντολών.
Η περιοχή κειμένου εμφανίζεται στο μέσο του παραθύρου της εφαρμογής IDE. Σε αυτή την περιοχή γράφουμε τον κώδικά που θέλουμε να ανεβάσουμε στο Arduino. Το όνομα του κώδικα που γράφουμε εμφανίζεται στην μπάρα στην κορυφή του παραθύρου της εφαρμογής IDE. Το πρόγραμμα που γράφουμε στην περιοχή κειμένου, το γράφουμε όπως σε οποιοδήποτε επεξεργαστή κειμένου.
Η περιοχή μηνυμάτων Το παράθυρο μηνυμάτων, εμφανίζεται στο κάτω μέρος της εφαρμογής IDE και είναι αυτό που εμφανίζεται στην μαύρη περιοχή. Τα μηνύματα που εμφανίζονται είναι διάφορων τύπων. Αυτά περικλείουν τα μηνύματα λαθών, επικύρωσης, μηνύματα κατάστασης κ.ά.
Οι επιλογές μενού
Κάνοντας κλικ πάνω σε ένα στοιχείο μενού, εμφανίζονται διάφορες επιλογές, όπως περιγράφονται παρακάτω:
Αρχείο περιέχει επιλογές για την αποθήκευση, φόρτωση ή την εκτύπωση του κώδικα Arduino ή την φόρτωση ενσωματωμένων παραδειγμάτων κώδικα.
Επεξεργασία περιέχει τις συνηθισμένες εντολές της αντιγραφής, επικόλλησης και διαγραφής όπως υπάρχουν σε κάθε επεξεργαστή κειμένου.
Σχέδιο περιέχει συναρτήσεις που ελέγχουν τον κώδικα που γράφουμε καθώς επίσης και την επιλογή για φόρτωση του κώδικα στο Arduino.
Εργαλεία περιέχει μια ποικιλία από συναρτήσεις και εντολές, όπως την επιλογή του τύπου Arduino που χρησιμοποιούμε και την USB πόρτα στην οποία το Arduino είναι συνδεμένο με το PC καθώς επίσης από εδώ μπορούμε να ανοίγουμε το Serial Monitor.
Βοήθεια περιέχει συνδέσμους που οδηγούν σε ποικιλία βοηθητικών κειμένων, καθώς επίσης την απεικόνιση της έκδοσης του IDE.
Τα εικονίδια εντολών
Κάτω από το μενού με τις εντολές υπάρχουν έξι εικονίδια. Όταν τα δείξουμε με την άκρη του ποντικιού, εμφανίζονται τα ονόματα τους. Τα εικονίδια από αριστερά προς τα δεξιά είναι τα ακόλουθα:
Επικύρωση κάνουμε κλικ σε αυτό το εικονίδιο για να δούμε αν ο κώδικας είναι έγκυρος για ανέβασμα και δεν περιέχει προγραμματιστικά λάθη.
Ανέβασμα κάνουμε κλικ σε αυτό το εικονίδιο για να επικυρώσουμε τον κώδικα και στην συνέχεια να τον ανεβάσουμε στην πλακέτα Arduino.
Δημιουργία: κάνουμε κλικ σε αυτό το εικονίδιο για να δημιουργήσουμε ένα καινούργιο αρχείο κώδικα σε νέο παράθυρο.
Άνοιγμα: κάνουμε κλικ σε αυτό το εικονίδιο για να ανοίξουμε ένα ήδη αποθηκευμένο αρχείο κώδικα.
Αποθήκευση: κάνουμε κλικ σε αυτό το εικονίδιο για να αποθηκεύσουμε ένα ήδη ανοικτό αρχείο κώδικα. Αν το αρχείο κώδικα δεν έχει όνομα θα ζητηθεί να του δώσουμε όνομα.
Σειριακό Μόνιτορ: κάνουμε κλικ σε αυτό το εικονίδιο για να ανοίξουμε ένα παράθυρο στο PC από το οποίο στέλνουμε ή λαμβάνουμε δεδομένα μεταξύ του Arduino και του περιβάλλοντος IDE. Στην κάτω δεξιά πλευρά του παραθύρου του εμφανίζονται επιλογές για την λειτουργία του σειριακού μόνιτορ.
Ο πρώτος σας κώδικας στο Arduino IDE:
Στην συνέχεια θα γράψουμε τον κώδικα που θα κάνει το LED που βρίσκεται ενσωματωμένο στην πλακέτα Arduino και συνδεδεμένο στον ακροδέκτη 13 να αναβοσβήνει περιοδικά.
Συνδέουμε το Arduino στην πόρτα USB του προσωπικού υπολογιστή μας. Επιλέγουμε την σωστή πλακέτα στο περιβάλλον IDE επιλέγοντας από την επιλογή μενού: Εργαλεία > Πλακέτα και στη συνέχεια επιλέγουμε την σωστή θύρα με την επιλογή μενού: Εργαλεία > Θύρα. Σαν αρχή ανεβάζουμε τον ακόλουθο κώδικα και μετά θα εξηγήσουμε πως δουλεύει.
/*
Arduino Blink LED sketch
by Yiannis Plevritakis
*/
void setup()
{
pinMode(13, OUTPUT); set dogital pin 13 aw output.
}
void loop()
{
digitWrite(13, HIGH); // turn on digital pin 13
delay(1000); //pause for one second
digitalWrite(13, LOW); // turn off digital pin 13
delay(1000); //pause for one second
}
Πριν το τρέξουμε θα χρειαστεί (θα μας ζητηθεί) να το αποθηκεύσουμε: Αρχείο > Αποθήκευση ως… Εισάγουμε ένα όνομα για τον κώδικα και μετά κάνουμε κλικ στο ΟK.
Για να δούμε αν έχουμε κάνει λάθη ή όχι, κάνουμε κλικ στο εικονίδιο “επικύρωση”. Αν δεν βγάλει μήνυμα λάθους μπορούμε να πατήσουμε το εικονίδιο “ανέβασμα” για να ανεβάσουμε τον κώδικα στο Arduino. Αν δεν μπορεί να ανέβει ο κώδικας,τσεκάρουμε από την Εργαλεία>Πλακέτα, ότι έχουμε επιλέξει την σωστή πακέτα και από την επιλογή θύρα>COM1 έχουμε επιλέξει τη σωστή θύρα σύνδεσης.
Ας δούμε πως δουλεύει ο κώδικας – εισαγωγή σχολίων
Τα σχόλια είναι κείμενο που προσθέτουν σημειώσεις ή επεξήγηση πάνω στο κώδικα που γράφουμε. Μόλις το IDE συναντήσει σχόλια στον κώδικα απλά τα αγνοεί.
Για να προσθέσουμε σχόλια στο πρόγραμμα απλά εισάγουμε διπλή πλάγια κάθετο στην αρχή της γραμμής σχολίων. Με αυτό τον τρόπο, το IDE αγνοεί τη γραμμή κειμένου από τη διπλή κάθετο ως το τέλος της γραμμής.
Παράδειγμα: pinMode(13, OUTPUT); // set digital pin 13 as output.
Για να εισάγουμε σχόλια που περιλαμβάνουν κείμενο περισσότερο της μιας γραμμής, εισάγουμε τους χαρακτήρες /* στην αρχή του σχολείου και στο τέλος των σχολίων τοποθετούμε τους χαρακτήρες */
/*
Arduino Blink LED sketch
by Yiannis created 25/6/20
*/
Συναρτήσεις που αποτελείται ένα sketch Arduino.
Ο κάθε κώδικας που γράφουμε για το Arduino βασικά αποτελείται από δυο συναρτήσεις τις εξής: void setup() { … } και την void loop() { … }. Στην συνάρτηση setup() οι εντολές μέσα στο μπλοκ εκτελούνται μια φορά, ενώ στη συνάρτηση loop() οι εντολές μέσα στο μπλοκ εκτελούνται επαναλαμβανόμενα ξανά και ξανά.
Στο μπλοκ κώδικα:
void setup()
{
pinMode(13, OUTPUT); // set dogital pin 13 as output.
}
Η εντολή: pinMode(13, OUTPUT); θέτει το αναφερόμενο πιν Ι/Ο σε κατάσταση εισόδου ή εξόδου. Είναι μια συνάρτηση ενσωματωμένη στο περιβάλλον IDE, η οποία παίρνει δυο ορίσματα: το πρώτο είναι ο αναφερόμενος αριθμός του πιν και το δεύτερο είναι η σταθερά INPUT ή OUTPUT. Με την τιμή INPUT το πιν διαμορφώνεται σαν είσοδος ενώ με την τιμή OUTPUT διαμορφώνεται σαν έξοδος. Στο δικό μας παράδειγμα κώδικα, ο ακροδέκτης 13 διαμορφώνεται σαν έξοδος.
Σημείωση: στο τέλος μιας εντολής, είναι υποχρεωτική η εισαγωγή ενός ελληνικού ερωτηματικού. Δεν πρέπει να ξεχνάμε ότι κάθε εντολή σε ένα κώδικα Arduino τελειώνει με ένα ελληνικό ερωτηματικό.
Το μπλοκ εντολών στο εσωτερικό της συνάρτησης void loop(){ } επαναλαμβάνεται ξανά και ξανά:
void loop()
{
digitWrite(13, HIGH); // turn on digital pin 13
delay(1000); //pause for one second
digitalWrite(13, LOW); // turn off digital pin 13
delay(1000); //pause for one second
}
Η συνάρτηση: digitalWrite(13, HIGH); παίρνει δυο ορίσματα, τον αναφερόμενο αριθμό του πιν, και το δεύτερο την σταθερά LOW ή HIGH. Με την τιμή LOW τίθεται το αναφερόμενο πιν σε κατάσταση 0V ενώ με την τιμή HIGH τίθεται το πιν σε κατάσταση 5V. Στο παράδειγμα μας ο ακροδέκτης 13 τίθεται σε λογικό HIGH (δηλ. 5V)με αποτέλεσμα να ανάψει το LED του Arduino που είναι εσωτερικά συνδεμένο με το πίν 13.
Η συνάρτηση: delay(1000); προκαλεί παύση ίση με 1000ms = 1s. Δηλαδή έχουμε παύση σε ms τόσα όσα είναι το όρισμα της συνάρτησης delay(…) .
Η συνάρτηση: digitalWrite(13, LOW); σβήνει το εσωτερικό LED. Μετά ακολουθεί μια παύση ίση με 1000ms με την εντολή: delay(1000);
Αυτό το μπλοκ κώδικα στον επαναλαμβανόμενο βρόγχο loop() εκτελείται κατ’ επανάληψη που έχει σαν αποτέλεσμα το LED να αναβοσβήνει.
Επικύρωση του κώδικα σας
Πριν προχωρήσουμε στην επικύρωση του κώδικα μας, ελέγχουμε αν όλα όσα γράψαμε είναι σύμφωνα όπως το Arduino καταλαβαίνει. Για να επικυρώσουμε το πρόγραμμα μας κάνουμε κλικ στο εικονίδιο της επικύρωσης και περιμένουμε για λίγο.
Κατά τη διάρκεια της επικύρωσης παρατηρούμε το παράθυρο μηνυμάτων. Αν εμφανιστεί το μήνυμα: “Ολοκλήρωση μεταγλώττισης” αυτό σημαίνει ότι ο κώδικας είναι επικυρωμένος και είναι έτοιμος να φορτωθεί στο Arduino. Πολλές φορές στον κώδικα Arduino που γράφουμε εμφανίζονται λάθη με αποτέλεσμα να βγαίνουν «κόκκινα μηνύματα» στο παράθυρο μηνυμάτων.
Όμως τι γίνεται αν υπάρχει προγραμματιστικό λάθος στον κώδικα; Για παράδειγμα αν αφαιρέσουμε το ελληνικό ερωτηματικό πριν από την τελευταία αγκύλη, τότε κατά την επικύρωση θα εμφανιστεί μήνυμα λάθους στην περιοχή μηνυμάτων και συγκεκριμένα το εξής: “expected ‘;’ before ‘}’ token”. Το μήνυμα λάθους περιγράφει το πρόβλημα και δίνει μια εκτίμηση για το που βρίσκεται.
Για να ανέβει στο Arduino ο κώδικας πρέπει να είναι επικυρωμένος. Συγκεκριμένα, κάνοντας κλικ στο εικονίδιο «επικύρωση» και όταν δεν υπάρχουν λάθη, θα εμφανιστεί μήνυμα άσπρου χρώματος στο παράθυρο μηνυμάτων. Αν δεν είναι επικυρωμένος ο κώδικας σημαίνει ότι υπάρχουν προγραμματιστικά λάθη, που περιγράφονται στην περιοχή μηνυμάτων με κόκκινο χρώμα.
Ανέβασμα του κώδικα σας στη πλακέτα Arduino
Μετά που καταφέρουμε να επικυρώσουμε τον κώδικα και αφού πρώτα τον αποθηκεύσουμε, μπορούμε να τον ανεβάσουμε στη πλακέτα Arduino κάνοντας κλίκ στο εικονίδιο “ανέβασμα” ή από την επιλογή μενού: Σχέδιο > Ανέβασμα. Μάλιστα το IDE επικυρώνει ξανά τον κώδικα μας και μετά τον ανεβάζει στο Arduino που είναι συνδεμένο στην θήρα USB. Ελέγχουμε από το μενού: Εργαλεία > Πλακέτα αν είναι επιλεγμένος ο σωστός τύπος Arduino και από το μενού Εργαλεία > Θύρα αν το Arduino είναι συνδεμένο στη σωστή θύρα.
Αν ο κώδικας μας καταφέρει να ανέβει στο Arduino, δεν σημαίνει ότι ο κώδικας μας δεν έχει λάθη. Για παράδειγμα, αν σε ένα ακροδέκτη π.χ. πιν 10 έχουμε συνδέσει μια πηγή τάσης 5V και με τον κώδικα μας κατά λάθος κάνουνε αυτό τον ακροδέκτη σαν έξοδο 0V π.χ. με την εντολή digitalWrite(10, LOW); η οποία είναι προγραμματιστικά σωστή τότε θα έχουμε βραχυκύκλωμα με την καταστροφή αυτού του πιν.