Ραδιόφωνο FM με AVR και οθόνη GLCD
Δημοσιεύτηκε: 01 Φεβ 2015, 00:23
Γιώργο, με την άδειά σου...
Μια κατασκευή ραδιοφωνικού δέκτη με έναν ATMega644P, ένα ΤΕΑ5767 και μια οθόνη γραφικών 128x64 pixels βασισμένη στον KS0108.
Ο χειρισμός του γίνεται μέσω ενός rotary encoder switch απο τον οποίο εισάγονται 5 διαφορετικά μενού με ενδείξεις και ρυθμίσεις για συντονισμό, ένταση ήχου, ένδειξη ώρας, ένδειξη θερμοκρασίας, τράπεζας σταθμών μνήμης και ένα (μελλοντικό) μενού για ρύθμιση ώρας/ ημερομηνίας. H κατασκευή χτίστηκε πάνω σε μια διάτρητη πλακέτα και καλωδιώθηκε στο χέρι με Kynar wire. Για το δέκτη FM χρησιμοποιήθηκε μια παραλλαγή του γνωστού module με το TEA5767, ενώ για το RTC η πλακέτα που χρησιμοποιώ παντού με το M41T80 της ST, το LM75 και μια μνήμη 24C64 για οποιαδήποτε χρήση. Την AF την ενισχύει ένας TDA7052 ο οποίος οδηγείται σε στάθμη με PWM απο τον μ/Ε για να επιτευχθεί η ψηφιακή αυξομείωση του ήχου.
To ΤΕΑ5767 επικοινωνεί μέσω διαύλου I²C με τον μ/Ε και η πλακετίτσα που τον υποστηρίζει δίνει στερεοφωνική έξοδο. Εδώ χρησιμοποιείται μόνο το ένα κανάλι και η έντασή του αυξομειώνεται ψηφιακά με PWM σε 10 στάθμες για έξοδο 1W/8Ω.
Η έκταση της οθόνης είναι αρκετή ώστε να δίνει πολλές πληροφορίες στο χρήστη. Υπάρχει μια μπάρα που δείχνει αναλογικά τη συχνότητα συντονισμού σε μήκος 0-128 pixels και γεμίζει ή αδειάζει ανάλογα με το προς τα που κινείται η συχνότητα λήψης. Η συχνότητα επίσης φαίνεται και σε ψηφιακή μορφή σε MHz με μεγάλους χαρακτήρες. Έχει ενσωματωθεί και ένα σύστημα εμφάνισης του ονόματος του σταθμού στον οποίο συντονίζεται ο δέκτης, το οποίο διαβάζει απο μια ταμπέλα τα ονόματα των σταθμών της Αττικής. Μπορεί να προσαρμοστεί για να δείχνει και κατά τόπους άλλους σταθμούς.
Την ένταση του σήματος τη βλέπει κανείς με μια μικρή αναλογική μπάρα αλλά και με ψηφιακή μορφή σε βήματα 0-100, ενώ τέλος, υπάρχει ένα κυλιόμενο banner που εμφανίζει τρέχοντας την ώρα, ημερομηνία και τη θερμοκρασία περιβάλλοντος, το οποίο ανανεώνεται σε πραγματικό χρόνο.
Χρησιμοποιηθέντα υλικό και λογισμικό:
Για τη σύνταξη του κώδικα, χρησιμοποιήθηκαν δημοφιλείς βιβλιοθήκες:
openGLCD, https://bitbucket.org/bperrybap/openglcd/wiki/Home
MenuBackend, https://github.com/WiringProject/Wir...es/MenuBackend του Alexander Brevig
EEPROM, http://playground.arduino.cc/Code/EEPROMReadWriteLong για εγγραφή/ ανάγνωση float values
και http://arduino.cc/en/Reference/EEPROM, standard βιβλιοθήκη μαζί με το Arduino IDE
Wire, http://arduino.cc/en/reference/Wire, standard βιβλιοθήκη μαζί με το Arduino IDE
TimerOne, https://code.google.com/p/arduino-ti...downloads/list
PinChangeInt, http://playground.arduino.cc/Main/PinChangeInt
Σε ό,τι αφορά, το υλικό:
Χρησιμοποιήθηκε ένας ATMega644P, http://www.atmel.com/devices/ATMEGA644P.aspx με 64K μνήμη προγράμματος , μια οθόνη γραφικών βασισμένη στον KS0108 http://playground.arduino.cc/Code/GLCDks0108, http://playground.arduino.cc/Code/GLCDks0108, ένα rotary encoder http://www.ebay.com/itm/12mm-Rotary-...-/171658463561.
Για την ακουστική έξοδο, το σήμα ενισχύεται με έναν TDA7052, http://www.nxp.com/documents/data_sheet/TDA7052A_AT.pdf.
Για το ρολόι πραγματικού χρόνου, χρησιμοποιήθηκε ένα Μ41Τ80, http://www.st.com/web/en/resource/te...CD00003119.pdf και για θερμόμετρο ένα LM75, http://datasheets.maximintegrated.com/en/ds/LM75.pdf σε ιδιοκατασκευή πλακέτας.
https://www.youtube.com/watch?v=G9Hi7XWQetE
Μια κατασκευή ραδιοφωνικού δέκτη με έναν ATMega644P, ένα ΤΕΑ5767 και μια οθόνη γραφικών 128x64 pixels βασισμένη στον KS0108.
Ο χειρισμός του γίνεται μέσω ενός rotary encoder switch απο τον οποίο εισάγονται 5 διαφορετικά μενού με ενδείξεις και ρυθμίσεις για συντονισμό, ένταση ήχου, ένδειξη ώρας, ένδειξη θερμοκρασίας, τράπεζας σταθμών μνήμης και ένα (μελλοντικό) μενού για ρύθμιση ώρας/ ημερομηνίας. H κατασκευή χτίστηκε πάνω σε μια διάτρητη πλακέτα και καλωδιώθηκε στο χέρι με Kynar wire. Για το δέκτη FM χρησιμοποιήθηκε μια παραλλαγή του γνωστού module με το TEA5767, ενώ για το RTC η πλακέτα που χρησιμοποιώ παντού με το M41T80 της ST, το LM75 και μια μνήμη 24C64 για οποιαδήποτε χρήση. Την AF την ενισχύει ένας TDA7052 ο οποίος οδηγείται σε στάθμη με PWM απο τον μ/Ε για να επιτευχθεί η ψηφιακή αυξομείωση του ήχου.
To ΤΕΑ5767 επικοινωνεί μέσω διαύλου I²C με τον μ/Ε και η πλακετίτσα που τον υποστηρίζει δίνει στερεοφωνική έξοδο. Εδώ χρησιμοποιείται μόνο το ένα κανάλι και η έντασή του αυξομειώνεται ψηφιακά με PWM σε 10 στάθμες για έξοδο 1W/8Ω.
Η έκταση της οθόνης είναι αρκετή ώστε να δίνει πολλές πληροφορίες στο χρήστη. Υπάρχει μια μπάρα που δείχνει αναλογικά τη συχνότητα συντονισμού σε μήκος 0-128 pixels και γεμίζει ή αδειάζει ανάλογα με το προς τα που κινείται η συχνότητα λήψης. Η συχνότητα επίσης φαίνεται και σε ψηφιακή μορφή σε MHz με μεγάλους χαρακτήρες. Έχει ενσωματωθεί και ένα σύστημα εμφάνισης του ονόματος του σταθμού στον οποίο συντονίζεται ο δέκτης, το οποίο διαβάζει απο μια ταμπέλα τα ονόματα των σταθμών της Αττικής. Μπορεί να προσαρμοστεί για να δείχνει και κατά τόπους άλλους σταθμούς.
Την ένταση του σήματος τη βλέπει κανείς με μια μικρή αναλογική μπάρα αλλά και με ψηφιακή μορφή σε βήματα 0-100, ενώ τέλος, υπάρχει ένα κυλιόμενο banner που εμφανίζει τρέχοντας την ώρα, ημερομηνία και τη θερμοκρασία περιβάλλοντος, το οποίο ανανεώνεται σε πραγματικό χρόνο.
Χρησιμοποιηθέντα υλικό και λογισμικό:
Για τη σύνταξη του κώδικα, χρησιμοποιήθηκαν δημοφιλείς βιβλιοθήκες:
openGLCD, https://bitbucket.org/bperrybap/openglcd/wiki/Home
MenuBackend, https://github.com/WiringProject/Wir...es/MenuBackend του Alexander Brevig
EEPROM, http://playground.arduino.cc/Code/EEPROMReadWriteLong για εγγραφή/ ανάγνωση float values
και http://arduino.cc/en/Reference/EEPROM, standard βιβλιοθήκη μαζί με το Arduino IDE
Wire, http://arduino.cc/en/reference/Wire, standard βιβλιοθήκη μαζί με το Arduino IDE
TimerOne, https://code.google.com/p/arduino-ti...downloads/list
PinChangeInt, http://playground.arduino.cc/Main/PinChangeInt
Σε ό,τι αφορά, το υλικό:
Χρησιμοποιήθηκε ένας ATMega644P, http://www.atmel.com/devices/ATMEGA644P.aspx με 64K μνήμη προγράμματος , μια οθόνη γραφικών βασισμένη στον KS0108 http://playground.arduino.cc/Code/GLCDks0108, http://playground.arduino.cc/Code/GLCDks0108, ένα rotary encoder http://www.ebay.com/itm/12mm-Rotary-...-/171658463561.
Για την ακουστική έξοδο, το σήμα ενισχύεται με έναν TDA7052, http://www.nxp.com/documents/data_sheet/TDA7052A_AT.pdf.
Για το ρολόι πραγματικού χρόνου, χρησιμοποιήθηκε ένα Μ41Τ80, http://www.st.com/web/en/resource/te...CD00003119.pdf και για θερμόμετρο ένα LM75, http://datasheets.maximintegrated.com/en/ds/LM75.pdf σε ιδιοκατασκευή πλακέτας.
https://www.youtube.com/watch?v=G9Hi7XWQetE