Bagian 1. Lirik
Dunia modern tidak terbayangkan tanpa sejumlah besar asisten elektronik dan listrik. Mulai dari komputer dan telepon pintar, diakhiri dengan sakelar lampu sederhana di dapur dan pemutus sirkuit perlindungan input. Dengan satu atau lain cara, Anda harus berinteraksi dengan semua perangkat. Dengan beberapa lebih sering, misalnya, smartphone, yang beberapa orang tidak bisa lepas kendali sama sekali, dengan beberapa lebih jarang, perangkat perlindungan entri otomatis yang sama ke apartemen, keberadaan yang beberapa bahkan tidak sadari.
Adapun perangkat dari kategori pertama, semuanya sederhana di sana. Antarmuka, pada kenyataannya, adalah grafis dan ditentukan oleh desainer dan programmer. Dan dengan perangkat yang kedua, dalam hal interaksi, tidak penting, rencananya jauh lebih rumit. Kami menerima begitu saja, saklar lampu yang sama, atau kepada ibu, ketika mereka melakukan pekerjaan mereka, seperti mesin input yang bekerja terlalu banyak.
Untuk perangkat yang sangat sederhana, antarmuka bersifat primitif. Tombol atau sakelar sakelar, beberapa tombol untuk termostat, misalnya. Karakteristik ditentukan oleh pabrikan dan tidak berubah oleh konsumen. Tersandung arus 10A, 16A, 25A ... Beralih ke 6A 230V ... Tetapi ketika perangkat ini sedikit lebih rumit, semuanya menjadi sangat buruk.
Sedikit terganggu, saya akan berbicara tentang kegagalan saya hanya karena antarmuka perangkat keras. Ada tugas menyeimbangkan beban untuk rumah pribadi. Bahkan - relay waktu multi-channel yang dapat diprogram. Saya membuat prototipe secara harfiah di malam hari, mengirimkannya kepada pelanggan, pelanggan, teman serumah, puas, saya memutuskan untuk mencoba membangun produksi skala kecil, mengatur startup elektronik kecil pada skala desa, karena masalah kurangnya kapasitas input relevan untuk sektor swasta. Satu masalah desain tetap ada - konfigurasi perangkat. Dalam prototipe, interval hanya dimasukkan ke dalam Firmware, jika 200 instruksi assembler bisa disebut itu. Beberapa kali saya harus menyesuaikan pengaturan, ini dilakukan hanya dengan memasang firmware baru dan memperbarui melalui programmer. Jelas bahwa untuk perangkat berseri, bahkan berskala kecil, metode ini tidak cocok.
Di sini saya menemukan semua "pesona" pengembangan antarmuka pengguna perangkat keras ... Metode sederhana, seperti menuliskan 16 opsi untuk pengaturan dan pengaturan saklar geser tidak memberikan fleksibilitas yang diperlukan, membuat antarmuka serius untuk berkomunikasi dengan PC atau smartphone adalah komplikasi yang tidak dapat dibenarkan, kenaikan harga. Selain itu, segera muncul kebutuhan untuk mengembangkan aplikasi yang sederhana, tetapi lintas platform (Win / Linux / Android / iOs). Tapi ini bukan yang utama. Bahkan, pengguna akan mengkonfigurasi perangkat sekali selama instalasi dan, idealnya, tidak lagi mengingatnya.
Berbeda dengan prototipe, indikator LED 4-bit, tombol, dan LED muncul di panel depan perangkat. Fungsionalitas juga ditambahkan, fitur penundaan dalam menyalakan beban setelah pemadaman listrik, mode tambahan untuk catu daya dari saluran listrik atau generator cadangan, menjaga suhu beku ...
Dan di sini adalah tata ruang dimensi massa dari monster Frankenstein ini
(Mengontrol kontaktor, di dalam sirkuit kumparan switching arus rendah)
Selama fungsionalitas hanya relay yang dapat diprogram hadir, itu tidak sulit dengan pengaturan, antarmuka perangkat keras yang dibuat terbayar. Tetapi pada titik tertentu, instruksi konfigurasi mulai melebihi ukuran kode firmware. Ide awal: pengguna memindai kode QR pada panel instrumen, pergi ke halaman dengan instruksi - gagal. Tetap membuat perangkat yang sangat sederhana, atau mencari metode lain untuk berkomunikasi dengan perangkat. Calon pembeli (penguji yang berani) untuk waktu yang sangat lama memahami konfigurasi sesuai dengan instruksi.
Yang paling menyedihkan adalah, saya memiliki prototipe beberapa perangkat yang pernah dikonfigurasi dan menjalani hidup mereka di panel listrik. Konfigurasi - selusin byte lainnya. Tetap menemukan antarmuka yang cocok.
Apa yang kita miliki hari ini? Perbandingan metode konfigurasi "klasik":- Pilihan konfigurasi yang sudah jadi. PROS: Mudah diimplementasikan baik perangkat lunak maupun perangkat keras. Peningkatan perangkat keras tambahan minimal. Pengguna tidak perlu memiliki peralatan khusus, instruksi yang cukup. KONTRA: Tidak ada fleksibilitas, tidak secara intuitif, diperlukan instruksi.
- Urutan klik dengan umpan balik melalui tampilan sederhana (mirip dengan pengaturan jam elektronik reguler). PROS: Mudah diimplementasikan secara programatik, pengguna tidak perlu memiliki peralatan khusus, instruksi yang cukup. CONS: Tidak secara intuitif, sulit untuk mengkonfigurasi sejumlah besar parameter, ketidakmampuan untuk mengkloning pengaturan, yang sangat penting bagi perusahaan pemasang.
- Konfigurasi menggunakan antarmuka kabel standar. PROS: Secara intuitif, jika aplikasi ditulis dengan baik, kloning pengaturan yang mudah, implementasi yang relatif sederhana, mungkin perbaikan perangkat keras yang tidak terlalu mahal, kemampuan untuk memperbarui firmware. KONTRA: Pengguna harus memiliki peralatan, setidaknya komputer atau laptop dengan port USB, konverter antarmuka, jika perangkat Anda menyediakan sesuatu selain USB atau Ethernet. Kebutuhan untuk mengembangkan aplikasi.
- WiFi + WEB - menembak dari meriam di burung pipit dan terry ardurinshchina. Tapi idenya tidak buruk. PROS: mirip dengan koneksi kabel, tidak perlu mengembangkan aplikasi lintas-platform dengan menyediakan antarmuka WEB bawaan dari konfigurator, cukup bagi pengguna untuk memiliki perangkat apa pun dengan dukungan WiFi dan browser. Akses ke jaringan global bahkan tidak diperlukan. Mungkin desain ini akan lebih murah daripada tombol / indikator perangkat keras, kasing juga disederhanakan. CONS: Secara teknis, solusi yang sangat jelek yang mentransfer produk ke kelas perangkat yang sama sekali berbeda. Keandalan berkurang, baik karena kompleksitas firmware, dan peningkatan sensitivitas terhadap EMF.
Saya merangkum bahwa salah satu solusi paling indah dari sudut pandang pengguna adalah yang terakhir. Tapi itu juga salah satu yang paling mengerikan dari sudut pandang seorang insinyur. Aku hampir berhenti, tapi ...
Lengkungan teknis berhantu. Untuk menulis beberapa byte di EEPROM, memagari taman dengan tumpukan protokol yang luas tidak masuk akal. Tapi sepertinya saya menemukan solusi untuk masalah saya, berikut adalah karakteristik dari metode ini:
Pro:- Peningkatan harga komponen perangkat keras sebanding dengan keputusan “memilih dari konfigurasi yang sudah jadi”, 10–15 rubel, dan kemampuan untuk menolak tombol, indikator, dll., Memberikan, lebih tepatnya, harga yang lebih murah.
- Implementasi perangkat lunak tidak menjadi masalah.
- Tidak memerlukan pengembangan aplikasi khusus. Jika diinginkan, aplikasi dapat disediakan.
- Intuitifitas tergantung pada kualitas pengembangan konfigurator atau aplikasi WEB.
- Isolasi galvanik dengan perangkat.
Cons:- Kecepatan transfer data yang rendah dibandingkan dengan antarmuka kabel atau radio.
- Diperlukan kontak fisik dengan perangkat.
- Anda memerlukan setidaknya satu akses ke Jaringan.
Selain itu, metode pengiriman informasi ini sangat umum. Ini adalah gelombang suara.
Sekarang, mungkin semua orang memiliki smartphone. Tanpa smartphone - perangkat apa pun untuk memutar suara, bahkan pemutar kaset, cocok. Saat saya melihat antarmuka ini beraksi:
- Pengguna menginstal perangkat sesuai dengan instruksi.
- Konfigurasi perangkat yang diperlukan dibuat, mode dan pengaturan yang diperlukan terdaftar.
- Pengguna menempatkan perangkat ke mode konfigurasi, misalnya, dengan urutan khusus menekan tombol, perangkat menampilkan status siap, misalnya, dengan mengedipkan LED dengan frekuensi 5 Hz.
- Di konfigurator, ikon "transfer parameter" diklik, setelah itu urutan suara yang disandikan mulai diputar (dan siapa yang memuatnya dari kaset di tahun 90an?).
- Pengguna menunggu data untuk dimuat ke dalam perangkat (misalnya, LED telah terus menyala) dan mengklik ikon "hentikan transmisi".
Semuanya, parameter baru ditransfer ke perangkat. Apakah menurut Anda metode konfigurasi ini cukup nyaman?
Alih-alih kata penutupSaya secara khusus tidak menyentuh pada bagian teknis dari implementasi. Setiap kasus dapat bersifat individual, pendekatannya adalah ide umum. Jika artikel tersebut membangkitkan minat, saya akan menerbitkan bagian kedua. Praktis. Sementara spoiler: idenya berhasil, model pada versi 8-bit PIC16 + "student" dari kompiler C tanpa optimisasi, termasuk manual, firmware secara diam-diam masuk dalam memori (sekitar 1KB) dan dalam kinerja. Operasi matematika yang paling sulit adalah penambahan sint8_t dan sint16_t. Menurut perhitungan awal, inti dari konfigurator suara, ditulis ulang dalam Assembler, akan muat dalam kurang dari 512 kiloslov dan PIC16F819 harus memiliki kinerja 2MIPS yang cukup.
Semua yang terbaik
Konstantin.