Πριν περίπου δύο ώρες ολοκλήρωσα με επιτυχία την πρώτη δοκιμή του συστήματος ελέγχου για βουβάλια που όπως ξέρετε μελετώ / αναπτύσσω εδώ και λίγο καιρό:
(αυτό που βλέπετε είναι το άψογο κλείδωμα με σήμα 192KHz από την on board κάρτα ήχου ενός PC, μέσω μάλιστα οπτικής ίνας, και μέσα από το 4-input board της TPA, με τις ιδανικές ρυθμίσεις για ελάχιστο jitter)
Μιλάμε για μια υλοποίηση βασισμένη πάνω στον κώδικα του HiFiDuino (http://hifiduino.wordpress.com/code/ , http://hifiduino.blogspot.com/) με κυριότερη διαφορά τη σύνδεση με έγχρωμη οθόνη TFT 2.8" αντί για απλή οθόνη τεσσάρων γραμμών.
Ο εν λόγω κώδικας υποστηρίζει τα παρακάτω:
- Επισήμως συμβατός με τα Buffalo II και III (θεωρώ ότι θα λειτουργήσει χωρίς πρόβλημα και με το Buffalo32s).
- Υποστήριξη ρολογιών στα 80MHz ή 100MHz (με πολύ εύκολη προσαρμογή του κώδικα).
- Υποστήριξη απλής λειτουργίας (μια πλακέτα Buffalo) ή dual mono λειτουργίας (με δύο πλακέτες Buffalo).
- Χειρισμός μέσω ενός rotary encoder.
- Τηλεχειρισμός μέσω IR.
- Πλήρης παραμετροποίηση όλων των παραμέτρων του ES9018. Οι αλλαγές γίνονται κανονικά ενώ το DAC είναι σε λειτουργία.
- Εμφάνιση ένδειξης Lock.
- Εμφάνιση του είδους σήματος (π.χ. s/pdif, I2S, DSD).
- Εμφάνιση του sample rate του σήματος εισόδου.
- Επιλογή εισόδου (για το Buffalo III). Υποστήριξη έως 8 εισόδων.
- Λειτουργία mute
Περισσότερες λεπτομέρειες:
Οθόνη
Επέλεξα να χρησιμοποιήσω μια έγχρωμη οθόνη TFT με διαγώνιο 2.8" και ανάλυση 320 x 240. Τη συγκεκριμένη οθόνη την αγόρασα από εδώ: https://www.adafruit.com/products/335
Αργότερα βρήκα μια φαινομενικά συμβατή στο ebay σε πολύ καλύτερη τιμή. Μόλις την παραλάβω και επιβεβαιώσω τη συμβατότητα θα σας ενημερώσω.
Υπόψη, η συγκεκριμένη οθόνη είναι touchscreen, κάτι που δεν εκμεταλλεύομαι στην τρέχουσα έκδοση του κώδικα αλλά εκτός απροόπτου θα φανεί χρήσιμο σε μελλοντική έκδοση.
Microcontroller:
Ο μικροελεγκτής που θα χρησιμοποιήσουμε είναι το Arduino MEGA 2560, το οποίο έχει διαστάσεις περίπου 10cm x 5,3cm. Στην περίπτωση που ο διαθέσιμος χώρος είναι ελάχιστος, δεν έχει πρόβλημα να μονταριστεί ακόμα και κάθετα. Καλό είναι να μονταριστεί πίσω από την οθόνη ώστε να κρατηθεί μικρό το μήκος της καλωδιοταινίας που τα συνδέει. Μπορεί να βρεθεί στην εγχώρια αγορά (π.χ. http://www.skroutz.gr/c/146/mikrohlektronika.html?keyphrase=arduino+mega+2560) ή εναλλακτικά από το ebay σε πολύ καλύτερες τιμές (κλώνους ουσιαστικά, π.χ. αυτό: http://www.ebay.com/itm/Arduino-MEG...ltDomain_0&hash=item3a6ef1c658#ht_1716wt_1163).
Χειρισμός
Όλος ο έλεγχος γίνεται από έναν rotary encoder (π.χ. http://www.ebay.com/itm/2pcs-Rotary...ultDomain_0&hash=item256e00dc67#ht_846wt_1163) ο οποίος έχει ενσωματωμένο και διακόπτη (momentary contact). Πιέζεις δηλαδή το knob μέσα (ώστε να κάνεις select στην περίπτωσή μας). Μετά περιστρέφεις το knob για να μετακινηθείς στο μενού και να κάνεις αλλαγές στις ρυθμίσεις.
Τηλεχειρισμός
Ο αρχικός κώδικας ήταν γραμμένος ώστε να λειτουργεί με το Apple remote, το οποίο είναι μια εξαιρετική επιλογή (οικονομικό, μικρό, πανέμορφο). Δεν έχει όμως πολλά πλήκτρα. Γιαυτό το λόγο η δικιά μου υλοποίηση αυτή τη στιγμή υποστηρίζει το τηλεκοντρόλ του κλασικού BlueSky.
Αυτό όμως δεν σημαίνει πολλά πράγματα, καθότι ο κώδικας μπορεί σχετικά εύκολα να προσαρμοστεί σε οποιοδήποτε χειριστήριο δουλεύει με το πρότυπο NEC ή και να αλλάξει στην αρχική του μορφή (Apple remote). Σε αυτή την περίπτωση δεν θα υποστηρίζεται αλλαγή εισόδου (αν δεν κάνω λάθος περισσεύουν 2 πλήκτρα στο Apple remote τα οποία θα μπορούσαν να χρησιμοποιηθούν, αλλά δεν έχω τέτοιο τηλεχειριστήριο ώστε να μπορώ να δω τι μπορεί να γίνει).
Ως IR δέκτης μπορεί να χρησιμοποιηθεί κάποιο από τα κλασικά εξαρτήματα που κυκλοφορούν, π.χ. http://www.ebay.com/itm/IR-Receiver...263?pt=LH_DefaultDomain_0&hash=item3cbb23a187
Τροφοδοσία
Η τροφοδοσία του μπορεί να γίνει είτε με unregulated τάση 7-12V είτε με regulated 5V (προσωπικά συνιστώ το δεύτερο). Υπολογίζετε μέγιστη κατανάλωση της τάξης των 300mA. Ένας μικρό τροφοδοτικό με μετ/τη στα 7V+ και ανόρθωση / σταθεροποίηση με ένα 7805 είναι ότι πρέπει.
Σύνδεση με το Buffalo
Η σύνδεση με το βουβάλι επιτυγχάνεται μέσω πρωτοκόλλου I2C. Η σηματοδοσία γίνεται στα 5V που υποστηρίζει το Arduino και επίσης "καταλαβαίνει" το βουβάλι. Παρότι το ES9018 είναι επισήμως 5V tolerant στο I2C bus του, πολλοί προσθέτουν ένα μικρό κύκλωμα που προσαρμόζει τα 5V του Arduinο στα 3.3V που είναι το "απόλυτα σωστό" για το βουβάλι.
Ο μικροελεγκτής που βρίσκεται εγκατεστημένος στο βουβάλι (ένα ολοκληρωμένο με 8 pins που βρίσκεται πάνω σε βάση) αφαιρείται ώστε να αναλάβει το Arduino. Για τη σηματοδοσία απαιτούνται 3 καλωδιάκια, για τα σήματα SDA, SCL και GND.
Σύνδεση USB για το Arduino
Από τη στιγμή που έχει γίνει ο προγραμματισμός, δεν απαιτείται υπολογιστής για να δουλέψει το controller μας. Οπότε η εύκολη πρόσβαση στη USB θύρα του arduino δεν είναι υποχρεωτική, αλλά αν θέλουμε να ανεβάζουμε νέες versions του κώδικα χωρίς να ξεβιδώνουμε το σασί μας είναι καλή ιδέα να τη προβλέψουμε με κάποιο τρόπο. Ένας τρόπος είναι με USB extension το οποίο θα καταλήγει στο πίσω μέρος του σασί μας.
Αυτά για την ώρα.. Επισυνάπτω τον κώδικα για τους πιο ανήσυχους (v.0.51). Μετονομάστε το αρχείο σε B3_arduino_code_v0_51.zip και ανοίξτε το με το περιβάλλον ανάπτυξης του Arduino.
View attachment B3_arduino_code_v0_51.zip.pdf
Αύριο (ή αργότερα) θα συνεχίσουμε με λεπτομέρειες της κατασκευής.
(αυτό που βλέπετε είναι το άψογο κλείδωμα με σήμα 192KHz από την on board κάρτα ήχου ενός PC, μέσω μάλιστα οπτικής ίνας, και μέσα από το 4-input board της TPA, με τις ιδανικές ρυθμίσεις για ελάχιστο jitter)
Μιλάμε για μια υλοποίηση βασισμένη πάνω στον κώδικα του HiFiDuino (http://hifiduino.wordpress.com/code/ , http://hifiduino.blogspot.com/) με κυριότερη διαφορά τη σύνδεση με έγχρωμη οθόνη TFT 2.8" αντί για απλή οθόνη τεσσάρων γραμμών.
Ο εν λόγω κώδικας υποστηρίζει τα παρακάτω:
- Επισήμως συμβατός με τα Buffalo II και III (θεωρώ ότι θα λειτουργήσει χωρίς πρόβλημα και με το Buffalo32s).
- Υποστήριξη ρολογιών στα 80MHz ή 100MHz (με πολύ εύκολη προσαρμογή του κώδικα).
- Υποστήριξη απλής λειτουργίας (μια πλακέτα Buffalo) ή dual mono λειτουργίας (με δύο πλακέτες Buffalo).
- Χειρισμός μέσω ενός rotary encoder.
- Τηλεχειρισμός μέσω IR.
- Πλήρης παραμετροποίηση όλων των παραμέτρων του ES9018. Οι αλλαγές γίνονται κανονικά ενώ το DAC είναι σε λειτουργία.
- Εμφάνιση ένδειξης Lock.
- Εμφάνιση του είδους σήματος (π.χ. s/pdif, I2S, DSD).
- Εμφάνιση του sample rate του σήματος εισόδου.
- Επιλογή εισόδου (για το Buffalo III). Υποστήριξη έως 8 εισόδων.
- Λειτουργία mute
Περισσότερες λεπτομέρειες:
Οθόνη
Επέλεξα να χρησιμοποιήσω μια έγχρωμη οθόνη TFT με διαγώνιο 2.8" και ανάλυση 320 x 240. Τη συγκεκριμένη οθόνη την αγόρασα από εδώ: https://www.adafruit.com/products/335
Αργότερα βρήκα μια φαινομενικά συμβατή στο ebay σε πολύ καλύτερη τιμή. Μόλις την παραλάβω και επιβεβαιώσω τη συμβατότητα θα σας ενημερώσω.
Υπόψη, η συγκεκριμένη οθόνη είναι touchscreen, κάτι που δεν εκμεταλλεύομαι στην τρέχουσα έκδοση του κώδικα αλλά εκτός απροόπτου θα φανεί χρήσιμο σε μελλοντική έκδοση.
Microcontroller:
Ο μικροελεγκτής που θα χρησιμοποιήσουμε είναι το Arduino MEGA 2560, το οποίο έχει διαστάσεις περίπου 10cm x 5,3cm. Στην περίπτωση που ο διαθέσιμος χώρος είναι ελάχιστος, δεν έχει πρόβλημα να μονταριστεί ακόμα και κάθετα. Καλό είναι να μονταριστεί πίσω από την οθόνη ώστε να κρατηθεί μικρό το μήκος της καλωδιοταινίας που τα συνδέει. Μπορεί να βρεθεί στην εγχώρια αγορά (π.χ. http://www.skroutz.gr/c/146/mikrohlektronika.html?keyphrase=arduino+mega+2560) ή εναλλακτικά από το ebay σε πολύ καλύτερες τιμές (κλώνους ουσιαστικά, π.χ. αυτό: http://www.ebay.com/itm/Arduino-MEG...ltDomain_0&hash=item3a6ef1c658#ht_1716wt_1163).
Χειρισμός
Όλος ο έλεγχος γίνεται από έναν rotary encoder (π.χ. http://www.ebay.com/itm/2pcs-Rotary...ultDomain_0&hash=item256e00dc67#ht_846wt_1163) ο οποίος έχει ενσωματωμένο και διακόπτη (momentary contact). Πιέζεις δηλαδή το knob μέσα (ώστε να κάνεις select στην περίπτωσή μας). Μετά περιστρέφεις το knob για να μετακινηθείς στο μενού και να κάνεις αλλαγές στις ρυθμίσεις.
Τηλεχειρισμός
Ο αρχικός κώδικας ήταν γραμμένος ώστε να λειτουργεί με το Apple remote, το οποίο είναι μια εξαιρετική επιλογή (οικονομικό, μικρό, πανέμορφο). Δεν έχει όμως πολλά πλήκτρα. Γιαυτό το λόγο η δικιά μου υλοποίηση αυτή τη στιγμή υποστηρίζει το τηλεκοντρόλ του κλασικού BlueSky.
Αυτό όμως δεν σημαίνει πολλά πράγματα, καθότι ο κώδικας μπορεί σχετικά εύκολα να προσαρμοστεί σε οποιοδήποτε χειριστήριο δουλεύει με το πρότυπο NEC ή και να αλλάξει στην αρχική του μορφή (Apple remote). Σε αυτή την περίπτωση δεν θα υποστηρίζεται αλλαγή εισόδου (αν δεν κάνω λάθος περισσεύουν 2 πλήκτρα στο Apple remote τα οποία θα μπορούσαν να χρησιμοποιηθούν, αλλά δεν έχω τέτοιο τηλεχειριστήριο ώστε να μπορώ να δω τι μπορεί να γίνει).
Ως IR δέκτης μπορεί να χρησιμοποιηθεί κάποιο από τα κλασικά εξαρτήματα που κυκλοφορούν, π.χ. http://www.ebay.com/itm/IR-Receiver...263?pt=LH_DefaultDomain_0&hash=item3cbb23a187
Τροφοδοσία
Η τροφοδοσία του μπορεί να γίνει είτε με unregulated τάση 7-12V είτε με regulated 5V (προσωπικά συνιστώ το δεύτερο). Υπολογίζετε μέγιστη κατανάλωση της τάξης των 300mA. Ένας μικρό τροφοδοτικό με μετ/τη στα 7V+ και ανόρθωση / σταθεροποίηση με ένα 7805 είναι ότι πρέπει.
Σύνδεση με το Buffalo
Η σύνδεση με το βουβάλι επιτυγχάνεται μέσω πρωτοκόλλου I2C. Η σηματοδοσία γίνεται στα 5V που υποστηρίζει το Arduino και επίσης "καταλαβαίνει" το βουβάλι. Παρότι το ES9018 είναι επισήμως 5V tolerant στο I2C bus του, πολλοί προσθέτουν ένα μικρό κύκλωμα που προσαρμόζει τα 5V του Arduinο στα 3.3V που είναι το "απόλυτα σωστό" για το βουβάλι.
Ο μικροελεγκτής που βρίσκεται εγκατεστημένος στο βουβάλι (ένα ολοκληρωμένο με 8 pins που βρίσκεται πάνω σε βάση) αφαιρείται ώστε να αναλάβει το Arduino. Για τη σηματοδοσία απαιτούνται 3 καλωδιάκια, για τα σήματα SDA, SCL και GND.
Σύνδεση USB για το Arduino
Από τη στιγμή που έχει γίνει ο προγραμματισμός, δεν απαιτείται υπολογιστής για να δουλέψει το controller μας. Οπότε η εύκολη πρόσβαση στη USB θύρα του arduino δεν είναι υποχρεωτική, αλλά αν θέλουμε να ανεβάζουμε νέες versions του κώδικα χωρίς να ξεβιδώνουμε το σασί μας είναι καλή ιδέα να τη προβλέψουμε με κάποιο τρόπο. Ένας τρόπος είναι με USB extension το οποίο θα καταλήγει στο πίσω μέρος του σασί μας.
Αυτά για την ώρα.. Επισυνάπτω τον κώδικα για τους πιο ανήσυχους (v.0.51). Μετονομάστε το αρχείο σε B3_arduino_code_v0_51.zip και ανοίξτε το με το περιβάλλον ανάπτυξης του Arduino.
View attachment B3_arduino_code_v0_51.zip.pdf
Αύριο (ή αργότερα) θα συνεχίσουμε με λεπτομέρειες της κατασκευής.