Spisu treści:

Telefon komórkowy z obrotową tarczą w stylu retro: 4 kroki (ze zdjęciami)
Telefon komórkowy z obrotową tarczą w stylu retro: 4 kroki (ze zdjęciami)

Wideo: Telefon komórkowy z obrotową tarczą w stylu retro: 4 kroki (ze zdjęciami)

Wideo: Telefon komórkowy z obrotową tarczą w stylu retro: 4 kroki (ze zdjęciami)
Wideo: 10 NAJCIEKAWSZYCH FUNKCJI SAMSUNG GALAXY WATCH 6 2024, Czerwiec
Anonim
Telefon komórkowy w stylu retro z obrotową tarczą
Telefon komórkowy w stylu retro z obrotową tarczą

Ten projekt kierowany był zarówno praktyczną potrzebą, jak i chęcią zrobienia czegoś fajnego.

Jak większość współczesnych rodzin, wiele lat temu przestaliśmy mieć prawdziwy „domowy” telefon (przewodowy). Zamiast tego mamy dodatkową kartę SIM powiązaną z naszym „starym” numerem domowym, który nosiłem w moim telefonie komórkowym dual-sim. Przez większość czasu było to w porządku, ale w niektórych przypadkach nie działało najlepiej, na przykład gdy odwiedzili nas nasi rodzice (są starszego pokolenia - bez telefonów komórkowych i nie mogłem do nich zadzwonić w domu, gdy nie było ponieważ nasz „domowy” telefon był ze mną). Zostało to również wzmocnione, gdy zmieniłem telefon (nowy telefon z pojedynczym gniazdem na kartę SIM). Wydawało się więc, że dobrym pomysłem jest znalezienie sposobu na telefon w stylu „domowym”, który będzie mógł korzystać z naszej dodatkowej karty SIM.

Jeśli chodzi o zabawę, większość dzieci w dzisiejszych czasach nie ma pojęcia, jak działały stare telefony z obrotową tarczą, ani że w ogóle istniały jako takie. W części świata, z której pochodzimy z żoną, do wybierania numeru używamy wyrażenia „odwróć numer”, co jest mylące dla młodszej populacji, ponieważ „dlaczego ktoś miałby odwracać telefon, aby wybrać numer”. Dlatego pomyślałem, że fajnie byłoby, gdyby mój syn (który aktywnie uczestniczył w tym projekcie) mógł zdobyć doświadczenie z telefonem obrotowym.

Oczywiście byłam też pewna, że ten „nowy” telefon będzie fajnym tematem do rozmowy, gdy będziemy mieć przyjaciół i krewnych. Albo jeszcze lepiej, zabierając ze sobą telefon w odwiedziny do znajomych, zaskakując ludzi w pełni funkcjonalnym telefonem w stylu retro.

Podczas projektu zmieniliśmy niektóre z pierwotnych celów projektowych. Na przykład myślałem o wbudowaniu zewnętrznej baterii wielokrotnego ładowania wewnątrz telefonu, aby można ją było łatwo zabrać ze sobą, ale w końcu zdałem sobie sprawę, że nie jest to konieczne (ponieważ ten typ telefonu jest naturalnie cały czas w jednym miejscu, więc może być zawsze podłączony do gniazdka). Było kilka innych „skrótów”, które mogliśmy zastosować, dzięki czemu projekt był stosunkowo prosty i niezbyt skomplikowany.

================

Jeśli chodzi o materiał, początkowo miałem nadzieję, że będziemy w stanie zdobyć stary telefon obrotowy od moich rodziców i wykorzystać większość jego części (obudowa telefonu, pokrętło obrotowe, zestaw słuchawkowy itp.), co obniży koszt całego projektu. Ostatecznie tak się nie stało z powodu COVID-19, który uniemożliwił nam planowaną podróż do Europy (odwiedzanie rodziny), a zamiast tego właśnie znaleźliśmy i kupiliśmy nowy telefon z tarczą obrotową na Amazon (nie byłem zadowolony z opcji i cen w serwisie eBay). To było w porządku, ponieważ zapewniało kilka interesujących dodatkowych funkcji, ponieważ znaleźliśmy telefon z obrotową tarczą z dodatkowymi opcjami wybierania (* i #), normalnie niedostępnymi w starych telefonach.

Główną częścią projektu był GSM/GPRS HAT, który jest łatwo dostępny (nie potrzebowaliśmy wersji 4G), a który można bezpośrednio kontrolować za pomocą dowolnego Raspberry Pi lub podobnych płyt. W naszym przypadku mieliśmy małą płytkę Raspberry Pi Zero, której nie używaliśmy aktywnie (ze starszego projektu mojego syna).

Interesujące jest to, że większość zmian myślowych i projektowych została dokonana wokół stosunkowo prostej i niewielkiej części projektu - tworzenia akcji dzwonienia. Jak wiedzą ci, którzy są zaznajomieni ze starymi telefonami, charakterystyczne dzwonki w starym stylu zostały wyprodukowane przez "dzwonki" napędzane prądem 40-60 VAC, co było trudne do wykonania w ramach tego projektu. W końcu zdecydowałem się uprościć tę część projektu i uzyskałem stosunkowo proste rozwiązanie, wykorzystując moduł nagrywania dźwięku, który zwykle jest częścią kart okolicznościowych. Było kilka innych opcji, ale to faktycznie działało świetnie i było stosunkowo niedrogim rozwiązaniem.

Kieszonkowe dzieci

  • Raspberry Pi Zero W
  • Waveshare GSM/GPRS/GNSS/Bluetooth HAT
  • Nagrywalny moduł dźwiękowy, aktywowany przyciskiem
  • (Stary) Telefon obrotowy
  • Karta Micro SD (dla Raspberry Pi), kable/piny, stare słuchawki itp.

Krok 1: Przygotowanie telefonu

Przygotowanie telefonu
Przygotowanie telefonu

Telefony przewodowe w starym stylu są stosunkowo prostymi urządzeniami. Jak widać na zdjęciu z rozebranym oryginalnym telefonem, częściami wielokrotnego użytku są główna obudowa telefonu, w tym pokrętło i podstawa, zestaw słuchawkowy i przełącznik, natomiast reszta została wyjęta - dzwonek i tablica kontrolna.

To, co było bardzo miłe w przypadku tego konkretnego modelu telefonu, to fakt, że mogliśmy ponownie wykorzystać nie tylko pokrętło, ale także jego złącze, które można było podłączyć bezpośrednio do złącza na Raspberry Pi. Należy zauważyć, że to złącze ma 3 przewody, jeden w celach informacyjnych i 2 dyskretne wejścia na Raspberry Pi. Przy odpowiedniej logice (przechwyconej w załączonym kodzie) pozwala to wykryć, kiedy przekręcono numer i jaki numer został wybrany.

To samo dotyczy przełącznika zestawu słuchawkowego, który ma złącze, które można bezpośrednio podłączyć do złącza. Jest to prosta logika, ponieważ wymaga tylko odniesienia i jednego wejścia dyskretnego.

Zgodnie z oczekiwaniami kabel zestawu słuchawkowego ma 4 przewody, po 2 dla głośnika i mikrofonu o niskim poziomie mocy. Ponieważ HAT, którego używaliśmy, miał gniazdo audio 3,5 mm dla słuchawek, po prostu podłączyłem te 4 przewody do jednego ze starych męskich wtyków audio 3,5 mm słuchawek.

Jeszcze jedną ciekawostką, która przydała się w przypadku tego konkretnego modelu telefonu, było mocowanie słupków od podstawy telefonu. Podczas gdy musieliśmy wyciąć niektóre z nich, aby zrobić miejsce na deski, nadal byliśmy w stanie wykorzystać inne i zabezpieczyć nasze deski. To była miła przerwa i zaoszczędziła nam trochę czasu.

Krok 2: Łączenie rzeczy

Łączenie rzeczy
Łączenie rzeczy
Łączenie rzeczy
Łączenie rzeczy
Łączenie rzeczy
Łączenie rzeczy

W celu prostego sprawdzenia koncepcji wystarczy podłączyć bezpośrednio Raspberry Pi i GSM HAT, a zwykłe słuchawki podłączyć do GSM HAT. Udało mi się użyć tej konfiguracji wraz z aplikacją MiniCom (sterującą portem szeregowym Raspberry Pi, który jest bezpośrednio podłączony do GSM HAT), aby szybko sprawdzić, czy moja karta SIM działa i czy mogę dzwonić i wysyłać/odbierać wiadomości SMS z tą konfiguracją.

Ponieważ inni mogą być tym zainteresowani (fajnie jest szybko przetestować nową konfigurację), oto wskazówki, jak to zrobić (oczywiście w oparciu o założenie tych samych/podobnych płyt):

- Zainstaluj i skonfiguruj system operacyjny na Raspberry Pi (użyłem wersji Lite OS, która jest dostarczana bez żadnego GUI).

- Podłącz GSM HAT (z zainstalowaną kartą SIM) do Raspberry Pi (upewnij się, że GSM HAT ma odpowiedni wybór przełącznika UART w zależności od typu połączenia, patrz poniższy link do instrukcji HAT). Do tego kroku może być potrzebna wersja Raspberry Pi, która ma już zainstalowane złącze nagłówkowe, w naszym przypadku musiałem go przylutować (ponieważ używałem Pi zero, które domyślnie dostarczane jest bez nagłówka). Alternatywnie, lepszą opcją jest użycie kabla micro USB do połączenia obu kart (zarówno Raspberry Pi, jak i GSM HAT mają micro USB)

- Włącz korzystanie z portu szeregowego Raspberry Pi przy podłączaniu GSM HAT przez port szeregowy (domyślnie port Raspberry Pi jest używany dla konsoli). Aby to zrobić, będziesz musiał postępować zgodnie z instrukcjami dotyczącymi raspi-config (patrz powyżej link "configure"), opcji interfejsu - włączanie opcji SSH i szeregowych. W przypadku korzystania z wersji Lite OS może być również konieczne „połączenie z siecią bezprzewodową” i włączenie protokołu SSH (patrz instrukcje z powyższego łącza „konfiguruj”).

- Podłącz Raspberry Pi do monitora i klawiatury (lub uzyskaj do niego dostęp przez zdalny ssh)

- Użyj MiniCom lub podobnej aplikacji szeregowej, aby ręcznie sterować HAT przez odpowiedni port (dla mojego portu konfiguracji był "/dev/ttyS0", będzie inaczej, jeśli używam micro USB). Zainstaluj MiniCom za pomocą "sudo apt-get install minicom", a po zainstalowaniu uruchom go za pomocą "minicom -D /devtyS0" (lub dowolnego używanego portu).

- Użyj instrukcji GSM HAT lub instrukcji AT Command, aby sterować różnymi funkcjami HAT (wysyłanie SMS-ów, wykonywanie połączeń itp.). Po prawidłowym podłączeniu GSM HAT odpowie "OK" na zapytanie za pomocą polecenia "AT". Aby sprawdzić, czy karta SIM została poprawnie zarejestrowana, użyj polecenia „AT+CREG?”, które również powinno zwrócić „OK”. Możesz również zweryfikować dostawcę sieci za pomocą „AT+COPS?” lub sprawdzić własny numer telefonu za pomocą „AT+CNUM”

Aby zintegrować resztę potrzebnych części, stworzyliśmy niestandardowy 16-pinowy kabel dla Raspberry Pi z GSM HAT, ponieważ potrzebowaliśmy innych uniwersalnych pinów IO do odczytu pokrętła, stanu przełącznika zestawu słuchawkowego i sterowania dzwonkiem (również do automatycznego uruchamiania GSM HAT podczas włączania / inicjalizacji). Próbowałem użyć w tym celu niektórych gotowych przewodów do Raspberry Pi i chociaż działało to dobrze przy szybkim łączeniu i testowaniu, nie byłem zbyt zadowolony z jakości i ostatecznie stworzyłem własne 16-stykowe złącze.

Innym sposobem na nawiązanie połączenia między Raspberry Pi a GSM HAT są porty micro USB obu płyt (i znowu będziesz musiał ustawić odpowiednio przełącznik UART na GSM HAT), co może być szybszym i znacznie prostszym rozwiązaniem. Możesz to łatwo zrobić, jeśli zdobędziesz odpowiedni kabel (dzięki czemu zaoszczędzisz czas i wysiłek związany z wykonaniem kabla) - po prostu nie zapomnij zmienić portu używanego przez oprogramowanie/aplikację.

Po podłączeniu płyt (z micro USB) reszta jest łatwa. Wystarczy postępować zgodnie z powyższym diagramem, na którym przedstawione tam piny są powiązane z kodem dołączonym na końcu tej instrukcji. Konkretnie:

- Piny 35, 37 i 39 (skojarzone z Raspberry Pi GPIO 19, 26 i masą) służą do połączenia z tarczą (piny wejściowe). Telefon, który wybraliśmy, miał już zbudowane złącze 3-przewodowe, przy czym czerwony i czarny przewód są powiązane z pinami NO i NC, a żółty przewód jest wspólny.

- Piny 23 i 25 (Raspberry Pi GPIO 11 i masa) służą do podłączenia przełącznika zestawu słuchawkowego (wejście - wykrywanie podniesienia lub odłożenia zestawu słuchawkowego)

- Piny 22 i 20 (Raspberry Pi GPIO 25 i masa) służą do podłączenia do przełącznika modułu dźwiękowego (wyjście - działanie pierścienia)

- Dodatkowo pin 19 (GPIO 10) może wymagać przylutowania do włącznika GSM HAT, ponieważ niektórych wersji HAT nie można uruchomić tylko przez włączenie zasilania, ale ktoś musi ręcznie wcisnąć włącznik "zasilanie" na HAT.

- Po stronie telefonu usunęliśmy wewnętrzny kabel 4-żyłowy zestawu słuchawkowego i podłączyliśmy do gniazda audio 3,5 mm ze starych słuchawek. Czerwone/zielone przewody służą do mikrofonu zestawu słuchawkowego, a żółty/czarny do głośnika zestawu słuchawkowego. W zależności od użytej strony jack 3,5 mm może być konieczne dobranie odpowiedniego przewodu (z powyższego fragmentu dla wejścia słuchawkowego GSM HAT), ale w naszym przypadku mikrofon był podłączony do ekranu i czerwony, natomiast przewody głośnikowe były zielone i niebieskie. Na koniec podłącz jack 3,5 mm do wejścia słuchawkowego GSM HAT.

Krok 3: Ostateczne pakowanie i dodawanie symulowanego „efektu dzwonienia”

Ostateczne pakowanie i dodawanie symulowane
Ostateczne pakowanie i dodawanie symulowane

Chociaż ostateczne opakowanie wewnętrzne, jak widać na powyższym zdjęciu, wygląda stosunkowo schludnie, wymagało wiele majsterkowania i wypróbowania różnych opcji. Głównym ograniczeniem była przestrzeń pod obrotową tarczą i sztywnymi złączami, a cały proces przypominał układanie puzzli.

Na szczęście udało nam się wykorzystać kilka słupków, które już istniały w telefonie (pozostałe usunęliśmy narzędziem Dremel) oraz zabezpieczyć tablice i głośnik. Ale to również ograniczyło resztę dostępnej przestrzeni, co ostatecznie doprowadziło nas do porzucenia pierwotnego pomysłu na dodanie wewnętrznego źródła zasilania.

Jeśli chodzi o „pierścień”, ostatecznie kupiliśmy zasilany bateryjnie moduł dźwiękowy z możliwością nagrywania. Opcjonalnie (przy podłączaniu płyt przez micro USB) dostępna jest wersja bez baterii, która może być zasilana bezpośrednio ze złącza Raspberry Pi 5V.

W obu przypadkach należałoby usunąć zewnętrzny przełącznik sterujący z modułu dźwiękowego i podłączyć przewody do jednego z pinów GPIO + uziemienie. Programowanie dzwonka w module jest bardzo proste, wystarczy podłączyć go do komputera i pobrać dowolny plik mp3, którego chcesz użyć do dzwonka. Oto link do ładnej strony z mnóstwem starych dźwięków dzwonków.

Krok 4: Oprogramowanie i końcowa integracja

Oprogramowanie i końcowa integracja
Oprogramowanie i końcowa integracja
Oprogramowanie i końcowa integracja
Oprogramowanie i końcowa integracja

Powyższy schemat blokowy przedstawia wszystkie główne komponenty i ich relacje. Zasadniczo implementacja wymaga 3 dyskretnych wejść i co najmniej 1 dyskretnego wyjścia (użyliśmy 2 DO, ponieważ wersja GSM HAT, którą otrzymaliśmy, nie może się uruchomić automatycznie bez naciśnięcia przycisku na HAT, więc musieliśmy przylutować przewód do tego przycisku, aby wymusić uruchamianie HAT, gdy telefon jest zasilany).

Jeśli chodzi o kod, został on napisany w Pythonie 2.7, więc jeśli zainstalujesz/użyjesz wersji 3.x i wyższej, niektóre rzeczy mogą wymagać zmiany (oczywiście jest to instrukcja „print”). Aby kod działał poprawnie, należy najpierw dodać kilka bibliotek Pythona, takich jak:

- gpiozero (wymagany do interfejsu GPIO Raspberry Pi)

- re (biblioteka wyrażeń regularnych - do analizowania przychodzących wiadomości SMS, zainstaluj, jeśli nie jest częścią domyślnej instalacji Pythona)

- szeregowy (do połączenia z GSM HAT - potrzebny nawet przy połączeniu przez micro USB, zainstaluj, jeśli nie jest częścią domyślnej instalacji Pythona)

Ponadto w załączonym kodzie znajdują się 2 miejsca, które należy zmodyfikować/dostosować w zależności od ostatecznej implementacji (lub 3 miejsca, jeśli używane są różne piny GPIO). Pierwsza dotyczy numeru, którego chcesz używać do przekazywania wiadomości:

# ***********************************FORWARDING_NUMBER = "5551234567" # wstaw telefon tam, gdzie chcesz otrzymywać wiadomości do przekazania

# ***********************************

Drugi dotyczy ustawienia portu szeregowego:

# ***********************************

# Inicjalizacja SIM868 i rutinessim868 = serial. Serial("/dev/ttyS0", 115200)

# upewnij się, że /dev/ttyS0 jest odpowiedni dla twojej konfiguracji

# ***********************************

Kod został zbudowany jako maszyna stanowa, opisana na powyższym schemacie. Przez większość czasu telefon jest w stanie IDLE, czekając na zdarzenia:1. Połączenie przychodzące (które spowoduje przejście telefonu w stan RING)

2. Przychodząca wiadomość SMS - która jest/może być automatycznie przekazana na inny telefon

3. Podnoszenie zestawu słuchawkowego w ramach przygotowań do wybierania numeru (wprowadza telefon w stan DIAL)

4. Wybieranie znaku specjalnego bez podnoszenia zestawu słuchawkowego (zgodnie z aktualnym kodem, wybieranie „#” wyłączania telefonu) …

W kodzie znajduje się wiele komentarzy, które powinny pomóc w jego przeczytaniu i zrozumieniu. Niektóre rzeczy pozostawiliśmy niedokończone, takie jak dodanie opcji szybkiego wybierania, wysłanie wiadomości o stanie lub…

Jeśli chodzi o to, jak automatycznie uruchamiać kod po włączeniu zasilania, zdecydowaliśmy się zaimplementować go jako usługę, co można zrobić w sposób opisany tutaj. Po prostu wykonaj następujące czynności:

- pobierz poniżej załączone pliki "rotaryPhoneStateMachine.txt" i "myphone.txt" i zmień ich nazwy na "rotaryPhoneStateMachine.py" i "myphone.service" (z jakiegoś dziwnego powodu serwer Instructables nie pozwala na wgrywanie niektórych typów plików)

- umieść "rotaryPhoneStateMachine.py" w folderze /home/pi

- umieść "myphone.service" w /etc/systemd/system

- włącz usługę poleceniem "sudo systemctl enable myphone.service" (po przetestowaniu wszystkiego)

Zalecana: