Ψηφιακό Ραδιόφωνο FM με Arduino

arduino_fm_radio_2_sm
arduino_fm_radio_2_smarduino_fm_radio_3_smarduino_fm_radio_4_sm
5 5 1 Product


Φτιάχνουμε ένα ψηφιακό ραδιόφωνο Fm με Arduino. Θα χρειαστούμε:

  • Μία πλακέτα Arduino Uno
  • Μία πλακέτα δέκτη FM με το TEA5767
  • Ένα κατάλληλο τυπωμένο κύκλωμα (παρέχεται παρακάτω) ή εναλλακτικά μία πλακέτα πρωτοτύπων (breadboard)
  • Μία κλασσική αλφαριθμητική οθόνη LCD 2x16 (2 γραμμές χ 16 χαρακτήρες ανά γραμμή) με παράλληλη διασύνδεση
  • Τον πηγιαίο κώδικα μαζί με τις απαραίτητες βιβλιοθήκες (παρέχεται παρακάτω)
  • Το περιβάλλον προγραμματισμού του Arduino
  • Μερικά ηλεκτρονικά εξαρτήματα (βλ. ηλεκτρονικό σχέδιο)

Το ραδιόφωνο είναι στερεοφωνικό και περιλαμβάνει έξοδο ήχου - ακουστικών.  Παρέχει ψηφιακές ενδείξεις για τη συχνότητα, τον τύπο αποδιαμόρφωσης (mono ή stereo) και την ένταση του λαμβανόμενου σήματος. Διαθέτει 10 μνήμες και μία πρόσθετη μνήμη προεπιλεγμένης συχνότητας για μετάβαση κατά την έναρξη.

Η περιοχή συχνοτήτων του δέκτη είναι από 87.5 έως 108MHz (US/Europe). Με μία μικρή αλλαγή στον κώδικα (παρέχονται οδηγίες) η μπάντα μπορεί να αλλάξει σε 76  έως 91 MHz (Japan). Η προεπιλεγμένη αποέμφαση είναι 50us (Europe). Μέσω του κώδικα, μπορεί εύκολα να επιλεγεί αποέμφαση 75us (US).

H οθόνη του ψηφιακού ραδιοφώνου
Εικόνα 1. H οθόνη του ψηφιακού ραδιοφώνου


 Η κατασκευή του ραδιοφώνου:

Το ηλεκτρονικό σχέδιο του ραδιοφώνου Fm είναι πολύ απλό. Το σχέδιο παρουσιάζεται στην εικόνα 2. Περιέχει μία πλακέτα Arduino Uno, μία πλακέτα με το TEA5767, μία οθόνη LCD, τέσσερις διακόπτες τύπου push-button και μερικά ηλεκτρονικά εξαρτήματα (αντιστάσεις, πυκνωτές). Η οθόνη και η πλακέτα του TEA5767 συνδέονται με το Arduino και λαμβάνουν εντολές μέσω λογισμικού. Οι λειτουργίες του ραδιοφώνου επιτελούνται μέσω των 4ων πλήκτρων. Στις λειτουργίες περιλαμβάνονται η αναζήτηση σταθμών, αποθήκευση σταθμών στις μνήμες, ανάκληση σταθμών από τις μνήμες, ορισμός προεπιλεγμένου σταθμού.

Ηλεκτρονικό σχέδιο δέκτη FM
Εικόνα 2. Το ηλεκτρονικό σχέδιο του δέκτη FM

Η έξοδος του ήχου παρέχεται από ένα κλασσικό στερεοφωνικό βύσμα τύπου “καρφί” που περιλαμβάνεται στην πλακέτα του TEA5767. Σε αυτό μπορούν να συνδεθούν ακουστικά ή μία είσοδος ενός ενισχυτή ήχου. Δεν παρέχεται ποτενσιόμετρο ρύθμισης ήχου και αυτό επιφύεται στο επόμενο στάδιο (ενισχυτή) που αποτελεί επιλογή του εκάστοτε σχεδιαστή. Επομένως, αποτελεί καθαρά δική σας επιλογή το τι είδος ενισχυτή θα χρησιμοποιήσετε για την ενίσχυση του ήχου, τα ηχεία και οτιδήποτε έχει να κάνει με τη ρύθμιση της έντασης. Μπορείτε να χρησιμοποιήσετε έναν οποιοδήποτε εμπορικό ενισχυτή ή να φτιάξετε κάποιον από αυτούς που προτείνουμε στα κυκλώματα ήχου.

Ο δέκτης είναι στερεοφωνικός και στην οθόνη παρέχονται πληροφορίες για την εκάστοτε συχνότητα του σταθμού, τον τύπο λήψης (μονοφωνικό ή στερεοφωνικό), τη στάθμη του σήματος λήψης και την εκάστοτε προεπιλεγμένη θέση μνήμης (βλ. εικόνα 1).

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

Το ραδιόφωνο FM - από τον KiCad 3D viewer
Εικόνα 3. Το ραδιόφωνο FM - από τον KiCad 3D viewer

Η κεραία του ραδιοφώνου θα πρέπει να προσαρμοστεί σε ένα δεύτερο βύσμα τύπου “καρφί” που υπάρχει στην πλακέτα του TEA5767 και που υποδεικνύεται με χαρακτηριστική σήμανση.

Η τροφοδοσία του ραδιοφώνου γίνεται μέσω της πλακέτας του Arduino είτε από κάποιο τροφοδοτικό είτε από τη θύρα USB ενός υπολογιστή. Μπορείτε εναλλακτικά, να τροποποιήσετε το σχέδιο και να τροφοδοτήσετε το δέκτη ή την οθόνη ανεξάρτητα από την πλακέτα του Arduino. Αυτό επιφύεται στη δική σας κρίση. Μπορείτε επίσης να πραγματοποιήσετε οποιαδήποτε αλλαγή επιθυμείτε στον κώδικα για να φτιάξετε μία δική σας έκδοση του ραδιοφώνου. Για να κάνετε οποιεσδήποτε τροποποιήσεις στο λογισμικό θα πρέπει να συμβουλευτείτε το φυλλάδιο πληροφοριών του TEA5767 και να καθοδηγηθείτε στο λογισμικό βάσει των σχολίων που εμπεριέχονται στον κώδικα.

Σχετικά με τον κώδικα:

Ο κώδικας χρησιμοποιεί συνολικά πέντε βιβλιοθήκες

  1. Την TEA5767.h για τον έλεγχο του TEA5767, στην οποία περιλαμβάνονται όλες τα αντικείμενα και οι συναρτήσεις που ελέγχουν το TEA5767
  2. Την Wire.h για τη διασύνδεση του TEA5767 με το Arduino μέσω I2C bus
  3. Την Button.h για τον έλεγχο των πλήκτρων
  4. Την EEPROM.h για τη χρήση της μνήμης EEPROM
  5. Tην LiquidCrystal.h για τη διασύνδεση του Display

Οι δύο τελευταίες βιβλιοθήκες είναι συνήθως προ εγκατεστημένες στο περιβάλλον προγραμματισμού και δεν χρειάζεται να κάνουμε απολύτως τίποτα για να τις χρησιμοποιήσουμε στον κώδικα. Οι υπόλοιπες περιέχονται σε τέσσερις φακέλους αρχείων που θα πρέπει να αποθηκευτούν στη θέση .../Arduino/libraries που βρίσκεται στη θέση όπου έχουμε εγκαταστήσει το περιβάλλον προγραμματισμού του Arduino (συνήθως στο Program files (x86)) όπου υπάρχουν όλοι οι φάκελοι των εγκατεστημένων βιβλιοθηκών του ολοκληρωμένου περιβάλλοντος προγραμματισμού του Arduino. Η αποθήκευση – εγκατάσταση των βιβλιοθηκών θα πρέπει να γίνει ποτού αποπειραθείτε να μεταγλωττίσετε τον κώδικα διότι σε διαφορετική περίπτωση θα λάβετε μήνυμα λάθους ότι δεν ανευρίσκονται εγκατεστημένες οι βιβλιοθήκες. 
      

 Η λειτουργία του ραδιοφώνου:

Ο δέκτης διαθέτει 10 μνήμες και μία επιπλέον μνήμη για μία προεπιλεγμένη συχνότητα. Στην πρώτη γραμμή του Display παρέχονται πληροφορίες για τη συχνότητα συντονισμού και την εκάστοτε επιλεγμένη μνήμη ενώ στη δεύτερη γραμμή παρέχονται πληροφορίες για την ένταση του σήματος λήψης σε ένα γράφημα μπάρας και για τον τύπο αποδιαμόρφωσης (mono ή stereo).

  • Όταν ο δέκτης τροφοδοτείται αρχικά, μεταβαίνει στην προεπιλεγμένη συχνότητα. Αν δεν έχει οριστεί προεπιλεγμένη συχνότητα, ο δέκτης μεταβαίνει στους 98MHz (που έχει οριστεί μέσω λογισμικού).
  • Ο συντονισμός πραγματοποιείται αυτόματα η χειροκίνητα μέσω των πλήκτρων up-down. Η επιλογή αυτόματα ή χειροκίνητα γίνεται με πίεση του πλήκτρου enter.
  • Η επιλογή των μνημών γίνεται μέσω του πλήκτρου mode. Σε κάθε πίεση του πλήκτρου mode, ο δέκτης μεταβαίνει στην επόμενη κατά σειρά μνήμη. Ο αριθμός της επιλεγμένης μνήμης εμφανίζεται πάνω αριστερά το Display και ο δέκτης μεταβαίνει στη συχνότητα του σταθμού που είναι αποθηκευμένος στην εκάστοτε μνήμη. Οι κενές μνήμες αντιστοιχούν σε μία άκυρη συχνότητα εκτός μπάντας.
  • Η αποθήκευση ενός σταθμού σε μία μνήμη γίνεται με παρατεταμένη πίεση του πλήκτρου mode στην εκάστοτε επιλεγμένη θέση μνήμης.
  • Ο ορισμός του προεπιλεγμένου σταθμού, δηλαδή η συχνότητα στην οποία μεταβαίνει ο δέκτης μετά την αρχική τροφοδοσία, ορίζεται με παρατεταμένη πίεση του πλήκτρου enter.

Αναλυτικότερα:

1) Για να συντονίσετε αυτόματα:
Πατήστε τα πλήκτρα up ή down για να μεταβεί ο δέκτης στον επόμενο διαθέσιμο σταθμό σε υψηλότερη ή χαμηλότερη από την τρέχουσα, αντίστοιχα, συχνότητα.

2) Για να συντονίσετε χειροκίνητα:
Πατήστε σύντομα το πλήκτρο enter για να εμφανιστεί η ένδειξη - ’ - στο πάνω δεξί μέρος της οθόνης. Στη συνέχεια, πατήστε τα πλήκτρα up ή down για να αυξήσει ή μειώσει ο δέκτης τη συχνότητά του βάσει προεπιλεγμένου βήματος (το βήμα έχει οριστεί μέσω λογισμικού).

3) Για να ανακαλέσετε μία μνήμη:
Πατήστε το πλήκτρο mode. Σε κάθε πίεση του πλήκτρου mode, ο δέκτης μεταβαίνει στην επόμενη κατά σειρά μνήμη.

4) Για να αποθηκεύσετε μία μνήμη:
Ανακαλέστε την επιθυμητή θέση μνήμης βάσει του προηγούμενου βήματος. Επιλέξτε μία συχνότητα βάσει του βήματος 1 ή 2. Πατήστε παρατεταμένα το πλήκτρο mode έως ότου η ένδειξη της συχνότητας σβήσει. Αφήστε το πλήκτρο mode. Η μνήμη έχει αποθηκευτεί – ανανεωθεί.

 
5) Για να ορίσετε προεπιλεγμένη συχνότητα:
Μεταβείτε σε μία επιθυμητή συχνότητα. Πατήστε  παρατεταμένα το πλήκτρο enter έως ότου εμφανιστεί η ένδειξη - FM# - στην πάνω αριστερή θέση της οθόνης. Η προεπιλεγένη συχνότητα έχει οριστεί στη νέα επιλογή.

Συνοδευτικά αρχεία:

Η υλοποίηση στο KiCad (σχηματικό - πλακέτα, σε συμπιεσμένο φάκελο)

Ο κώδικας προγραμματισμού του Arduino (αρχείο τύπου ino)

Οι απαραίτητες βιβλιοθήκες του κώδικα (σε συμπιεσμένο φάκελο)

 

Λίστα με όλα τα σχόλια:
Δεν υπάρχουν σχόλια προς το παρόν.
Βαθμολογία:

Παρακαλούμε κάντε κάποια πρόταση για το προϊόν :

Όνομα χρήστη:
E-mail: