Saturday, October 8, 2011

Εισαγωγή στο Arduino

arduino (1)
Αν δεν διαβάσατε τον εικονογραφημένο οδηγό που είχα βρει στα αγγλικά τότε ίσως πρέπει να γράψω δυο λόγια παραπάνω για το arduino. Αποτελείται από έναν μικροεπεξεργαστή (της atmel) ο οποίος μπορεί να προγραμματιστεί από τον υπολογιστή εύκολα και διαθέτει μια σειρά από εξόδους και εισόδους. Για παράδειγμα μπορούμε να βάλουμε στην έξοδο 12 ένα LED και να προγραμματίσουμε το arduino να το αναβοσβήνει ανά 5 δευτερόλεπτα.

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

 Ξεκινάμε από δύο πολύ απλά παραδείγματα που βρίσκονται στο arduino.cc
για να καταλάβει κανείς ευκολότερα τη μπορεί να κάνει.

Τα βασικά πράγματα που χρειάζεται κανείς για να δουλέψει με ένα arduino είναι προφανώς το ίδιο το arduino που πωλείται από 20ε κα πάνω και ένα breadboard (εικ. 2).

breadboard (2)
Δηλαδή μια πλακέτα με σειρές από τρύπες-επαφές όπου φτιάχνεις ένα κύκλωμα συνδέοντας τα στοιχεία με καλώδια, χωρίς κολλητήρια και λοιπά.
Επίσης πρέπει να κατεβάσετε το πρόγραμμα για τον υπολογιστή μέσω του οποίου θα προγραμματίσουμε το arduino, από εδώ.



Παράδειγμα 1: LED που αναβοσβήνει

Υλικά: 1 LED, 1 αντίσταση 10Κ, καλώδια

κύκλωμα (3)
Συνδεσμολογία:

Όπως φαίνεται και από την εικόνα δίπλα (3) βάζουμε το ένα ποδαράκι του LED στη γείωση που συμβολίζεται με το GND και στο δίπλα (13) το άλλο ποδαράκι με την αντίσταση σε σειρά. Μπορεί να γίνει και χωρίς την αντίσταση, αλλά μειώνεται η ζωή του LED.

Στην εικόνα 4 φαίνεται η συνδεσμολογία πάνω στο breadboard.


κύκλωμα στο breadboard (4)
Πρόγραμμα:

 Ανοίγουμε το πρόγραμμα γιατο arduino και το συνδέουμε στο pc. Κάνουμε Copy+Paste τον κώδικα παρακάτω και μετά αφού βεβαιοθούμε ότι δεν έχει συντακτικά λάθη κάνοντας Verify (το κουμπάκι play εικ. 5). Φορτώνουμε τον κώδικα στο arduino με το Upload (κουμπάκι προς τα δεξιά εικ.6 ).

verify (5)
upload (6)

Κώδικας:

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */

void setup() {                
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  pinMode(13, OUTPUT);     
}

void loop() {
  digitalWrite(13, HIGH);   // set the LED on
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(1000);              // wait for a second
}

  • Παρατηρούμε ότι το πρόγραμμα αρχίζει με σχόλια, σχόλια είναι ότι περιέχεται μεταξύ των  " /* "  " */ " .
  • Μετά έχουμε τη βασική συνάρτηση void setup() με την οποία μπαίνουμε στον γενικό βρόχο.
  • Επίσης παρατηρούμε σχόλια της μίας γραμμής τα οποία ορίζονται με " // ".
  • Στη συνέχεια ορίζουμε εάν το 13 θα είναι για είσοδο (INPUT) ή για έξοδο (OUTPUT) με την εντολή pinMode( 'αριθμός επαφής' , 'κατάσταση').
  • Η συνάρτηση void loop() βάζει το πρόγραμμα σε έναν βρόχο (κύκλο) όπου εκτελεί ότι βρίσκεται μέσα στα άγκιστρα { } μέχρι να ικανοποιηθεί μία συνθήκη. Στην περίπτωσή μας είναι ατέρμων, δηλαδή δεν θα βγει ποτέ από το βρόχο :) απλά θα το αποσυνδέσουμε ή θα το επαναπρογραμματίσουμε.
  •  Μέσα στα άγκιστρα έχουμε δύο διαφορετικές εντολές, την digitalWrite( 'αριθμός υποδοχής' , 'κατάσταση') όπου ορίζουμε σε ποιά κατάσταση θα βρίσκεται η συγκεκριμένη υποδοχή-pin. Οι καταστάσεις είναι δύο, δηλαδή είτε LOW που στην περίπτωσή μας σημαίνει ότι δεν περνάει ρεύμα, είτε HIGH που σημαίνει ότι περνάει.
  • Η άλλη εντολή είναι η delay( 'χρόνος σε χιλιοστά του δευτερολέπτου') όπου καθυστερεί την  συνέχεια του προγράμματος για ορισμένο χρόνο.
Άρα συνοπτικά αυτό που κάνουμε είναι να ορίσουμε το pin 13 σαν έξοδο, επειδή έχουμε συνδέσει το LED το οποίο αποτελεί φωτεινή ένδειξη. Και μετά ανά 1 δευτερόλεπτο το ανοιγοκλείνουμε.

Αυτά προς το παρόν, θα συνεχίσω με αρκετά παραδείγματα για το arduino άμεσα.

PS: Νομίζω οι οδηγίες είναι πάρα πολύ απλές, ελπίζω να φανούν σε κάποιον χρήσιμες, γιατί μάλλον θα είναι πολύ αναλυτικές για κάποιον που το έχει ψάξει.

                                                                                                                      Επόμενο παράδειγμα >>                                                        


No comments:

Post a Comment