Mundarija:

Retro uslubda aylanadigan mobil telefon: 4 qadam (rasmlar bilan)
Retro uslubda aylanadigan mobil telefon: 4 qadam (rasmlar bilan)

Video: Retro uslubda aylanadigan mobil telefon: 4 qadam (rasmlar bilan)

Video: Retro uslubda aylanadigan mobil telefon: 4 qadam (rasmlar bilan)
Video: Dugonalarim shokda 😂🤯 2024, Iyun
Anonim
Retro uslubidagi aylanadigan raqamli mobil telefon
Retro uslubidagi aylanadigan raqamli mobil telefon

Bu loyiha ham amaliy ehtiyojdan, ham qiziq narsa qilishni xohlashdan kelib chiqqan.

Ko'pgina zamonaviy oilalar kabi, biz ko'p yillar oldin haqiqiy "uy" telefonini (simi) to'xtatdik. Buning o'rniga bizda "eski" uy raqamimiz bilan bog'liq qo'shimcha SIM-karta bor, men uni ikki simli uyali telefonimda olib yurganman. Bu ko'p hollarda yaxshi edi, lekin ba'zi hollarda, masalan, biz ota -onamiz tashrif buyurganimizda (ular keksa avlodda - uyali telefonlarsiz, men uyga qo'ng'iroq qila olmadim) chunki bizning "uy" telefonimiz men bilan bo'lgan). Bu telefonni almashtirganimda ham kuchaygan (yangi simli uyasi bo'lgan yangi telefon). Shunday qilib, bizning qo'shimcha SIM -kartamizdan foydalana oladigan "uy" uslubidagi telefonga ega bo'lishning yo'lini topgan ma'qul.

Qizig'i shundaki, hozirgi bolalarning ko'pchiligi aylanadigan telefonlar qanchalik eski ishlaganini yoki hatto shunday bo'lganini bilishmaydi. Xotinim va men bo'lgan dunyoning bir qismida biz "raqamni aylantiring" iborasini ishlatamiz, bu yosh odamlarni chalkashtirib yuboradi, chunki "nima uchun kimdir telefonni terish uchun aylantiradi". Shuning uchun, o'g'lim (bu loyihada faol ishtirok etayotgan) aylanadigan telefon bilan tajriba orttirsa yaxshi bo'lardi, deb o'yladim.

Albatta, men do'stlar va qarindoshlar bo'lganida, bu "yangi" telefon suhbat mavzusi bo'lishiga amin edim. Yoki undan ham yaxshiroq, do'stlarnikiga tashrif buyurganimizda biz bilan telefon olib, retro ko'rinishga ega mobil telefoni bo'lgan odamlarni hayratda qoldiradi.

Loyiha davomida biz asl dizayn maqsadlarini o'zgartirdik. Masalan, men zaryadlanuvchi tashqi batareyani telefonga joylashtirish haqida o'yladim, uni osongina olib ketish mumkin edi, lekin oxir -oqibat bu zarur emasligini angladim (chunki bu turdagi telefon har doim bir joyda qoladi, shuning uchun ham shunday bo'lishi mumkin). har doim rozetkaga ulang). Biz olishimiz mumkin bo'lgan boshqa "yorliqlar" ham bor edi, bu esa loyihani nisbatan sodda va murakkab emas qildi.

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

Ma'lumot uchun, men avval ota -onamdan eski aylanadigan telefonni olib, uning ko'p qismini (telefon qobig'i, aylanadigan kadr, naushnik va boshqalar) ishlatamiz deb umid qilgandim, bu umumiy loyihaning narxini pasaytiradi. Oxir-oqibat, bu bizning Evropaga rejalashtirilgan safarimizga to'sqinlik qiladigan (oilaga tashrif buyuradigan) COVID-19 tufayli sodir bo'lmadi va biz Amazonda yangi aylanadigan telefonni topdik va sotib oldik (men eBay-dagi variantlar va narxlardan mamnun emas edim). Bu juda yaxshi edi, chunki u bir nechta qiziqarli qo'shimcha funktsiyalarni ta'minladi, chunki biz odatda eski telefonlarda mavjud bo'lmagan qo'shimcha terish imkoniyatlari (* va #) bo'lgan aylanadigan telefonni topdik.

Loyihaning asosiy qismi har qanday Raspberry Pi yoki shunga o'xshash taxtalar yordamida to'g'ridan -to'g'ri boshqarilishi mumkin bo'lgan GSM/GPRS HAT edi (bizga 4G versiyasi kerak emas edi). Bizning holatda, bizda faol ishlatilmaydigan kichik Raspberry Pi Zero taxtasi bor edi (o'g'limning eski loyihasidan).

Qizig'i shundaki, fikrlash va dizayndagi o'zgarishlarning aksariyati loyihaning nisbatan sodda va kichik qismi - qo'ng'iroq harakatlarini yaratish atrofida amalga oshirildi. Eski telefonlarni yaxshi biladiganlar bilishadi, eski uslubdagi o'ziga xos qo'ng'iroqlar 40-60 VAC bilan boshqariladigan "qo'ng'iroqlar" tomonidan ishlab chiqarilgan, bu loyiha doirasida juda qiyin bo'lgan. Men nihoyat loyihaning bu qismini soddalashtirishga qaror qildim va odatda tabriknomalarning bir qismi bo'lgan ovoz yozish moduli yordamida nisbatan sodda echim bilan yakunlandim. Boshqa variantlar ham bor edi, lekin bu juda yaxshi ishladi va nisbatan arzon echim bo'ldi.

Ta'minotlar

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

  • Yoziladigan ovozli modul, bosish tugmasi faollashtirilgan
  • (Eski) aylanadigan telefon
  • Micro SD karta (Raspberry Pi uchun), kabellar/pinlar, eski minigarnituralar va boshqalar.

1 -qadam: telefonni tayyorlash

Telefonni tayyorlash
Telefonni tayyorlash

Eski uslubdagi simli telefonlar nisbatan oddiy qurilmalardir. Rasmdan ko'rinib turibdiki, asl telefoni ajratilgan holda, qayta ishlatilishi mumkin bo'lgan qismlar - bu telefonning asosiy qobig'i, aylanadigan kadran va taglik, naushnik va uning kaliti, qolganlari esa - qo'ng'iroq va boshqaruv paneli.

Telefonning ushbu o'ziga xos modeli bilan bizni aylanuvchi kadrni qayta ishlata olmaslik, balki uning ulagichini ham ishlatish mumkin edi. Shuni ta'kidlash kerakki, bu ulagichda Raspberry Pi -ga bitta simli va 2 ta alohida kirish uchun mo'ljallangan 3 ta sim bor. Tegishli mantiq bilan (biriktirilgan kodda yozilgan), bu terish qachon va qaysi raqam tanlanganligini aniqlash imkonini beradi.

Xuddi shu narsa to'g'ridan -to'g'ri sarlavhaga ulanadigan ulagichga ega bo'lgan naushnikni almashtirish uchun ham amal qildi. Bu oddiy mantiq, chunki u faqat mos yozuvlar va bitta diskret kirishni talab qiladi.

Kutilganidek, naushnik kabeli 4 ta simga ega, ularning har biri 2 ta past quvvatli dinamik va mikrofon uchun. Biz ishlatadigan HAT 3,5 mm eshitish vositasi uchun audio raz'emga ega bo'lganligi sababli, men bu 4 simni eski quloqchinlardan biriga, 3,5 mm erkak ovozli vilkasini ulashga ulgurdim.

Telefonning o'ziga xos modelidan yana bir qiziq narsa - telefon bazasidan postlarni o'rnatish. Biz taxtalar uchun joy ajratish uchun ularning bir qismini kesib tashlashimiz kerak bo'lsa -da, biz boshqalarni qayta ishlatib, taxtalarni mahkamlay oldik. Bu yaxshi tanaffus edi va bizni vaqtimizni tejang.

2 -qadam: narsalarni birlashtirish

Hamma narsani birlashtirish
Hamma narsani birlashtirish
Hamma narsani birlashtirish
Hamma narsani birlashtirish
Hamma narsani birlashtirish
Hamma narsani birlashtirish

Kontseptsiyaning oddiy isboti uchun Raspberry Pi va GSM HAT -ni to'g'ridan -to'g'ri ulash va oddiy minigarnituralarni GSM HAT -ga ulash kifoya. Men SIM -kartamning ishlayotganligini va SMS -xabarlarni qo'ng'iroq qilish va yuborish/qabul qilishimni tezda tekshirish uchun MiniCom ilovasi (GSM HAT -ga to'g'ridan -to'g'ri ulangan Raspberry Pi ketma -ket portini boshqarish) bilan birgalikda foydalana oldim.

Boshqalar buni qilishni xohlashlari mumkin bo'lganligi sababli (yangi sozlamalarni tezda sinab ko'rish qiziqarli), bu erda buni qanday qilish kerakligi haqida ko'rsatma (aniqki, xuddi shu/o'xshash taxtalarni taxmin qilish asosida):

- Raspberry Pi -ga OSni o'rnating va sozlang (men GUIsiz Lite OS versiyasini ishlatardim).

- Raspberry Pi -ga GSM HAT -ni (SIM -karta o'rnatilgan holda) ulang (GSM HAT -ning ulanish turiga qarab UART -ni to'g'ri tanlashiga ishonch hosil qiling, HAT qo'llanmasi uchun pastdagi havolaga qarang). Ushbu qadam uchun sizga Raspberry Pi versiyasi kerak bo'lishi mumkin, u allaqachon sarlavhali ulagichga ega, biz uni lehimlashim kerak edi (chunki men nolni ishlatganman, chunki u sukut bo'yicha sarlavhasiz keladi). Shu bilan bir qatorda, har ikkala kartani ulash uchun micro USB kabelidan foydalanish yaxshiroq variant bo'ladi (Raspberry Pi va GSM HAT ham mikro USB -ga ega)

- GSM HAT -ni ketma -ket port orqali ulashda Raspberry Pi ketma -ket portidan foydalanishni yoqish (sukut bo'yicha, Raspberry Pi porti konsolda ishlatiladi). Buni amalga oshirish uchun siz raspi -config (SSH va ketma -ket variantlarni yoqish) interfeysi parametrlari (yuqoridagi "sozlash" havolasini ko'ring) ko'rsatmalariga amal qilishingiz kerak bo'ladi. Agar Lite OS versiyasidan foydalansangiz, sizga "simsiz tarmoqqa ulanish" va SSH -ni yoqish kerak bo'lishi mumkin (yuqoridagi "sozlash" havolasidagi ko'rsatmalarga qarang).

- Raspberry Pi -ni monitor va klaviaturaga ulang (yoki unga masofaviy ssh orqali kiring)

HATni tegishli port orqali qo'lda boshqarish uchun MiniCom yoki shunga o'xshash ketma -ket ilovadan foydalaning (mening sozlash portim "/dev/ttyS0" edi, agar mikro USB ishlatilsa, boshqacha bo'ladi). MiniCom -ni "sudo apt -get install minicom" bilan o'rnating va o'rnatgandan so'ng uni "minicom -D /devtyS0" bilan boshlang (yoki qaysi port ishlatilgan bo'lsa).

- Har xil HAT funktsiyalari (SMS yuborish, qo'ng'iroq qilish va hk) uchun GSM HAT qo'llanmasidan yoki AT buyruq qo'llanmasidan foydalaning. To'g'ri ulangandan so'ng, GSM HAT "AT" buyrug'i bilan so'ralganda "OK" bilan javob beradi. SIM karta to'g'ri ro'yxatdan o'tganligini tekshirish uchun "AT+CREG?" Buyrug'ini ishlating, u ham "OK" ni qaytaradi. Siz tarmoq provayderini "AT+COPS?" Bilan tasdiqlashingiz yoki "AT+CNUM" yordamida o'z telefon raqamingizni tekshirishingiz mumkin.

Qolgan qismlarni birlashtirish uchun biz Raspberry Pi uchun GSM HAT -ga 16 pinli maxsus kabel yaratdik, chunki bizga aylanadigan kadrni, naushnik kalitining holatini o'qish va qo'ng'iroq qo'ng'irog'ini boshqarish uchun boshqa umumiy maqsadli IO pinlari kerak edi (shuningdek, avtomatik ishga tushirish uchun). Quvvat olish / ishga tushirish paytida GSM HAT). Men shu maqsadda Raspberry Pi uchun ishlatilmaydigan simlarni ishlatishga harakat qildim va bu tez ulanish va sinab ko'rish uchun yaxshi ishlagan bo'lsa-da, men sifatdan unchalik mamnun emas edim va o'zimning 16 pinli ulagichimni yasadim.

Raspberry Pi va GSM HAT o'rtasidagi ulanishning boshqa usuli - bu ikkala mikro USB port orqali (va yana GSM HAT -ga UART -ni mos ravishda o'rnatishingiz kerak bo'ladi) va bu tezroq va sodda echim bo'lishi mumkin. Agar siz kerakli kabelni olsangiz, buni osonlikcha bajarishingiz mumkin (bu kabelni ishlab chiqarish uchun vaqt va kuchingizni tejaydi) - dasturiy ta'minot/dastur tomonidan ishlatiladigan portni o'zgartirishni unutmang.

Plitalarni ulashdan so'ng (micro USB bilan), qolganlari oson. Yuqoridagi diagramaga amal qiling, bu erda ko'rsatilgan pinlar ko'rsatma oxirida biriktirilgan kod bilan bog'liq. Xususan:

- 35, 37 va 39 -gachasi pinlar (Raspberry Pi GPIO 19, 26 va er bilan bog'liq) terishga ulanish uchun ishlatiladi (kirish pinlari). Biz tanlagan telefonda 3 ta simli ulagich qurilgan edi, qizil va qora simlar NO va NC pinlari bilan bog'langan, sariq simlar keng tarqalgan.

23 va 25 -gachasi pinlar (Raspberry Pi GPIO 11 va tuproqli) eshitish vositasi kalitini ulash uchun ishlatiladi (kirish - minigarniturani ko'tarish yoki tushirish vaqtini aniqlash)

- 22 va 20 -gachasi pinlar (Raspberry Pi GPIO 25 va tuproqli) tovush moduli kalitiga ulanish uchun ishlatiladi (chiqish - uzuk harakati).

- Bundan tashqari, 19-pinni (GPIO 10) GSM HAT quvvat kalitiga lehimlash kerak bo'lishi mumkin, chunki HAT-ning ba'zi versiyalarini faqat quvvat bilan ishga tushirish mumkin emas, lekin kimdir HAT-ning "quvvat" tugmachasini qo'lda bosishi kerak.

- Telefon tomonida biz ichki eshitish vositasining 4 simli simini echib oldik va eski minigarnituradan 3,5 mm audio uyaga ulanganmiz. Qizil/Yashil simlar eshitish vositasi mikrofoni uchun, Sariq/Qora eshitish vositasi karnaylari uchun. Ishlatilgan 3,5 mm raz'emning yon tomoniga qarab, sizga mos keladigan simni aniqlash kerak bo'lishi mumkin (GSM HAT minigarniturani kiritish uchun), lekin bizda mikrofon qalqon va qizilga ulangan, dinamik simlari yashil va ko'k edi. Oxir -oqibat, 3,5 mm raz'emni GSM HAT minigarnituraga ulang.

3 -qadam: Yakuniy qadoqlash va simulyatsiya qilingan "qo'ng'iroq effekti" ni qo'shish

Oxirgi qadoqlash va simulyatsiya qo'shilishi
Oxirgi qadoqlash va simulyatsiya qo'shilishi

Oxirgi rasmda ko'rinib turganidek, oxirgi ichki qadoqlash nisbatan toza ko'rinishga ega bo'lsa -da, u juda ko'p o'yishni va turli xil variantlarni sinab ko'rishni talab qildi. Asosiy cheklovlar aylanadigan kadran va qattiq ulagichlar ostidagi bo'sh joy edi va butun jarayon jumboqni birlashtirishga o'xshardi.

Biz telefonda allaqachon mavjud bo'lgan bir nechta postlardan (Dremel vositasi bilan boshqa xabarlarni olib tashladik) foydalanish, taxtalar va karnaylarni himoya qilish imkoniyatiga ega bo'ldik. Ammo bu bo'sh joyning qolgan qismini ham cheklab qo'ydi, bu esa oxir -oqibat ichki qayta zaryadlanuvchi quvvat manbasini qo'shish g'oyasidan voz kechishga olib keldi.

"Qo'ng'iroq" ga kelsak, biz batareyadan ishlaydigan ovoz yozish modulini sotib oldik. Variant sifatida (micro USB orqali taxtalarni ulashda) Raspberry Pi 5V sarlavhasidan to'g'ridan-to'g'ri quvvat oladigan batareyasiz versiyasi mavjud.

Ikkala holatda ham ovoz modulidan tashqi boshqaruv kalitini olib tashlash va GPIO pin + topraklama simlaridan biriga ulanish kerak bo'ladi. Modulga qo'ng'iroq ohangini dasturlash juda oddiy, uni kompyuterga ulang va qo'ng'iroq qilish uchun qaysi mp3 faylni ishlatishni xohlasangiz yuklab oling. Bu erda eski qo'ng'iroq tovushlari ko'p bo'lgan yaxshi saytga havola.

4 -qadam: Dasturiy ta'minot va yakuniy integratsiya

Dasturiy ta'minot va yakuniy integratsiya
Dasturiy ta'minot va yakuniy integratsiya
Dasturiy ta'minot va yakuniy integratsiya
Dasturiy ta'minot va yakuniy integratsiya

Yuqoridagi blok diagrammada barcha asosiy komponentlar va ularning o'zaro bog'liqligi ko'rsatilgan. Aslida, amalga oshirish uchun 3 ta diskret kirish va kamida 1 ta diskret chiqish kerak (bizda GSM HAT versiyasidan 2 ta DO ishlatilgan, biz HAT tugmachasini bosmasdan avtomatik ravishda ishga tusha olmaymiz, shuning uchun majburlash uchun simni shu tugmachaga lehimlashimiz kerak edi. telefon yoqilganda HATni ishga tushirish).

Kodga kelsak, u Python 2.7 da yozilgan, shuning uchun agar siz 3.x va undan yuqori versiyasini o'rnatsangiz/ishlatsangiz, o'zgartirish kerak bo'lishi mumkin bo'lgan ba'zi narsalar bo'lishi mumkin (aniq "bosma" iborasi). Kod to'g'ri ishlashi uchun avval Python kutubxonalari qo'shilishi kerak, masalan:

- gpiozero (Raspberry Pi GPIO interfeysi uchun kerak)

- re (odatiy iboralar kutubxonasi - kiruvchi SMS xabarlarni tahlil qilish uchun, agar Python standart o'rnatmasining bir qismi bo'lmasa, o'rnating)

- ketma -ket (GSM HAT -ga ulanish uchun - hatto mikro USB orqali ulansangiz ham kerak bo'ladi, agar Python standart o'rnatmasining bir qismi bo'lmasa ham o'rnating)

Bundan tashqari, biriktirilgan kodda 2 ta joy mavjud bo'lib, ular yakuniy bajarilishiga qarab o'zgartirilishi/moslashtirilishi kerak (yoki har xil GPIO pinlari ishlatilsa, 3 joy). Birinchisi, siz xabarlarni yuborish uchun ishlatmoqchi bo'lgan raqam bilan bog'liq:

# *********************************** FORWARDING_NUMBER = "5551234567" # bu erga xabarlarni kerakli joyga qo'ying. uzatilishi

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

Ikkinchisi ketma -ket portni sozlash uchun:

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

# SIM868 ishga tushirilishi va rutinessim868 = serial. Serial ("/dev/ttyS0", 115200)

# /dev /ttyS0 sozlamangiz uchun to'g'ri ekanligiga ishonch hosil qiling

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

Kod yuqoridagi diagrammada tasvirlangan davlat mashinasi sifatida yaratilgan. Ko'pincha telefon IDLE holatida bo'lib, voqealarni kutadi: 1. Kiruvchi qo'ng'iroq (telefon qo'ng'iroq holatiga o'tadi)

2. Kiruvchi SMS -xabar - avtomatik ravishda boshqa telefonga yo'naltiriladi

3. Qo'ng'iroqni ko'tarish, terishga tayyorgarlik (telefonni DIAL holatiga o'tkazadi)

4. Naushnikni ko'tarmasdan maxsus belgini terish (joriy kod bo'yicha "#" yopiladigan telefonni terish) …

Kodni o'qish va tushunishga yordam beradigan ko'plab sharhlar mavjud. Biz ba'zi narsalarni tugallanmagan qoldirdik, masalan, tezkor terish opsiyasini qo'shish, holat xabarini yuborish yoki…

Quvvat ishlatilganda kodni avtomatik ravishda ishga tushirishga kelsak, biz uni xizmat sifatida qo'llashni tanladik, buni bu erda tasvirlanganidek bajarish mumkin. Shunchaki quyidagilarni bajaring:

- quyida biriktirilgan "rotaryPhoneStateMachine.txt" va "myphone.txt" fayllarini yuklab oling va ularni "rotaryPhoneStateMachine.py" va "myphone.service" deb o'zgartiring (qandaydir g'alati sabablarga ko'ra Instructables serveri ba'zi fayl turlarini yuklashga ruxsat bermaydi).

- "rotaryPhoneStateMachine.py" ni /home /pi papkasiga joylashtiring

- "myphone.service" ni/etc/systemd/system ga joylashtiring

- "sudo systemctl enable myphone.service" buyrug'i bilan xizmatni yoqish (hamma narsani sinab ko'rgandan so'ng)

Tavsiya: