Di mana telepon dengan dialer menerima elektronik untuk bekerja pada jaringan seluler dan dapat berfungsi sebagaimana dimaksud.
Ini adalah deskripsi proyek tiga bagian, yang harus saya tulis sebagai penyelesaian serius proyek itu sendiri, tetapi karena saya terlalu banyak menunda poin ini, saya memutuskan untuk menggambarkan seluruh proyek sebagai satu pernyataan koheren tunggal.Jika ada yang ingat, saya orang yang sangat marah. Saya mudah marah ketika berbicara di telepon, tetapi saat ini tidak ada cara yang baik untuk mengungkapkan kekesalan saya. Saya merindukan masa lalu, ketika Anda bisa dengan paksa membalik handset pada perangkat untuk meredakan ketegangan - tetapi ponsel tidak memberikan kesempatan seperti itu. Dan saya mulai membuat ponsel dengan dialer.Jadi iRotary lahirProyek IRotary
KecantikanSaya mulai dengan membeli telepon nyata jadul dengan dialer rotary - hanya yang saya gunakan sebagai anak-anak. Saya memilih warna oranye yang agung sehingga keindahan iRotary tidak kalah dengan ambisi proyek.Foto diambil dari telepon yang sama pada hari pertama pembelian, dengan kabel dan lainnya. Terlihat sangat keren hari ini, meskipun kabelnya 50% lebih sedikit - yang bagus untuk ponsel.Seluruh proyek saya biaya $ 150 untuk suku cadang dan $ 2000 untuk waktu pengembangan - butuh dua hari penuh untuk berkumpul, dan berlangsung selama beberapa bulan dari semua jenis tindakan, menunggu suku cadang, menggunakan suku cadang, menunggu suku cadang berikutnya, dll. Langkah pertama, tentu saja, adalah mengekstrak semua yang tidak perlu dan menggantinya dengan semua yang Anda butuhkan.Langkah 1: pertama, wah!
Bayangkan bagaimana rasanya membuat stroberi!Kandidat terbaik untuk antarmuka dengan dialer lama, tentu saja, adalah Arduino. Dia juga akan bertanggung jawab untuk bekerja dengan GSM. Ini sangat ideal untuk membaca pulsa dari dialer dan mengubahnya menjadi integer, yang kemudian dapat digunakan untuk memutar nomor.Komunikasi mudah diproses oleh perisai GSM. Ini adalah perangkat periferal yang menghubungkan ke Arduino (di jalan kita menyebutnya "perisai"). Ini sangat sederhana untuk diprogram, dilengkapi dengan perpustakaan dengan sebagian besar fungsi yang diperlukan - membaca SMS, mengirim dan menerima panggilan, mengirim DTMF, dan sebagainya.Langkah selanjutnya adalah menulis kode untuk mengubah dial ke angka. Dialer bekerja seperti ini: setelah rotasi paksa, ia mulai berputar kembali, menyentuh tombol sekali untuk setiap nomor yang dihubungi. Ini berarti bahwa jika Anda memanggil tiga, saklar akan mengirim tiga sinyal, karena tiga angka akan melewatinya. Untuk menentukan nomor yang dihubungi, Anda hanya perlu menghitung berapa kali sakelar dibuka dan ditutup.Ini mudah dilakukan dengan kode berikut, yang hanya menambah variabel setiap kali tegangan dari sakelar berubah dari rendah ke tinggi:void readPulses() {
char pinPulse = digitalRead(PIN_PULSE);
if (pinPulse == HIGH && edge == 0) {
pulses++;
edge = 1;
} else if (pinPulse == LOW && edge == 1) {
edge = 0;
}
}
Semua yang perlu dilakukan selanjutnya adalah mengumpulkan angka-angka dan melakukan panggilan ketika jumlah digit mencapai 10. Di Yunani, semua angka adalah sepuluh digit, dengan pengecualian nomor seks telepon, kode yang akan saya tambahkan nanti.Menambahkan angka ke baris pada gilirannya adalah proses yang sederhana, hal ini dilakukan dengan kode berikut.void readDialing() {
char digit;
bool finalDigit = false;
char pinDialing = digitalRead(PIN_DIALING);
if (pinDialing == 1 && dialing == 0) {
digit = getDigit();
if (digit != -1) {
number += (int)digit;
showNumber(number);
if (number.length() == NUMBER_LENGTH) {
dialNumber(number);
}
}
}
dialing = pinDialing;
}
Dia belum mengirim panggilan, karena perisai belum terhubung - ini adalah langkah berikutnya. Berikut ini adalah prototipe yang sedang bekerja:Dia menghasilkan banyak uang segera, bahkan dengan mesin tua yang bobrok yang saya temukan untuk membuat prototipe. Dialer adalah hal yang luar biasa akurat, dan harus seperti itu, kalau tidak, Anda bisa mendapatkan di tempat yang salah dan tidak mengetahuinya sampai seseorang menjawab Anda dan Anda menelepon pacar Anda dan Anda memutuskan bahwa dia selingkuh dengan Anda , dan melempar skandal, tetapi sebenarnya itu hanya sampah beralih. Itu sebabnya jumlah perceraian menurun drastis setelah pengenalan dialer nada digital. Selain itu, mengurangi kekerasan terhadap orang-orang dengan sejumlah besar nol di kamar.Langkah 2: siapa yang tidak mengambil risiko, itu bukan GSM-itu
Langkah selanjutnya setelah pengenalan nomor yang berhasil adalah menambahkan kemampuan untuk melakukan panggilan seluler. Saya menghubungkan perisai dengan Arduino dan menambahkan kode yang diperlukan untuk panggilan:void dialNumber(String number) {
call.Call(numArray);
}
Mendebarkan.Meskipun begitu sederhana, itu sangat keren, karena sebagian besar fungsi ponsel (panggilan dan panggilan) sudah siap. Begini cara kerjanya:Pada langkah ini, saya menemui beberapa kesulitan. Yang pertama adalah tempat menempatkan Arduino dengan perisai di telepon, karena praktis tidak ada ruang karena komponen telepon. Untuk mengatasi masalah yang hampir tidak terpecahkan ini, saya harus berkompromi: Saya menghapus panggilan, yang masih tidak dapat ditenagai oleh baterai (perlu 50 V), yang mengurangi keaslian perangkat. Mengapa saya memerlukan ponsel dengan dialer jika tidak dapat menghasilkan suara yang biasa dari dzzzzzzzzzzzzzzzzz?Dan inspirasi datang! Solusinya sederhana: biarkan ponsel bekerja dalam mode diam, bersikap sopan, agar tidak mengganggu orang lain, tetapi sebaliknya cantik.Setelah menyelesaikan dua masalah dalam satu gerakan, saya merasakan sukacita saya tumbuh. Masalah lain adalah bahwa entah bagaimana itu perlu untuk menghubungkan input dan output dari perisai ke handset. Di sini alasan tidak akan membantu, karena tidak ada telepon yang menghargai diri sendiri akan tuli dan bisu, jadi saya pertama kali memutuskan untuk membeli mikrofon dan speaker kecil, dan memasukkannya ke dalam handset. Dan saya hampir memesannya ketika saya tiba-tiba memutuskan: Saya akan mencoba dulu mikrofon dan speaker yang ada.Saya segera melompat ke Kuhlmann dan membuat sketsa sirkuit yang sangat rumit yang terdiri dari sejumlah besar komponen: tiga kabel dan dua konektor. Menyatukan semuanya, saya memasukkan konektor ke dalam input dan output dari perisai dan membuat panggilan.- hai! - kata suaraku.- hai! Saya menjawab dengan gembira.- Aku bisa mendengarmu! Aku berkata pada diriku sendiri.- Dan aku adalah kamu! - jawabannya terdengar.Tes itu sukses besar. Komponen yang ada tidak hanya sesuai dengan perisai, tetapi juga menghasilkan suara gemerisik dan umpan balik yang otentik, yang berhasil saya lupakan.Perbedaan antara ponsel dan telepon tersebut adalah bahwa yang pertama tidak perlu memutar suara Anda kembali melalui speaker. Oleh karena itu, tampaknya bagi Anda bahwa suara Anda lebih tenang daripada itu (karena Anda mencolokkan telinga dengan speaker), dan Anda lebih banyak berteriak - seolah-olah Anda mencoba mendengarkan musik pada headphone sambil berbicara dengan seseorang.Dan di telepon lama, Anda dapat mendengar suara Anda saat berbicara, yang bagus, dan itu tidak mengharuskan Anda untuk berteriak pada lawan bicara Anda. Ini adalah efek yang menyenangkan yang telah kita hilangkan.Inilah teaser untuk produk akhir:Suara nada deringnya palsu, tapi ini Hollywood.Langkah 3: melangkah lebih jauh
Ketika audio, pengenalan nomor dan GSM telah berfungsi, sekarang saatnya untuk menghubungkan sisa kontrol - tuas, tombol dan benda LED yang aneh, indikator pengunduhan.Yang terbaik adalah melakukan ini melalui acara. Arduino tidak berfungsi seperti itu karena Anda harus selalu bertanya, "Apakah tombolnya ditekan?" ribuan kali per detik, tetapi arsitektur acara mudah dipalsukan menggunakan kode kecil.Saya ingin mengangkat telepon dari tuas untuk menjawab panggilan jika telepon berdering, dan meletakkan kembali telepon di tuas mengganggu panggilan saat ini. Saya juga ingin semua sinyal kontrol diabaikan ketika handset berada di tuas.Ini mudah dicapai dengan mesin negara. Ini berarti ada variabel yang berisi kondisi ponsel saat ini - sendiri, berbicara, dering, panggilan, dll. Dan jika ada kejadian (menekan tombol), mereka dapat dengan mudah memeriksa keadaan ponsel dan melakukan tindakan atau tidak.Acara
Acara dapat dikenali dengan cara yang sama seperti angka. Kami akan memeriksa apakah keadaan tombol berubah dan memulai acara hanya jika kami mendeteksi perubahan (jika tidak kami akan memecat acara ribuan kali ketika kami bertanya apakah tombol itu ditekan dan Arduino akan menjawab "ya" ribuan kali per detik).#define PIN_BUTTON_HALF 6
char buttonHalfEdge = 0;
void checkButtonHalfPressed() {
if (digitalRead(PIN_BUTTON_HALF) == LOW) {
if (buttonHalfEdge == 0) {
buttonHalfPressed();
}
buttonHalfEdge = 1;
} else {
if (buttonHalfEdge == 1) {
buttonHalfReleased();
}
buttonHalfEdge = 0;
}
}
Tombol ini memiliki dua status, setengah ditekan dan sepenuhnya ditekan (atau setengah ditekan dan sepenuhnya ditekan, jika Anda bertanya kepada pesimis). Kode mendefinisikan kedua negara, dan acara lainnya ditangani dengan cara yang sama.Anda dapat menonton sistem bekerja di video berikutnya, di mana komponen berada dalam kasing, tetapi masih perlu dicolokkan ke USB untuk daya.Cantik!Langkah 4: Daya Baterai
Konektor USB untuk mengisi daya baterai.Tentu saja, ponsel seperti apa jadinya jika bukan ponsel? Itu bukan ponsel! Jadi, dua opsi untuk membawa ponsel adalah baterai 5 volt kecil dan sirkuit untuk pengisian daya USB, atau kabel yang sangat, sangat panjang. Karena tembaga lebih mahal daripada emas hari ini, dan saya tidak menghasilkan uang, saya memilih opsi pertama.Perlu tiga komponen:- ( , ). , , , .
- , , – USB- «». USB-.
- ( ). , , . , , , Arduino 5, .
Regulator dan unit pengisi dayaSekali lagi, baterai dan regulator terhubung ke pengisian daya. Pengisian daya memiliki port USB (dan saya menggunakan kabel ekstensi untuk mengarahkannya ke tempat kabel telepon), yang akan digunakan untuk mengisi daya. Regulator akan merusak segalanya dan memberikan tegangan yang diperlukan ke komponen yang diperlukan, sehingga Anda dapat menghidupkan dan mematikan telepon selama operasi, dan tegangan tidak akan turun.Anda juga dapat mengisi daya ponsel yang disertakan, yang nyaman. Saya tidak tahu berapa lama baterai ini bertahan, saya tidak menggunakannya selama lebih dari beberapa jam, tetapi mungkin selama beberapa hari Anda tidak akan bisa menulis ke teman-teman Anda dari ponsel Anda (Anda perlu menghubungkan mesin tik). Saya akan mencoba untuk menguji ini suatu hari nanti, tetapi untuk saat ini saya hanya akan mengatakan bahwa baterai hidup selama berbulan-bulan, dan Anda dapat berbicara selama berminggu-minggu, dan kemudian akan lebih baik dijual, atau setidaknya mengambil jumlah yang diperlukan pada kickstarter.Langkah 5: Tidak ada langkah 5.
Bagian dalam dirakitdan proyek telah selesai! Setelah menarik kabel dan mendorong benda-benda ke tempat-tempat yang tidak dimaksudkan, Anda dapat menutup kasing di mana semuanya cocok - kecuali Anda mengguncangnya.Anda secara kasar dapat memahami lokasi komponen. Arduino berada di kanan atas, di bawahnya ada perisai (Anda dapat melihat antena yang menonjol), kabel daya USB biru menuju ke regulator, terhubung ke baterai dan pengisi daya, yang menuju ke konektor tipe "ibu" di kiri atas. Anda dapat melihat kabel untuk mikrofon dan speaker (dari kanan atas ke kiri).Sirkuit pada papan sirkuit coklat di bawah ini adalah sirkuit asli ponsel. Mereka tidak digunakan, tetapi akan sulit untuk menghapusnya, dan mungkin tuas (selembar plastik transparan di sebelah kiri) tidak akan berfungsi tanpanya, yang tidak dapat diterima.Dan sekarang, seperti yang dijanjikan, iklan final, dengan segala keindahan akhirnya. Pesona yang luar biasa! Pastikan untuk mengirimnya ke semua teman Anda, bahkan mereka yang sudah lama tidak berbicara dengan Anda. Apa yang bisa lebih penting daripada mengobrol dengan teman-teman lama lagi berkat proyek internet gila dari beberapa pria dari Yunani? Tentu saja tidak!Jika itu langsung menggaruk Anda untuk membuat ponsel Anda sendiri dengan dialer, dan Anda sedang mempertimbangkan untuk menulis dari awal, menghabiskan malam tanpa tidur untuk merekayasa balik kode saya, saya punya kabar baik untuk Anda. Saya menerbitkan semua kode secara online karena saya adalah orang yang demikian.github.com/skorokithakis/iRotaryBeri tahu saya betapa proyek luar biasa ini telah mengubah hidup Anda dalam komentar di artikel asli atau di Twitter! Menampar!