Innholdsfortegnelse:

Retro -stil roterende ringe mobiltelefon: 4 trinn (med bilder)
Retro -stil roterende ringe mobiltelefon: 4 trinn (med bilder)

Video: Retro -stil roterende ringe mobiltelefon: 4 trinn (med bilder)

Video: Retro -stil roterende ringe mobiltelefon: 4 trinn (med bilder)
Video: Кто-нибудь из вас слышал о полуночной игре? Страшные истории. Мистика. Ужасы 2024, Juni
Anonim
Retro stil roterende urskive mobiltelefon
Retro stil roterende urskive mobiltelefon

Dette prosjektet ble drevet av både praktisk behov og ønske om å gjøre noe morsomt.

Som de fleste moderne familier sluttet vi å ha en ekte "hjemmetelefon" (med ledning) for mange år siden. I stedet har vi et ekstra SIM-kort knyttet til vårt "gamle" hjemmenummer, som jeg hadde med i min dual-sim-mobiltelefon. Dette var fint som oppsett for det meste, men det fungerte ikke best i noen tilfeller, som da vi hadde foreldrene våre på besøk (de er gamle generasjoner - uten mobiltelefoner, og jeg kunne ikke ringe dem hjemme når vi var borte) siden vår "hjem" -telefon var med meg). Dette ble også forsterket da jeg byttet telefon (ny telefon med ett sim -spor). Så det virket som en god idé å finne en måte å ha en "hjemme" telefon som kan bruke vårt ekstra SIM -kort.

Når det gjelder det morsomme, har de fleste barna i dag ikke så mye peiling på hvor gamle telefoner med roterende ringer, eller at de til og med eksisterte som sådan. I en del av verden der min kone og jeg er fra, bruker vi uttrykket "snu nummeret" for oppringing, noe som er forvirrende for den yngre befolkningen, siden "hvorfor skulle noen snu telefonen for å ringe". Derfor tenkte jeg at det ville være kult å få sønnen min (som deltok aktivt i dette prosjektet) til å få erfaring med roterende telefon.

Selvfølgelig var jeg også sikker på at denne "nye" telefonen ville være et hyggelig samtaleemne når vi har venner og slektninger over. Eller enda bedre, ta telefonen med oss når du besøker venner, overraskende mennesker med en fullt funksjonell retro utseende mobiltelefon.

Under prosjektet endret vi noen av de opprinnelige designmålene. For eksempel tenkte jeg på å legge inn et oppladbart eksternt batteri inne i telefonen, slik at det enkelt kan tas rundt, men til slutt innså jeg at dette ikke er nødvendig (siden denne typen telefoner naturligvis holder seg på ett sted hele tiden, så det kan alltid være plugget inn i stikkontakten). Det var noen andre "snarveier" som vi kunne ta, noe som gjorde prosjektet relativt rett frem og ikke for komplekst.

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

Når det gjelder materiale, håpet jeg opprinnelig at vi kunne få en gammel roterende telefon fra foreldrene mine og bruke de fleste delene (telefonskall, dreiehjul, headset, etc.), noe som ville redusere kostnadene for det totale prosjektet. Det skjedde til syvende og sist ikke på grunn av COVID-19, som forhindret vår planlagte tur til Europa (besøkende familie), og i stedet fant vi og kjøpte den nye telefonen med dreieoppringning på Amazon (jeg var ikke fornøyd med alternativer og priser på eBay). Dette var OK, siden det ga noen interessante tilleggsfunksjoner, siden vi fant en ringetelefon med ekstra oppringingsalternativer (* og #), som normalt ikke er tilgjengelig på gamle telefoner.

Hoveddelen av prosjektet var GSM/GPRS HAT som er lett tilgjengelig (vi trengte ikke 4G -versjon), og som kan styres direkte med hvilken som helst Raspberry Pi eller lignende brett. I vårt tilfelle hadde vi et lite Raspberry Pi Zero -kort som vi ikke brukte aktivt (fra sønnens eldre prosjekt).

Det er interessant at de fleste tenknings- og designendringene ble gjort rundt en relativt enkel og liten del av prosjektet - og skaper ringende handling. Som de som er kjent med gamle telefoner vet, ble karakteristisk gammel stil-ringing produsert av "bjeller" drevet av 40-60 VAC, noe som var vanskelig å gjøre som en del av dette prosjektet. Jeg bestemte meg til slutt for å forenkle den delen av prosjektet, og endte opp med en relativt enkel løsning ved å bruke opptakbar lydmodul som vanligvis er en del av gratulasjonskortene. Det var noen andre alternativer, men dette fungerte faktisk bra og var en relativt billig løsning.

Rekvisita

  • Raspberry Pi Zero W
  • Waveshare GSM/GPRS/GNSS/Bluetooth HAT

  • Innspillbar lydmodul, trykknapp aktivert
  • (Gammel) Rotary Phone
  • Micro SD -kort (for Raspberry Pi), kabler/pinner, gamle hodetelefoner, etc.

Trinn 1: Klargjøre telefonen

Klargjøre telefonen
Klargjøre telefonen

Gamle telefoner med ledning er relativt enkle enheter. Som det kan sees fra bildet med den originale telefonen tatt fra hverandre, er gjenbrukbare deler hovedtelefonskallet, inkludert dreiehjul og base, headset og bryteren, mens resten ble tatt ut - ringeklokke og kontrollkort.

Det som var veldig fint med denne spesifikke telefonmodellen, er at vi ikke bare kunne bruke dreiehjulet på nytt, men også kontakten, som kan kobles direkte til toppteksten på Raspberry Pi. Det bør bemerkes at denne kontakten har 3 ledninger, en for referanse og 2 til diskrete innganger på Raspberry Pi. Med passende logikk (fanget opp i vedlagt kode), tillater dette deteksjon for når skiven er slått, og hvilket nummer som ble valgt.

Det samme gjaldt hodesettbryteren, som har en kontakt som kan kobles direkte til toppteksten. Det er enkel logikk, siden det bare krever referanse og én diskret inngang.

Som forventet har hodesettkabelen 4 ledninger, med 2 hver for lav effektnivåhøyttaler og mikrofon. Siden HAT som vi brukte hadde 3,5 mm lydkontakt for hodetelefoner, ender jeg bare opp med å koble de 4 ledningene til en av de gamle hodetelefonene på 3,5 mm.

En annen interessant ting som var nyttig fra denne spesifikke telefonmodellen, var montering av innlegg fra telefonbasen. Mens vi trengte å kutte noen av dem for å få plass til brett, var vi fortsatt i stand til å gjenbruke andre og sikre brettene våre. Dette var en hyggelig pause, og spar oss litt tid.

Trinn 2: Å sette ting sammen

Å sette ting sammen
Å sette ting sammen
Å sette ting sammen
Å sette ting sammen
Å sette ting sammen
Å sette ting sammen

For et enkelt konseptbevis er det tilstrekkelig å koble Raspberry Pi og GSM HAT direkte, og koble vanlige hodetelefoner til GSM HAT. Jeg var i stand til å bruke dette oppsettet sammen med MiniCom -applikasjonen (driver Raspberry Pi seriell port, som er direkte koblet til GSM HAT) for raskt å kontrollere at SIM -kortet mitt fungerer og at jeg kan ringe og sende/motta SMS -meldinger med det oppsettet.

Siden andre kan være interessert i å gjøre det (det er morsomt å raskt teste nytt oppsett), her er tipsene om hvordan du gjør det (åpenbart, basert på antagelse av de samme/lignende tavlene):

- Installer og konfigurer OS på Raspberry Pi (jeg brukte Lite OS -versjon, som kommer uten GUI).

- Koble GSM HAT (med SIM -kort installert) til Raspberry Pi (sørg for at GSM HAT har passende UART -brytervalg basert på tilkoblingstype, se lenken nedenfor for HAT -manual). For dette trinnet trenger du kanskje Raspberry Pi -versjonen som allerede har installert topptekst, i vårt tilfelle måtte jeg lodde den på (siden jeg brukte Pi zero, som som standard kommer uten topptekst). Alternativt er et bedre alternativ å bruke mikro -USB -kabel for å koble begge kortene (både Raspberry Pi og GSM HAT har mikro -USB)

- Aktiver bruk av Raspberry Pi seriell port hvis du kobler til GSM HAT gjennom seriell port (som standard brukes Raspberry Pi -porten til konsoll). For å gjøre det må du følge instruksjonene for raspi -config (se koblingen "konfigurer" ovenfor), grensesnittalternativer - aktivere SSH og serielle alternativer. Hvis du bruker Lite OS -versjon, kan det hende du også må "koble til et trådløst nettverk" og aktivere SSH (se instruksjonene ovenfor fra "konfigurer" -lenken).

- Koble Raspberry Pi til skjerm og tastatur (eller få tilgang til den via ekstern ssh)

- Bruk MiniCom eller lignende seriell app for å manuelt styre HAT gjennom passende port (for oppsettporten min var "/dev/ttyS0", vil det være annerledes hvis du bruker mikro -USB). Installer MiniCom med "sudo apt -get install minicom", og start den med "minicom -D /devtyS0" (eller hvilken port som brukes).

- Bruk GSM HAT -manuell eller AT Command -manual for å kjøre forskjellige HAT -funksjoner (send SMS, ring, etc.). Når den er riktig tilkoblet, vil GSM HAT svare med "OK" når den blir spurt av "AT" -kommandoen. For å sjekke om SIM -kortet var riktig registrert, bruk kommandoen "AT+CREG?", Som også skal returnere "OK". Du kan også bekrefte nettverksleverandøren med "AT+COPS?", Eller sjekke ditt eget telefonnummer med "AT+CNUM"

For å integrere resten av nødvendige deler, opprettet vi en tilpasset 16 -pinners kabel for Raspberry Pi til GSM HAT, siden vi trengte noen andre generelle IO -pinner for å lese dreiehjulet, tilstanden til hodetelefonbryteren og for å kjøre ringeklokken (også for å starte automatisk GSM HAT under oppstart / initialisering). Jeg prøvde å bruke noen av hyllebryterne for Raspberry Pi til det formålet, og selv om det fungerte bra for rask tilkobling og testing, var jeg ikke veldig fornøyd med kvaliteten, og endte med å lage min egen 16-pinners kontakt.

En annen måte å gjøre forbindelsen mellom Raspberry Pi og GSM HAT på er gjennom begge kortets mikro -USB -porter (og igjen må du sette riktig UART -bryter på GSM HAT), og det kan være en raskere og mye enklere løsning. Du kan enkelt gjøre det hvis du får en passende kabel (det vil spare deg tid og krefter for å lage kabel) - bare ikke glem å endre porten som brukes av programvare/applikasjon.

Etter tilkobling av brett (med mikro -USB) er resten enkelt. Bare følg diagrammet ovenfor, der pins som presenteres der, er knyttet til koden festet på slutten av denne instruksjonsboken. Nærmere bestemt:

- Pins 35, 37 og 39 (tilknyttet Raspberry Pi GPIO 19, 26 og ground) brukes til å koble til dial (input pins). Telefonen vi valgte hadde allerede bygget tre ledninger, med rød og svart ledning forbundet med NO- og NC -pinner, og gul ledning var vanlig.

- Pinnene 23 og 25 (Raspberry Pi GPIO 11 og bakken) brukes til å koble hodetelefonbryteren (inngang - detekterer når headsettet løftes eller legges ned)

- Pins 22 og 20 (Raspberry Pi GPIO 25 og bakken) brukes til å koble til lydmodulbryter (utgang - ringhandling)

- I tillegg kan det hende at pin 19 (GPIO 10) må loddes til GSM HAT-strømbryteren, siden noen versjoner av HAT ikke kan startes bare ved oppstart, men trenger noen manuelt å trykke "strøm" -bryteren på HAT.

- På telefonsiden fjernet vi det interne hodesettet med 4 ledninger, og koblet til 3,5 mm lydkontakt fra gamle hodetelefoner. Røde/grønne ledninger er for hodesettmikrofon, og gul/svart er for hodesetthøyttaler. Avhengig av den brukte 3,5 mm jack -siden, må du kanskje finne ut passende ledning (per ekstrakt ovenfor for GSM HAT -hodetelefoninngang), men i vårt tilfelle var mikrofonen koblet til skjerm og rød, mens høyttalerkabler var grønne og blå. Til slutt kobler du 3,5 mm -kontakten til inngangen til GSM HAT -hodetelefoner.

Trinn 3: Sluttemballasje og legge til simulert "ringeffekt"

Sluttemballasje og påfylling simulert
Sluttemballasje og påfylling simulert

Selv om den endelige interne emballasjen som sett på bildet ovenfor ser relativt pen ut, krevde den mye tinker og prøve forskjellige alternativer. Hovedbegrensningene var plass under roterende skive og stive kontakter, og hele prosessen var som å sette puslespill sammen.

Det var veldig heldig at vi kunne bruke flere innlegg som allerede eksisterte inne i telefonen (vi fjernet andre innlegg med Dremel -verktøyet), og for å sikre brett og høyttaler. Men det begrenset også resten av ledig plass, noe som til slutt førte til at vi forlot den opprinnelige ideen om å legge til en intern oppladbar strømkilde.

Når det gjelder "ring", endte vi med å kjøpe batteridrevet opptakbar lydmodul. Som et alternativ (ved tilkobling av kort via mikro-USB), er det en ikke-batteri-versjon som kan drives direkte fra Raspberry Pi header 5V.

I begge tilfeller må ekstern kontrollbryter fra lydmodulen fjernes og ledninger kobles til en av GPIO pin + jord. Og programmeringen av ringetonen til modulen er veldig enkel, bare koble den til PCen og last ned hvilken mp3 -fil du vil bruke for ringeaksjon. Her er lenken til et fint nettsted med mange gamle ringelyder.

Trinn 4: Programvare og sluttintegrasjon

Programvare og endelig integrasjon
Programvare og endelig integrasjon
Programvare og endelig integrasjon
Programvare og endelig integrasjon

Over blokkdiagram viser alle hovedkomponenter og deres relasjoner. I hovedsak trenger implementeringen 3 diskrete innganger, og minst 1 diskret utgang (vi brukte 2 DO -er siden versjonen av GSM HAT som vi fikk, kan ikke starte automatisk uten å trykke på knappen på HAT, så vi måtte lodde ledningen til den knappen for å tvinge starte HAT når telefonen er slått på).

Når det gjelder koden, ble den skrevet i Python 2.7, så hvis du installerer/bruker versjon 3.x og høyere, kan det være noen ting som må endres (åpenbart en "print" -erklæring). For at koden skal fungere skikkelig, er det et par Python -biblioteker som må legges til først, for eksempel:

- gpiozero (nødvendig for Raspberry Pi GPIO -grensesnitt)

- re (vanlig uttrykksbibliotek - for analyse av innkommende SMS -meldinger, installer hvis ikke en del av standard Python -installasjon)

- seriell (for tilkobling til GSM HAT - nødvendig selv om du kobler til via mikro -USB, installer hvis den ikke er en del av standard Python -installasjon)

Det er også 2 steder i vedlagt kode som må endres/tilpasses avhengig av endelig implementering (eller 3 steder, hvis forskjellige GPIO -pinner brukes). Den første er relatert til nummeret du vil bruke til å videresende meldinger:

# ********************************* FORWARDING_NUMBER = "5551234567" # legg her telefonen der du vil ha meldingene dine å bli videresendt

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

Og den andre er for serieportinnstilling:

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

# SIM868 initialisering og rutinessim868 = serial. Serial ("/dev/ttyS0", 115200)

# sørg for at /dev /ttyS0 er riktig for oppsettet ditt

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

Koden ble bygget som tilstandsmaskin, beskrevet i diagrammet ovenfor. Mesteparten av tiden er telefonen i inaktiv tilstand og venter på hendelser: 1. Innkommende anrop (som vil føre telefonen til RING -tilstand)

2. Innkommende SMS -melding - som automatisk kan/kan videresendes til en annen telefon

3. Løfte headsettet opp, som forberedelse til oppringing (driver telefonen til DIAL-tilstand)

4. Ringe spesialtegn uten å løfte hodesettet (i henhold til gjeldende kode, ringe "#" avstengt telefon) …

Det er mange kommentarer innebygd i koden, som skal hjelpe til med å lese og forstå den. Vi lot noen ting være uferdige, for eksempel å legge til hurtigvalg, eller sende statusmelding, eller …

Når det gjelder hvordan koden skal kjøres automatisk når strøm tilføres, valgte vi å implementere den som en tjeneste, noe som kan gjøres som beskrevet her. Bare gjør følgende:

- last ned nedlagte filer "rotaryPhoneStateMachine.txt" og "myphone.txt" og gi dem nytt navn til "rotaryPhoneStateMachine.py" og "myphone.service" (av en eller annen merkelig grunn tillater Instructables -server ikke opplasting av visse filtyper)

- plasser "rotaryPhoneStateMachine.py" i /home /pi -mappen

- plasser "myphone.service" i/etc/systemd/system

- aktiver tjeneste med kommandoen "sudo systemctl enable myphone.service" (etter å ha testet alt)

Anbefalt: