لا يوم بدون رياضة - 2: إعادة برمجة سوار صيني

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

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


دعونا نفتح ونرى ما بالداخل.



في واقع الأمر
. . Random() . , , , .


عقل هذا السوار عبارة عن رقاقة PHY6202 من شركة مصنعة من المملكة الوسطى Fengjia Microelectronics. في الداخل يحتوي على Cortex-M0 ومجموعة قياسية من الأجهزة الطرفية. الذاكرة: 512 كيلوبايت فلاش ، 138 كيلوبايت SRAM و 128 كيلوبايت ROM. يحتوي ROM على مكدس BLE ومحمل إقلاع UART ، مثل رقاقة قابلة للبرمجة من خلال UART. جلب الرفاق الصينيون بعناية اتصالات لـ UART. للتبديل إلى وضع UART ، يحتاج محمل الإقلاع إلى سحب إخراج TM إلى مستوى عال وإعادة ضبط الشريحة.

يمكن العثور على الأدوات المساعدة وحزم SDK لـ PHY6202 (وكذلك لأخيه الأكبر PHY6212) هنا .

يتم توفير أداة برمجة الشرائح PhyPlusKit مباشرة. تحتوي الوثائق على قائمة بالأوامر: المسح والكتابة وما إلى ذلك. التفاصيل في المستند PHY62XX_UART_FlashWrite_Protocol على الرابط أعلاه (باللغة الصينية). بصراحة ، قائمة الأوامر ليست كاملة. يستخدم PhyPlusKit أمر rdreg آخر (اقرأ أي سجل).

هيا بنا نبدأ. نقوم بتفكيك ، لحام الاتصالات اللازمة لمحول UART-USB ونذهب .

يحتوي SDK على العديد من الأمثلة. في حد ذاته ، في رأيي ، هو ملتوية ورطبة. في بعض الأحيان يجب عليك تعديل المصدر ، لأنه لم يتم تصميمها للاستخدام "الخارجي" فقط. إليك وظيفة قياس مستوى البطارية من Battery Service. لماذا هي هناك غير مفهومة على الإطلاق.

static uint8 battMeasure( void )
{
  uint8 percent;
  percent = 95;
  return percent;
} 

ليس SDK ، ولكن مثال واحد قوي.
دبوس السوار هو:
1) مقياس التسارعSDA P32
SCL P33
2) LCDSDA P25
SCL P31
RS P00
Reset P01
CS P02
LED P34
3)P03
4)P20
5) USB Vin ( USB)P15
6) VbatP14/AIO3
7) Green LED ( )P23
الشاشة قياسية (كاملة على أليكسبريس) على ST7735 بدقة 80 * 160. مدعوم من SPI. هناك مكتبات جاهزة لذلك ، ولكن من الأفضل إنشاء نسختك الخفيفة الخاصة بك ، لحجم الخط والشخصيات الخاصة بك. العرض بالألوان ، لكن هذا ليس وثيق الصلة بالشارع ، مثل تباين منخفض (تذكر للأسف شاشات الانعكاس من هواتف سيمنس). نعم ، وزجاج ملون. سنستخدم اللون الأبيض لعرض النص ، فمن الأفضل رؤيته.

يتم زر اللمس على شريحة Tontec TTP233D-HA6.

مقياس التسارع غير معروف ، لكن الفحص الذي أجري على ناقل I2C أظهر أنه يستخدم سجلات مثل جميع مقاييس التسارع ST. الأهم من ذلك كله أنها تشبه LIS2DH12. يبدو أن جميع سجلات التحكم تتوافق.

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

كأساس للمشروع ، نأخذ مثالًا للبرامج الثابتة لتحديث OTA ونعيد تشكيله وفقًا لاحتياجاتنا. أضف خدمة للبطارية. لنقل البيانات ، يمكنك استخدام مثال لتطبيق خدمة مخصصة من SDK. يستخدم خدمة واحدة FF01 وفيه خاصية واحدة FF02.

المفسد
SDK GPIO 0, . . , . , pull-up pull-down ( 100 ) . . 40 , «» pull-down, 15 ( ).

نقوم بربط خدمات العمل:

  1. التعامل مع المقاطعة عن طريق زر اللمس. بالإضافة إلى تشغيل الشاشة وتشغيل / إيقاف السوار نفسه ، سنقوم بالتعرف على النقر المزدوج والمزدوج مع إرسال أمر من خلال خاصية FF02 الخاصة بنا.
  2. إخراج البيانات الواردة من الهاتف الذكي من خلال نفس خصائص الشاشة.
  3. إدراج قصير لمحرك اهتزازي لجذب الانتباه.
  4. باستخدام مقياس التسارع ، وتشغيل الشاشة بموجة حادة من اليد (من الصعب الإعداد ، لأنه عند الجري ، تلوح بيديك).

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


نحتاج الآن إلى نقل البيانات إلى مكان ما لإرسالها. أستخدم حاليًا تطبيق Strava ، على الرغم من أنني أحبه أقل وأقل. ربما تكون أسهل طريقة للحصول على وقت الجري منها والمسافة (على الرغم من التقريب إلى 100 متر) من الإشعارات في شريط الحالة. للقيام بذلك ، تحتاج إلى كتابة تطبيق مع خدمة للاستماع إلى الإخطارات. هذا ليس بالأمر الصعب. ولكن سنقرأ النبض مباشرة من حزام BLE أو ANT +. حسنًا ، نظرًا لأن لدينا إشعارات من السوار حول الضغط على الأزرار ، فنحن بحاجة إلى استخدامها في مكان ما. على سبيل المثال ، يمكنك ، عن طريق إرسال رسائل من خلال BroadCastReceiver ، إيقاف Strava مؤقتًا وإعادة تشغيله. ومن الأفضل أن تصنع سترافا ذات يوم بأجراس وصفارات. يتطلب التطبيق حقوقًا للوصول إلى الموقع (وهذا ضروري للعمل مع BLE) وحقوق الوصول إلى الإشعارات.

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




وأخيرًا ، الخبر السار. يدعم السوار من المصنع بالفعل تحديث OTA من خلال تطبيق PhyApp (يقع في نفس مكان SDK ، في الأصل باللغة الصينية). لذلك ، لا يلزم وجود برنامج ثابت جاهز ، حتى تفكيك السوار. فلاش واستخدام. للقيام بذلك ، تحتاج إلى تثبيت التطبيق ، ووضع البرنامج الثابت في "جذر" الهاتف (HEX ، وليس HEXF ، لأن الأخير يحتوي على محمل الإقلاع الذي لدينا بالفعل من المصنع) ، والاتصال بالسوار واستخدام زر OTA لتحميل البرنامج الثابت إلى السوار. بعد وميض سيتم إيقاف تشغيل السوار ، لتشغيله تحتاج إلى الضغط على الزر لمدة ثانيتين.

بشكل عام ، يمكن تحويل الساعات والأساور الموجودة على PHY62 بسهولة إلى أي شيء.

المراجع:

  1. رموز المصدر و APK لتطبيق Android (تم كتابته تحت Android 8.1 ، يبدو أنه يعمل تحت 9 ، لم يتم التحقق تحت الآخرين) ؛
  2. ملف البرامج الثابتة HEX عبر BLE و HEXF - للبرامج الثابتة عبر UART (لا أمانع في المصدر ، لكنني بحاجة إلى فهم أنه يمكنني تحميله بموجب اتفاقية الترخيص ومن ليس في هذا البرنامج الخاص) + تطبيق البرامج الثابتة PhyApp للبرامج الثابتة OTA.
  3. اشتريت سوارًا هنا ، ولكن لا يمكنني أن أضمن أن الحشوة ستكون هي نفسها ، لأن الكثير من الشيء نفسه في المظهر ، ولكن مع شريحة مختلفة. هناك نوع من الخيارات مع شاشة أكبر ، والتي تحتوي أيضًا على PHY6202. بشكل عام ، هناك ساعات / أساور برقائق مختلفة (Phy + و Telink وحتى nRF).


PS بشكل عام ، يبدو أن SDK لـ PHY62 تم إنشاؤه استنادًا إلى Texas Instruments SDK لرقائق BLE الخاصة بهم.

All Articles