Z racji, że chciałem w swoim systemie mieć wszystko sterowane z jednego pilota, postanowiłem zaprojektować PCB oraz napisać soft do sterowniko-zasilacza dla playera opartego o RaspberryPi.
Dodatkiem jest możliwość zrobienia playera wraz z napędem CD obsługiwanym bezpośrednio z playera - wychodzi nam wszystko mające urządzenie, gdzie nie jesteśmy zależni od jakości DACa wbudowanego w player CD.
Kilka słów o elektronice:
- separowane galwanicznie wejście trigger aby dało się to ustrojstwo włączyć z innego urządzenia z wyjściem trigger,
- wyjście trigger aby dało się za pomocą tego urządzenia włączyć jakiekolwiek inne urządzenie z wejściem trigger (np. wzmacniacz)
- dwa stabilizowane zasilacze 5V/3 (oparte na LM1085) - wspólna masa, ale zasilane z dwóch oddzielnych uzwojeń transformatora, mostki Graetza obłożone kondensatorami 100 nF.
- wejście na przycisk,
- wyjście na diodę sygnalizacyjną z rezystorem ograniczającym prąd diody,
- wejście na odbiornik podczerwieni z filtrem na zasilaniu odbiornika - możliwość sterowania pilotem Apple,
- 6 wyjść sterujących impulsowo wejściami w RPi (power down, volume up, volume down, play/pause, next, prev),
- trafko standby 9 Vac, 1,5VA,
- trafko zasilacza RPi 2 x 6 Vac, 30VA,
- układ załączający trafko główne z gasikiem,
- wyjścia zasilaczy 5V jako zwykłe skręcane lub jako gniazda USB (w przypadku użycia gniazda USB możliwe jest podłączenie odbiorników o wyższym poborze prądu niż RPi jest w stanie dostarczyć, np. do zasilania napędu CD, linie danych USB dalej działają i napęd CD jest rozpoznawany w systemie RPi ale nie pobiera z RPi prądu),
- zworka do wyboru trybu pracy działania pilota.




Idea stojąca za powstaniem tego urządzenia:
- oddzielne zasilanie dla maliny oraz oddzielne zasilanie dla dotykowego wyświetlacza 7 cali oraz napędu CD,
- możliwość sterowania funkcjami playera za pomocą pilota, zworką wybiera się czy player ma mieć możliwość włączenia i wyłączenia za pomocą pilota,
- sekwencje włączania i wyłączania zasilania z możliwością programowania czasów włączenia oraz wyłączenia.
Jak działają sekwencje zasilania:
- po otrzymaniu sygnału włączenia (przycisk, pilot lub pojawienie się napięcie na wejściu trigger) załączany jest przekaźnik włączający zasilanie RPi - urządzenia się włącza, dioda sygnalizacyjna miga powoli sygnalizując włączanie się urządzenia,
- po włączeniu się urządzenia (czyli po odliczeniu zaprogramowanego czasu włączenia) dioda przechodzi w tryb ciągłego świecenia co oznacza, że urządzenie działa w trybie normalnego używania,
- po otrzymaniu sygnału wyłączenia (przycisk, pilot lub zanik napięcia na wejściu trigger) wysyłany jest impuls na wejście w RPi dzięki czemu system jest bezpiecznie zamykany a następnie po wcześniej zaprogramowanym czasie wyłączany jest zasilacz dla RPi, stan ten jest sygnalizowany szybkim miganiem diody,
- jeśli w trakcie włączania zachcemy jednak wyłączyć player - sekwencja włączania zostanie doprowadzona do końca (przez pozostały do pełnego włączenia czas dioda sygnalizuje zmienionym miganiem, że po włączeniu ma nastąpić wyłączenie) a następnie zostanie przeprowadzona sekwencja wyłączania z bezpiecznym wyłączeniem systemu operacyjnego,
- jeśli urządzenie jest w trakcie włączania, po którym ma nastąpić wyłączenie (czyli poprzedni punkt) ale jednak zdecydujemy, że chcemy aby urządzenie się normalnie włączyło - wystarczy ponownie kliknąć przycisk lub użyć pilota lub włączyć napięcie na wejściu trigger.
Wejście trigger jest nadrzędne - oznacza to, że jeśli na wejściu trigger jest podane napięcie to urządzenia nie da się wyłączyć przyciskiem lub pilotem.
Istnieje opcja samodzielnego zaprogramowania czasów trwania sekwencji włączania i wyłączania urządzenia:
- jeśli przy podłączaniu urządzenia do zasilania z sieci energetycznej będzie wciśnięty przycisk, urządzenie uruchomi się w trybie programowania czasów co zostanie potwierdzone trójkrotnym mignięciem diodą,
- klikamy przyciskiem w celu ustalenia czasu włączania - 1 klik to 5 sekund, każde kliknięcie jest potwierdzane krótkim zapaleniem się diody,
- po ustawieniu odpowiedniego czasu włączania, poprzez długie naciśnięcie przycisku przechodzimy do programowania czasu wyłączania co potwierdzone zostaje dwukrotnym mignięciem diodą,
- klikamy przyciskiem w celu ustalenia czasu wyłączania - 1 klik to 5 sekund, każde kliknięcie jest potwierdzane krótkim zapaleniem się diody,
- zatwierdzamy ustawienia za pomocą długiego wciśnięcia przycisku, co zostaje potwierdzone pojedynczym mrugnięciem diody,
- ustawienia są zapisywane w nieulotnej pamięci eeprom, urządzenie przechodzi w tryb standby.
Jak wygląda obsługa z pilota:
- po naciśnięciu na pilocie przycisku PLAY/PAUSE na jednym z wyjść generowany jest impuls o czasie trwania 30 ms, który należy podłączyć na wejście RPi skonfigurowane jako wejście PLAY/PAUSE w playerze,
- po naciśnięciu na pilocie przycisku RIGHT na jednym z wyjść generowany jest impuls o czasie trwania 30 ms, który należy podłączyć na wejście RPi skonfigurowane jako wejście NEXT w playerze,
- po naciśnięciu na pilocie przycisku LEFT na jednym z wyjść generowany jest impuls o czasie trwania 30 ms, który należy podłączyć na wejście RPi skonfigurowane jako wejście PREV w playerze,
- po naciśnięciu na pilocie przycisku UP na jednym z wyjść generowany jest impuls o czasie trwania 30 ms, który należy podłączyć na wejście RPi skonfigurowane jako wejście VOLUME UP w playerze,
- po naciśnięciu na pilocie przycisku DOWN na jednym z wyjść generowany jest impuls o czasie trwania 30 ms, który należy podłączyć na wejście RPi skonfigurowane jako wejście VOLUME DOWN w playerze,
- po naciśnięciu na pilocie przycisku MENU, jeśli urządzenie jest wyłączone - następuje sekwencja włączania, jeśli urządzenia jest włączone - następuje sekwencja wyłączania, WAŻNA UWAGA: jeśli wiemy, że nasz player będzie włączany przez wejście trigger a przycisk MENU na pilocie będzie używany przez coś innego, możliwe jest deaktywowanie reakcji na przycisk MENU poprzez założenie zworki w odpowiednie miejsce.
Tak wygląda konfiguracja u mnie.


Możliwości wykorzystania:
- jako samodzielny player sterowany pilotem, z możliwością sterowania pilotem (włączanie, wyłączanie, play, pause, vol up, vol down, next song, prev song) i sekwencjami włączania i wyłączania, z dodatkowym zasilaniem dla napędów CD, di
- jako zasilacz sterowany wejściem trigger, przyciskiem lub pilotem,
- jako część całego systemu sterowanego z jednego pilota (tak jak jest to u mnie :P)
Jak to działa u mnie:
- Dystrybucja, którą używam do stworzenia playera to Volumio, które ma możliwość łatwego (za pomocą interfejsu użytkownika wewnątrz Volumio) doinstalowania wtyczki GPIO Buttons autorstwa tomatpasser.
- wtyczka ta została skonfigurowana w następujący sposób, przy czym piny Volume Up and Volume Down w moim systemie nie są podłączone ponieważ tego samego pilota nasłuchuje mój preamp i to on realizuje regulację głośności,
- preamp obsługuje również wybór wejść (analogowych oraz cyfrowych) i nasłuchuje tych samych ramek z pilota, czyli:
- po włączeniu preampu za pomocą pilota lub przycisku na preampie, preamp za pomocą swojego wyjścia trigger włącza player podając napięcie na jego wejście trigger,
- przyciski RIGHT i LEFT na pilocie zmieniają piosenki na playerze jeśli naciśnie się je krótko, jeśli długo - zmieniają aktywne wejście na preampie,
- przyciski UP i DOWN na pilocie sterują głośnością jednocześnie na preampie i na playerze, dlatego u mnie piny sterujące głośnością na playerze nie są podłączone,
- przycisk PLAY/PAUSE na pilocie jest obsługiwany tylko przez player i służy sterowania odtwarzaniem,
- przycisk MENU jest obsługiwany tylko przez preamp, krótkie naciśnięcie to zmiana jasności wyświetlacza, długie naciśnięcie to wejście w menu preampu,
- przycisk CENTRAL jest obsługiwany tylko przez preamp - krótkie naciśnięcie to MUTE, długie to włączanie lub wyłączanie systemu.
Jak widać, cały system audio steruje się jednym pilotem i jest to mega wygodne.


Tak, wiem - nie ma obudowy :P Jak to u mnie - faza wiecznego prototypu :P Ale za to gra bardzo dobrze i ma mega użyteczność :)
Dzięki możliwości zasilania napędu CD z zasilacza, mój player bez problemu obsługuje płyty:



W razie pytań pisać, będę w miarę możliwości odpowiadał :)
Dodatkiem jest możliwość zrobienia playera wraz z napędem CD obsługiwanym bezpośrednio z playera - wychodzi nam wszystko mające urządzenie, gdzie nie jesteśmy zależni od jakości DACa wbudowanego w player CD.
Kilka słów o elektronice:
- separowane galwanicznie wejście trigger aby dało się to ustrojstwo włączyć z innego urządzenia z wyjściem trigger,
- wyjście trigger aby dało się za pomocą tego urządzenia włączyć jakiekolwiek inne urządzenie z wejściem trigger (np. wzmacniacz)
- dwa stabilizowane zasilacze 5V/3 (oparte na LM1085) - wspólna masa, ale zasilane z dwóch oddzielnych uzwojeń transformatora, mostki Graetza obłożone kondensatorami 100 nF.
- wejście na przycisk,
- wyjście na diodę sygnalizacyjną z rezystorem ograniczającym prąd diody,
- wejście na odbiornik podczerwieni z filtrem na zasilaniu odbiornika - możliwość sterowania pilotem Apple,
- 6 wyjść sterujących impulsowo wejściami w RPi (power down, volume up, volume down, play/pause, next, prev),
- trafko standby 9 Vac, 1,5VA,
- trafko zasilacza RPi 2 x 6 Vac, 30VA,
- układ załączający trafko główne z gasikiem,
- wyjścia zasilaczy 5V jako zwykłe skręcane lub jako gniazda USB (w przypadku użycia gniazda USB możliwe jest podłączenie odbiorników o wyższym poborze prądu niż RPi jest w stanie dostarczyć, np. do zasilania napędu CD, linie danych USB dalej działają i napęd CD jest rozpoznawany w systemie RPi ale nie pobiera z RPi prądu),
- zworka do wyboru trybu pracy działania pilota.




Idea stojąca za powstaniem tego urządzenia:
- oddzielne zasilanie dla maliny oraz oddzielne zasilanie dla dotykowego wyświetlacza 7 cali oraz napędu CD,
- możliwość sterowania funkcjami playera za pomocą pilota, zworką wybiera się czy player ma mieć możliwość włączenia i wyłączenia za pomocą pilota,
- sekwencje włączania i wyłączania zasilania z możliwością programowania czasów włączenia oraz wyłączenia.
Jak działają sekwencje zasilania:
- po otrzymaniu sygnału włączenia (przycisk, pilot lub pojawienie się napięcie na wejściu trigger) załączany jest przekaźnik włączający zasilanie RPi - urządzenia się włącza, dioda sygnalizacyjna miga powoli sygnalizując włączanie się urządzenia,
- po włączeniu się urządzenia (czyli po odliczeniu zaprogramowanego czasu włączenia) dioda przechodzi w tryb ciągłego świecenia co oznacza, że urządzenie działa w trybie normalnego używania,
- po otrzymaniu sygnału wyłączenia (przycisk, pilot lub zanik napięcia na wejściu trigger) wysyłany jest impuls na wejście w RPi dzięki czemu system jest bezpiecznie zamykany a następnie po wcześniej zaprogramowanym czasie wyłączany jest zasilacz dla RPi, stan ten jest sygnalizowany szybkim miganiem diody,
- jeśli w trakcie włączania zachcemy jednak wyłączyć player - sekwencja włączania zostanie doprowadzona do końca (przez pozostały do pełnego włączenia czas dioda sygnalizuje zmienionym miganiem, że po włączeniu ma nastąpić wyłączenie) a następnie zostanie przeprowadzona sekwencja wyłączania z bezpiecznym wyłączeniem systemu operacyjnego,
- jeśli urządzenie jest w trakcie włączania, po którym ma nastąpić wyłączenie (czyli poprzedni punkt) ale jednak zdecydujemy, że chcemy aby urządzenie się normalnie włączyło - wystarczy ponownie kliknąć przycisk lub użyć pilota lub włączyć napięcie na wejściu trigger.
Wejście trigger jest nadrzędne - oznacza to, że jeśli na wejściu trigger jest podane napięcie to urządzenia nie da się wyłączyć przyciskiem lub pilotem.
Istnieje opcja samodzielnego zaprogramowania czasów trwania sekwencji włączania i wyłączania urządzenia:
- jeśli przy podłączaniu urządzenia do zasilania z sieci energetycznej będzie wciśnięty przycisk, urządzenie uruchomi się w trybie programowania czasów co zostanie potwierdzone trójkrotnym mignięciem diodą,
- klikamy przyciskiem w celu ustalenia czasu włączania - 1 klik to 5 sekund, każde kliknięcie jest potwierdzane krótkim zapaleniem się diody,
- po ustawieniu odpowiedniego czasu włączania, poprzez długie naciśnięcie przycisku przechodzimy do programowania czasu wyłączania co potwierdzone zostaje dwukrotnym mignięciem diodą,
- klikamy przyciskiem w celu ustalenia czasu wyłączania - 1 klik to 5 sekund, każde kliknięcie jest potwierdzane krótkim zapaleniem się diody,
- zatwierdzamy ustawienia za pomocą długiego wciśnięcia przycisku, co zostaje potwierdzone pojedynczym mrugnięciem diody,
- ustawienia są zapisywane w nieulotnej pamięci eeprom, urządzenie przechodzi w tryb standby.
Jak wygląda obsługa z pilota:
- po naciśnięciu na pilocie przycisku PLAY/PAUSE na jednym z wyjść generowany jest impuls o czasie trwania 30 ms, który należy podłączyć na wejście RPi skonfigurowane jako wejście PLAY/PAUSE w playerze,
- po naciśnięciu na pilocie przycisku RIGHT na jednym z wyjść generowany jest impuls o czasie trwania 30 ms, który należy podłączyć na wejście RPi skonfigurowane jako wejście NEXT w playerze,
- po naciśnięciu na pilocie przycisku LEFT na jednym z wyjść generowany jest impuls o czasie trwania 30 ms, który należy podłączyć na wejście RPi skonfigurowane jako wejście PREV w playerze,
- po naciśnięciu na pilocie przycisku UP na jednym z wyjść generowany jest impuls o czasie trwania 30 ms, który należy podłączyć na wejście RPi skonfigurowane jako wejście VOLUME UP w playerze,
- po naciśnięciu na pilocie przycisku DOWN na jednym z wyjść generowany jest impuls o czasie trwania 30 ms, który należy podłączyć na wejście RPi skonfigurowane jako wejście VOLUME DOWN w playerze,
- po naciśnięciu na pilocie przycisku MENU, jeśli urządzenie jest wyłączone - następuje sekwencja włączania, jeśli urządzenia jest włączone - następuje sekwencja wyłączania, WAŻNA UWAGA: jeśli wiemy, że nasz player będzie włączany przez wejście trigger a przycisk MENU na pilocie będzie używany przez coś innego, możliwe jest deaktywowanie reakcji na przycisk MENU poprzez założenie zworki w odpowiednie miejsce.
Tak wygląda konfiguracja u mnie.


Możliwości wykorzystania:
- jako samodzielny player sterowany pilotem, z możliwością sterowania pilotem (włączanie, wyłączanie, play, pause, vol up, vol down, next song, prev song) i sekwencjami włączania i wyłączania, z dodatkowym zasilaniem dla napędów CD, di
- jako zasilacz sterowany wejściem trigger, przyciskiem lub pilotem,
- jako część całego systemu sterowanego z jednego pilota (tak jak jest to u mnie :P)
Jak to działa u mnie:
- Dystrybucja, którą używam do stworzenia playera to Volumio, które ma możliwość łatwego (za pomocą interfejsu użytkownika wewnątrz Volumio) doinstalowania wtyczki GPIO Buttons autorstwa tomatpasser.
- wtyczka ta została skonfigurowana w następujący sposób, przy czym piny Volume Up and Volume Down w moim systemie nie są podłączone ponieważ tego samego pilota nasłuchuje mój preamp i to on realizuje regulację głośności,
- preamp obsługuje również wybór wejść (analogowych oraz cyfrowych) i nasłuchuje tych samych ramek z pilota, czyli:
- po włączeniu preampu za pomocą pilota lub przycisku na preampie, preamp za pomocą swojego wyjścia trigger włącza player podając napięcie na jego wejście trigger,
- przyciski RIGHT i LEFT na pilocie zmieniają piosenki na playerze jeśli naciśnie się je krótko, jeśli długo - zmieniają aktywne wejście na preampie,
- przyciski UP i DOWN na pilocie sterują głośnością jednocześnie na preampie i na playerze, dlatego u mnie piny sterujące głośnością na playerze nie są podłączone,
- przycisk PLAY/PAUSE na pilocie jest obsługiwany tylko przez player i służy sterowania odtwarzaniem,
- przycisk MENU jest obsługiwany tylko przez preamp, krótkie naciśnięcie to zmiana jasności wyświetlacza, długie naciśnięcie to wejście w menu preampu,
- przycisk CENTRAL jest obsługiwany tylko przez preamp - krótkie naciśnięcie to MUTE, długie to włączanie lub wyłączanie systemu.
Jak widać, cały system audio steruje się jednym pilotem i jest to mega wygodne.


Tak, wiem - nie ma obudowy :P Jak to u mnie - faza wiecznego prototypu :P Ale za to gra bardzo dobrze i ma mega użyteczność :)
Dzięki możliwości zasilania napędu CD z zasilacza, mój player bez problemu obsługuje płyty:



W razie pytań pisać, będę w miarę możliwości odpowiadał :)
Skomentuj