الطيار الآلي محلي الصنع على لوحة Tinker للكمبيوتر المفرد (SBC) و Arduino DUE

صورة

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



المعدات


في البداية ، لم أكن أعرف أي الأجهزة هي الأفضل للاستخدام في هذا المشروع ، ولكن في النهاية توصلت إلى استنتاج مفاده أن الخيار الأفضل سيكون حفنة من وحدة التحكم الدقيقة (MK) + كمبيوتر واحد. حيث يحل MK مشكلة استقرار الطائرة (LA) ، تحركها في مسار معين والارتفاع ، ويحل جهاز الكمبيوتر ذو اللوحة الواحدة مشكلة الملاحة والحركة على طول الطريق. نظرًا لأن الخطة كانت لتجنب التصادمات ، يجب أن يكون الكمبيوتر قويًا بما يكفي لمعالجة المعلومات من مستشعرات اكتشاف العوائق ، وصغير الحجم وغير مكلف جدًا في ذلك الوقت ، كان TinkerBoard هو الأنسب لهذا الوصف ، ثم كان Raspbery 3B + وكان أقل بكثير في الخصائص. بصفتي عضو الكنيست ، أردت الحصول على وحدة تحكم متوافقة مع اردوينو لأن كان لدى اردوينو قاعدة ضخمة من الرسومات الجاهزة ، وبالتالي وقع الاختيار على DUE 84 MHz ، 32bit ARM Cortex-M3 لأنكان الأقوى وكان عليه أن يعوض عن مباشرة يدي)).

في البداية ، خططت لاستخدام MPU 9250 مع مرشح Majevik كمستشعرات للتوجيه ، وكانت نتائجه ممتازة. كانت الميزة الرئيسية لهذا الخيار هي أن جميع الحسابات ، بما في ذلك معايرة المستشعرات (مقياس التسارع والجيروسكوب ومقياس المغناطيسية) كانت على MK. ولكن كانت هناك مشكلة ، فقد عوض المرشح عن التسارع الخطي بشكل سيئ ، والذي يحدث باستمرار أثناء الصدمات أو تغيير حاد في المسار. يتم التعبير عن ذلك في قراءات العرض التقديمي المخطوف واللف ، في لحظة التسارع ، يبدأون في الطفو بعيدًا ، ويمرون عبر منظم التفاضل النسبي (PD) وخاصة الجزء التفاضلي ، المشاكل العائمة التي تم إنشاؤها. لذلك ، اضطررت إلى استخدام جهاز استشعار مع مرشح BNO 055 الذي تم تنفيذه بالفعل.

على عكس MPU 9250 ، فإن BNO على متن Cortex M0 MK المدمج ، والذي يحسب على الفور الاتجاه في زوايا أويلر ، والتوجيه المطلق وحساب التسارع الخطي ، على الرغم من أن هذا المستشعر لديه أيضًا العديد من العيوب. تتمثل المشكلة الرئيسية لهذا المستشعر في المعايرة التلقائية ، أو بالأحرى أنه لا يمكن إيقاف تشغيلها ، فهي "ملائمة" لهذا المستشعر وهذه المعايرة لها خاصية غير سارة تختفي ، وأحيانًا بشكل مفاجئ تمامًا حتى لو كانت في مكان واحد بدون حركة. ينعكس هذا بشكل أساسي في الانحراف المرتبط بالمقياس المغناطيسي في هذا المستشعر ويجب أن يُظهر الاتجاه إلى القطب الشمالي المغناطيسي (المسار) ، ولكن في بعض الأحيان يظهر 100 درجة في السترونا ، ثم بعد المعايرة يمكن أن يعود))). في أمور أخرى ، لا يزال من الممكن حل مشكلة الدورة التدريبية باستخدام المزامنة مع GPS. خلاف ذلك ، يعمل المستشعر بشكل جيد ،إنه يحدد دائمًا الملعب واللف بشكل صحيح ، ولا تؤثر التسارع الخطي بشكل كبير على عمله ، إلا إذا كان التسارع لا يتجاوز 2G بالطبع ، لأنه يستخدم هذا الحد لقياس متجه الجاذبية والتعويض عن انجراف الجيروسكوبات.

بقية المجموعة الحديدية هي كما يلي: GPS Ublox Neo M8N مع خرج USB ،
BMP 280 بارومتر ، HSCR 04 السونار لاستقبال البيانات حول توفر الأرض وسرعة رأسية أكثر دقة ، EEPROM 24c16 لتخزين بيانات المعايرة وإعدادات PID ، وحدة Neoway M509E GSM لإرسالها رسائل حول إحداثيات الطائرة في حالة وقوع حادث.

يظهر الرسم الوظيفي في الشكل 1:

صورة
الشكل 1 - رسم تخطيطي وظيفي للطيار الآلي .

البرمجيات


لتطوير البرمجيات ، أستخدم QT مع QT Creator IDE. إنه مألوف للغاية بالنسبة لي ، وبفضل الوظائف عبر الأنظمة الأساسية ، يمكنني تشغيل برامجي على كل من كمبيوتر واحد مع Debian وسطح مكتب مع Windows ، وهو أمر مريح للغاية. لتطوير برنامج متحكم ، يتم استخدام Arduino IDE. للتوضيح ، سأحاول تقديم جميع الأقسام في الشكل 2.

صورة
الشكل 2. - بنية AP (BNO 080 المضافة للمستقبل).

1) واجهة التحكم الرسومية - هي خريطة القمر الصناعي بمساعدة الطائرة التي يتم التحكم فيها. برنامج عرض صور الأقمار الصناعية نفسه ليس لي ، لقد سرقته من قبلي هنا (حاول مؤلفه أيضًا القيام بشيء مماثل).

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

يتم إدخال جميع معلمات العلامة في الحقول المناسبة في النموذج ، يمكنك إزالة العلامات بالنقر المزدوج على زر الماوس الأوسط ، بينما ستظل في ذاكرة الطائرة ، يجب عليك استخدام زر حذف المسار لحذفها من الذاكرة. عند الوصول إلى النقطة ، كما هو الحال في استراتيجيات الطائرة ، ستدور حولها. يتحكم نظام WADS للتحكم في الأزرار مباشرة في عجلات القيادة باستخدام وحدات تحكم PD. عند الضغط على كل زر ، يتم إدخال قيمة لمدخلات وحدة التحكم ، على سبيل المثال ، عند الضغط على S ، فإن الدرجة 30 وعندما يتم تحريرها تساوي 0. عند الضغط على W -30 ، إلخ. يتم تشغيل WADS باستخدام مربعات الاختيار: "يدوي" ، "أزرار". يساعد هذا الوضع على التحقق من وظائف جميع الدفة قبل البدء. تعمل الواجهة الرسومية على الكمبيوتر المحمول ، ويتم نقل أوامر التحكم من الواجهة الرسومية باستخدام مقبس TCP إلى النواة. يتم عرض واجهة التحكم الرسومية في الشكل 3:

صورة
الشكل 3 - واجهة إدارة الرسوم البيانية.

2) جوهر الطيار الآلي هو ذلك الجزء من البرنامج الذي يتم حسابه على جهاز كمبيوتر واحد من TinkerBoard. النواة مسؤولة عن الملاحة والحركة على طول الطريق. للقيام بذلك ، يتم توصيل مستشعر GPS بالكمبيوتر. باستخدامه ، يمكنك الحصول على الموقع الحالي للطائرة (خط العرض وخط الطول) ومقارنة هذا الموقف مع ما هو موجود في مسار الرحلة. نتيجة لهذه العملية ، يتم الحصول على سمت الهدف الذي يتم إرساله إلى وحدة التحكم الدقيقة مع بقية معلمات الرحلة. في المستقبل ، يمكن تجهيز النواة بجهاز استشعار IMU لتطبيق ANN. على سبيل المثال ، يمكنك استخدام BNO 080 للتكامل والتسريع والحصول على السرعة ، ومن خلال دمج السرعة ، احصل على المسافة. يجب ترجمة المسافة المستلمة من ANN إلى نظام إحداثيات GPS (خط العرض وخط الطول) لاستخدامه في حساب السمت.

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

3) يقوم الميكروكونترولر بتنفيذ الأوامر الأساسية ، والمهمة الرئيسية لـ MK هي اتباع المسار المحدد عند ارتفاع معين. لهذا ، تم تجهيز MKU بجهاز استشعار IMU BNO 055 ، ومقياس ضغط 280 bmp والسونار. بالنسبة للحركة على طول الدورة ، يتم استخدام السمت الذي تم الحصول عليه من القلب ، ويتم مقارنته بالدورة الحالية ويتم نقل عدم التطابق الناتج إلى وحدات التحكم PD من أجل الانحراف واللف. يتم التحكم في حدة الصوت بواسطة وحدتي تحكم PD: تحدد الأولى عدم تطابق الارتفاعات الحالية والمحددة مسبقًا ، والتي يتم تغذيتها لإدخال وحدة التحكم الثانية ، في حين أن إخراج وحدة التحكم في الارتفاع محدود بزاوية الهجوم الحالية للتحكم في مجموعتها. إذا تم تحديد نوع النقطة في الواجهة الرسومية للإقلاع أو الهبوط ، يتم استخدام السونار لتحديد الارتفاع. يتم الجمع بين شهادته وبيانات البارومتر ،لتحديد المسافة إلى الأرض والسرعة الرأسية بدقة أكبر. بالإضافة إلى الوظائف الرئيسية ، يجمع MK أيضًا القياس عن بعد حول تشغيل مستشعرات IMU والاتجاه والارتفاع الحاليين ، وينقلها إلى النواة ، حيث يتم استكمال هذه البيانات ببيانات من GPS وتدخل الواجهة الرسومية.

استنتاج


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

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

لقطة أكثر تفصيلاً لإلكترونيات الطيران


image



رابط للكود المصدر للسم (مع المكتبات) Github هنا المصدر فقط ولكن الأحدث

All Articles