web analytics
الاردوينو

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

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

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

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

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

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

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

اضافة الى ذلك سوف نستخدم حساس الموجات فوق الصوتية (الالترا سونيك) ليقوم بقراءة مسافة السفينة الهوائية وبناءا على المسافة سوف يرسل المعلومات للاردوينو ويتحكم في سرعة محركات التيار المستمر بلا فرش عندما تصل السفينة الى مسافة معينة سوف نحافظ على هذه المسافة مستقرة. عموما سوف نستخدم المسافة 2 متر , ونقصد بهذا ان اقصى ارتفاع للسفينة سوف يكون 2 متر , عندما تنخفض السفينة سوف ترتفع تلقائيا وعندما تزيد عن 2 متر سوف تنخفض مرة اخرى. لبناء هذا المشروع سوف تحتاج الى المكونات الكهربائية التالية:

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

الهيكل

يمكنك استخدام الهيكل الذي سوف تملؤه بغاز الهيليوم من اي مادة خفيفة الوزن وتسمح في تخزين غاز الهيليوم نحن في هذه التجربة استخدمنا (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 ويفضل توصيل البطارية باستخدام مفتاح توصيل. ثم قم بتحميل هذا الكود إلى لوحة الاردوينو أو أي لوحة تملكها:

#include <Servo.h> //Use the Servo librarey for generating PWM

const int trigPin = 5;
const int echoPin = 6;


// defines variables
long duration;
int distance;

Servo ESC1; //name the servo object, here ESC1
Servo ESC2; //name the servo object, here ESC2
Servo servo;

void setup()
{
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input

ESC1.attach(9,1000,2000); //Generate PWM in pin 9 of Arduino
ESC2.attach(10,1000,2000); //Generate PWM in pin 10 of Arduino
servo.attach(11); //Generate PWM in pin 11 of Arduino

Serial.begin(9600); // Starts the serial communication
}

void loop()
{
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(3);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance= duration*0.034/2;
// Prints the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);


int throttle = distance; //Read the distance from Ultrasonic 
throttle = map(throttle, 100, 0, 1000, 2000); 
ESC1.writeMicroseconds(throttle); 
ESC2.writeMicroseconds(throttle);


if (distance >= 100) {
      servo.write(90);}
else{
      servo.write(0);}
  
}

شرح الكود:

تعريف مكتبة السيرفو لنتمكن من التحكم في المحركات الثلاثة (2 محركات تيار مستمر بلا فرش ومحرك السيرفو)

#include <Servo.h> //Use the Servo librarey for generating PWM

تعريف اطراف حساس الموجات فوق الصوتية – الالتر سونيك Ultra sonic 

const int trigPin = 5;
const int echoPin = 6;

تعريف متغيرات للمحركات حساس الامواج فوق الصوتية

// defines variables
long duration;
int distance;

Servo ESC1; //name the servo object, here ESC1
Servo ESC2; //name the servo object, here ESC2
Servo servo;

داخل ال void setup() نقوم بعدة امور لضبط المحركات والشاشة التسلسلية Serial monitor (اختيارية) بحيث نعرف الادخال والاخراج للحساس وتعريف قيمة النبضات وتهئية PWM:

{
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input

ESC1.attach(9,1000,2000); //Generate PWM in pin 9 of Arduino
ESC2.attach(10,1000,2000); //Generate PWM in pin 10 of Arduino
servo.attach(11); //Generate PWM in pin 11 of Arduino

Serial.begin(9600); // Starts the serial communication
}

وأخيرًا داخل void loop() نقوم بالعمليات الاخيرة من البرمجة لاعداد الحساس والمحركات حسب القيم المحددة من ورقة البيانات وعمل map لمحركات التيار المستمر بلا فرش:

{
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(3);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance= duration*0.034/2;
// Prints the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);


int throttle = distance; //Read the distance from Ultrasonic 
throttle = map(throttle, 100, 0, 1000, 2000); 
ESC1.writeMicroseconds(throttle); 
ESC2.writeMicroseconds(throttle);


if (distance >= 100) {
      servo.write(90);}
else{
      servo.write(0);}
  
}

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

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

واذا كنت من عشاق المحركات الميكانيكية والطائرات وكل ما يتعلق بعالم الميكانيك يمكنك زيارة موقع ميكانيكا العرب من الرابط التالي www.arabmechanic.com


تعليق واحد

اترك تعليقاً

أنت تستخدم إضافة Adblock

برجاء دعمنا عن طريق تعطيل إضافة Adblock