EinfĂŒhrung
Bei der Entwicklung eines GerĂ€ts zum Testen seines Stromkreises wird normalerweise eine Debug-Karte verwendet. Unsere Entwickler sind hier keine Ausnahme, der Vorteil der positiven Aspekte dieses Ansatzes liegt auf der Hand: Die Kosten sind geringer als bei der Herstellung eines Prototyps oder einer Testcharge. Und wenn dabei Fehler auftreten oder fĂŒr einige Aufgaben neue Lösungen angezeigt werden, sind diese viel einfacher anzuwenden.
Wir waren jedoch ziemlich oft mit der Tatsache konfrontiert, dass die auf dem Markt angebotenen Debugs eine erhebliche Verfeinerung und / oder zusÀtzliche Module erforderten. Gleichzeitig traten zusÀtzliche EinschrÀnkungen auf, die von einem bestimmten GerÀt abhingen. Wenn wir eine Steuerplatine und ein Funkmodul von Grund auf neu entwickeln, befindet sich die relative Reihenfolge auf dem Steckbrett.
Probleme beginnen, wenn ein zweites und hĂ€ufigeres Szenario gespielt wird und wir uns mit der Modernisierung einer bereits entwickelten Technik befassen. Aufgrund des HauptbeschrĂ€nkungsfaktors - des Endpreises des Produkts - sollte die Ănderung des Stromkreises minimal sein. In der Phase des Layouts haben viele die âkollektive Farmâ sehr geliebt.
QuelleWas zu tun ist?
Steuerplatinen in HaushaltsgerĂ€ten sind normalerweise einfach und Low-Tech - ihre bedruckte Basis ist einlagig, auf einer Seite ohne Metallisierung und Maske. Die Einfachheit dieser Platinen wird durch den Endpreis der GerĂ€te selbst bestimmt - je komplizierter die Herstellung der GerĂ€te ist, desto teurer muss sie verkauft werden. Es ist klar, dass der Massenverbraucher Komplikationen nicht wollen und nicht ĂŒberbezahlen wird.
Typischer Vertreter der Steuerkarte fĂŒr HaushaltsgerĂ€teWĂ€hrend der Arbeit haben wir mehrere Standard-Funkmodule von RM2 bis RM10 erschienen. Diese Module, die auf der SoC-Lösung basieren, fungieren als zentrale Steuerung und ermöglichen Ihnen auch die Steuerung des GerĂ€ts ĂŒber die Luft.
Diese Reihe von Funkmodulen ist so konzipiert, dass sie auf der Steuerplatine installiert werden können und nur minimal verĂ€ndert werden. Um eine hohe Entwicklungsgeschwindigkeit zu gewĂ€hrleisten, musste dringend ein Debug-Board erstellt werden, in dem bereits alles vorhanden ist, was fĂŒr intelligente HaushaltsgerĂ€te erforderlich ist.
Ein weiteres Argument fĂŒr die Veröffentlichung des Debug-Boards war die Eröffnung der Ready for Sky-Plattform fĂŒr Drittentwickler. Wir erhielten VorschlĂ€ge und Anfragen per E-Mail, um unabhĂ€ngigen Entwicklern oder Heimwerkern den Zugang zur Plattform zu ermöglichen. Ein Ă€hnliches Angebot kam sogar in Chabrows MinisterprĂ€sident.
Debuggen
Also haben wir es geschafft - die erste Version des RFS-DEV001. Das HerzstĂŒck der Debug-Karte ist das RM10-Modul. Basierend auf dem
nRF52832- Chip, der dem Bluetooth 5-Standard entspricht, unterstĂŒtzt er Mesh-Netzwerke und Bluetooth Low Energy. AuĂerdem wird beim Debuggen eine Echtzeituhr verwendet, drei Energieoptionen sind implementiert (Akku, USB von einem PC, extern von einer Stromquelle). Zwei Tasten, ein Summer und eine RGB-Diode zum Signalisieren und Blinken. Alle Komponenten auf der Platine werden aus denen ausgewĂ€hlt, die jetzt in der Massenproduktion von HaushaltsgerĂ€ten verwendet werden.
ZusĂ€tzlich zum Testen des Steuerungsschemas kann der Entwickler die Kosten fĂŒr Komponenten sofort ermitteln und optimieren, was sich letztendlich auf den Preis seines Smart-GerĂ€ts auswirkt.

Das Board ist praktisch fĂŒr DIY-StĂ€nde, unter denen es auch solche gibt, fĂŒr die das Programmieren keine StĂ€rke ist oder die gerade erst anfangen zu lernen. Wir sahen eine Gelegenheit, ihre Arbeit zu erleichtern, zum Beispiel das Board Arduino-kompatibel zu machen. Es ist klar, dass dies ein Amateur- und Bildungsformat ist, aber seine Verwendung bricht zum einen die professionelle Arbeit mit dem Debuggen nicht ab und zum anderen erhöht es den Komfort von Fachleuten, die in den Beruf eintreten, erheblich.
Es wĂ€re durchaus möglich, die GebĂŒhr fĂŒr den Unterricht von Junior-Studenten auf UniversitĂ€ten und spezialisierte technische Schulen zu verteilen und so einen Beitrag zu zukĂŒnftigen Fachleuten zu leisten.
Liste der garantiert funktionierenden Plug-Ins 
API
Da das Debuggen ohne Programmcode kein nĂŒtzliches StĂŒck Textolite ist, lohnt es sich, ein wenig ĂŒber die API zu sprechen, die es dem Entwickler ermöglicht, sich beim Ăffnen der Plattform auf die FunktionalitĂ€t seines GerĂ€ts zu konzentrieren und von zahlreichen Bluetooth-Einstellungen usw. zu abstrahieren.
Die R4S-API besteht also aus:
- eine Reihe von Bibliotheken, die den Betrieb typischer und spezifischer Dienste ermöglichen, beispielsweise die Hauptbibliothek mit grundlegenden Bluetooth-Einstellungen und Bibliotheken, die sich auf die FunktionalitÀt von GerÀten konzentrieren;
- Beispiele fĂŒr GerĂ€te oder Funktionen, die in der API implementiert sind;
- Treiber fĂŒr an die Debug-Karte angeschlossene PeripheriegerĂ€te finden Sie in der obigen Liste.
Sie können sich die API-Funktionen am Beispiel der Erstellung von Lichteffekten mithilfe einer LED-Lampe durch eine sanfte HelligkeitsÀnderung mithilfe von Bezier-Kurven genauer ansehen.
Nach dem Umschalten in den Peyring-Modus Ă€ndert die GlĂŒhbirne sanft die Farbe des GlĂŒhensIn der Hauptdatei mĂŒssen Sie die grundlegenden Informationen, z. B. Informationen zur Firmware, unabhĂ€ngig ermitteln, die Einstellungen deklarieren (Speicherort des Bootloaders, Puffer zum Aktualisieren der Firmware usw.).
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, }
Die Entwicklung des GerĂ€ts Ă€hnelt der Entwicklung fĂŒr Arduino. Es gibt eine Setup-Funktion zum Initialisieren der Hauptmodule und der Schleife, in der die Verarbeitung stattfindet. Die AnwendungsfunktionalitĂ€t selbst ist in Module unterteilt - je nach ausgefĂŒhrten VorgĂ€ngen.
void app_setup(void) { m_pairing_init(m_led_ctrl_pairing_handler); m_led_ctrl_init(); } bool app_loop(void) { return NRF_LOG_PROCESS(); }
Nachdem die Ressourcen in der Datei (âm_resources.câ) deklariert wurden, z. B. Lampenanimationen, Pinbelegungen (mehrere LED-Gruppen), Farben usw., bestimmt die Bibliothek den Rest der Parameter.
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);
Nach dem Verkleben empfĂ€ngt die Anwendung Daten, die das GerĂ€t ausfĂŒhren kann, in unserem Fall eine GlĂŒhbirne, und zeigt die relevanten Informationen an.

DarĂŒber hinaus können Sie ĂŒber die Anwendung die Parameter steuern - IntensitĂ€t, Farbe, Temperatur usw.
Jetzt wird der Code fĂŒr das Debuggen des Prototyps ausgearbeitet. Lassen Sie sich also nicht vom Unterschied zwischen der Platine und den oberen Bildern stören.ZusĂ€tzliche Funktionen umfassen:
- Multiconnect - mehrere Smartphones, die gleichzeitig mit dem Modul verbunden sind. Diese Funktion verursacht möglicherweise Probleme, wenn Sie versuchen, das GerĂ€t gleichzeitig zu steuern. Wir haben versucht, diesen Problemen vorzubeugen, auch durch Benachrichtigungen auf allen angeschlossenen Smartphones. Wenn ein Parameter von einem Telefon geĂ€ndert wird, werden Informationen ĂŒber den neuen Parameterwert sofort an die anderen gesendet.
- Schnelles Blinken - Die GröĂe des ĂŒber Bluetooth ĂŒbertragenen Pakets hĂ€ngt von der MTU ab . Mit zunehmender MTU wird der Flash-Prozess schneller, wenn die PaketgröĂe zunimmt.
- Eine Liste typischer Fehler, die durch die Funktion des Mikrocontrollers bestimmt werden. Wenn ein Fehler erkannt wird, wird ein Text wie âNicht genĂŒgend Speicher fĂŒr Softdevice. FĂŒr weitere Informationen aktivieren Sie das SDM-Debug. ".
Um mit dem Debuggen arbeiten zu können, wird eine R4S-Engineering-Anwendung mit den gleichen Funktionen wie normal freigegeben, aber ĂŒber diese wird die Karte gesteuert. Im Prinzip können Sie ĂŒber eine technische Anwendung zusammengebaute GerĂ€te in Ihrer Wohnung verwalten - ein schönes Teil fĂŒr Heimwerker. Dies sollte unerfahrenen Entwicklern helfen, das GerĂ€t zu unterstĂŒtzen. In der Hauptanwendung von R4S erscheint ein solches GerĂ€t nach Koordination und QualitĂ€tskontrolle unsererseits.
Wir werden das Debuggen auch in der tĂ€glichen Arbeit des Unternehmens einsetzen, auch bei der Schulung neuer Mitarbeiter. Habrovchane, wie Sie denken, wird abheben? WĂŒrden Sie daran interessiert sein, mit einem solchen Debugging zu arbeiten?