بناء سفينة هوائية باستخدام الاردوينو

بناء سفينة هوائية باستخدام الاردوينو

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

ما هي السفينة الهوائية؟

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

اساسيات العمل

حسنًا لبناء السفينة الهوائية يلزمك قليلا من المعرفة عن المكونات. ان الادوات والمحركات لا تعني شيئ اذا كنت لا تعرف كيف تتعامل معهم لذلك نضع لكم المواضيع التالية والتي يمكنك النقر عليها للاطلاع عليها قبل البدء في تفصيل المكونات وتجميعها بشكل صحيح: 
  • قياس المسافة باستخدام حساس الالترا سونيك.
  • محرك التيار المستمر بلا فرش.
  • محرك التيار المستمر بلا فرش والاردوينو.
  • محرك السيرفو.
  • محرك السيرفو والاردوينو.
  • متحكم السرعة الالكتروني (ESC).
  • مروحة الطائرات.
  • بطارية ليبو.
  • شاحن بطارية ليبو.
بعد قرائتك المواضيع اعلاه سوف تصبح قادرًا على التعامل والفهم الكامل للمكونات التي سوف نستخدمها , الآن دعونا نشرح لكم ماذا سوف نصنع في هذا المشروع. سوف نقوم بعمل سفينة هوائية سوف نستخدم جسم مملوء بكمية معينة من غاز الهيليوم مصنوع من مادة خفيفة وهي (Biaxial oriented polypropylene) سبب اختيار هذه المادة هو انها خفيفة جدًا هي نفس المادة التي تستخدم لصناعة اوراق التغليف للمواد الغذائية وسوف نستخدم محركين تيار مستمر بلا فرش لربطهم مع الاردوينو اونو Arduino Uno R3 وذلك باستخدام متحكمات السرعة الالكترونية ESC.
اضافة الى ذلك سوف نستخدم حساس الموجات فوق الصوتية (الالترا سونيك) ليقوم بقراءة مسافة السفينة الهوائية وبناءا على المسافة سوف يرسل المعلومات للاردوينو ويتحكم في سرعة محركات التيار المستمر بلا فرش عندما تصل السفينة الى مسافة معينة سوف نحافظ على هذه المسافة مستقرة. عموما سوف نستخدم المسافة 2 متر , ونقصد بهذا ان اقصى ارتفاع للسفينة سوف يكون 2 متر , عندما تنخفض السفينة سوف ترتفع تلقائيا وعندما تزيد عن 2 متر سوف تنخفض مرة اخرى. لبناء هذا المشروع سوف تحتاج الى المكونات الكهربائية التالية:

المكونالعدد
اردينو اونو آر 3 – Arduino UNO R31
محرك تيار مستمر بلا فرش2
وحدة التحكم في السرعة الالكترونية2
بطارية ليبو1
محرك السيرفو1
الأسلاك والموصلات30
حساس الامواج فوق الصوتية Ultrasonic sensor HC-SR041


الهيكل

يمكنك استخدام الهيكل الذي سوف تملؤه بغاز الهيليوم من اي مادة خفيفة الوزن وتسمح في تخزين غاز الهيليوم نحن في هذه التجربة استخدمنا (Biaxial oriented polypropylene) وسبب اختيارنا لهذه المادة انها متوفرة وخفيفة الوزن ولكن يجب حمايتها من الثقوب وسبب اختيار غاز الهيليوم هو وزنه الخفيف ويمكن ايجاده من المحلات التجارية بسهولة. عموما الصور التالية توضح الهيكل الذي سوف تبنيه:
الشكل العام للسفينة
أبعاد هذا الهيكل مدروسة بشكل دقيق , حتى تستطيع السفينة الارتفاع للأعلى مع الوزن الكلي الذي يمثل المكونات الكهربائية سوف تحتاج الى بناؤها بالأبعاد التالية : 
  • الطول : يجب ان يكون اقل طول 2.5 متر.
  • القطر : يجب ان يكون القطر على اقل تقدير 0.4 متر.
هل هذه الابعاد اجبارية؟ في الحقيقة نعم ولا , هذه القيم هي اقل قيم يمكنك استخدامها لرفع السفينة الى مسافات جيدة ولكن بشكل عام اذا كنت تريد رفع السفينة الى مسافات اعلى سوف تحتاج الى استخدام هيكل من مواد اكثر قوة وسوف تحتاج الى زيادة في الطول والقطر.
الصور التالية توضح صور الهيكل من زوايا رؤية مختلفة:



الؤوية من الجن

قاعدة المحركات

بالتأكيد من الصورة اعلاه لاحظت وجود مكون في اسفل السفينة كما يظهر في الصورة ادناه , تستخدم قاعدة المحركات لتبيثت محركات التيار المستمبر بلا فرش ايضا تركيب جميع المكونات الكهربائية مثل بطارية ليبو والاردوينو ووحدات التحكم في السرعة الالكترونية.
كما تلاحظ من الصورة اعلاه توضع المكونات الكهربائية في الداخل وعلى الاطراف يتم تثبيت المحركات. يكون التصميم بحيث تكون هذه القاعدة في اسفل السفينة حتى تتمكن من توليد قوة رفع لرفع السفينة للأعلى وطول القاعدة يبلغ 80 سم اي ان المسافة بين المحركين 80 سم. اما المكون الاخير في هذا الهيكل هو الزعانف fins والتي تكون موجودة في اطراف الهيكل فهي عامل اضافي لاستقرار وثبات السفينة في الجو كما تظهر في الشكل التالي:

المواصفات الكهربائية

كما قلنا سوف نستخدم الاردوينو اونو بسبب تعدد المخارج والمداخل الرقمية وخصوصا المداخل والمخارج التي تعمل بنظام تضمين عرض النبصة PWM والتي سوف نستخدمها مع وحدة التحكم في السرعة الالكترونية ESC اما محرك التيار المستمر بلا فرش سوف نعتمد في تصميمنا على الموديل A2212/137 والذي ثابت الجهد له يساوي 1000KV.
بحيث سوف يكون تيار وحدة التحكم في السرعة الالكترونية ESC مساويًا ل 40 أمبير. اذا الآن لقد اصبح لديك المعرفة الكافية عن الهيكل واجزاؤه وخصائص المحركات الكهربائية وقطعى ال ESC التي سوف نحتاجها بقي علينا ان نختار المكون الأخير وهو بطارية ليبو , في هذا المشروع سوف تستخدم بطارية ليبو 1 خلية 1S والتي تعادل 3.7 فولت وسعتها 3000 ملي امبير او 3 أمبير. والقطع موضحة ادناه:

الرسم التخطيطي

حسنا بعد تجميعك للهيكل وتعبئته في غاز الهيليوم يجب ان لا تضغط الغاز , فقط افتح اسطوانة الغاز وعندما يمتلئ الهيكل بالغاز تتوقف عن التزويد بالغاز نقصد هنا لا تستخدم مضخات لضغط الغاز داخل الهيكل وإلا سوف ينفجر الهيكل. لان الهيكل الذي استخدمناه هو خفيف نسبيًا. بعد تصميمك للهيكل وتجهيز القطع الالكترونية سوف تقوم بتوصيل المكونات مع بعضها البعض بحيث تكون توصيلات البطارية والمحركات ووحدات التحكم في السرعة الالكترونية وحساس الموجات فوق الصوتية – الالتر سونيك Ultra sonic مع الاردوينو Arduino UNO R3 كما يلي:

الكود

تأكد من أن توصيلاتك صحيحة تماما ، ثم قم بتوصيل الاردوينو بجهاز الكمبيوتر باستخدام USB ويفضل توصيل البطارية باستخدام مفتاح توصيل. ثم قم بتحميل هذا الكود إلى لوحة الاردوينو أو أي لوحة تملكها:
      1. #include <Servo.h> //Use the Servo librarey for generating PWM
      2. const int trigPin = 5;
      3. const int echoPin = 6;
      4. // defines variables
      5. long duration;
      6. int distance;
      7. Servo ESC1; //name the servo object, here ESC1
      8. Servo ESC2; //name the servo object, here ESC2
      9. Servo servo;
      10. void setup()
      11. {
      12. pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
      13. pinMode(echoPin, INPUT); // Sets the echoPin as an Input
      14. ESC1.attach(9,1000,2000); //Generate PWM in pin 9 of Arduino
      15. ESC2.attach(10,1000,2000); //Generate PWM in pin 10 of Arduino
      16. servo.attach(11); //Generate PWM in pin 11 of Arduino
      17. Serial.begin(9600); // Starts the serial communication
      18. }
      19. void loop()
      20. {
      21. // Clears the trigPin
      22. digitalWrite(trigPin, LOW);
      23. delayMicroseconds(3);
      24. // Sets the trigPin on HIGH state for 10 micro seconds
      25. digitalWrite(trigPin, HIGH);
      26. delayMicroseconds(10);
      27. digitalWrite(trigPin, LOW);
      28. // Reads the echoPin, returns the sound wave travel time in microseconds
      29. duration = pulseIn(echoPin, HIGH);
      30. // Calculating the distance
      31. distance= duration*0.034/2;
      32. // Prints the distance on the Serial Monitor
      33. Serial.print("Distance: ");
      34. Serial.println(distance);
      35. int throttle = distance; //Read the distance from Ultrasonic
      36. throttle = map(throttle, 100, 0, 1000, 2000);
      37. ESC1.writeMicroseconds(throttle);
      38. ESC2.writeMicroseconds(throttle);
      39. if (distance >= 100) {
      40. servo.write(90);}
      41. else{
      42. servo.write(0);}
      43. }

      شرح الكود:


      تعريف مكتبة السيرفو لنتمكن من التحكم في المحركات الثلاثة (2 محركات تيار مستمر بلا فرش ومحرك السيرفو)
      1. #include <Servo.h> //Use the Servo librarey for generating PWM
      تعريف اطراف حساس الموجات فوق الصوتية – الالتر سونيك Ultra sonic 
      1. const int trigPin = 5;
      2. const int echoPin = 6;
      تعريف متغيرات للمحركات حساس الامواج فوق الصوتية
      1. // defines variables
      2. long duration;
      3. int distance;
      4. Servo ESC1; //name the servo object, here ESC1
      5. Servo ESC2; //name the servo object, here ESC2
      6. Servo servo;
      داخل ال void setup() نقوم بعدة امور لضبط المحركات والشاشة التسلسلية Serial monitor (اختيارية) بحيث نعرف الادخال والاخراج للحساس وتعريف قيمة النبضات وتهئية PWM:
      1. {
      2. pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
      3. pinMode(echoPin, INPUT); // Sets the echoPin as an Input
      4. ESC1.attach(9,1000,2000); //Generate PWM in pin 9 of Arduino
      5. ESC2.attach(10,1000,2000); //Generate PWM in pin 10 of Arduino
      6. servo.attach(11); //Generate PWM in pin 11 of Arduino
      7. Serial.begin(9600); // Starts the serial communication
      8. }
      وأخيرًا داخل void loop() نقوم بالعمليات الاخيرة من البرمجة لاعداد الحساس والمحركات حسب القيم المحددة من ورقة البيانات وعمل map لمحركات التيار المستمر بلا فرش:
      1. {
      2. // Clears the trigPin
      3. digitalWrite(trigPin, LOW);
      4. delayMicroseconds(3);
      5. // Sets the trigPin on HIGH state for 10 micro seconds
      6. digitalWrite(trigPin, HIGH);
      7. delayMicroseconds(10);
      8. digitalWrite(trigPin, LOW);
      9. // Reads the echoPin, returns the sound wave travel time in microseconds
      10. duration = pulseIn(echoPin, HIGH);
      11. // Calculating the distance
      12. distance= duration*0.034/2;
      13. // Prints the distance on the Serial Monitor
      14. Serial.print("Distance: ");
      15. Serial.println(distance);
      16. int throttle = distance; //Read the distance from Ultrasonic
      17. throttle = map(throttle, 100, 0, 1000, 2000);
      18. ESC1.writeMicroseconds(throttle);
      19. ESC2.writeMicroseconds(throttle);
      20. if (distance >= 100) {
      21. servo.write(90);}
      22. else{
      23. servo.write(0);}
      24. }

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

    إرسال تعليق

    0 تعليقات