مجلس التصحيح للأغراض الخاصة

مقدمة


عند تطوير جهاز لاختبار دائرته الكهربائية ، يتم عادةً استخدام لوحة تصحيح. مطورونا ليسوا استثناءً هنا ، فميزة الجوانب الإيجابية لهذا النهج واضحة: التكاليف أقل من إنتاج نموذج أولي أو دفعة اختبار. وإذا ظهرت أخطاء في العملية أو ظهرت حلول جديدة لبعض المهام ، فمن السهل جدًا تطبيقها.

ومع ذلك ، غالبًا ما واجهنا حقيقة أن التصحيح المقدم في السوق يتطلب تحسينًا كبيرًا و / أو وحدات إضافية. في الوقت نفسه ، ظهرت قيود إضافية تعتمد على جهاز معين. إذا قمنا بتطوير لوحة تحكم ووحدة لاسلكية من البداية ، فإن الترتيب النسبي موجود على لوحة التوصيل.

تبدأ المشاكل عند تنفيذ سيناريو ثانٍ وأكثر تواتراً ، ونحن نتعامل مع تحديث تقنية تم تطويرها بالفعل. بسبب العامل المحدد الرئيسي - السعر النهائي للمنتج - يجب أن يكون التغيير في الدائرة الكهربائية ضئيلاً. في مرحلة التخطيط ، يجب إنشاء العديد من "المزرعة الجماعية" المحبوبة.


المصدر

ما يجب القيام به


عادة ما تكون لوحات التحكم في الأجهزة المنزلية بسيطة ومنخفضة التقنية - قاعدتها المطبوعة هي طبقة واحدة ، على جانب واحد لا تحتوي على معدنة وقناع. يتم تحديد بساطة هذه اللوحات من خلال السعر النهائي للأجهزة نفسها - فكلما كان إنتاج المعدات أكثر تعقيدًا ، زاد سعر بيعها. من الواضح أن المستهلك الشامل لن يريد ولن يبالغ في المضاعفات.


ممثل لوحة تحكم الأجهزة المنزلية النموذجية

خلال العمل ، ظهرنا العديد من الوحدات اللاسلكية القياسية من RM2 إلى RM10. تعمل هذه الوحدات ، المستندة إلى حل SoC ، كوحدة تحكم مركزية ، كما تتيح لك التحكم في الجهاز عبر الهواء.

تم تصميم هذا الخط من الوحدات اللاسلكية بحيث يمكن تثبيته على لوحة التحكم ، وتغييره إلى الحد الأدنى. لضمان سرعة تطوير عالية ، كانت هناك حاجة ملحة لإنشاء لوحة تصحيح ، حيث سيكون هناك بالفعل كل ما هو ضروري للأجهزة المنزلية الذكية.

حجة أخرى لإصدار لوحة التصحيح كانت افتتاح منصة Ready for Sky لمطوري الطرف الثالث. بدأنا في تلقي الاقتراحات والطلبات عبر البريد الإلكتروني لمنح المطورين المستقلين أو مطوري DIY إمكانية الوصول إلى النظام الأساسي. عرض مماثل جاء حتى في رئيس وزراء خابروف.

تصحيح الأخطاء


لذلك فعلنا ذلك - الإصدار الأول من RFS-DEV001. قلب لوحة التصحيح هو وحدة RM10. استنادًا إلى شريحة nRF52832 ، التي تتوافق مع معيار Bluetooth 5 ، فهي تدعم الشبكات المتداخلة وتقنية Bluetooth المنخفضة الطاقة. أيضًا ، يتم وضع ساعة الوقت الحقيقي على التصحيح ، ويتم تنفيذ ثلاثة خيارات للطاقة (البطارية ، USB من جهاز كمبيوتر ، خارجي من مصدر طاقة). زران ، جرس وصمام RGB للإشارة والفلاش. يتم اختيار جميع المكونات الموجودة على اللوحة من تلك المستخدمة الآن في الإنتاج الضخم للأجهزة المنزلية.

بالإضافة إلى اختبار مخطط التحكم ، سيتمكن المطور من تحديد تكلفة المكونات وتحسينها على الفور ، مما سيؤثر في النهاية على سعر جهازه الذكي.



سيكون اللوح مناسبًا لأكشاك DIY ، حيث يوجد من بينهم أيضًا أولئك الذين لا تعد البرمجة نقطة قوية لهم أو أنهم بدأوا للتو في التعلم. لقد رأينا فرصة لتسهيل عملهم ، على سبيل المثال ، لجعل اللوحة متوافقة مع Arduino. من الواضح أن هذا هو تنسيق الهواة والتعليمي ، ولكن استخدامه ، أولاً ، لا يلغي العمل المهني مع تصحيح الأخطاء ، وثانيًا ، يعزز إلى حد كبير راحة المتخصصين الذين يدخلون إلى المهنة.

سيكون من الممكن تمامًا توزيع الرسوم بين الجامعات والمدارس الفنية المتخصصة لتدريس الطلاب الصغار ، وبالتالي المساهمة في المتخصصين المستقبليين.

قائمة المكونات الإضافية العاملة المضمونة




API


نظرًا لأن التصحيح لن يكون جزءًا مفيدًا من textolite بدون رمز البرنامج ، فمن المفيد التحدث قليلاً عن واجهة برمجة التطبيقات ، والتي تم تصميمها للسماح للمطور بالتركيز على وظائف جهازه كجزء من فتح النظام الأساسي ، والتلخيص من العديد من إعدادات Bluetooth ، وما إلى ذلك.

لذلك ، تتكون واجهة برمجة التطبيقات R4S من:

  • مجموعة من المكتبات التي توفر تشغيل الخدمات النموذجية والمحددة ، على سبيل المثال ، المكتبة الرئيسية التي تحتوي على إعدادات Bluetooth الأساسية والمكتبات التي تركز على وظائف الأجهزة ؛
  • أمثلة على الأجهزة أو الوظائف المنفذة على واجهة برمجة التطبيقات ؛
  • برامج تشغيل الأجهزة الطرفية المتصلة بلوحة التصحيح ، انظر القائمة أعلاه.

يمكنك إلقاء نظرة بسيطة على إمكانيات API باستخدام مثال إنشاء تأثيرات الإضاءة باستخدام مصباح LED من خلال تغيير سلس في السطوع باستخدام منحنيات Bezier.


بعد التبديل إلى وضع peyring ، سيغير المصباح لون التوهج بسلاسة

في الملف الرئيسي ، ستحتاج إلى تحديد المعلومات الأساسية بشكل مستقل ، على سبيل المثال ، معلومات حول البرامج الثابتة ، والإعلان عن الإعدادات (موقع أداة تحميل التشغيل ، والمخزن المؤقت لتحديث البرامج الثابتة ، وما إلى ذلك).

/** Firmware information structure */ R4S_FW_INFO_DEF(application, 0x26000) = { .version = { .major = 0, /** Product version (major) */ .minor = 1, /** Product version (minor) */ }, .name = { /** Device name */ .name = "RGB Lightbulb", .len = sizeof("RGB Lightbulb") - 1 /** Without \0 symbol at the end*/ } }; /** The init structure with the device information wich required for ReadyForSky library. */ R4S_CONFIG_DEF(r4s_init_conf) = { .p_fw_info = &application, .production_key = NULL, /** * The production key allows integrating the device into ReadyForSky infrastructure. * Contact support to get the production key for your device. */ .bootloader = { .start_address = 0x7B000, /** Bootloader start address */ .mbr_param_page = 0x7f000, /** MBR param page address */ .fw_upgrade_buf = { /** The firmware upgrade buffer is used for background flashing. * The region size should more than softdevice + bootloader + application size + 4096 */ .p_api = &nrf_fstorage_sd, /** fstorage api */ .start_addr = 0x35000, /** start address of firmware upgrade buffer */ .end_addr = 0x78000, /** end address of firmware upgrade buffer */ .chunk_size = 0, /** default chunk size */ } }, .company_info = { .p_company_name = "Imperium of Mankind", }, .watchdog = { .timeout_ms = 5000, /** If loop or priority will not finish after 5 seconds watchdog will reset microcontroller automatically */ }, .low_power_mode_enable = true, /** Low power ble settings */ } 

يشبه تطوير الجهاز تطوير Arduino. هناك وظيفة إعداد لتهيئة الوحدات الرئيسية والحلقة حيث تتم المعالجة. تنقسم وظيفة التطبيق نفسها إلى وحدات - وفقًا للعمليات المختلفة التي يتم إجراؤها.

 /** @brief Application initialisation * @return none */ void app_setup(void) { m_pairing_init(m_led_ctrl_pairing_handler); m_led_ctrl_init(); } /** @brief Application loop * @return true - sleep is not allowed * @return false - All modules have completed operation, the mcu can enter into sleep mode. (the next loop iteration will be after any interrupt) */ bool app_loop(void) { return NRF_LOG_PROCESS(); } 

بعد أن يتم الإعلان عن الموارد في الملف ("m_resources.c") - على سبيل المثال ، الرسوم المتحركة باللمبة ، وتخصيصات دبوس (عدة مجموعات LED) ، والألوان ، وما إلى ذلك ، ستحدد المكتبة بقية المعلمات.

 /** Animation timer definition for m_rgb */ APP_TIMER_DEF(animation_timer_id); /** Leds pin map for m_rgb*/ 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, } }, }; /** PWM map for m_rgb */ 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, } }, }; /** RGB lamp definition */ R4S_RGB_CTRL_DEF(m_rgb, m_leds_map, m_pwm_map, &animation_timer_id, LEDS_COUNT, 3); 

بعد الربط ، يستقبل التطبيق البيانات التي يمكن للجهاز القيام بها ، ومصباح كهربائي في حالتنا ، ويعرض المعلومات ذات الصلة.



علاوة على ذلك ، من خلال التطبيق ، يمكنك التحكم في المعلمات - الكثافة واللون ودرجة الحرارة ، إلخ.


يتم الآن عمل الرمز على تصحيح النموذج الأولي ، لذا دع الفرق بين اللوحة والصور العلوية لا يزعجك.

تشمل الميزات الإضافية:

  • التوصيل المتعدد - العديد من الهواتف الذكية التي يتم توصيلها بالوحدة في نفس الوقت. من المحتمل أن تسبب هذه الميزة مشاكل عند محاولة التحكم في الجهاز في نفس الوقت. لقد حاولنا إبطال هذه المشاكل ، بما في ذلك من خلال الإشعارات على جميع الهواتف الذكية المتصلة - عندما يتم تغيير المعلمة بواسطة هاتف واحد ، سيتم إرسال معلومات حول قيمة المعلمة الجديدة على الفور إلى الآخرين ؛
  • وميض سريع - يعتمد حجم الحزمة المنقولة عبر البلوتوث على وحدة الإرسال الكبرى . مع زيادة MTU ، ستعمل عملية التفليش بشكل أسرع مع زيادة حجم الحزمة ؛
  • قائمة بالأخطاء النموذجية التي تحددها وظيفة وحدة التحكم الدقيقة. إذا تم الكشف عن خطأ ، نص مثل "لا توجد ذاكرة كافية للأجهزة اللينة. لمزيد من المعلومات قم بتمكين تصحيح sdm.

للعمل مع تصحيح الأخطاء ، سيتم إصدار تطبيق هندسي R4S بنفس القدرات المعتادة ، ولكن من خلاله يتم التحكم في اللوحة. من حيث المبدأ ، من خلال تطبيق هندسي ، يمكنك إدارة الأجهزة المجمعة في شقتك - وهو جزء رائع لـ DIY. هذا من شأنه أن يساعد المطورين المبتدئين في دعم الجهاز. في تطبيق R4S الرئيسي ، سيظهر مثل هذا الجهاز بعد التنسيق ومراقبة الجودة من جانبنا.

سنستخدم أيضًا تصحيح الأخطاء في العمل اليومي للشركة ، بما في ذلك عند تدريب الموظفين الجدد. هابروفتشان ، كما تعتقد ، سوف تقلع؟ هل أنت مهتم بالعمل مع هذا التصحيح؟

Source: https://habr.com/ru/post/ar429822/


All Articles