Search
Search titles only
By:
Search titles only
By:
Home
Forums
New posts
Search forums
What's new
New posts
Latest activity
Members
Current visitors
Κανονισμός Λειτουργίας
Σωματείο AVClub
Log in
Register
Search
Search titles only
By:
Search titles only
By:
New posts
Search forums
Menu
Install the app
Install
Reply to thread
Home
Forums
Δικάναλος Ήχος
Do It Yourself
Πηγές
Οδηγός καλής κατασκευής και συνδεσμολογίας του Sampling Rate Indicator Ver.1.0
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Message
<blockquote data-quote="lemon" data-source="post: 1057413690" data-attributes="member: 16016"><p>Ο Δημήτρης έχει σκεφτεί να απλοποιήσει τη διαδικασία εξεύρεσης κωδικών των πλήκτρων του πληκτρολογίου για εύκολη ενσωμάτωση οποιαδήποτε τηλεχειριστηρίου κατάλληλης συμβατότητας.</p><p>Μην τον τρελάνουμε με πιέσεις, μέχρι να το ολοκληρώσει έτσι όπως το έχει φανταστεί, ως ντιούηδες, μπορούμε να βάλουμε λίγο χρόνο παραπάνω και να το κάνουμε με το χεράκι μας.</p><p></p><p>Θα γράψω μερικές αράδες για το πως παραμετροποιήθηκε το <strong>Sampling Rate Indicator</strong> στην περίπτωση του <strong>Mambo2</strong>.</p><p></p><p>Θα αναφέρω τις αλλαγές που έγιναν στον κώδικα και το λόγο έτσι ώστε να έχουμε μια πιο ολοκληρωμένη εικόνα. </p><p>Στην περίπτωση λοιπόν του Mambo2 έχουμε:</p><p>1) <strong>Si8065AA </strong>στη θέση του U1 και στη φίσα Η4 είσοδος όλων των Fx δειγματοληψίας και dsd (το σχήμα το έχει ανεβάσει ο Δημήτρης ήδη). Τροφοδοσία στη φίσα Η4 από ένα μικρό γραμμικό τροφοδοτικό 5V.</p><p></p><p>2) <strong>Si8642ΒΑ </strong>στη θέση του U2 και στη φίσα Η5, στα Pin1(Vcc), Pin6(gnd) δόθηκε τροφοδοσία 5V από την τροφοδοσία του ίδιου του μάμπο (<u>πρέπει η τροφοδοσία dc να είναι 5V και όχι κάποια άλλη</u>), ενώ είτε στο Pin4 είτε στο Pin5 θα ενώσετε το μεσαίο Pin του τριπλού τζάμπερ που αλλάζει το μάμπο είσοδο. Εάν θυμάστε εκεί βάζουμε ένα τζάμπερ είτε από τη μια μεριά (JP1-2) είτε από την άλλη (JP2-3) για εναλλαγή των εισόδων (αρκετοί έχουν διακόπτη στο σημείο αυτό). Εμάς μας ενδιαφέρει μόνο το μεσαίο pin το οποίο ενώνεται με το S του πολυπλέκτη. Αυτό λοιπόν το pin θα πέρνει είτε Hi τιμή δηλ. 5V και θα παίζει την i2s είσοδο είτε Lo δηλ. 0V και θα παίζει η s/pdif - τόσο απλά!</p><p></p><p>3) στη θέση του <strong>JP1_IR</strong> μπήκε ένα <u>Vishay IR Receiver (TSOP34838)</u>, στο JP1_IR με φορά από κάτω προς τα πάνω ενώθηκαν, Vcc, gnd, Signal. To Signal προσωπικά δεν το ένωσα αλλά ένωσα το αντίστοιχο ποδαράκι του receiver απευθείας με το D12 του nano.</p><p></p><p>Στον κώδικα έγιναν οι εξής αλλαγές:</p><p></p><p>1) <strong>ενεργοποίηση του Amanero</strong>, γιατί απλά έχω amanero</p><p>#define Amanero</p><p>// #define DIYINHK_XMOS</p><p>// #define JLSounds</p><p>// #define WaveIO[/CODE]</p><p></p><p>2) <strong>ενεργοποίηση του TWOOUTPUTS</strong> επειδή χρησιμοποιώ στη θέση U2 to Si8642ΒΑ </p><p>//#define ALLINPUTS</p><p>#define TWOOUTPUTS</p><p></p><p>3) <strong>ενεργοποίηση του IRCONTROL</strong> εφόσον έχω βάλει το IR Receiver</p><p>#define IRCONTROL</p><p></p><p>4) <strong>ενεργοποίηση του U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK)</strong> επειδή έχω βάλει 1.3" oled οθόνη με SH1106, αντί του SSD1306 που έχουν οι 0,96"</p><p>//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // 0.96" OLED Display using I2C which does not send ACK</p><p>//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI </p><p>//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI</p><p>U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK</p><p></p><p>5) <strong>εισαγωγή του κατάλληλου κωδικού</strong> για αντιστοίχιση του τηλεχειριστηρίου μου - ΠΡΟΣΟΧΗ = ότι έχω υπογραμμίσει είναι οι κωδικοί που αντιστοιχούν στο on/off της οθόνης, στο πλήκτρο για spdif (source 1) και στο πλήκτρο για usb (source 2), το <strong>0x</strong> υποχρεωτικά μπροστά.</p><p>#define POWER_CODE 0x<u>A10CA00F</u> // Code for power on/off</p><p>#define SOURCE1_CODE 0x<u>A10C140B</u> // Code for source 1</p><p>#define SOURCE2_CODE 0x<u>A10C940B</u> // Code for source 2</p><p></p><p>6) <strong>εισαγωγή του Pin</strong> που ενώνεται το signal του IR Receiver, στην περίπτωσή μας του D12 θα συμπληρώσετε την τιμή 12.</p><p>int RECV_PIN = 12; // IR Receiver input pin.</p><p></p><p>7) <strong>αλλαγή του 32 -> 0</strong> εκεί που περιγράφει ο Δημήτρης ποιες δειγματοληψίες θα δείχνει η οθόνη. Έτσι ώστε να μην έχω ένδειξη 32KHz όταν δεν υπάρχει σήμα στην είσοδο usb, προτίμησα να γράφει 0</p><p>οπότε αντί του :</p><p>if (digitalRead(I1) == false && digitalRead(I2) == false && digitalRead(I3) == false && digitalRead(I4) == false)</p><p> {</p><p> SR = 32;</p><p>να γραφεί SR = 0</p><p></p><p></p><p><strong><u>Πως βρίσκουμε τον κωδικό σε κάθε πλήκτρο του τηλεχειριστηρίου μας που θέλουμε να βάλουμε για power on/off της οθόνης και για την εναλλαγή των εισόδων μας (spdif<->usb)</u></strong></p><p>Έχουμε ανοίξει το τελευταίο fw του Δημήτρη και στη κονσόλα του Arduino πάμε Tools->Serial Monitor.</p><p>Μας ανοίγει ένα παράθυρο, όπου κάθε φορά που πατάμε το πλήκτρο που μας ενδιαφέρει στο τηλεχειριστήριο μας, αυτό μας εμφανίζει τον 16δικό κωδικό που αντιστοιχεί στο στιγμιαίο πάτημα</p><p>Π.χ A10C140B</p><p>Θα παρατηρήσουμε ότι εάν πατήσουμε συνεχόμενα το ίδιο πλήκτρο θα εμφανίσει μια αλληλουχία 16δικών ψηφίων, εμάς πάντως μας ενδιαφέρει πάντα το πρώτο.</p><p>Καταγράφουμε αυτούς τους κωδικούς για τα 3 ενδιαφερόμενα πλήκτρα και τα εισαγάγουμε στα αντίσχτοιχα πεδία του Κώδικα πάντα με 0x μπροστά (βλέπε παραπάνω παράδειγμα 5 στον κώδικα).</p><p></p><p>Ίσως η διαδικασία σας φαίνεται βουνό, αλλά θα δείτε ότι είναι παιχνιδάκι μόλις την κατανοήσετε</p><p></p><p>Σημ.1 = μη ξεχνάτε ότι το σημείο τσεκαρίσματος πάνω αριστερά στην κονσόλα του Arduino, κάνει έλεγχο της σωστής εισαγωγής των εντολών στον κώδικα</p><p>Σημ.2 = μη ξεχνάτε ότι το βελάκι που δείχνει δεξιά, φορτώνει τον κώδικα που έχετε φορτώσει στην κονσόλα στο nano με την προυπόθεση ότι το έχετε συνδέσει σωστά στον υπολογιστή σας.</p></blockquote><p></p>
[QUOTE="lemon, post: 1057413690, member: 16016"] Ο Δημήτρης έχει σκεφτεί να απλοποιήσει τη διαδικασία εξεύρεσης κωδικών των πλήκτρων του πληκτρολογίου για εύκολη ενσωμάτωση οποιαδήποτε τηλεχειριστηρίου κατάλληλης συμβατότητας. Μην τον τρελάνουμε με πιέσεις, μέχρι να το ολοκληρώσει έτσι όπως το έχει φανταστεί, ως ντιούηδες, μπορούμε να βάλουμε λίγο χρόνο παραπάνω και να το κάνουμε με το χεράκι μας. Θα γράψω μερικές αράδες για το πως παραμετροποιήθηκε το [B]Sampling Rate Indicator[/B] στην περίπτωση του [B]Mambo2[/B]. Θα αναφέρω τις αλλαγές που έγιναν στον κώδικα και το λόγο έτσι ώστε να έχουμε μια πιο ολοκληρωμένη εικόνα. Στην περίπτωση λοιπόν του Mambo2 έχουμε: 1) [B]Si8065AA [/B]στη θέση του U1 και στη φίσα Η4 είσοδος όλων των Fx δειγματοληψίας και dsd (το σχήμα το έχει ανεβάσει ο Δημήτρης ήδη). Τροφοδοσία στη φίσα Η4 από ένα μικρό γραμμικό τροφοδοτικό 5V. 2) [B]Si8642ΒΑ [/B]στη θέση του U2 και στη φίσα Η5, στα Pin1(Vcc), Pin6(gnd) δόθηκε τροφοδοσία 5V από την τροφοδοσία του ίδιου του μάμπο ([U]πρέπει η τροφοδοσία dc να είναι 5V και όχι κάποια άλλη[/U]), ενώ είτε στο Pin4 είτε στο Pin5 θα ενώσετε το μεσαίο Pin του τριπλού τζάμπερ που αλλάζει το μάμπο είσοδο. Εάν θυμάστε εκεί βάζουμε ένα τζάμπερ είτε από τη μια μεριά (JP1-2) είτε από την άλλη (JP2-3) για εναλλαγή των εισόδων (αρκετοί έχουν διακόπτη στο σημείο αυτό). Εμάς μας ενδιαφέρει μόνο το μεσαίο pin το οποίο ενώνεται με το S του πολυπλέκτη. Αυτό λοιπόν το pin θα πέρνει είτε Hi τιμή δηλ. 5V και θα παίζει την i2s είσοδο είτε Lo δηλ. 0V και θα παίζει η s/pdif - τόσο απλά! 3) στη θέση του [B]JP1_IR[/B] μπήκε ένα [U]Vishay IR Receiver (TSOP34838)[/U], στο JP1_IR με φορά από κάτω προς τα πάνω ενώθηκαν, Vcc, gnd, Signal. To Signal προσωπικά δεν το ένωσα αλλά ένωσα το αντίστοιχο ποδαράκι του receiver απευθείας με το D12 του nano. Στον κώδικα έγιναν οι εξής αλλαγές: 1) [B]ενεργοποίηση του Amanero[/B], γιατί απλά έχω amanero #define Amanero // #define DIYINHK_XMOS // #define JLSounds // #define WaveIO[/CODE] 2) [B]ενεργοποίηση του TWOOUTPUTS[/B] επειδή χρησιμοποιώ στη θέση U2 to Si8642ΒΑ //#define ALLINPUTS #define TWOOUTPUTS 3) [B]ενεργοποίηση του IRCONTROL[/B] εφόσον έχω βάλει το IR Receiver #define IRCONTROL 4) [B]ενεργοποίηση του U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK)[/B] επειδή έχω βάλει 1.3" oled οθόνη με SH1106, αντί του SSD1306 που έχουν οι 0,96" //U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // 0.96" OLED Display using I2C which does not send ACK //U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI //U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK 5) [B]εισαγωγή του κατάλληλου κωδικού[/B] για αντιστοίχιση του τηλεχειριστηρίου μου - ΠΡΟΣΟΧΗ = ότι έχω υπογραμμίσει είναι οι κωδικοί που αντιστοιχούν στο on/off της οθόνης, στο πλήκτρο για spdif (source 1) και στο πλήκτρο για usb (source 2), το [B]0x[/B] υποχρεωτικά μπροστά. #define POWER_CODE 0x[U]A10CA00F[/U] // Code for power on/off #define SOURCE1_CODE 0x[U]A10C140B[/U] // Code for source 1 #define SOURCE2_CODE 0x[U]A10C940B[/U] // Code for source 2 6) [B]εισαγωγή του Pin[/B] που ενώνεται το signal του IR Receiver, στην περίπτωσή μας του D12 θα συμπληρώσετε την τιμή 12. int RECV_PIN = 12; // IR Receiver input pin. 7) [B]αλλαγή του 32 -> 0[/B] εκεί που περιγράφει ο Δημήτρης ποιες δειγματοληψίες θα δείχνει η οθόνη. Έτσι ώστε να μην έχω ένδειξη 32KHz όταν δεν υπάρχει σήμα στην είσοδο usb, προτίμησα να γράφει 0 οπότε αντί του : if (digitalRead(I1) == false && digitalRead(I2) == false && digitalRead(I3) == false && digitalRead(I4) == false) { SR = 32; να γραφεί SR = 0 [B][U]Πως βρίσκουμε τον κωδικό σε κάθε πλήκτρο του τηλεχειριστηρίου μας που θέλουμε να βάλουμε για power on/off της οθόνης και για την εναλλαγή των εισόδων μας (spdif<->usb)[/U][/B] Έχουμε ανοίξει το τελευταίο fw του Δημήτρη και στη κονσόλα του Arduino πάμε Tools->Serial Monitor. Μας ανοίγει ένα παράθυρο, όπου κάθε φορά που πατάμε το πλήκτρο που μας ενδιαφέρει στο τηλεχειριστήριο μας, αυτό μας εμφανίζει τον 16δικό κωδικό που αντιστοιχεί στο στιγμιαίο πάτημα Π.χ A10C140B Θα παρατηρήσουμε ότι εάν πατήσουμε συνεχόμενα το ίδιο πλήκτρο θα εμφανίσει μια αλληλουχία 16δικών ψηφίων, εμάς πάντως μας ενδιαφέρει πάντα το πρώτο. Καταγράφουμε αυτούς τους κωδικούς για τα 3 ενδιαφερόμενα πλήκτρα και τα εισαγάγουμε στα αντίσχτοιχα πεδία του Κώδικα πάντα με 0x μπροστά (βλέπε παραπάνω παράδειγμα 5 στον κώδικα). Ίσως η διαδικασία σας φαίνεται βουνό, αλλά θα δείτε ότι είναι παιχνιδάκι μόλις την κατανοήσετε Σημ.1 = μη ξεχνάτε ότι το σημείο τσεκαρίσματος πάνω αριστερά στην κονσόλα του Arduino, κάνει έλεγχο της σωστής εισαγωγής των εντολών στον κώδικα Σημ.2 = μη ξεχνάτε ότι το βελάκι που δείχνει δεξιά, φορτώνει τον κώδικα που έχετε φορτώσει στην κονσόλα στο nano με την προυπόθεση ότι το έχετε συνδέσει σωστά στον υπολογιστή σας. [/QUOTE]
Verification
Post reply
Home
Forums
Δικάναλος Ήχος
Do It Yourself
Πηγές
Οδηγός καλής κατασκευής και συνδεσμολογίας του Sampling Rate Indicator Ver.1.0
Top
Bottom
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…