Θα προσπαθήσουμε σήμερα να κατασκευάσουμε και να προγραμματίσουμε ένα χριστουγεννιάτικο στολίδι! Ίσως είναι λίγο νωρίς ακόμα για τα Χριστούγεννα αλλά καλύτερα να το έχουμε έτοιμο από τώρα, παρά να τρέχουμε την τελευταία στιγμή!
Το τελικό αποτέλεσμα που θέλουμε να πετύχουμε είναι το εξής: Όταν ο άγιος Βασίλης μας βλέπει να πλησιάζουμε θα μας χαιρετάει κουνώντας το χέρι του, θα μας παίζει τα Jigle Bells, και θα μας δείχνει Χριστουγεννιάτικες εικόνες στην οθόνη του!
Ας ξεκινήσουμε με τα βασικά! Αρχικά θα στήσουμε την κατασκευή μας όπως φαίνεται παρακάτω στο τρισδιάστατο μοντέλο.
Σύνδεση breadboard
Ένα νέο συστατικό που θα χρησιμοποιήσουμε σήμερα για την δημιουργία των κυκλωμάτων μας είναι το Breadboard το οποίο θα μας επιτρέπει να συνδέσουμε πολλές μονάδες στο Arduino χωρίς να ανησυχούμε για τον αριθμό των υποδοχών 5V και γείωσης. Μπορείτε να δείτε περισσότερα για τα Breadboard στο αντίστοιχο εργαστήριο.
Αρχικά θα συνδέσουμε το breadboard με το Arduino όπως φαίνεται στην παρακάτω εικόνα.
- Από την γείωση του Arduino (GND) θα φέρουμε ένα μαύρο καλώδιο στην μπλε γραμμή (-) του breadboard
- Από τα 5V του Arduino θα φέρουμε ένα κόκκινο καλώδιο στην κόκκινη γραμμή (+) του breadboard
Σύνδεση κινητήρα servo
Ο κινητήρας servo θα δίνει τη δυνατότητα στον Άγιο Βασίλη να κουνάει το χέρι του. Μπορείτε να δείτε περισσότερα για του κινητήρες servo και όχι μόνο στο αντίστοιχο εργαστήριο. Η σύνδεση γίνεται όπως φαίνεται στην παρακάτω εικόνα:
- Το καφέ καλώδιο του κινητήρα συνδέεται με την γείωση του breadboard (μπλε γραμμή)
- Το κόκκινο καλώδιο του κινητήρα συνδέεται με τα 5V του breadboard (κόκκινη γραμμή)
- Το πορτοκαλί καλώδιο του κινητήρα θα το συνδέσουμε με την υποδοχή 9 του Arduino
Αφού συνδέσουμε το Arduino με τον κινητήρα, συνδέουμε το Arduino με τον υπολογιστή με το καλώδιο USB και ανοίγουμε το Pictoblox. Εκεί από το μενού board επιλέγουμε το Arduino Uno και επιλέγουμε την θύρα USB που αναφέρει τα στοιχεία της πλακέτας (wch.cn)
Σήμερα θα φορτώσουμε το πρόγραμμα μας στο Arduino έτσι ώστε να εκτελείται ακόμα και όταν κλείσουμε το Pictoblox. Για αυτό τον λόγο θα επιλέγουμε την κατάσταση Upload και όχι Stage όπως φαίνεται στην παρακάτω εικόνα.
Για να δοκιμάσουμε την λειτουργία του κινητήρα θα προσπαθήσουμε να κάνουμε ένα πρόγραμμα για να χαιρετάει. Θα πρέπει να διορθώσουμε τις μοίρες στις οποίες κάνει στάση ο κινητήρας ώστε να ταιριάζει με την κατασκευή μας.
Κάνουμε διαρκώς δοκιμές αλλάζοντας τις μοίρες ώστε από μπροστά να φαίνεται το χέρι να αλλάζει μεταξύ των δυο παρακάτω θέσεων.
Κάθε φορά για να φορτώσουμε το πρόγραμμα μας πατάμε το πλήκτρο Upload Code και παρατηρούμε την συμπεριφορά της κατασκευής.
Σύνδεση αισθητήρα απόστασης
Ο αισθητήρας απόστασης υπερήχων μπορεί να εντοπίσει αν κάποιο εμπόδιο βρίσκεται μπροστά του και μάλιστα σε τι απόσταση. Για να μάθετε περισσότερα για τους αισθητήρες απόστασης υπερήχων ελέγξτε το αντίστοιχο εργαστήριο.
Συνδέουμε τον αισθητήρα στο Arduino και το breadboard όπως φαίνεται παρακάτω:
- Συνδέουμε την γείωση του αισθητήρα με την μπλε γραμμή (-) του breadboard
- Συνδέουμε το VCC του αισθητήρα με την κόκκινη γραμμή (-) του breadboard
- Συνδέουμε το Trig του αισθητήρα με την υποδοχή 10 του Arduino
- Συνδέουμε το Echo του αισθητήρα με την υποδοχή 11 του Arduino
Τώρα θα τροποποιήσουμε το πρόγραμμα μας έτσι ώστε αν ο αισθητήρας αντιληφθεί εμπόδιο μπροστά του, πιο κοντά από τα 20 εκατοστά, τότε να κουνάει 4 φορές το χέρι του. Το πρόγραμμα μας θα πρέπει να μοιάζει με την παρακάτω εικόνα. Μην ξεχάσετε ότι θα πρέπει κάθε φορά που κάνετε αλλαγές να το φορτώνεται στο Arduino με το Upload Code.
Σύνδεση οθόνης Matrix
Η οθόνη dot matrix που έχουμε διαθέτει 64 λαμπάκια τα οποία βρίσκονται σε μορφή τετραγώνου με 8 σειρές και 8 στήλες. Η σύνδεση της οθόνης με το Arduino και το bread board γίνεται όπως φαίνεται παρακάτω. Αρχικά μπορούμε να “καρφώσουμε” την οθόνη στο breadboard για να κάθεται όρθια και μετά να κάνουμε τις συνδέσεις:
- Συνδέουμε την γείωση (GND) της οθόνης με την μπλε γραμμή (-) του Arduino
- Συνδέουμε το VCC της οθόνης με την κόκκινη γραμμή (+) του Arduino
- Συνδέσουμε το DIN της οθόνης με την υποδοχή 4 του Arduino
- Συνδέσουμε το CS της οθόνης με την υποδοχή 5 του Arduino
- Συνδέσουμε το CLK της οθόνης με την υποδοχή 6 του Arduino
Για να μπορέσουμε να χρησιμοποιήσουμε την οθόνη θα χρειαστεί να προσθέσουμε το αντίστοιχο πρόσθετο στο Pictoblox.
Τώρα θα χρειαστεί στο πρόγραμμα μας να προσθέσουμε αρχικά την εντολή που θα κάνει αρχικοποίηση της οθόνης
Μετά μπορούμε να χρησιμοποιήσουμε την εντολή η οποία εμφανίζει εικόνες ανάβοντας τα κατάλληλα λαμπάκια σε όποιο σημείο του προγράμματος επιθυμούμε.
Σύνδεση ηχείου
Το ηχείο έχει δυο ποδαράκια, ένα μακρύ και ένα κοντό. Στο κοντό συνδέουμε την γείωση, δηλαδή την μπλε γραμμή του breadboard (-) ενώ στο μακρύ συνδέουμε την υποδοχή 3 του Arduino.
Τώρα μπορούμε να παίξουμε νότες με την εντολή Play tone η οποία παίρνει τρεις παραμέτρους: Την υποδοχή του Arduino στην οποία είναι συνδεδεμένο το ηχείο, τη νότα που θέλουμε να παίξει και την διάρκεια της. Επίσης θα πρέπει να προσθέτουμε και μία καθυστέρηση μετά από κάθε εντολή νότας ώστε να προλαβαίνει να ολοκληρωθεί πριν ξεκινήσει η επόμενη εντολή.
Για να φτιάξουμε ένα τραγούδι θα χρειαστούμε πολλές νότες και πολλές παύσεις. Μπορούμε να δημιουργήσουμε μια νέα εντολή στο Pictoblox που θα την ονομάσουμε jingle bells.
Τώρα μπορούμε να ορίσουμε τις νότες και τις παύσεις του τραγουδιού μας σε αυτή την εντολή όπως φαίνεται στην παρακάτω εικόνα.
Η μελωδία για το τραγούδι Jingle bells είναι η εξής:
- E4 με διάρκεια 1/4 και παύση 0.25
- E4 με διάρκεια 1/4 και παύση 0.25
- E4 με διάρκεια 1/2 και παύση 0.5
- E4 με διάρκεια 1/4 και παύση 0.25
- E4 με διάρκεια 1/4 και παύση 0.25
- E4 με διάρκεια 1/2 και παύση 0.5
- E4 με διάρκεια 1/4 και παύση 0.25
- G4 με διάρκεια 1/4 και παύση 0.25
- C4 με διάρκεια 1/4 και παύση 0.25
- D4 με διάρκεια 1/4 και παύση 0.25
- E4 με διάρκεια 1/2 και παύση 0.5
- Μια επιπλέον παύση μισό δευτερόλεπτο
- F4 με διάρκεια 1/4 και παύση 0.25
- F4 με διάρκεια 1/4 και παύση 0.25
- F4 με διάρκεια 1/4 και παύση 0.25
- F4 με διάρκεια 1/4 και παύση 0.25
- F4 με διάρκεια 1/4 και παύση 0.25
- E4 με διάρκεια 1/4 και παύση 0.25
- E4 με διάρκεια 1/4 και παύση 0.25
- E4 με διάρκεια 1/4 και παύση 0.25
- E4 με διάρκεια 1/4 και παύση 0.25
- D4 με διάρκεια 1/4 και παύση 0.25
- D4 με διάρκεια 1/4 και παύση 0.25
- E4 με διάρκεια 1/4 και παύση 0.25
- D4 με διάρκεια 1/2 και παύση 0.5
- G4 με διάρκεια 1/2 και παύση 0.5
Στο τέλος μπορείτε να προσθέσετε την εντολή Jingle bells στο πρόγραμμα σας σε όποιο σημείο θέλετε.
Το τελικό πρόγραμμα
Το τελικό μας πρόγραμμα λοιπόν θα λειτουργεί περίπου ως εξής:
- Όσο ο Άγιος Βασίλης δεν βλέπει μπροστά του κάποιο εμπόδιο τότε θα παραμένει ήσυχος και δεν θα κάνει κάτι.
- Μόλις δει κάτι μπροστά του στα 20 με 30 εκατοστά (εσείς επιλέγετε την απόσταση) τότε θα κάνει τα εξής:
- Θα ανάβει την οθόνη δείχνοντας μας μια Χριστουγεννιάτικη εικόνα
- Θα μας κουνάει το χέρι 3-4 φορές
- Θα παίζει το τραγούδι Jingle Bells
Επίσης επειδή θα θέλουμε τις παραπάνω εντολές να τις εκτελεί συνέχεια θα τις βάλουμε μέσα σε μια επανάληψη “Για πάντα”.
Προσπαθήστε να ολοκληρώσετε το πρόγραμμα σας με τις παραπάνω συμβουλές και οδηγίες.
Ολοκλήρωση κατασκευής
Κάθε ομάδα διαθέτει 4 κομμάτια από μαύρο μακετόχαρτο. Το ένα από αυτά είναι πιο μεγάλο με διαστάσεις 20Χ13 εκατοστά, ενώ τα άλλα 3 έχουν διαστάσεις 10Χ13 εκατοστά. Παρατηρήστε τις εικόνες που υπάρχουν παρακάτω και προσπαθήστε να ολοκληρώσετε τους τοίχους της κατασκευής χρησιμοποιώντας καρφίτσες για να ενώσετε τα κομμάτια.
Αφού στερεώσετε καλά τα μαύρα μακετόχαρτα, ήρθε η ώρα για διακόσμιση. Χρησιμοποιήστε τα πολύχρωμα χαρτονάκια που έχετε σε κάθε ομάδα για να σχεδιάσετε και να κόψετε αστέρια, δέντρα και ότι άλλα χριστουγεννιάτικα σχήματα θέλετε, και κολλήστε τα πάνω στην κατασκευή όπως φαίνεται στην παρακάτω εικόνα.
Αφού είμαστε ικανοποιημένοι με το αποτέλεσμα και τον προγραμματισμό ήρθε η ώρα να προσθέσουμε και την μπαταρία μας ώστε η συσκευή να λειτουργεί αυτόνομα χωρίς να χρειάζεται υπολογιστή. Πολύ προσοχή! Πριν συνδέσουμε την μπαταρία αποσυνδέουμε πρώτα το καλώδιο USB! Επίσης αν θέλουμε να προγραμματίσουμε πάλι την συσκευή, πρώτα θα αποσυνδέσουμε την μπαταρία και μετά θα συνδέσουμε το καλώδιο USB!