Σ' αυτό το άρθρο θα σας παρουσιάσω την κατασκευή ενός απλού συστήματος συναγερμού με το arduino. Πρόκειται για μια χειροποίητη κατασκευή πάνω σε διάτρητη πλακέτα. Στη πλακέτα υπάρχει ο μικροελεγκτής ATMEGA 328P και μια κάρτα micro SD, στην οποία είναι αποθηκευμένοι οι ήχοι σε μορφή PCM. Η διέγερση γίνεται με την παρουσία τάσης 220V σε μία είσοδο της πλακέτας. Αυτή μπορεί να συνδεθεί κατευθείαν στην λάμπα ενός προβολέα με αισθητήρα P.I.R. Έτσι μόλις ο προβολέας ανάψει, από τα ηχεία θα ακουστεί ο ήχος π.χ. ενός σκύλου που γαβγίζει.
Οι ήχοι είναι αποθηκευμένοι στην κάρτα μνήμης micro SD και αναπαράγονται με τις βιβλιοθήκες SD και TMRPCM . Ακολουθεί το θεωρητικό κύκλωμα :
Αριστερά υπάρχει ένα head 2x3 όπου συνδέεται ο level shifter της σειριακής θύρας. Μπορεί να είναι ένα MAX232, FDDI FT232 για USB ή το κύκλωμα με τα transistors που έχω δημοσιεύσει σε προηγούμενο άρθρο. Όταν συνδέουμε το καλώδιο μπορούμε να προγραμματίσουμε το firmware από το περιβάλλον του arduino. Ο ηλεκτρολυτικός πυκνωτής 1μF έχει αντικατασταθεί από έναν 47nF, σε επόμενες εκδόσεις της συσκευής, γιατί λειτουργεί καλύτερα το autoreset με την έκδοση 1.6 και πάνω του IDE. Στη πόρτα B συνδέεται η κάρτα micro SD. Οι κάρτες αυτές λειτουργούν στα 3,3V και όχι στα 5V που λειτουργεί ο ATMEGA. Γι' αυτό, στις εξόδους του AVR που συνδέονται στα σήματα CS, MOSI, SCK της SD, παρεμβάλουμε level shifters με διαιρέτες τάσης. Η κάρτα SD τροφοδοτείται με 3V3 μέσω δύο διόδων πυριτίου σε σειρά. (Η κάθε μια κάνει πτώση τάσης 0,65V. Άρα 5 - 1,3 = 3,6~3,7V). Αν χρησιμοποιήσετε έτοιμη κάρτα Duemilanove ή UNO, μπορείτε να πάρετε κατευθείαν τα 3,3V από το pin 5 του head Power.
Στην έξοδο PB1, η οποία είναι PWM (pin9 του Arduino), βγαίνει ο ήχος ο οποίος περνάει από ένα παθητικό low pass φίλτρο.
Τέλος ο optocoupler PC702 ή κάποιος αντίστοιχος, απομονώνει την τάση δικτύου 220V από το κύκλωμά μας.
Η πλακέτα μαζί με ένα έτοιμο παλμοτροφοδοτικό 9-12V DC, τοποθετείται σε ένα αδιάβροχο ηλεκτρολογικό κουτί, ώστε να τοποθετηθεί σε εξωτερικούς χώρους.
Και βέβαια εδώ θα δούμε τον κώδικα τον οποίο γράφουμε στην μνήμη Flash του AVR. Αποτελείται από δύο αρχεία : Το dog.ino το οποίο περιέχει τον κυρίως κώδικα και το functions.ino το οποίο έχει μερικές απλές συναρτήσεις χρήσιμες για το κυρίως πρόγραμμα. Επίσης πρέπει να χρησιμοποιηθούν και οι βιβλιοθήκες SimpleTimer και Button οι οποίες υπάρχουν στο τελικό αρχείο zip. Το συνολικό μέγεθος είναι 18.470 bytes και καταλαμβάνει το 60% της μνήμης προγράμματος.
Εδώ υπάρχει το συμπιεσμένο αρχείο zip με το παρόν άρθρο σε μορφή PDF, τον πηγαίο κώδικα και όλες τις επιπλέον βιβλιοθήκες.
Η πλακέτα μαζί με ένα έτοιμο παλμοτροφοδοτικό 9-12V DC, τοποθετείται σε ένα αδιάβροχο ηλεκτρολογικό κουτί, ώστε να τοποθετηθεί σε εξωτερικούς χώρους.
Η πλευρά των συνδέσεων | Μέσα σε αδιάβροχο κουτί |
Και βέβαια εδώ θα δούμε τον κώδικα τον οποίο γράφουμε στην μνήμη Flash του AVR. Αποτελείται από δύο αρχεία : Το dog.ino το οποίο περιέχει τον κυρίως κώδικα και το functions.ino το οποίο έχει μερικές απλές συναρτήσεις χρήσιμες για το κυρίως πρόγραμμα. Επίσης πρέπει να χρησιμοποιηθούν και οι βιβλιοθήκες SimpleTimer και Button οι οποίες υπάρχουν στο τελικό αρχείο zip. Το συνολικό μέγεθος είναι 18.470 bytes και καταλαμβάνει το 60% της μνήμης προγράμματος.
Παρουσίαση και λειτουργία |
Εδώ υπάρχει το συμπιεσμένο αρχείο zip με το παρόν άρθρο σε μορφή PDF, τον πηγαίο κώδικα και όλες τις επιπλέον βιβλιοθήκες.
(c)2015 Σταύρος Σ. Φώτογλου
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου