الأربعاء، 24 أغسطس 2016

Quadcopter - كواد كوبتر بالأردوينو

بسم الله الرحمن الرحيم









للناس الي حابه انها تعمل سيستم التحكم بتاع الطياره كله .. مثلا بالأردوينو او الميكرو
اولا لازم تعرف ايه مشاكل الطيارات :
1- الاتزان : المواتير مش نفس السرعه فبالتالي بتلاقي الطياره بتحدف دايما فعشان كدا هتضطر تستخدم حاجه تساعدك انك تظبط الاتزان دا
2- اتجاهات الهوا وسرعات المواتير مع بعض .. ودا بيخليها تلف حوالين نفسها ف عشان تظبط دا لازم تحط حاجه تخليلك الطياره كل ما تلف ترجع تاني لمكانها او اتجاهها الاصلي
3- الهبوط الحاد او الاقلاع السريع .. دايما في كتير عندهم مشكلة في الهبوط دايما ان الطياره بتنزل رزع ع الارض ودا خطر جدا فلازم تعرف الارتفاع اد ايه عشان لما تيجي تهبط تعمل هبوط امن اوتوماتيك حتى لو انت حاولت تكسرها
دي المشاكل الرئيسيه
----------------------------------------------------------------------------
انت عايز تعمل سيستم بيحاكي الاردوبيلوت او اي كنترولر .. هم اصلا معظمهم بيبقو micro controller عادي او اردوينو بس بيحطو معاه شويه سنسورات ودا الي انت هتعمله .. هتجيب السنسورات دي وتوصلها بالاردوينو وتبرمجهم مع بعض
اولا : التحكم في سرعات المواتير :
دي مقاله بتعرفك كل حاجه عن المواتير وال ESC :
https://www.facebook.com/breakin.point.mans/posts/310023795840683
ازاي بقا تبرمج ال ESC ؟ بص ع الكود دا وافهمو كويس wink emoticon
ال ESC بيتبرمج زي الموتور السيرفو بال PWM يعني اشارات متقطعه بس خد بالك ان لازم بتردد معين الي هو 490 ودول بيبقو موجودين في Pin معينه في الاردوينو ( مثلا الاونو 3,9,10,11 بس ) وبتديلو pulses بعرض معين بيبدأ من 0 لحد 255 .. بس واقعيا الموتور مش هيشتغل قبل ال 100 او ال 120 ف بالتالي انت هتمشي من اول ال 0 وتزود لحد ما يشتغل
لو عايز تفهم اكتر يعني ايه PWM بص هنا :
http://www.arduino.cc/en/Tutorial/PWM
http://arduino.cc/en/Reference/analogWrite
كدا انت شغلت المواتير كلها سواء مع بعض او كل واحده لوحدها ... بس اوعى تجرب وانت حاطط المراوح ‫#‏نصيحه‬
-------------------------------------------------------------------------
ثانيا : الاتزان
عشان تظبط الاتزان هتحتاج تركب سنسور بيقيسلك انت مايل اد ايه وبزوايه اد ايه في محور X و Y ... فلما تعرف انه مايل يمين هتقوم مسرع المواتير الشمال وتبطئ المواتير اليمين شويه لحد ما تلاقي الميلان بقى بيساوي 0
والسنسور دا اسمه IMU ودا مقال عنه وفي كود ليه :
https://www.facebook.com/breakin.point.ma…/…/319771454865917
كدا انت ناقصك انك تربط سرعات المواتير بالاتزان بمعنى ان مثلا لو مالت 10 درجات يمين هتنقص مثلا 2 من السرعه الاصليه بتاعت المواتير اليمين وتزود 2 في المواتير الشمال ( تنقص وتزود في قيمه ال PWM الي هي من 0 ل 255 )
وهنا بقا المشكلة : هتزود بمقدار ايه وع اساس ايه ؟؟؟؟؟ ودا بتيجي بالتجربه لأن كل موتور مختلف عن التاني ف هتتعب في الحكاية دي
طب هل ليها حل تاني ؟ ايوه هو ال PID ودا هننزل عنه بوست طويل عريض لأنه موضوع كبير
وهتلاقو كود في الملف لل IMU مع التحكم في المواتير بردو ( بس محدش يجربه لأني مظبطه ع المواتير الي عندي ف ممكن عند اي حد تاني تعمل مشكله )
------------------------------------------------------------------
ثالثا : الدوران حول المركز
عشان تحل المشكلة دي لازم تحط للطياره Reference يعني مرجع ليها كل ما تلف ترجعلو تاني واشهر حاجه هي سنسور البوصله , اتجاه الشمال دايما معروف ف السنسور دا بيديك زاويتك مع الشمال ف انت اول ما تبدأ تطير اقرأ الزاوية دي فرضا طلعت 30 يبقى دا المرجع بتاعك .. لو لفيت يمين يعني الزاويه بتزيد هتسرع المواتير الي في القطر اليمين وتبطئ القطر التاني والعكس لحد ما ترجع للزاويه الاصليه
ودا لينك لل Magnetometer او ال Compass sensor هتلاقوه تحت خالص والكود تحت بردو :
https://www.facebook.com/breakin.point.ma…/…/319771454865917
------------------------------------------------------------------
اخيرا : الارتفاع عن الارض
الغرض منها انك لما تيجي تنزل او تطلع ( ارتفاعك عن الارض بين 0 و 2 متر ) تبقى سرعه المواتير مناسبه عشان الطياره متخبطش في الارض .. ف احنا هنعمل حاجه اسمها Auto landing وهو انك لما تحب تهبط هتضغط ع الزرار او حتى لو مضغطش طالما دخلت في ال Range بتاع ال 2 متر المواتير هتبدأ تبطئ لوحدها واحده واحده لحد ما تستقر ع الارض ويبقى الارتفاع 0
وهنستخدم لدا سنسور مشهور اسمو ال Ultrasonic
https://www.facebook.com/breakin.point.mans/posts/320215344821528
----------------------------------------------------------------
‫#‏نصائح‬ :
- ياريت تجرب كل حاجه لوحدها الاول ومتجربش وانت مركب المراوح ابدا .
- ياريت الي هيشتغل يعرفنا الاول عشان نساعده لأنه هيواجه مشاكل وممكن يعمل حوادث تخليه يدفع كتير لأن تكاليف الطياره غاليه
هتلاقو في الملف دا تجميعه لكل الاكواد الي هتحتاجها :
1- اكواد ال ESC بكذا طريقه
2- اكواد ال IMU بكذا طريقه
3- اكواد ال Magentometer بكذا طريقه
4- المكتبات الي هتحتاجها عشان تشغل السنسورات دي
5- كود تجريبي لل IMU مع الطياره كلها ( اسمو Quad )
6- كود ال Ultrasonic
7- كود ال RC remote لو انت عايز تشغله ع الاردوينو لأي غرض حتى لو مش للطيارات

خصائص ومميزات الأردوبيلوت - APM - الجزء الاول

بسم الله الرحمن الرحيم






أولا : ازاي تطيير الطيارة بدون إستخدام Remote RC : 

كتير مننا فاكر او بيسمع ان طالما هتجيب APM يبقا لازم تجيب ريموت RC ولازم يكون 6 Channel على الاقل , الكلام دا غير صحيح . هما دايما بيفضلو الريموت ال RC لانه بيبقا كذا قناة يعني يقدر يتحكم او يرسل بيانات في قنوات متعدده بالتوازي يعني يقدر يتحكم في كذا حركة في الطياره في نفس الوقت , لأن لو تم استبدال الريموت دا بأي موديول وايرليس هيبقى قناة واحده يعني يقدر يبعت Byte واحد او ايا كان الحجم ف هو بيبعت أمر واحد في المره والواحده ف بالتالي ممكن يسبب بطء شويه في ال Responce بتاع الطياره , بس كل دا مش بيبقا ملحوظ للدرجه دي . بس تقدر تتحكم في كل حاجه في الطياره بدون استخدام RC remote بإستبدالك ليه بإي وايرليس موديول واي Joystick ودا الي هنعرفه في الجزء الي جاي . 

-------------------------------------------------------------------------------------------------
ثانيا : ازاي تتحكم في الحركة بإستخدام أي Joystick ؟

في الAPM انت ممكن تستبدل ال RC ريموت ب أي جويستيك عندك ( ممكن بتاع البلايستيشن ) المهم انه يكون في 4 Analog عشان ال Throttle , Pitch , Roll , Yaw . كل الي عليك هو انك تخش في Actions تحت على الشمال وبعدها تختار Joystick , شوف الصورة دي :




وهتعمل معايره بس لل Sticks بتاعتك , وبكدا اول ما هتعمل Connect بين ال APM واللاب هتقدر تتحكم في المواتير , بس متنساش حاجه انك لازم تخصص زرار في الدراع انه يعمل Arming وزرار تاني يعمل Disarming للمواتير .

شوف اللينك دا لو عايز تعرف اكتر  :
http://copter.ardupilot.com/wiki/flying-with-a-joystickgamepad-instead-of-rc-controller/

 معنى كدا انك لو خليت ال Connection بين ال APM واللاب توب وايرليس بدل السلك معناها انك تقدر تطير الطياره بشكل كامل Outdoor !!

----------------------------------------------------------------------------------------------
ثالثا : ازاي توصل أي وايرليس موديول لل APM :

لو اخدت بالك في مكان مكتوب عليه telmetry ودا مكان معمول خصيصا لموديول الوايرليس ( الي غالبا بيكون نوعه 3DR ) ودا نوع بتطلع نفس الشركة عشان كدا هو مدعوم من البورده APM . وهو موديول اشبه ما يكون لموديول ال Xbee عباره عن قطعتين والاتنين من نوع ترانسيفر يعني كل واحد يقدر يبعت ويستقبل .  دا لو وصلته في ال APM ووصلت الموديول التاني في اللاب بتاعك هتقدر توصل بال APM اكنك موصلها بسلك بالظبط وتقدر تعمل Connect عليها . 

وتقدر تعرف اكتر من اللينك دا :
http://copter.ardupilot.com/wiki/common-3dr-radio-v1/

طيب هل دا معناه اني لازم اجيب النوع دا ؟؟
الناس هتقولك اه لازم هو , بس في الواقع لأ . انت ممكن تجيب أي نوع وايرليس RF سواء Xbee او RF حتى ال ب 75 جنيه , اي موديول شغال بالسيريال , ليه ؟ لأن ال Pins الموجوده في ال APM هي 4 واحده باور والتانيه GND والاتنين التانيين Tx ,و RX , بس لازم تجيب موديول يكون ترانسيفر عشان تقدر تبعت وتستقبل من وإلى ال APM 

دا لينك بيوريك ازاي توصل Xbee (ملحوظه : هنا كان بيجرب على بورده ال Pixhawk بس هي نفس طريقة الAPM ) : 
http://copter.ardupilot.com/wiki/common-telemetry-xbee/


طيب هل معنى كدا اني ممكن اوصل Bluetooth موديول واتحكم بيه ؟
اه تقدر , لأن البلوتوث بيتحول في الاخر لبروتوكول سيريال يعني Tx, RX وتقدر توصله في نقس المكان .




شوف اللينك دا عشان تفهم اكتر :
http://copter.ardupilot.com/wiki/common-mission-planner-bluetooth-connectivity/


وبكدا يبقا مشكلة ال RC ممكن تتحل بانك تجيب أي موديول وايرليس وأي جوي ستيك . ومش شرط ريموت RC ب 2000 جنيه !!

----------------------------------------------------------------------------------------------------------

رابعا : ازاي تبرمج ال APM وتخلي الطياره Autonomous :

كتير مننا فاكر ان ال APM مينفعش يتبرمج ومينفعش تستخدمه في انك تعمل طياره Autonomous . بس الكلام دا غير حقيقي , عشان تعمل كدا اودامك حل من اتنين :
1- انك تعدل اكواد ال APM الاصليه الي مكتوبه بلغة مقاربه لل C ( بتاعت الأردوينو ) وانا مبنصحكش بكدا لان الموضوع معقد جدا بس لو حبيت تجرب , شوف اللينك دا :
 http://dev.ardupilot.com/wiki/where-to-get-the-code/
ونزل ال library بتاعت ال APM وابدأ امشي معاه وعدل الكود .

2- انك تسيب المكتبات دي زي ماهي وتستخدم خاصية لطيفة جدا في ال APM اسمها Python scripts ودي عباره عن Scripts او اوامر انت بتكتبها بلغة البايثون وبتحملها على ال APM وهو بيعملها Compile وبينفذ البرنامج الي انت كتبته !!

مش كدا وبس ال Python scripts دي بتسمحلك انك تاخد قراءات كل السنسورات وانك تتحكم في سرعات كل المواتير وانك تاخد قراءات ال GPS وتستخدم كل دا في انك تبرمج الطياره مثلا عشان تروح لمكان معين بإحداثيات معينه وارتفاع معين وسرعه معينه , ف كل الي عليك انك تاخد القراءات وتستخدم If statmens في الكود بتاعك فقط لا غير .

شوف كدا اللينك دا ;) :
http://planner.ardupilot.com/wiki/using-python-scripts-in-mission-planner/

وشوف الجدول الي تحت في اخر اللينك هتلاقي كل دي Parameters تقدر تستخدمها في الكود بتاعك . وفي كود في اول الصفحة مثال على ازاي تطير الطياره وتعمل لفه في الجو حولين محول ال X ( هنا بيطبق على طياره Fixed wing بس هي نفس الطريقة )

ال Scripts دي هتلاقيها هنا :

وتقدر تكتب الكود بره في ال Python Idle وبعد كدا تبقا ترفعه من ال Scripts دي . وبكدا تقدر تخلي طيارتك Autonomous بس ملحوظه لازم تكون عامل Connect بين الطياره واللاب توب عن طريق اي وايرليس موديول لأن الكود بيتعمله Compile بشكل شبه متتالي يعني اعتبره اكنه بينفذ امر امر يعني لو ال Connection فصل الكود مش هيكمل فلازم تكون واخد بالك من النقطة دي .

-------------------------------------------------------------------------------------------------------

خامسا : السنسورات الي ممكن تتوصل لل APM :

اولا احنا لازم نعرف ان ال APM هو أردوينو , يعني انت تقدر توصل أي سنسور تقدر توصله للأردوينو العادي . بس هنا هنتكلم عن السنسورات الي انت مش محتاج انك تبرمجها بنفسك وتتعب نفسك فيها .

- سنسور قياس الارتفاع :
ودا ليه 4 انواع من السنسورات اما سنسور Ultrasonic اسمو MaxSonar ودا عباره عن موجات صوتيه لما بتصتدم بالأرض وبترتد بيقدر يحسب المسافه عن طريق مقدار التشوه في الاشاره المنعكسه , أقصى Range للسنسور دا 10 متر بس .



وتوصيله سهل جدا جدا ومجرد انك تعمله Enable في برنامج ال Mission planner هتقدر تشوف ارتفاعك كام , شوف اللينك دا :
http://copter.ardupilot.com/wiki/sonar/

أما النوع التاني دا ف بيستخدم للإرتفاعات الأعلى من كدا شويه واسمه سنسور ال Lidar lite ودا بيستخدم الليزر بدلا من الموجات الصوتيه , ال Range بتاعه 40 متر 

وتوصيله مقارب لتوصيل ال Sonar , شوف اللينك دا ( اللينك بيشرح على ال Pixwak بس التوصيل متقارب ) :
 
http://copter.ardupilot.com/wiki/common-rangefinder-lidarlite/

وفي نوعين كمان زي ال Lidar بس ال range بتاعهم اعلى والدقة افضل :
http://copter.ardupilot.com/wiki/common-rangefinder-landingpage/

معلومات هامه عن ال ESC - متحكم السرعه - Electrical speed Control

بسم الله الرحمن الرحيم






معلومه عن ال ESC المتحكم في سرعات مواتير ال Brushless :

يحتوي ال ESC على أطراف دخل وأطرف خرج , أطراف الخرج هم 3 أطراف ويتم توصيلهم بالمواتير , أما الدخل فيحوتي على  ال 3 أسلاك ( أحمر - أسود - أبيض /// أو ///// بني - برتقالي - أصفر ) وكابلين الباور الرئيسين الذي يتم توصيله بالبطارية .

فما هي فائدة الأطرف ال 3 ؟
الأبيض أو الأصفر هم طرف ال Signal الذي يتم ارسال اشاره PWM لهم عن طريق المتحكم .

ولكن ما هي فائدة الاحمر والأسود ؟
ال ESC له نوعان :
* النوع الأول هو ESC with BEC وهي عباره عن دائرتين في ESC واحده الدائرة الاولى وهي ال BEC وهي دائرة تخفيض جهد متصله بكبل الباور الرئيسي لل ESC الواصل بخرج البطارية وتقوم بتخفيض الجهد ل 5 فولت كمصدر منفصل للجهد يمكن استخدامه لتشغيل اي دائرة وهي التي يتم توصيلها بالسلك الاحمر والاسود ... والدائرة الاخرى هي ال ESC وهي دائرة تقوم بالتحكم في نسبه مرور التيار للموتور تبعا لل PWM set duty المرسلة لها وهي متصله بالسلك الأبيض .

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

* النوع الثاني : هو ESC without BEC وهي عباره عن ESC فقط وحينها لا يتم توصيل السلك الاحمر لأنه ليس له استخدام وحينها يتم شراء BEC منفصل ليتم تغذية المتحكم ( الأردوينو مثلا ) او يتم توصيل بطارية منفصلة له
--------------------------------------------------------------------------------
كيف تعرف اذا كان ال ESC with BEC ام لا ؟؟
عن طريق قراءة ال Data المكتوبه ع ال ESC .. والصورة توضح ذلك .. يكتب ESC - BEC ويكتب اقصى تيار يتحمله ال ESC واقصى تيار يتحمله ال BEC
او عن طريق قياس فرق الجهد بين السلك الأحمر والسلك الأسود
-------------------------------------------------------------------------------

ما هي مواتير البراشلس - وما هو ال ESC محجم السرعات

بسم الله الرحمن الرحيم




ل Brushless موتور : يختلف هذا النوع من المواتير عن باقي مواتير ال DC في انه يتكون من 3 ملفات داخليه ... ولذلك يحتوي على 3 اسلاك دخل ... ونظرية عمله تكمن في ان دخل الباور له يكون 3-Phase اي 3 اشارات بينهم Phase shift للتحكم في الجهد وبالتالي التحكم في السرعه .

وهو مكون من عدد كبير من الملفات ولذلك فإن سرعته تكون كبيره جدا ولكن في المقابل فإن عزم الدوران يكاد يكون غير موجود . ولذلك فإن هذا الموتور يحتاج إلى تيار عالي جدا ليصل إلى سرعته القصوى . 
ما هي العوامل التي تميز المواتير بعضها عن بعض ؟

 
-KV kilo per volt : وتعبر عن سرعه دوران الموتور , تعني 1000 لفة ( RPM ) لكل واحد فولت .. اي اذا كان الموتور 1000 KV و كان الدخل 10 فولت ستكون السرعه RPM 10000 .

- Thrust : وهو يعني اقصى حمل يستطيع الموتور الدوران وهو محمل بهذا الوزن ولكن هذا لا يعني ان الطائرة يمكنها حمل هذا الوزن ... بمعنى اخر يستطيع الموتور الدوران بنفس الكفاءة مع هذا الحمل وسنبين ذلك .. مثال موتور له 1.2 KG thrust

- Max current : اقصى تيار يمكن للموتور سحبه من البطاريه عند الوصول للسرعه القصوى .
*كلما زاد ال KV كلما كان تحليق الطائرة اعلى .. الارتفاع

*كلما زاد ال Thrust كلما تستطيع الطائرة حمل وزن اكبر ... ولحساب اقصى حمل يمكن للطائرة حمله :
(عدد المواتير * ال Thrust ) مقسوما على 2
*كلما قل اقصى تيار للموتور كلما زادت فتره التحليق للطائرة

سعر الموتور الواحد يبدأ من 110 جنيه حتى 5000 جنيه .. ويمكن ان تجد موتور سرعته 600KV ولكن  Thrust = 5 كيلو جرام ... فيجب عليك دراسة احتياجاتك مسبقا



Electronic Speed Control :

وهو عباره عن دائرة إليكترونية مصممة لكي تقوم بتحجيم التيار الذي يدخل الى الموتور عن طريق تقطيع الإشاره بدلا من اعطاء الموتور جهد مستمر وطريقة استخدامه كالآتي : 
يتم توصيل أطراف الموتور الثلاث في جهه الخرج . ويتم توصيل الدخل بالبطارية . ويتبقى ثلاث اسلاك ويتم توصيل الأحمر بالفولت الموجب للأردوينو او يمكن تركه والأسود بالأرضي ويتبقى الأبيض ( يفضل رؤية هذا المقال لمعرفه كيفيه توصيل ال 3 أسلاك ومتى يتم توصيل السلك الموجب ومتى يتم فصله رابط اللينك  ) . طريقة عمل محجم السرعة تعتمد على ادخال اشاره PWM ( اضغط هنا لمعرفه ما هو ال PWM رابط اللينك  ) ع الطرف الإشارة ( الابيض ) بتردد من 300-500 هيرتز . وعن طريق تغيير فتره ال T on من 1 ميلي ثانية الى 2 ميلي ثانية يتم تغيير ال Shift phase للخرج الذي يصل بالموتور .فإذا تم اختيار فتره ال T on = 1 ميلي فإنه يقوم بتقليل التيار  إلى ما يقارب الصفر وبالتالي  لن يدور الموتور . واذا تم اختيارها 2 ميلي ثانية فإن الموتور يعمل بأقصى سرعته . ومن المعروف ان ال PWM له مخرن bit . ف إذا تم وضع قيمه 0 فيه فأنها تمثل 0% من سرعه الموتور , واذا تم وضع القيمه 255 (أقصى قيمه للمخزن ) فإن السرعه في هذه الحاله 100% . وهكذا

ملحوظه هامه : في كثير من الاحيان لا يدور الموتور عند قيمة PWM أقل من 100 او 120 ( كقيمة للمخزن ) وذلك لأن محصلة الجهد مع الزمن الذي ينتجه اشاره ال PWM غير كافية للتغلب على الحث الموجود في الموتور فبالتالي لن يدور الموتور حتى يصل الى زمن تشغيل معين يمكنه من التغلب على تلك القوى .

طريقة اختيار نوع ال ESC تعتمد على اقصى تيار يحتاجه الموتور

الإسعاف الطائر بإستخدام الطائرات بدون طيار

بسم الله الرحمن الرحيم










هو احد اشهر تطبيقات الطائرات بدون طيار المدنية حيث انها تستخدم في حمل جميع الاسعافات الاولية والأجهزة التي تستخدم لإسعاف المرضى حتى جهاز ال DC shock جهاز الصدمات الكهربيه لإنعاش القلب ونقلها بسرعه الى اماكن الحوادث كــ حل مؤقت حتى تصل سيارات الاسعاف الى الموقع ومع وجود الكاميرات في الطائرة يتمكن الطبيب من رؤية حالة المريض وهو في مكتبه او في المستشفى واعطاء التعليمات اللازمة لمرافقي المصاب حتى يتمكن من اسعافه بسرعه الى حين ان تأتي سيارات الاسعاف
تخيل كم مصاب تنتهي حياته والسبب هو تأخر وصول سيارات الاسعاف !!!

مشروع ابتكره طلبه في ألمانيا بإستخدام طائرة Octa Copter او ما تعرف بال كواد كوبتر المزدوجه Double quad copter , ومن الجدير بالذكر ان المشروع تم تنفيذه في الإمارات بواسطه طلبه إماراتيين وحصل على المركز الاول في المسابقة المحلية لمسابقة الإمارات للإستخدامات المدنية للطائرات بدون طيار

نمتنى لكم مشاهده ممتعه