Tworząc telefon stacjonarny w stylu retro, oparty na Raspberry Pi, trzeba pokonać wiele problemów, a właściwie zmierzyć się z licznymi, bardzo różnorodnymi zadaniami. Wynika to przede wszystkim z różnic, jakie zaszły w telekomunikacji na przestrzeni dziesięcioleci. Niemniej, uzyskany efekt może być bardzo atrakcyjny. Gotowy telefon w stylu retro, podłączony do Internetu, robi nie lada wrażenie, a korzystanie z niego może naprawdę sprawiać przyjemność.
Jeden telefon – wiele aspektów
Po pierwsze, problematyczne jest wybieranie impulsowe, od którego centrale telefoniczne już dawno odeszły i zastąpiły je wybieraniem tonowym. Ta druga metoda jest po prostu szybsza, gdyż zamiast zliczać następujące po sobie impulsy, wystarczy rozpoznać dwie składowe częstotliwości, użyte do wygenerowania wybranego tonu. Trwa to ułamek czasu potrzebnego na rozpoznanie zera wybieranego impulsowo. Dlatego autor musiał wykonać układ, który będzie samodzielnie rozpoznawał wybrany na tarczy numer.
Po drugie, problematyczne jest zasilanie. Klasyczne telefony tarczowe korzystają z napięcia w sieci telekomunikacyjnej i nie potrzebują dodatkowego podłączenia do prądu. Tu jednak trzeba zasilić cały komputer, wymagający 5 V, a dodatkowo napędzić dzwonek, który jest niemałym elementem elektromechanicznym i 5 V do tego nie wystarczy.
Po trzecie, stosowane w starych telefonach głośniki i mikrofony mają się nijak do obecnych standardów odnośnie do interfejsów audio w komputerach. Dlatego konieczne staje się zastąpienie dawnych podzespołów audio nowymi.
Po czwarte, korzystając z Raspberry Pi, nie otrzymujemy złącza telefonicznego, które można byłoby wykorzystać do podłączenia się do takiej sieci. W tym przypadku autor poszedł nieco na łatwiznę i zrezygnował z podłączenia do kabla telefonicznego, zastępując go siecią ethernetową i technologią VOIP (czy np. choćby Skype). W efekcie niniejszy projekt jest także świetnym przykładem programowania elektroniki w praktyce, tj. z wykorzystaniem komercyjnie dostępnych rozwiązań i usług. Wiedza zaczerpnięta z niego może posłużyć do przygotowania innego rozwiązania, bazującego na minikomputerze, komercyjnej technologii VOIP i języku C.
Podstawa, czyli stary telefon
Autor postanowił, że jego urządzenie będzie miało wygląd klasycznego telefonu tarczowego z Wielkiej Brytanii, z lat 70. ubiegłego wieku. Wybrał model GPO 746, zakupiony na eBayu. W Polsce z łatwością można zdobyć podobne aparaty na Allegro czy innym serwisie z ogłoszeniami, a pewnie część czytelników ma jeszcze takie telefony w szafie lub piwnicy. Koszt zakupu to obecnie od kilkudziesięciu złotych za modele z lat 80. i 90., przez ok. 100 zł za aparaty ebonitowe z lat 50.–70., aż do kilkuset za prawdziwe, stylowe zabytki. Większość z nich będzie działała podobnie, choć pewne różnice mogą obejmować cewkę dzwonka, która w praktyce może pracować z innymi napięciami.
Zasilanie
Gdyby chcieć zastosować się do napięć znamionowych komponentów telefonu, trzeba by było zapewnić dostępność prądu przemiennego o napięciu 50 V, jednocześnie zasilając Raspberry Pi napięciem stałym 5 V. W praktyce jednak w wielu telefonach 50 V to znacznie więcej niż faktycznie potrzeba do poruszenia cewkami dzwonka. W przypadku modelu GPO 746 okazało się, że wystarczy 16 V, by gong przesunął się, uderzając w kopułę dzwonka. Ponadto nie ma potrzeby, by podawane napięcie zmieniało się w jakiś dokładnie określony sposób. Wystarczy, że odpowiednio szybko cewki będą naprzemiennie polaryzowane, co spowoduje uderzenia gongu i da efekt dzwonka.
Napięcie stałe 16 V lub nieco wyższe można łatwo uzyskać z większości zasilaczy do laptopów. Tak też zrobił autor projektu, stosujc swój stary, 19-woltowy zasilacz. Mając już względnie stabilne 19 V, za pomocą małej, scalonej przetwornicy można uzyskać napięcie 5 V, potrzebne do Raspberry Pi. Autor użył modelu Murata OKI-78SR-5/1.5-W36-C, czyli przetwornicy impulsowej DC-DC. Jej zaletą są niewielkie wymiary, brak konieczności stosowania radiatora czy dodatkowych komponentów zewnętrznych, zabezpieczenie przed zwarciem oraz szeroki zakres napięć wejściowych – od 7 VDC do 36 VDC (a więc będzie pasować także do innych zasilaczy laptopowych). Wydajność prądowa tego układu to 1,5 A, co w zupełności wystarcza dla projektowanej aplikacji. Układ ma kształt i wyprowadzenia zaplanowane tak, by mógł z łatwością zastąpić stabilizatory liniowe serii 78xx w obudowach TO-220. W przypadku Raspberry Pi nie trzeba się też martwić o podłączanie zasilania do gniazda micro USB – wystarczy podłączyć je do odpowiednich wyprowadzeń GPIO i system będzie działać.
Dzwonek
Typowo dzwonek w telefonie bije z częstotliwością 25 Hz, tj. 50 razy na sekundę słychać uderzenie – raz w jedną kopułę, a raz w drugą. Dokładna wartość nie ma jednak większego znaczenia – ważne, by zastosowana częstotliwość pozwalała uzyskać właściwe wrażenie dzwonka.
Dostarczone napięcie stałe 19 V z zasilacza trzeba więc podawać na dwie cewki naprzemiennie, z częstością ok. 25 Hz. W tym celu wystarczy zastosować dwa przekaźniki. Teoretycznie wystarczyłby jeden, przełączający napięcie z zasilacza pomiędzy cewkami, ale rzecz w tym, by prąd nie płynął przez żadną cewkę w czasie, gdy telefon nie dzwoni. Przekaźniki warto podłączyć szeregowo. Pierwszy włącza mechanizm dzwonka, czyli dopływ prądu do drugiego przekaźnika, a drugi przełącza prąd pomiędzy cewkami ok. 50 razy na sekundę.
Wybieranie tarczą
Na tym etapie mogą pojawić się pewne trudności, a ponadto można się spodziewać większych rozbieżności pomiędzy poszczególnymi aparatami telefonicznymi. By poznać cyfrę wybieraną przez użytkownika, należy zliczyć liczbę następujących po sobie impulsów elektrycznych, pochodzących z tarczy.
Użytkownik wybiera cyfrę, przekręcając kółko tarczy do odpowiedniej pozycji, po czym puszcza je i w określonym, stałym tempie, wraca ono do pozycji wyjściowej, emitując przy tym impulsy w regularnych odstępach czasowych. Odstępy te będą różne dla poszczególnych aparatów, a dokładniej – będą zależeć od szybkości powrotu tarczy do pozycji wyjściowej. W przypadku aparatu GPO 746 impuls pojawia się co ok. 91,5 milisekundy. Ważne jest też, by rozpoznawać początek i koniec impulsów dla wprowadzanej cyfry. Telefony tarczowe były konstruowane tak, by fizycznie nie dało się zbyt szybko wybierać jednej cyfry po drugiej – początkowy ruch tarczy nie powoduje wysyłania impulsów, toteż pomiędzy każdymi wybieranymi cyframi należy spodziewać się przerwy. Autor w swoim projekcie na podstawie doświadczeń ustalił, że przyjmie, że musi ona trwać nie mniej niż ok. 400 ms. Wystarczy więc podłączyć wyprowadzenia tarczy do GPIO Raspberry Pi i nawet bez dodatkowych elementów elektronicznych czekać na pojawienie się impulsu, po czym zliczać je, aż do momentu, gdy przestaną się pojawiać przez przynajmniej 400 ms. Raspberry Pi, dzięki dosyć szybkiemu procesorowi, jest w stanie liczyć czas pomiędzy impulsami nawet z dokładnością do ok. 1 ms, co może mieć znaczenie w przypadku pojawiania się ewentualnych, niepożądanych drań i fałszywych impulsów. Należy to zbadać doświadczalnie i w razie czego ignorować te, które występują znacznie częściej niż regularne (a więc dużo częściej niż co ok. 90 ms).
Audio
Problem starego mikrofonu i głośnika autor rozwiązał w dosyć prosty sposób. Po prostu kupił tani zestaw słuchawkowy i wyjął z niego komponenty, po czym wmontował je w słuchawkę, zastępując stare. Większość klasycznych aparatów telefonicznych została zbudowana tak, że wystarczy odkręcić nakładki na obudowie słuchawki i można łatwo dostać się do komponentów audio.
Dopasowanie obudowy i pozostałe komponenty
Teoretycznie wszystkie potrzebne komponenty zostały już opisane, ale może się okazać, że w przypadku konkretnego modelu telefonu warto zastosować dodatkowe przejściówki lub płytki. Autor, by zmieścić wszystko wewnątrz obudowy i wygodnie podłączyć podzespoły, skorzystał z dodatkowego PCB do wyprowadzenia sygnałów GPIO oraz z przejściówki z karty micro SD na SD. Potrzeba dodatkowych komponentów będzie też zależeć od użytej wersji Raspberry Pi. Przydatne okażą się też zapewne śrubki, którymi elektronikę będzie można przytwierdzić wewnątrz obudowy. Ewentualnie można użyć także kleju termicznego, który zredukuje wpływ wibracji dzwonka na resztę komponentów oraz odizoluje je elektrycznie w razie, gdyby zaczęły drgać i stykać się.
Niestety, umieszczenie całości w starym telefonie będzie prawdopodobnie wymagało wycięcia elementów ze środka czy nawet z zewnętrznej części obudowy. Być może nawet będą to elementy konstrukcji metalowej, dlatego warto mieć pod ręką miniwiertarkę, która posłuży także jako szlifierka kątowa. W przypadku zabytkowych aparatów warto zminimalizować liczbę nacięć, gdyż zmniejszą one wartość telefonu. Oczywiście – bardzo wiele będzie zależeć od wielkości użytego aparatu.
Schemat połączeń wewnątrz telefonu wynika z opisanych już elementów. Warto tylko dodać, że oprócz rozpoznawania impulsów, które polegają na zwieraniu jednego z wejść GPIO do masy, należy też rozpoznawać stan słuchawki – tj. tego, czy leży ona na „widełkach”, czy też jest podniesiona. To również można zrealizować za pomocą zwierania kolejnej linii GPIO do masy.