ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΗΧΟΣ I Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ 1
ARDUINO ΚΑΙ ΗΧΟΣ ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή, μηχανές παραγωγής ήχου Χρήση του πιεζοηλεκτρικού ηχείου Εφαρμογή: ανίχνευση πυρκαγιάς Εφαρμογή: Φωτορυθμικά Arduino και Μουσική Σειριακή επικοινωνία και SPI 2
ΜΗΧΑΝΕΣ ΠΑΡΑΓΩΓΗΣ ΗΧΟΥ Δεδομένα Διεπαφή χρήστη Παραγωγή ήχου Δεδομένα - Ανάγνωση ψηφιακών δεδομένων (wav, mp3) - online παραγωγή δεδομένων ήχου (μουσικά όργανα, μικρόφωνα) Διεπαφή χρήστη - Μηχανισμοί για την αλλαγή των χαρακτηριστικών του ήχου π.χ. έλεγχος έντασης από ποτενσιόμετρο. Παραγωγή ήχου - Μετατροπέας DAC (Digital to Analog Converter) π.χ. Ενισχυτής, Ηχεία 3
ΜΗΧΑΝΕΣ ΠΑΡΑΓΩΓΗΣ ΗΧΟΥ Δεδομένα Διεπαφή χρήστη Παραγωγή ήχου 4
ΠΙΕΖΟΗΛΕΚΤΡΙΚΟ ΗΧΕΙΟ 5
ΠΑΡΑΔΕΙΓΜΑ ΧΡΗΣΗΣ ΠΙΕΖΟΗΛΕΚΤΡΙΚΟΥ ΗΧΕΙΟΥ Ακούγεται ένα κλικ κάθε 1 sec Αν αλλάξουμε το delay(1000) σε delay(1) θα ακούμε έναν ήχο συχνότητας 500Hz 6
ΠΑΡΑΔΕΙΓΜΑ ΧΡΗΣΗΣ ΠΙΕΖΟΗΛΕΚΤΡΙΚΟΥ ΗΧΕΙΟΥ Για να παράγουμε ηχούς υψηλών συχνοτήτων χρησιμοποιούμε τη συνάρτηση delaymicroseconds() 7
ΜΟΥΣΙΚΗ ΚΑΙ ΜΙΚΡΟΕΛΕΓΚΤΗΣ Οι μουσικές νότες διαφοροποιούνται με τη συχνότητα. π.χ. η νότα ΛΑ συχνότητα 440Hz. Ο μικροελεγκτής μετρά χρόνο αντιστοιχεί σε 8
ΜΟΥΣΙΚΗ ΚΑΙ ARDUINO Αντιστοιχία συχνοτήτων και χρονικών καθυστερήσεων μιας τυπικής μουσικής οκτάβας 9
ΜΟΥΣΙΚΗ ΚΑΙ ARDUINO Η βιβλιοθήκη tone: Απλουστεύει τους μαθηματικούς υπολογισμούς 10
ΜΟΥΣΙΚΗ ΚΑΙ ARDUINO - ΠΑΡΑΔΕΙΓΜΑΤΑ 11
ΜΟΥΣΙΚΗ ΚΑΙ ARDUINO - ΠΑΡΑΔΕΙΓΜΑΤΑ Υλικά: - Arduino - Ηχείο 8 ohm - 3 αντιστάσεις force sensing - 3 αντιστάσεις 10k ohm - μια αντίσταση 100 ohm - καλώδια - breadboard 12
ΜΟΥΣΙΚΗ ΚΑΙ ARDUINO - ΠΑΡΑΔΕΙΓΜΑΤΑ Αντιστάσεις force sensing 13
ΜΟΥΣΙΚΗ ΚΑΙ ARDUINO - ΠΑΡΑΔΕΙΓΜΑΤΑ 14
ΑΝΙΧΝΕΥΣΗ ΠΥΡΚΑΓΙΑΣ 15
ΑΝΙΧΝΕΥΣΗ ΠΥΡΚΑΓΙΑΣ 16
ΑΝΙΧΝΕΥΣΗ ΠΥΡΚΑΓΙΑΣ Σε πραγματικά συστήματα ανίχνευσης πυρκαγιάς το buzzer δεν χρησιμοποιείται. Μπορώ να συνδέσω στο Arduino σειρήνα ή μηχανισμούς που ρίχνουν νερό; Μπορώ να συνδέσω στο Arduino συσκευές που λειτουργούν σε τάση μεγαλύτερη από τα 5V; (π.χ. 12V, 30V ή 220V) 17
ΗΛΕΚΤΡΟΝΟΜΟΣ - ΡΕΛΕ Ο ηλεκτρονόμος, ρελέ (relay) είναι ένας ηλεκτρικός διακόπτης που ανοίγει και κλείνει ένα ηλεκτρικό κύκλωμα κάτω από τον έλεγχο ενός άλλου ηλεκτρικού κυκλώματος. 18
ΗΛΕΚΤΡΟΝΟΜΟΣ - ΡΕΛΕ Επαφές ενός Ηλεκτρονόμου: Κανονικά - Ανοικτή (Normally Open, NO) συνδέει το κύκλωμα όταν ο ηλεκτρονόμος ενεργοποιείται Κανονικά - Κλειστή (Normally Closed, NC) αποσυνδέει το κύκλωμα όταν ο ηλεκτρονόμος είναι ανενεργός. Μεταγωγική επαφή (change-over) που ελέγχει δύο κυκλώματα. 19
ΗΛΕΚΤΡΟΝΟΜΟΣ - ΡΕΛΕ Σύνδεση με το Arduino 20
ΗΛΕΚΤΡΟΝΟΜΟΣ - ΡΕΛΕ Ρελέ Στερεάς Κατάστασης (Solid State): Μικρότερα Πιο γρήγορα Δεν έχουν μηχανικά μέρη Αθόρυβα Μεγαλύτερη διάρκεια ζωής 21
ΕΦΑΡΜΟΓΗ: ΦΩΤΟΡΥΘΜΙΚΑ Μπορώ να χρησιμοποιήσω το Arduino για να αναβοσβήνω leds ή φώτα στο ρυθμό μιας μουσικής; 22
ΕΦΑΡΜΟΓΗ: ΦΩΤΟΡΥΘΜΙΚΑ Χρησιμοποιώ την αναλογική είσοδο Α0 για να διαβάσω την ένταση του ήχου από μια εξωτερική πηγή Συνδέω τα leds στις ψηφιακές εξόδους 3,4,5,6 23
ΕΦΑΡΜΟΓΗ: ΦΩΤΟΡΥΘΜΙΚΑ 24
ΕΦΑΡΜΟΓΗ: ΦΩΤΟΡΥΘΜΙΚΑ 25
ΕΦΑΡΜΟΓΗ: ΦΩΤΟΡΥΘΜΙΚΑ Χρησιμοποιώντας leds ή φώτα που λειτουργούν σε μεγαλύτερη τάση 26
ΣΕΙΡΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ Ασύγχρονη επικοινωνία Τα ρολόγια δεν είναι συγχρονισμένα Απαιτείται start και stop bit Συμφωνία στο ρυθμό μετάδοσης των δεδομένων (π.χ. 9600 bps) 27
SPI (SERIAL PERIPHERAL INTERFACE BUS) Χρησιμοποιούνται ξεχωριστές γραμμές για data και clock Τo ρολόι χρησιμοποιείται για το συγχρονισμό των δεδομένων Δε χρειάζεται οι 2 συσκευές να αποφασίσουν για το ρυθμό μετάδοσης των δεδομένων Υλοποιείται με έναν απλό shift register 28
ΜΕΤΑΔΟΣΗ ΔΕΔΟΜΕΝΩΝ ΜΕ SPI Η Συσκευή που ελέγχει το ρολόι ονομάζεται master Ένας μόνο master πολλοί slaves Η ροή των δεδομένων από master σε slave γίνεται από τη γραμμή MOSI Η ροή των δεδομένων από slave σε master γίνεται από τη γραμμή MISO Η επικοινωνία είναι full duplex 29
SPI - ΕΠΙΛΟΓΗ SLAVE (SS) Χρησιμοποιείται για την επιλογή της συσκευής slave με την οποία θα μιλήσει ο master Χρησιμοποιείται η λογική active low Όσο η γραμμή μένει στο 1 δεν υπάρχει επικοινωνία Όταν η γραμμή πέσει στο 0 ξεκινά η επικοινωνία 30
SPI - ΠΟΛΛΑΠΛΟΙ SLAVES Υπάρχουν 2 τρόποι για να συνδέσουμε πολλούς slaves στο SPI bus: Α ΤΡΟΠΟΣ Μειονέκτημα: Ο master πρέπει να διαθέτει πολλά SS pins 31
SPI - ΠΟΛΛΑΠΛΟΙ SLAVES B ΤΡΟΠΟΣ Μειονέκτημα: Τα δεδομένα θα περάσουν μέσα από όλους τους slaves 32
SPI - ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΟ ARDUINO Με χρήση των εντολών shiftin() και shiftout() 33
SPI - ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΟ ARDUINO Με χρήση των εντολών shiftin() και shiftout() 34
SPI - ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΟ ARDUINO ΣΥΝΔΕΣΕΙΣ 35
SPI - ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΟ ARDUINO ΣΥΝΔΕΣΕΙΣ 36
ΕΥΧΑΡΙΣΤΟΥΜΕ ΠΟΛΥ!!! 37