Daftar Isi:

The Ultimate Binary Watch: 12 Langkah (dengan Gambar)
The Ultimate Binary Watch: 12 Langkah (dengan Gambar)

Video: The Ultimate Binary Watch: 12 Langkah (dengan Gambar)

Video: The Ultimate Binary Watch: 12 Langkah (dengan Gambar)
Video: How exactly does binary code work? - José Américo N L F de Freitas 2024, Juli
Anonim
Jam Tangan Biner Utama
Jam Tangan Biner Utama
Jam Tangan Biner Utama
Jam Tangan Biner Utama
Jam Tangan Biner Utama
Jam Tangan Biner Utama

Saya baru-baru ini diperkenalkan dengan konsep jam tangan biner dan mulai melakukan penelitian untuk melihat apakah saya dapat membuatnya sendiri. Namun, saya tidak dapat menemukan desain yang sudah ada yang fungsional dan bergaya pada saat yang bersamaan. Jadi, saya memutuskan untuk membuat desain saya sendiri sepenuhnya dari awal!

Perlengkapan

Semua file untuk proyek ini:

Pustaka untuk kode Arduino dapat diunduh dari GitHub di sini:

Perpustakaan RTC M41T62

Perpustakaan FastLED

Perpustakaan Daya Rendah

Langkah 1: Ide

Baru-baru ini saya menemukan video berikut:

Jam Tangan Biner DIY

Video di atas menunjukkan jam tangan biner buatan sendiri. Saya tidak tahu bahwa hal seperti itu ada tetapi setelah melakukan penelitian lebih lanjut tentang topik jam tangan biner, saya segera menyadari ada banyak sekali desain berbeda di luar sana! Saya ingin membangun satu untuk diri saya sendiri tetapi tidak dapat menemukan desain yang saya sukai. Jam tangan biner yang saya temukan kekurangan banyak fitur dan tidak terlihat bagus. Jadi, saya memutuskan untuk mendesain sendiri sepenuhnya dari awal!

Langkah pertama adalah menetapkan kriteria untuk desain saya. Inilah yang saya dapatkan:

  • Antarmuka RGB biner
  • Tampilan waktu (dengan ketepatan waktu yang sangat akurat)
  • Tampilan tanggal
  • Fungsi stopwatch
  • Fungsi alarm
  • Daya tahan baterai minimal 2 minggu
  • pengisian USB
  • Perangkat lunak mudah disesuaikan oleh pengguna
  • Desain yang bersih dan sederhana

Kriteria ini menjadi dasar untuk keseluruhan proyek. Langkah selanjutnya adalah mencari tahu bagaimana saya ingin jam itu berfungsi!

Langkah 2: Beberapa Teori Binary-Watch

Beberapa Teori Binary-Watch
Beberapa Teori Binary-Watch

Rencananya sederhana. Jam tangan biner akan beroperasi seperti jam tangan biasa kecuali antarmukanya berupa biner, khususnya, BCD (Binary Coded Decimal). BCD adalah jenis pengkodean biner di mana setiap digit desimal diwakili oleh jumlah bit yang tetap. Saya membutuhkan 4 bit untuk dapat mewakili angka dari 0-9. Dan untuk standar

hh:mm

format waktu, saya perlu 4 digit itu. Ini berarti saya membutuhkan total 16 bit yang akan diwakili oleh 16 LED.

Membaca waktu dalam BCD cukup mudah setelah Anda terbiasa. Baris di bagian bawah arloji mewakili bit paling signifikan (1) dan baris di atas adalah bit paling signifikan (8). Setiap kolom mewakili satu digit dalam

hh:mm

format waktu. Jika LED menyala, Anda menghitung nilai itu. Jika LED MATI, Anda mengabaikannya.

Untuk membaca digit pertama cukup jumlahkan semua LED yang diaktifkan dengan nilai yang sesuai di kolom pertama (paling kiri). Lakukan hal yang sama untuk digit lainnya dari kiri ke kanan. Anda sekarang telah membaca waktu di BCD!

Prinsip ini akan sama untuk fungsi lainnya pada jam tangan. Penggunaan LED RGB akan membantu membedakan antara fungsi dan mode yang berbeda menggunakan warna yang berbeda. Warna dipilih oleh pengguna dan dapat dengan mudah disesuaikan dengan palet warna apa pun yang mereka sukai. Hal ini memungkinkan pengguna untuk dengan mudah menavigasi melalui fungsi tanpa bingung.

Langkah selanjutnya adalah membuat diagram blok!

Langkah 3: Mulai Bekerja

Mulai Bekerja
Mulai Bekerja

Seperti proyek elektronik lainnya, diagram blok merupakan bagian penting dalam tahap desain awal. Dengan menggunakan kriteria tersebut, saya berhasil menyusun diagram blok di atas. Setiap blok dalam diagram mewakili fungsi dalam rangkaian dan panah menunjukkan hubungan fungsi. Diagram blok secara keseluruhan memberikan gambaran yang baik tentang bagaimana sirkuit akan bekerja.

Langkah selanjutnya adalah mulai membuat keputusan pada masing-masing komponen untuk setiap blok dalam diagram blok!

Langkah 4: Memilih Komponen

Ternyata ada cukup banyak komponen di sirkuit ini. Di bawah ini, saya telah memilih beberapa yang paling penting bersama dengan penjelasan mengapa saya memilihnya.

LED

Untuk antarmuka biner, pilihannya cukup mudah. Saya tahu bahwa saya ingin menggunakan LED untuk tampilan dan menyadari bahwa saya membutuhkan 16 di antaranya (dalam kotak 4x4) untuk menampilkan informasi sebanyak mungkin. Selama penelitian saya untuk LED yang sempurna, APA102 terus muncul. Ini adalah LED beralamat yang sangat kecil (2mm x 2mm) dengan berbagai warna dan cukup murah. Meskipun saya belum pernah bekerja dengan mereka sebelumnya, mereka tampaknya sangat cocok untuk proyek ini, jadi saya memutuskan untuk menggunakannya.

Mikrokontroler

Pilihan mikrokontroler juga cukup sederhana. Saya memiliki banyak pengalaman menggunakan Atmega328P-AU dalam aplikasi mandiri dan sangat familiar dengan fitur-fiturnya. Ini adalah mikrokontroler yang sama yang digunakan di papan Arduino Nano. Saya sadar bahwa mungkin ada mikrokontroler yang lebih murah yang bisa saya gunakan tetapi mengetahui bahwa Atmega328 akan memiliki dukungan penuh untuk semua perpustakaan Arduino adalah faktor besar dalam memilihnya untuk proyek ini.

RTC (Jam Waktu Nyata)

Persyaratan utama untuk RTC adalah akurasi. Saya tahu bahwa jam tangan tidak akan memiliki konektivitas internet dan dengan demikian tidak akan dapat mengkalibrasi ulang dirinya sendiri melalui koneksi internet, pengguna perlu mengkalibrasi ulang secara manual. Oleh karena itu, saya ingin membuat ketepatan waktu seakurat mungkin. M41T62 RTC memiliki salah satu akurasi tertinggi yang dapat saya temukan (±2ppm yang setara dengan ±5 detik per bulan). Menggabungkan akurasi tinggi dengan kompatibilitas I2C dan konsumsi arus yang sangat rendah menjadikan RTC ini pilihan yang baik untuk proyek ini.

Konverter Peningkatan DC-DC

Memilih IC Konverter Boost DC-DC dilakukan hanya dengan melihat rangkaian dan mencari tahu tegangan dan arus apa yang diperlukan. Menjalankan rangkaian pada tegangan rendah akan mengurangi konsumsi arus tetapi saya tidak dapat mencapai di bawah 4,5V (tegangan mikrokontroler minimal pada jam 16MHz) dan saya tidak dapat melampaui 4,5V (tegangan maksimum RTC). Ini berarti bahwa saya harus menjalankan sirkuit dengan tepat 4,5V untuk mengoperasikan komponen dalam spesifikasi yang direkomendasikan. Saya menghitung bahwa arus maksimal rangkaian tidak akan melebihi 250mA. Jadi, saya mulai mencari konverter boost yang dapat memenuhi persyaratan dan dengan cepat menemukan TPS61220. TPS61220 membutuhkan komponen eksternal minimal, cukup murah dan mampu memenuhi persyaratan arus dan tegangan.

Baterai

Persyaratan utama untuk baterai adalah ukurannya. Baterai harus cukup kecil agar dapat masuk ke dalam casing jam tangan tanpa membuatnya terlihat besar. Saya pikir baterainya tidak boleh melebihi 20mm × 35mm × 10mm. Dengan batasan ukuran ini dan kebutuhan arus 250mA, pilihan baterai saya terbatas pada baterai LiPo. Saya menemukan baterai "Turnigy nano-tech 300mAh 1S" di Hobbyking yang saya putuskan untuk digunakan.

IC Pengisian

Tidak ada persyaratan khusus untuk pengontrol muatan kecuali bahwa itu harus kompatibel dengan baterai LiPo 1S. Saya menemukan MCP73831T yang merupakan pengontrol muatan terintegrasi yang dirancang untuk aplikasi pengisian daya sel tunggal. Salah satu fiturnya adalah kemampuan untuk mengatur arus pengisian melalui resistor eksternal yang menurut saya cukup berguna dalam aplikasi ini.

Perlindungan Lipo

Saya ingin menyertakan pemantauan tegangan dan arus untuk melindungi baterai dari kondisi overcharge dan over-discharge yang berbahaya. Ada sejumlah IC yang menyediakan fitur tersebut dan salah satu opsi yang lebih murah adalah IC BQ29700. Ini membutuhkan komponen eksternal dalam jumlah minimal dan mencakup semua perlindungan yang diperlukan untuk baterai LiPo sel tunggal.

Sekarang komponen telah dipilih, saatnya untuk membuat skema!

Langkah 5: Skema

Skema
Skema

Menggunakan Altium Designer, saya dapat menyusun skema di atas menggunakan rekomendasi dari masing-masing lembar data komponen. Skema dibagi menjadi blok yang berbeda untuk membuatnya lebih mudah dibaca. Saya juga menambahkan beberapa catatan dengan informasi penting jika ada orang lain yang ingin membuat ulang desain ini.

Langkah selanjutnya adalah meletakkan skema pada PCB!

Langkah 6: Tata Letak PCB

Tata Letak PCB
Tata Letak PCB
Tata Letak PCB
Tata Letak PCB
Tata Letak PCB
Tata Letak PCB
Tata Letak PCB
Tata Letak PCB

Tata letak PCB ternyata menjadi bagian yang paling menantang dari proyek ini. Saya memilih untuk menggunakan PCB 2 lapis untuk menekan biaya pembuatan PCB seminimal mungkin. Saya memilih untuk menggunakan jam tangan standar berukuran 36mm karena tampaknya cukup cocok dengan LED. Saya menambahkan beberapa lubang sekrup 1mm untuk mengamankan PCB di penutup arloji. Tujuannya adalah untuk mempertahankan desain yang bersih dan terlihat bagus dengan menempatkan semua komponen (kecuali LED tentunya) di lapisan bawah. Saya juga ingin menggunakan jumlah minimal mutlak vias untuk menghindari vias yang terlihat di lapisan atas. Ini berarti bahwa saya harus merutekan semua jejak pada satu lapisan sambil memastikan untuk menjaga bagian "berisik" dari sirkuit jauh dari jejak sinyal sensitif. Saya juga memastikan untuk menjaga semua jejak sesingkat mungkin, menempatkan kapasitor bypass dekat dengan beban, menggunakan jejak yang lebih tebal untuk komponen daya tinggi dan jika tidak, ikuti semua praktik umum desain PCB yang baik. Perutean memakan waktu cukup lama, tetapi saya pikir hasilnya sangat baik.

Langkah selanjutnya adalah membuat model 3D untuk penutup jam tangan!

Langkah 7: Desain 3D

Desain 3D
Desain 3D
Desain 3D
Desain 3D
Desain 3D
Desain 3D

Penutup jam dirancang dengan desain jam tangan yang sangat konvensional dan klasik menggunakan Fusion 360. Saya menggunakan jarak standar 18mm untuk tali jam agar jam tangan kompatibel dengan berbagai jenis tali lainnya. Cut-out untuk PCB dirancang 0, 4mm lebih besar dari PCB itu sendiri untuk mengakomodasi ketidakakuratan manufaktur. Saya menyertakan beberapa tiang sekrup untuk memasang PCB dan tepi kecil untuk meletakkan PCB. Saya memastikan untuk menutup PCB beberapa milimeter dari atas untuk menghindari tepi tajam LED tersangkut pada pakaian. Ketinggian selungkup semata-mata ditentukan oleh ketebalan baterai. Bagian penutup lainnya dirancang agar terlihat bagus dengan tepi yang membulat dan sudut yang dipoles. Saya memang harus menjaga desain ramah cetak 3D sehingga saya bisa mencetak 3D di rumah tanpa bahan pendukung.

Sekarang setelah perangkat keras selesai, saatnya untuk mulai mengerjakan perangkat lunak!

Langkah 8: Kode

Kode
Kode

Saya memulai kode dengan memasukkan semua perpustakaan yang diperlukan. Ini termasuk perpustakaan untuk berkomunikasi dengan RTC dan untuk menggerakkan LED. Setelah itu, saya membuat fungsi terpisah untuk masing-masing mode. Saat pengguna mengganti mode dengan menekan tombol, program akan memanggil fungsi yang sesuai dengan mode tersebut. Jika pengguna tidak menekan tombol dalam jangka waktu tertentu, jam tangan akan beralih ke mode tidur.

Mode tidur ditunjukkan oleh semua LED yang memudar hingga benar-benar mati. Menggunakan mode tidur sangat meningkatkan masa pakai baterai dan membuat LED tetap mati saat tidak digunakan. Pengguna dapat membangunkan jam tangan dengan menekan tombol atas. Saat dibangunkan, jam tangan akan memeriksa level baterai untuk memastikan tidak perlu diisi daya. Jika diperlukan pengisian daya, LED akan berkedip merah beberapa kali sebelum menampilkan waktu. Jika baterai di bawah tingkat kritis, itu tidak akan menyala sama sekali.

Sisa waktu pemrograman digunakan untuk membuat mode lain seintuitif mungkin. Saya pikir memiliki tombol yang sama yang bertanggung jawab untuk fungsi yang sama di semua mode akan menjadi yang paling intuitif. Setelah beberapa pengujian, ini adalah konfigurasi tombol yang saya buat:

  • Tekan Tombol Atas: Bangun / Siklus antara mode "Waktu Tampilan", "Tanggal Tampilan", "Stopwatch" dan "Alarm".
  • Tahan Tombol Atas: Masuk ke mode "Atur Waktu", "Atur Tanggal", "Mulai Stopwatch" atau "Atur Alarm".
  • Tekan Tombol Bawah: Tingkatkan Kecerahan.
  • Tahan Tombol Bawah: Masuk ke Mode "Pilih Warna".

Tombol bawah selalu bertanggung jawab atas kecerahan dan penyesuaian warna, terlepas dari mode apa yang Anda gunakan. Saat pengguna memasuki mode "Pilih Warna", LED mulai berputar melalui semua kemungkinan warna RGB. Pengguna dapat menjeda animasi dan memilih warna yang mereka sukai untuk mode tertentu (Waktu Tampilan berwarna merah, Tanggal Tampilan berwarna biru, dll.). Warna dimaksudkan agar mudah disesuaikan oleh pengguna untuk membantu mereka membedakan antara mode yang berbeda.

Sekarang setelah kode selesai, saatnya untuk mengunggahnya ke mikrokontroler!

Langkah 9: Pemrograman

Pemrograman
Pemrograman

Sudah hampir waktunya untuk penyolderan dan perakitan tetapi sebelum itu saya perlu memprogram mikrokontroler. Saya mengikuti tutorial ini

Bakar bootloader ke ATmega328P-AU SMD

tentang cara burning bootloader dan memprogram mikrokontroler menggunakan Arduino Uno biasa sebagai programmernya.

Langkah pertama adalah mengubah Arduino Uno menjadi ISP dengan mengunggah kode contoh "ArduinoISP". Saya menggunakan papan tempat memotong roti bersama dengan soket pemrograman dan memasang skema dari tutorial. Setelah itu, saya bisa membakar bootloader ke mikrokontroler hanya dengan menekan "Burn Bootloader" di Arduino IDE.

Setelah mikrokontroler memiliki bootloader, saya cukup melepas mikrokontroler yang ada dari Arduino Uno dan menggunakan papan Arduino Uno sebagai USB to Serial Adapter untuk mengunggah kode ke mikrokontroler di soket pemrograman. Setelah pengunggahan selesai, saya bisa memulai proses penyolderan.

Langkah selanjutnya adalah mengumpulkan semua komponen dan menyoldernya bersama-sama!

Langkah 10: Menyolder

Pematerian
Pematerian
Pematerian
Pematerian
Pematerian
Pematerian
Pematerian
Pematerian

Proses penyolderan dibagi menjadi dua bagian. Pertama lapisan bawah perlu disolder, dan kemudian lapisan atas.

Saya mengamankan PCB arloji di antara beberapa papan prototipe menggunakan selotip. Ini memastikan bahwa PCB tidak bergerak selama penyolderan, yang sangat penting. Saya kemudian meletakkan stensil solder di atas PCB dan menggunakan pasta solder dalam jumlah banyak untuk menutupi semua bantalan solder. Saya melanjutkan dengan menggunakan pinset tipis untuk menempatkan semua komponen pada bantalan yang sesuai. Saya kemudian menggunakan senapan panas untuk mengalirkan kembali solder semua komponen di tempatnya.

Ketika lapisan bawah disolder, saya memberikan inspeksi visual cepat untuk memastikan bahwa penyolderan berhasil. Saya kemudian membalik papan dan mengulangi proses penyolderan di sisi lain, kali ini dengan semua LED. Sangat penting untuk tidak membuat papan terlalu panas saat menyolder lapisan atas karena semua komponen di bagian bawah berisiko jatuh. Untungnya, semua komponen tetap di tempatnya dan setelah menyolder tombol di tempatnya menggunakan besi solder biasa, PCB selesai!

Sekarang saatnya untuk pertemuan terakhir!

Langkah 11: Perakitan

perakitan
perakitan

Majelis itu sangat sederhana. Saya menghubungkan baterai ke PCB dan menempatkan baterai dan PCB di dalam wadah cetak 3D. Saya melanjutkan untuk memasang empat sekrup di lubang pemasangan di setiap sudut PCB. Setelah itu, saya memasang tali jam menggunakan batang pegas 18mm dan jam tangan selesai!

Langkah 12: Kesimpulan dan Perbaikan

Kesimpulan dan Perbaikan
Kesimpulan dan Perbaikan
Kesimpulan dan Perbaikan
Kesimpulan dan Perbaikan

Jamnya berfungsi seperti yang diharapkan dan saya sangat senang dengan hasilnya. Saya tidak punya masalah dengan itu sejauh ini dan baterai tetap hampir terisi penuh setelah satu minggu penggunaan.

Saya mungkin menambahkan fitur lain ke arloji di masa mendatang. Karena port USB terhubung ke mikrokontroler, firmware dapat diperbarui setiap saat dengan fitur baru. Namun untuk saat ini, saya akan terus menggunakan versi jam tangan ini dan melihat bagaimana jam tangan ini bertahan setelah penggunaan yang lama.

Jika Anda memiliki pemikiran, komentar, atau pertanyaan tentang proyek ini, silakan tinggalkan di bawah. Anda juga dapat mengirimkannya ke [email protected].

Kontes Jam
Kontes Jam
Kontes Jam
Kontes Jam

Hadiah Pertama dalam Kontes Jam

Direkomendasikan: