مرحبا!
في الجزء السابق توقفت عند حقيقة أن صواريخي أقلعت وسقطت بنجاح ، بل إن أحدها كان مزودًا بجهاز قياس الارتفاع. سأخبرك في هذه المقالة بكيفية عمل مقياس ارتفاع بسيط استنادًا إلى STM32 Nucleo L031K6 ومستشعر ضغط BMP 280 ، والذي يخزن أيضًا جميع البيانات في ذاكرة فلاش.
اختيار الحديد
المتطلبات الأساسية لمقياس الارتفاع:
- سرعة قراءة عالية الارتفاع ، لأن الصاروخ لم يكن في أوج ذروته لفترة طويلة جدًا ، وأردت معرفة أقصى ارتفاع ؛
- انخفاض استهلاك الطاقة ، حتى لا تضع بطارية كبيرة ؛
- أبعاد صغيرة للهيكل بأكمله.
بناءً عليها ، أخذت STM32 Nucleo L031K6 كمتحكم دقيق (سرعة عالية ، استهلاك تيار منخفض ، حجم صغير). قررت قياس الارتفاع باستخدام مقياس BMP280 (نفس أسباب MK). أضاف أيضًا زرًا ، عند الضغط عليه ، سيبدأ في تسجيل الارتفاع. حسنًا ، تم تشغيل جميع الأجهزة الإلكترونية بواسطة بطارية CR2032 متصلة عبر محول. نتيجة لذلك ، حصلنا على المخطط التالي:
الوحدات المستخدمة
STM32 Nucleo L031K6
BMP280
CR2032
STM32 Nucleo L031K6
BMP280
CR2032
تطوير الكود
يمكنك العثور على الكود على جيثب الخاص بي . تم تكوين دبابيس STM32 في CubeMX لـ IAR. للعمل مع BMP280 ، استخدمت هذه المكتبة ، وأضفت إليها وظيفة حساب الارتفاع فوق مستوى سطح البحر باستخدام صيغة بارومترية وتهيئة المستشعر بالمعلمات التي أحتاجها لقراءة التردد ، والترشيح ، إلخ. نظرًا لأنني أردت قياس ارتفاع الرحلة بالنسبة إلى الأرض ، كان علي أولاً حساب الارتفاع فوق مستوى سطح البحر في منطقتي ، واعتبره "صفرًا" وقياس ارتفاع الرحلة بالنسبة إليه. كان تردد القياس 10 هرتز.
تم الكتابة في ذاكرة فلاش على النحو التالي:
تنظيم الذاكرة في STM32 L031K6
- بالنسبة لجميع القياسات ، قمت بتخصيص 8 كيلوبايت من عناوين 0x08006000 إلى 0x08007FFF
- تخصيص 2 بايت لبعد واحد
- لقد كتبت 4 بايت في Flash ، أي قياسين في وقت واحد
- كان الحد الأقصى لعدد القياسات 4096 ، وهو ما يكفي لتسجيل حوالي 7 دقائق من الرحلة
- ارتفاع مسجل بالسنتيمتر لدقة أكبر
و استغرق تسجيل مكان على النحو التالي :
- إذا كان مكرر الكتابة متساويًا ، فإننا نخزن الارتفاع الحالي في النصف السفلي من الكلمة في المتغير مع البيانات للكتابة إلى Flash ؛
- إذا كان مكرر الكتابة فرديًا ، فإننا نضيف الارتفاع الحالي إلى النصف العلوي من الكلمة إلى المتغير مع البيانات للكتابة على Flash وحفظ هذا المتغير في خلية Flash
نتيجة لذلك ، فإن خوارزمية البرنامج هي كما يلي:
- بعد التشغيل ، ننتظر لمدة 5 ثوانٍ للضغط على الزر لبدء قياسات الارتفاع.
- إذا لم يتم الضغط على الزر ، فإننا نضيء مؤشر LED المدمج ونبدأ في نقل بيانات الارتفاع المسجلة في ذاكرة الفلاش عبر UART
- , .
- «» Flash- .
- UART , ;
- .
عندما تم تشغيل STM من CR2032 عبر دبوس 3.3V ، وجدت أن الكود لا يعمل . كانت المشكلة أنه عندما تم تطبيق الطاقة من خلال هذه المحطة ، كان من الضروري فك SB9 (الموجود بجوار دبابيس RX و TX في الجزء الخلفي من MK) ، وإلا ستتم إعادة تشغيل اللوحة باستمرار.
الآن كان من الضروري التحقق من دقة مقياس الارتفاع. باستخدام شريط قياس ، بدأت في رفع مقياس الارتفاع إلى ارتفاعات مختلفة ومعرفة ما يقيسه. نتائج الاختبار موجودة في المجلد المقابل على جيثب . تحتوي الملفات النصية على بيانات أولية من STM ، وتحتوي جداول Excel على رسومات بيانية جميلة لجميع الاختبارات. تتوافق الدقة مع المذكور - ± 10 سم. يجب أن نتذكر أنني قمت بقياس الارتفاع بالسنتيمترلذا فإن الأرقام الواردة في الجدول كبيرة جدًا.
تجميع مقياس الارتفاع
نظرًا لأن الصاروخ يمكن أن يضرب الأرض بقوة أثناء الهبوط ، كان من الضروري إصلاح جميع الأجهزة الإلكترونية جيدًا حتى لا تسقط الأسلاك عند الاهتزاز ، أو حتى الأسوأ من ذلك ، الوحدات نفسها. تم وضع مقياس الارتفاع في هدية الرأس (كان هناك مساحة كافية هناك ، وزاد الاستقرار بسبب تحول مركز الثقل إلى هدية الرأس) في حامل مطبوع ثلاثي الأبعاد. وقفت STM'ka عموديًا ، BMP280 بملامسات لأعلى ولصق محول CR2032 أسفل الحامل. نظرًا لحقيقة أنه لا يتناسب مع جسم الصاروخ ، كان من الضروري التخلص من جهات الاتصال الناقص قليلاً. بجانب جهات الاتصال الموجودة في الجدار الجانبي للحامل المطبوع ثلاثي الأبعاد ، قمت بعمل أخدود رأسي لسحب ناقص من CR2032 من خلاله ، وتحت علامة الجمع قمت بحفر ثقب ووضع السلك من خلاله. فكرت في إرفاق مقياس الارتفاع بإنسيابية الرأس باستخدام برغي ، لذلك هناك ثقب في العلبة ،لكنه تخلى عن هذه الفكرة بعد ذلك.
نموذج تثبيت مطبوع ثلاثي الأبعاد
كتلة مقياس الارتفاع المجمعة
أنا لصقها على الزر بجانب BMP280، وتركيب بقية الوحدات في أماكنهم، ملحوم جميع الأسلاك و
تم إدخال مقياس الارتفاع بإحكام في هدية الصاروخ. حتى لا يطير في أي مكان بعد الاصطدام ، قمت بسحب شريط مطاطي من خلال الفتحة الموجودة في الحامل ، وربط جسم الصاروخ بالهيكل.
مقياس الارتفاع المُجمَّع.
منظر أمامي منظر خلفي. يمكنك أن ترى الشريط المطاطي الذي يربط مقياس الارتفاع بالصاروخ.
كان مقياس الارتفاع جاهزًا! الآن كان علي اختباره ، مما يعني أنني ذهبت إلى ملعب التدريب مرة أخرى!
إطلاق مقياس الارتفاع ونتائج القياس
لسوء الحظ ، كانت البداية الأولى بمحركات معيبة ، والتي كتبت عنها في المقال الأخير.
نتيجة لذلك ، أصبح الرسم البياني كما يلي:
أفقي - رقم القياس. كل 10 قياسات - 1 ثانية. عمودي - الارتفاع بالسنتيمتر
أقلع الصاروخ 15 مترا ، ثم اندفع إلى الأرض. بعد تجاوز الأوج ، بعد ثانية واحدة ، بدأ نوع من الشذوذ : بعد قيمة 12 م ، لسبب ما ، انخفضت القراءات إلى -8 م. حدث هذا في وقت التشغيل الثاني للمحرك (وهو ما لا ينبغي أن يكون)، لذلك لا أستبعد أن المحرك المعيب قد أثر بطريقة ما على مقياس الارتفاع. في جميع الاختبارات الأخرى ، عملت بشكل مثالي ، لذلك من الواضح أنها لم تكن مشكلة إلكترونية. بشكل عام ، كانت اختبارات مقياس الارتفاع هذه نصف ناجحة فقط ، حيث حدث شذوذ في النصف الثاني من الرحلة. يمكنك العثور على الرسم البياني نفسه على جيثب ، ويسمى صاروخا صاروخا .
بعد إصلاح الصاروخ ، ذهبت مرة أخرى إلى موقع الاختبار وهذه المرة كانت الاختبارات ناجحة. كانت الرحلة ممتازة ، وكانت قراءات مقياس الارتفاع مستقرة ومتسقة مع الرحلة. تحول جدول الرحلة على النحو التالي:
أفقي - رقم القياس. كل 10 قياسات - 1 ثانية. عمودي - الارتفاع بالسنتيمتر صعد الصاروخ 150 مترًا
وهبط بنجاح.وهكذا ، كان هذا الاختبار ناجحًا تمامًا. لقد تأكدت من أن مقياس الارتفاع كان يعمل وبدأت في تطوير معدات جديدة على متن الطائرة.
خاتمة
في النهاية ، قمت بتجميع مقياس ارتفاع مضغوط بالكامل يناسب نموذج صاروخ صغير. كانت الاختبارات ناجحة ، وقد نجت الأجهزة الإلكترونية من الإقلاع والهبوط وقياس ارتفاع الرحلة. هذا هو المكان الذي أنهيت فيه مشروع تطوير مقياس الارتفاع ، ربما سأستخدمه في المستقبل في أحد الصواريخ ، لأن معرفة ارتفاع الرحلة يكون أحيانًا مفيدًا جدًا (على سبيل المثال ، إذا أطلقت صواريخ للوصول إلى أقصى ارتفاع أو ارتفاع معين). الآن ، كما قلت ، أقوم بتطوير كاميرا على متن الطائرة بجهاز إرسال لاسلكي ، لأنني لا أنوي فقد صاروخ بهذه الأجهزة الإلكترونية الخطيرة.
شكرآ لك على أهتمامك!