Pendahuluan
Saat mengembangkan perangkat untuk menguji rangkaian listriknya, papan debug biasanya digunakan. Pengembang kami tidak terkecuali di sini, manfaat dari aspek positif dari pendekatan ini jelas: biayanya lebih rendah daripada produksi prototipe atau batch uji. Dan jika kesalahan muncul dalam proses atau solusi baru muncul untuk beberapa tugas, mereka jauh lebih mudah untuk diterapkan.
Namun, cukup sering kita dihadapkan dengan fakta bahwa debug yang ditawarkan di pasar membutuhkan penyempurnaan yang signifikan dan / atau modul tambahan. Pada saat yang sama, muncul pembatasan tambahan yang bergantung pada perangkat tertentu. Jika kita mengembangkan papan kontrol dan modul nirkabel dari awal, maka urutan relatif ada di papan tempat memotong roti.
Masalah dimulai ketika skenario kedua dan lebih sering dimainkan, dan kita sedang berhadapan dengan modernisasi teknik yang sudah dikembangkan. Karena faktor pembatas utama - harga akhir produk - perubahan sirkuit listrik harus minimal. Pada tahap tata letak, banyak “pertanian kolektif” tercinta harus diciptakan.
SumberApa yang harus dilakukan
Papan kontrol pada peralatan rumah tangga biasanya sederhana dan berteknologi rendah - dasar cetakannya adalah lapisan tunggal, di satu sisi ia tidak memiliki metalisasi dan masker. Kesederhanaan papan ini ditentukan oleh harga akhir dari perangkat itu sendiri - semakin rumit produksi peralatan, semakin mahal harus dijual. Jelas bahwa konsumen massa tidak akan mau dan tidak akan membayar lebih untuk komplikasi.
Perwakilan papan kontrol alat rumah yang khasSelama pekerjaan kami telah muncul beberapa modul nirkabel standar dari RM2 ke RM10. Modul-modul ini, berdasarkan pada solusi SoC, bertindak sebagai pengontrol pusat, dan juga memungkinkan Anda untuk mengontrol perangkat melalui udara.
Modul nirkabel ini dirancang sedemikian rupa sehingga dapat dipasang di papan kontrol, dengan sedikit mengubahnya. Untuk memastikan kecepatan pengembangan yang tinggi, ada kebutuhan mendesak untuk membuat papan debug, di mana sudah ada segala yang diperlukan untuk peralatan rumah tangga pintar.
Argumen lain untuk rilis papan debug adalah pembukaan platform Ready for Sky untuk pengembang pihak ketiga. Kami mulai menerima saran dan permintaan melalui email untuk memberikan pengembang independen atau akses pengembang DIY ke platform. Tawaran serupa datang bahkan di PM Khabrov.
Debugging
Jadi kami melakukannya - versi pertama RFS-DEV001. Inti dari papan debug adalah modul RM10. Berdasarkan chip
nRF52832 , yang sesuai dengan standar Bluetooth 5, ia mendukung jaringan mesh dan Bluetooth Low Energy. Juga, jam waktu nyata ditempatkan pada debugging, tiga opsi daya diterapkan (baterai, USB dari PC, eksternal dari sumber daya). Dua tombol, bel dan dioda RGB untuk memberi sinyal dan lampu kilat. Semua komponen di papan dipilih dari yang sekarang digunakan dalam produksi massal peralatan rumah tangga.
Selain menguji skema kontrol, pengembang akan dapat segera menentukan dan mengoptimalkan biaya komponen, yang pada akhirnya akan mempengaruhi harga perangkat cerdasnya.

Papan akan nyaman untuk stan DIY, di antaranya ada juga yang menganggap pemrograman bukan hal yang kuat atau mereka baru mulai belajar. Kami melihat kesempatan untuk memfasilitasi pekerjaan mereka, misalnya, untuk membuat papan Arduino kompatibel. Jelas bahwa ini adalah format amatir dan pendidikan, tetapi penggunaannya, pertama, tidak membatalkan pekerjaan profesional dengan debugging, dan kedua, sangat meningkatkan kenyamanan para spesialis yang memasuki profesi ini.
Sangat mungkin untuk mendistribusikan biaya di antara universitas dan sekolah teknik khusus untuk mengajar siswa junior, sehingga berkontribusi bagi spesialis di masa depan.
Daftar plug-in yang dijamin bekerja 
API
Karena debugging tidak akan menjadi bagian dari textolite yang berguna tanpa kode program, ada baiknya berbicara sedikit tentang API, yang dirancang untuk memungkinkan pengembang berkonsentrasi pada fungsionalitas perangkatnya sebagai bagian dari pembukaan platform, abstrak dari berbagai pengaturan Bluetooth, dll.
Jadi, API R4S terdiri dari:
- satu set perpustakaan yang menyediakan operasi layanan khas dan spesifik, misalnya, perpustakaan utama yang berisi pengaturan Bluetooth dasar dan perpustakaan yang berfokus pada fungsi perangkat;
- contoh perangkat atau fungsi yang diterapkan pada API;
- driver untuk periferal yang terhubung ke papan debug, lihat daftar di atas.
Anda dapat melihat sedikit pada kemampuan API menggunakan contoh menciptakan efek pencahayaan menggunakan lampu LED melalui perubahan kecerahan yang halus menggunakan kurva Bezier.
Setelah beralih ke mode peyring, bohlam akan dengan lancar mengubah warna cahayaDi file utama, Anda perlu menentukan secara independen informasi dasar, misalnya, informasi tentang firmware, menyatakan pengaturan (lokasi bootloader, buffer untuk memperbarui firmware, dll.).
R4S_FW_INFO_DEF(application, 0x26000) = { .version = { .major = 0, .minor = 1, }, .name = { .name = "RGB Lightbulb", .len = sizeof("RGB Lightbulb") - 1 } }; R4S_CONFIG_DEF(r4s_init_conf) = { .p_fw_info = &application, .production_key = NULL, .bootloader = { .start_address = 0x7B000, .mbr_param_page = 0x7f000, .fw_upgrade_buf = { .p_api = &nrf_fstorage_sd, .start_addr = 0x35000, .end_addr = 0x78000, .chunk_size = 0, } }, .company_info = { .p_company_name = "Imperium of Mankind", }, .watchdog = { .timeout_ms = 5000, }, .low_power_mode_enable = true, }
Pengembangan perangkat ini mirip dengan pengembangan untuk Arduino. Ada fungsi pengaturan untuk menginisialisasi modul utama dan loop di mana proses berlangsung. Fungsionalitas aplikasi itu sendiri dibagi menjadi beberapa modul - sesuai dengan berbagai operasi yang dilakukan.
void app_setup(void) { m_pairing_init(m_led_ctrl_pairing_handler); m_led_ctrl_init(); } bool app_loop(void) { return NRF_LOG_PROCESS(); }
Setelah sumber daya dideklarasikan dalam file ("m_resources.c") - misalnya, animasi bulb, penugasan pin (beberapa grup LED), warna, dll., Perpustakaan akan menentukan sisa parameter itu sendiri.
APP_TIMER_DEF(animation_timer_id); static const r4s_rgb_ctrl_led_t m_leds_map[LEDS_COUNT] = { { .color = { .red_pin = RED_LEDS_0_PIN, .green_pin = GREEN_LEDS_0_PIN, .blue_pin = BLUE_LEDS_0_PIN, } }, { .color = { .red_pin = RED_LEDS_1_PIN, .green_pin = GREEN_LEDS_1_PIN, .blue_pin = BLUE_LEDS_1_PIN, } }, { .color = { .red_pin = RED_LEDS_2_PIN, .green_pin = GREEN_LEDS_2_PIN, .blue_pin = BLUE_LEDS_2_PIN, } }, }; static const r4s_rgb_ctrl_pwm_map_elem_t m_pwm_map[LEDS_COUNT] = { { .color = { .p_pwm_red = &pwm0, .p_pwm_green = &pwm0, .p_pwm_blue = &pwm0, } }, { .color = { .p_pwm_red = &pwm1, .p_pwm_green = &pwm1, .p_pwm_blue = &pwm1, } }, { .color = { .p_pwm_red = &pwm2, .p_pwm_green = &pwm2, .p_pwm_blue = &pwm2, } }, }; R4S_RGB_CTRL_DEF(m_rgb, m_leds_map, m_pwm_map, &animation_timer_id, LEDS_COUNT, 3);
Setelah pengikatan, aplikasi menerima data yang dapat dilakukan perangkat, bola lampu dalam kasus kami, dan menampilkan informasi yang relevan.

Selanjutnya, melalui aplikasi, Anda dapat mengontrol parameter - intensitas, warna, suhu, dll.
Sekarang kode sedang dikerjakan pada debugging prototipe, jadi biarkan perbedaan antara papan dan gambar atas tidak mengganggu Anda.Fitur tambahan termasuk:
- Multiconnect - beberapa smartphone yang terhubung secara bersamaan ke modul. Fitur ini berpotensi menyebabkan masalah ketika Anda mencoba mengontrol perangkat pada saat yang bersamaan. Kami mencoba untuk mengatasi masalah ini, termasuk melalui pemberitahuan pada semua ponsel cerdas yang terhubung - ketika suatu parameter diubah oleh satu telepon, informasi tentang nilai parameter baru akan segera dikirim ke yang lain;
- Kedipan cepat - ukuran paket yang dikirim melalui Bluetooth tergantung pada MTU . Dengan peningkatan MTU, proses flashing akan berjalan lebih cepat karena ukuran paket akan meningkat;
- Daftar kesalahan tipikal ditentukan oleh fungsi mikrokontroler. Jika kesalahan terdeteksi, teks seperti “Memori tidak cukup untuk perangkat lunak. Untuk informasi lebih lanjut, aktifkan sdm debug. "
Untuk bekerja dengan debugging, aplikasi teknik R4S akan dirilis dengan kemampuan yang sama seperti biasa, tetapi melalui itu papan dikontrol. Pada prinsipnya, melalui aplikasi teknik, Anda dapat mengelola perangkat rakitan di apartemen Anda - bagian yang bagus untuk DIY. Ini seharusnya membantu pengembang pemula mendukung perangkat. Dalam aplikasi R4S utama, perangkat tersebut akan muncul setelah koordinasi dan kontrol kualitas di pihak kami.
Kami juga akan menggunakan debugging dalam pekerjaan sehari-hari perusahaan, termasuk ketika melatih karyawan baru. Habrovchane, seperti yang Anda pikirkan, akan lepas landas? Apakah Anda tertarik untuk bekerja dengan debugging seperti itu?