Latest Post

Tuesday, February 7, 2017

ما هو علم الروبوتات Robotics ؟ نظره عامه علي مجال ال . Robotics .

الروبوتات

مقدمة
اليوم وبعد التقدم الهائل الذي وصل اليه العلم من التكنولوجيا كان لا بد من الاتجاه الي محاكاة الانسان في كل شي بالرغم من استحالة حدوث ان يصل العلم الي صنع انسان الي يحاكي الانسان في كل شي لان الانسان من صنع الله ولله الكمال وحده
فكان لزاما علينا ان نتحدث عن موضوع مهم وكثير من الناس يبحثون عنه وهو الروبتات او
 ال Robotics فرغم أنها من أمتع الهوايات, إلا أنها ليست بالهواية السهلة, كما لا توجد الكثير من المعلومات المتاحة حول الروبوتات مقارنة بالهوايات الإلكترونية الأخرى. فما هي الروبوتات Robotics  ؟
ما هي الروبوتات Robotics
ما الشيء الذي يخطر ببالك عندما تسمع كلمة روبوت ...؟ هل تعنقد أنها آلة تسير على قدمين و تستطيع إظهار التعابير على وجهها..؟ بالنسبة لمعظم الناس الربوت هو آلة تشبه الإنسان في شكله و سلوكه !
و بغض النظر عن أفلام الخيال العلمي فإن الروبوتات منتشرة بشكل كبيرفي حياتنا فيمكن أن نجدها في المصانع ، الأجهزة الطبية ، المجالات المهنية ، في المجالات الأمنية, في أبحاث الفضاء و أيضاً روبوتات التعليم و التسلية حيث يوجد أكثر من مليون نوع من هذه الربوتات و غيرها يعمل في وقنا هذا .
لكن في الأساس الروبوت هو آلة صممت للقيام بعمل الإنسان. يمكننا القول أنه نظام يحتوي على حساسات، أنظمة تحكم، وحدة تغذية، و برنامج تعمل جميعها معاً لتنفيذ مهمة معينة. 
بعض الروبوتات مثل  “ Mars RoverSojourner " و
  “the underwater robot Caribou" تقوم بالتعرف على الأماكن التي نرغب باستكشافها إما لصعوبة الوصول إليها أو بسبب خطر هذه الأماكن علينا ، وبعضها كروبوت
"رومبا " الذي يستخدم لتنظيف الغبار في المنازل حيث تنزلق على الأرضيات منظفة إياها مستخدمة تقنية فوق صوتية تستعين بها في حركتها ثم تعود إلى مكانها وتنطفئ بنفسها ، كما يوجد بعض أنواع الروبوتات للترفيه كربوتات فرقةZ-MACHINES"  الموسيقية . و من أكثر الروبوتات متعة تلك التي تستطيع اللعب والتفاعل معها وحتى بنائها و برمجتها مثل أدوات شركة "ليغو" .
ما هي خصائص الريبوتات ؟
من أهم هذه الخصائص التي تميز الروبوتات هي خاصية  "التحسس" فيجب أن يكون الروبوت قادر على تحسس واستشعار الوسط المحيط به ، يقوم الروبوت بتحسس وسطه بطرق تشبه إلى حد ما الطرق التي نقوم نحن بالتحسس بها لوسطنا المحيط ، حيث يمثل حساس الإضاءة، حساس اللون و الكاميرا ( العيون )، و يمثل كل من حساس الضغط و اللمس والحرارة ( اليدين )،
الحساس الكيميائي يمثل ( الأنف )، وحساس الالترا سونيك يمثل ( الأذان ) و أخيراً حساس التذوق يمثل ( اللسان ).
وكما يجب أن يكون الروبوت قادر على "الحركة" في جميع أنحاء بيئته . قد يتحرك من الروبوت جزء كذراع روبوتية ذات قاعدة ثابتة و قد يكون الروبوت كامل متحرك كذراع روبوتية بقاعدة متحركة. ومن الخصائص التي تميز الروبوت قدرته على " تزويد نفسه بالطاقة " حيث تعتمد الطريقة التي يحصل بها الروبوت على الطاقة على ما يريد الروبوت القيام به . وأخيراً يحتاج الروبوت إلى نوع من "الذكاء "، و هنا يأتي دور البرمجة.
معظم الروبوتات تحتاج إلى تشغيل من قبل الإنسان ، أو توجيه دقيق لكامل المهام التي سينفذها. لذلك بدأ مؤخراً توظيف الذكاء الصناعي في الروبوتات حيث أن الروبوتات تصبح مستقلة شيئًا فشيئًا.. إذًا يمكن أن نقول أن المكونات الأساسية للروبوت هي :
·        الهيكل الميكانيكي مثل منصة العجلة و الذراع و المحركات وغيرها ويجب أن يكون الهيكل قادر على التفاعل مع بيئته.
·        الحساسات التي تقوم باستشعار الوسط المحيط بها.
·        نظام التحكم الذي يقوم باستقبال الإشارات من الحساسات ثم يقوم بمعالجتها و إعطاء الاستجابة المناسبة لها.
ونلاحظ ان الروبوتات لها تاثير كبير على حياتنا في عدة مجالات منها مجال الصناعة حيث ازدادت الروبوتات الصناعية شعبية يوما بعد يوم و ذلك بسبب تفوقها على آداء الإنسان ويجري استخدام هذه الروبوتات في مجموعة متنوعة من المهام الصناعية التي تحتاج إلى سرعة وموثوقية، تكرار، و دقة حيث  أصبحت هذه الروبوتات تستطيع القيام بجميع الأعمال التي كان يقوم بها الإنسان على خطوط الإنتاج من نقل ولحام وطلاء وتعبئة و تجميع وتغليف وغيرها من الوظائف.
اما في المجال الطبي سنجد ان للروبوتات اهمية كبيره في هذا المجال فمن        “microbots" التي تقوم بفتح الشرايين وتساعد في العمليات الدقيقة مثل عمليات العين إلى الروبوتات التي تساعد بالعناية بالمرضى والروبوتات التي تساعد المرضى الذين فقدوا قدراتهم على الحركة.
و في كل الاحوال من المتوقع أن يؤدي الروبوت دوراً كبيراً في حياتنا اليومية في المستقبل. ففي العقود القليلة القادمة يتوقع أن يخرج الروبوت من عالم المصانع والمختبرات ويدخل حياة الناس اليومية بنفس الطريقة التي دخل بها الحاسوب إلى البيوت في ثمانينيات وتسعينيات القرن العشرين. هذا التطور المحتمل للروبوتات دائما ما يثير الرعب و القلق لدى الناس حيث يتم تصوير الروبوت كآلة ذكية تسعى للسيطرة على البشر.

الطريق الصحيح لتعلم علم الروبوتات
1-   ابدأ بتعلم الإلكترونيات :
حتى و إن لم يبدو هذا الأمر مسلٍ كثيراً, إلا أنه لا غنى عنه لمن يريد العمل في الروبوتات. قد يعتقد البعض أنه بالإمكان الخوض في عالم الروبوتات دون الحاجة للقيام بتعلم الإلكترونيات و أساسياتها, إلا أن هذا الاعتقاد خاطئ بشكل كبير حيث ان  كل ما هو مطلوب منك  أن تتعلم بعض الأساسيات, و هذا الأمر ممكن من خلال العديد من المصادر و الكتب الموجود على شبكة الإنترنت. بإمكانك البدء بكتاب
 Getting Started In Electronics by Forrest Mimms فهو يمثل بداية ممتازة لتعلم الأساسيات.

2-   ابدأ بالمشاريع البسيطة :
ابدأ بالمشاريع البسيطة, يمكنك مثلاً البدء بعمل روبوت بسيط يسير في خطوط مستقيمة باستخدام بعض المحركات الصغيرة و العجلات. تستطيع تعلم ذلك من خلال البحث على الإنترنت عن خطوات عمل روبوت بسيط, قم باختيار مشروع بسيط يناسبك, ثم ابدأ بقراءة تجارب الآخرين و الإطلاع على أعمالهم, و تتبع خطوات العمل خطوة خطوة. لا مشكلة في استنساخ هذه التجارب كما هي في البداية و عمل نماذج مماثلة لها. لاحقاً ستتعلم إضافة لمساتك الخاصة من خلال إضافة بعض المجسات التي تتحكم في حركة الروبوت, ثم تعلم كيفية استخدام اللوحات الجاهزة لعمل الروبوتات.

3-   الأنتقال لمرحلة متقدمة :
في هذه المرحلة يُستحسن أن تكون لديك خلفية في البرمجة حتى تحصل على نتائج ممتازة. 
فتعلّم الروبوتات يُشكّل مثلث, أضلاعه الثلاثة هي الإلكترونيات, الميكانيكا, و علم البرمجة. و الروبوت الجيد هو الذي يدمج بين هذه الفروع الثلاثة بأفضل شكل ممكن. لكن لحسن الحظ فإن الأمر ليس بهذا التعقيد. يمكنك في هذه المرحلة الاستعانة ببعض حقائب هواة الروبوتات الجاهزة مثل Lego Mindstorms kit  و هي عبارة عن حقائب تعليمية أو حقائب للهواة تحتوي على عدد من المعدّات المتنوعة لبناء روبوتات متعددة الوظائف. فهي تحتوي مجسات متعددة, و عدد من المحركات و العجلات و الكابلات و البطاريات و القطع التركيبية. هذه الحقيبة ستساعدك كثيراً للارتقاء خطوة للأمام و زيادة الثقة بالنفس. فهي تجمع أغلب احتياجات في هذه المرحلة, كما أنها تساعدك على البدء بتوظيف البرمجة في عمل الروبوتات. غالباً أكواد البرمجة ستكون جاهزة, و لكن كونك بدأت بتوظيف البرمجة تعتبر خطوة مهمة في الطريق.

4-   الان عليك الاعتماد علي ذاتك :
يُفترض أن تكون الآن قادراً على عمل روبوت خاص بك يؤدي وظيفة معينة بها شيء من التعقيد. في هذه المرحلة حاول أن تبدأ ببناء روبوت خاص بك تماماً, حيث تكون أنت صاحب الفكرة و التنفيذ, لا بأس بالاستعانة ببعض المصادر الخارجية, لكن هذه المرة الاستعانة تكون عن علم و دراية و لغرض محدد تريد تحقيقه و ليست محاكاة و تقليد.
ومن الجيد أيضاً أن تشارك في مسابقات محلية لعمل الروبوتات, فهذا الأمر سيعطيك شيء من الثقة و التنافس و يوصلك إلى مرحلة أكثر تقدماً.

5-   جالس اصحاب الفكر العالي في مجال الروبوتات
بقدر ما تسأل بقدر ما ستتعلم. فحاول أن تستفيد من كل المصادر المتاحة لك. و لكن تحقق من أنك تسأل الأسئلة الصحيحة, و ذلك من خلال البحث عن إجابات على الانترنت قبل طرح الأسئلة. كذلك اقرأ عن الأخطاء الشائعة التي يقع بها الآخرون, فهذا الأمر سيوفر عليك الكثير من الوقت و المال. و قم أيضاً بمشاركة تجاربك مع الآخرين, سواء مع أصدقائك و مدرسيك, أو مع الهواة أمثالك في مواقع الإنترنت.
و أخيراً بإمكانك الالتحاق بدورات الروبوتات المتاحة على الإنترنت, فهناك بعض الدورات التعليمية  المقدمة من قبل أفضل الجامعات في العالم في مجال الروبوتات, يمكنك البحث عنها في موقع كورسيرا Coursera  على سبيل المثال لا الحصر.



Monday, February 6, 2017

تعرف علي مجال ؟. ,.(Programmable Logic Controller (PLC.

PLC
إضافة تسمية توضيحية

مقدمة
الحاكمات المنطقية القابلة للبرمجة أو ال Programmable Logic Controller (PLC)  كثيرا ما يسمع الناس هذه الكلمة أو هذا المصطلح باللغة باللغة العربية أو بالإنجليزية ولكن لا يعرف الكثير منهم ما هذا الشئ وقد يسأل هذا السؤال طالب بكلية الهندسة أو مهندس فى تخصص غير التحكم أو من عمل بالصناعة و رأى التطبيقات اللانهائية لل  PLC ولكي نعرف ما هو ال PLC تعالى لنتخيل معا كيف تحدث أى عملية تحكم فى الصناعة عموما
الإنسان هو الحالة المثالية لكل شئ فى هذه الدنيا لأنه من صنع الله ولذلك فكل الأنظمة مهما تعقدت فهى فى النهاية تحاول أن تحاكى هذا الإنسان ولن يصل هذا النظام مهما تعقد إلى أن يفكر مثل الإنسان ولكنه من الممكن أن أخبره بحالات معينة إذا حدثت فإنه سوف يتصرف تلقائيا منفذا تلك الأوامر
ولكي تعرف ما هو ال PLC فلا بد أولا أن تعرف ما هو التحكم الألى ؟
هذا مثال بسيط للتوضيح

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

أولا : أنت شعرت بالجوع وهذا الشعور هو إحساس أو بمعنى أخر هذه حاسة من الحواس التى تمتلكها أنت والتى تجعلك تقرر هل تشعر بالجوع أم لا وهذا هو كل دور هذه الأداه..... دورها هو الأحساس بشئ معين
ثانيا : انتهى دور الحاسة هنا وأرسلت هذه الأشارة إلى عقلك لتخبره بأنك تشعر بالجوع فأستقبل العقل هذه الأشارة الدقيقة التى توضح مدى الجوع الذى تشعر به وليس هل أنت جعان أم لا ولكن هذه الأشارة تحتوى على مقدار الجوع الذى تشعر به
ثالثا : العقل استقبل هذه الإشارة وبدأ يتعامل معها فإن كانت الإشارة تقول أنك فى غاية الجوع ولا تستطيع التحمل أكثر من ذلك فسوف يتخذ العقل قرار معين ( مثلا أن يعطى الأمر أن تاكل الأن ) وإن كانت الإشارة تقول أنك تستطيع التحمل فسوف يتخذ قرار أخر ( وهو مثلا أن تنتظر 5 دقائق حتى تنهى ما تعمل )
رابعا : العقل أتخذ القرار لكنه لا ينفذ قرارات أبدا ولكنه عقل دوره هو جمع البيانات و إصدار الأوامر فهو سيعطى أمر لأعضائك ( قدميك مثلا ) أن تقوم لتذهب حيث يوجد الطعام
خامسا : بعد أن تاكل سوف تعمل حاسة الجوع مرة أخرى ولكن هذه المرة ستعطى اشارة أنك غير جائع للعقل
سادسا : سوف يأخذ عقلك هذه الأشاره ويعرف أنك أنتهيت ومن ثم سيعطى أمر أخر لقدمك أن تعود فى إتجاه الحاسب مرة أخرى
فكل هذه الحركات أنت تعملها تلقائيا وهذه نفس الفلسفة المبنى عليها فكرة التحكم الألى Automatic Control
فالحاسة التى تشعر بالجوع هى ما تسمى فى الصناعة بأسم الحساسات Sensors ودورها هو أن تترجم الكميات غير الكهربية لكميات كهربية مفهومة للعقل ( الذى سنذكره الأن ) فمثلا الضغط أو الحرارة لا أستطيع أن أتعامل معها كما أن العقل لا يستطيع أن يتعامل مع العطش مباشرة ولكن أريد أن أحول أشارة الضغط أو الحرارة إلى كمية مفهومة للعقل
وكل هذه الحواس تسمى المدخلات Inputs
أما العقل فهو المتحكم أو Controller وقد يكون هذا المتحكم من النوع الكلاسيكى أو يستخدم تقنية الميكروبروسيسور ومن أهم المتحكمات هى الحاكمات المنطقية القابلة للبرمجة
Programmable Logic Controllers - PLC 

فهو الذى يقوم بدور العقل المفكر فى النظام فيأخذ البيانات من المدخلات ويتخذ القرار بناءا على ما تم برمجته من قبل المبرمج
أما القدم فهى المخرجات  Outputs أو قد تسمى Actuators وهى مثل المحركات و غيرها
فالأن قد تعرفنا على نظام التحكم الألى كاملا وهو يتكون من ثلاث أشياء رئيسية
Inputs - Controller – Outputs
والان سنوضح ما هو ال PLC :

ما هو ال PLC ؟
هي اختصار ل PROGRAMMABLE LOGIC CONTROLLER ومعنى ذلك المتحكم المنطقي المبرمج , وهو جهاز تم تطويره كبديل عن التحكم الكهربائي التقليدي الذي يستخدم التايمرات والريلهات والكنتاكتورات والكاونترات وغيرها , وكل ذلك من أجل التحكم في الآلات والماكينات الصناعية , على سبيل المثال ماكينات التعبئة والتغليف في المصانع .
ويقوم جهاز ال PLC بالنظر إلى المداخل وهي INPUT واعتمادا على حالتها ON/OFF  0/1 ومن خلال البرنامج في داخل ال PLC يقوم بالتحكم بالمخارج OUTPUT .
ويقوم المستخدم عادة بإدخال البرنامج بواسطة برنامج خاص بجهاز ال PLC المستخدم ولكنها بالنهاية تقوم بنفس العمل المطلوب.
ونلاحظ ان أجهزة الPLC  مستخدمة كثيرا في الحياة العملية, فأينما توجد صناعة يوجد جهاز PLC في هذه الصناعة.
ولتوضيح الصورة أكثر جميعنا نعرف الإشارات الضوئية فمن أجل التحكم بإشارة ضوئية واحدة أي على فرض أن الإشارة حمراء ثم تكون صفراء ثم خضراء من أجل التحكم بذلك نحن بحاجة لثلاث تايمرات لنقوم بذلك .
ولكن ماذا لو أردنا التحكم بمفترق طرق بأربع اتجاهات هل تتصور كم نحتاج من التايمرات لتحكم بذلك , لذلك كما ترى كلما كان التحكم اكبر كلما كانت الحاجة لجهاز PLC اكبر.

مميزات وحدة الـ PLC
·        حجم صغير.
·        سهولة و سرعة في عمل التغيرات لنظام التحكم
·        نظام تحكم و كشف أخطاء متكامل
·        نظام مراقبة و توثيق فوري و مستمر.
·        تكلفة منخفضة.

 (Logic 0 , Logic 1)المنطق 0 ، المنطق1
الحاكم المبرمج PLC يستطيع فقط أن يفهم الإشارة الرقمية Digital signal التي إما أن تكون في حالة ON أو OFF النظام الثنائي   ( Binary System ) هو النظام الذي يوجد به رقمين فقط (1 و 0 ) العدد الثنائي 1 يبين أن الإشارة موجودة أو أن المفتاح في وضع ON و العدد الثنائي 0 يبين أن الإشارة غير موجودة أو أن المفتاح في وضع Off.
والـPLC  هو مجموعة من الدوائر الالكترونية مجتمعة على شكل Modules متخصصة في أعمال التحكم في الزمن الحقيقي Real Time System  وعن طريقها يتم التحكم و المراقبة للعمليات التي تنفذ
و الـPLC  ينفذ مجموعة من التعليمات مخزنة في ذاكرته على شكل برنامج ولذلك فهو يشبه إلى حد كبير الحاسبات الآلية أو الكمبيوتر الا أنه يوجد اختلافات سنوضحها في التالي:
يمكن توصيل الPLC  مباشرة إلى مجسات و أجهزة من خلال وحدات الادخال و الاخراج خاصة الصناعية.
تصمم الPLC  للعمل في البيئات الصناعية بما فيها من ظروف قاسية من ارتفاع لدرجة الحرارة و أتربة و اهتزازات وتشوه لموجات الجهد والتيار وانخفاض و ارتفاع للجهد و التيار.
لغات برمجة الPLC  معدة بطريقة لا تحتاج إلى معرفة مسبقة بلغات الحاسب ولا إلى مستوى عالي من البرمجة ويكتب بطرق معروفة أشهرها ال
Ladder & STL

مكونات وحدة الـ PLC
تتكون وحدة الـ PLC من المكونات الرئيسية التالية:
·        وحدة الدخل Input module
·        وحدة المعالجة المركزية CPU
·        وحدة الخرج Output module
·        وحدة مصدر القدرة Power supply unit
·        وحدة المشغل Operator unit
·        جهاز البرمجة Programming Device

وحدة الدخل Input Module
- يتم توصيل وحدة الدخل بمجموعة من العناصر الفيزيائية مثل المفاتيح الكهربائية ومقاييس الحرارة و الوزن و غيرها حيث تقوم وحدة الدخل باستقبال الإشارات التماثلية و الرقمية المرسلة من هذه العناصر و تقوم بتحويلها إلى إشارات منطقية يمكن إن تتعامل معها وحدة المعالجة المركزية.

وحدة المعالجة المركزية الميكروبروسيسورCPU
وهو عبارة عن معالج دقيق يحتوي على ذاكرة النظام وهي كذلك مركز اتخاذ القرارات لوحدة الـ    PLC وتقوم بما يلي:
·        استقبال و معالجة الإشارات المنطقية المرسلة من وحدة الدخل
·        اتخاذ القرارات المناسبة حسب التعليمات المخزنة في ذاكرة البرنامج.
·        إصدار أوامر التحكم لوحدة الخرج حسب تعليمات البرنامج المخزنة في الذاكرة.
 وحدة الذاكرة Memory unit 
يوجد نوعين رئيسيين من الذاكرة في وحدة الـ PLC :

 الذاكرة العشوائية (RAM) وهي الذاكرة التي يمكن إدخال البيانات (DATA) لها مباشرة من أي عنوان (Addresss) كما أنه يمكن كتابة وقراءة البيانات من هذه الذاكرة. وهي ذاكرة غير دائمة أي مؤقتة يعني هذا أن البيانات المخزنة فيها ستفقد في حالة فقد الطاقة الكهربية المشغلة لها و لذلك يتم تركيب بطارية لتجنب فقد البيانات في حالة فقد الطاقة الرئيسية المشغلة لها. 
ذاكرة القراءة فقط (ROM) وهي الذاكرة التي يمكن قراءة البيانات منها و لكن لا يمكن كتابة البيانات فيها. هذه الذاكرة تستخدم لحماية البيانات أو البرامج المخزنة فيها من المحو، و هي ذاكرة دائمة و هذا يعني أن البيانات المخزنة فيها لن تفقد في حالة فقد الطاقة الكهربائية. 

وحدة الخرج Output Module
تقوم وحدة الخرج بالوظائف التالية استقبال تعليمات التحكم المنطقية المرسلة من وحدة CPU و تحويلها إلى إشارات رقمية أو تماثلية يمكن استخدامها للتحكم في مجموعة منوعة من الأجهزة مشغلات 
(Actuators)

انواع مختلفة من ال PLC
·        Smart relays SR1
·        Zelio Logic SR2-SR3 compact smart relay

برمجة ال PLC  
برنامج Statement list / STL
و هو عبارة عن مجموعة من الأوامر التي يفهمها جهاز الحاسب.

برنامج المخطط السلمي Ladder diagram
و هو من اشهر اللغات استخداما في أجهزة plc لأنه يشبه رموز التحكم بالمرحلات و يمكن استخدامه من قبل الفنيين و المهندسين بسهولة حيث انه عبارة عن محموعة من الرموز المتتالية التي توضح تدفق التيار الكهربي لإجراء الوظيفة المطلوبة.
برنامج Function block diagram

الوسائل المختلفة لبرمجة أجهزة الPLC
تتم البرمجة بعدة طرق منها :
·        جهاز برمجة خاص يقوم بإدخال البرنامج داخل ذاكرة الجهاز
·        عن طريق شاشة و مجموعة مفاتيح على واجهة الجهاز
·        عن طريق برنامج يتم انزاله من جهاز الحاسب










Saturday, February 4, 2017

طريقك الي تعلم الانظمة المدمجة , ماهي الانظمة المدمجة , ما هو ال Embedded Systems ؟


الانظمة المدمجة

الأنظمة المدمجة (Embedded Systems)
لكي نعرف معني الانظمة المدمجة او ما يعرف ب (Embedded Systems) لا بد اولا من معرفة معني كلمة نظام system  وما هو المقصود بكلمة مدمج Embedded
معني System     
بأبسط صورة هو عبارة عن مجموعة من العناصر يتم ربطها معا لآداء غرض معين بناء على خطة محددة
لكي نفهم معني كلمة نظام فاليك بعض الامثلة التالي للتوضيح :
1) الغسالة الاوتوماتيك
أهم العناصر اللي بيتكون منها نظام غسيل الملابس الأوتوماتيك كالتالي :
·        شاشة عرض الوضع الذي تعمل عليه الغسالة
·        مفاتيح التشغيل و اعداد البرنامج الخاص بالغسالة    
·        الموتور الخاص بالغسالة
·        حساس مستوى المياه
·        مصدر الطاقة و وحدة التحكم
·        حبس لادخال المياه و محبس آخر لاخراج المياه
الغرض من الغسالة الاوتوماتيك
غسل الملابس المتسخة الموجودة داخل حلة الغسالة تبعا لبرنامج معد مسبقا من خلال المستخدم حيث تدور الغسالة عدد محدد من اللفات و المراحل تبعا لعدة قواعد.
الخطة التي يعمل بها نظام الغسالة الاوتوماتيك
 أولا) اتباع الخطوات الآتية):
1-  غسل الملابس من خلال دوران الموتور عدة دورانات محددة بناء على البرنامج الخاص بالغسالة لوقت محدد.
2-  شطف الغسيل بمياه جديدة نظيفة بعد التخلص من المياه الغير نظيفة
3-  بعد الانتهاء من شطف الغسيل تماما يتم دوران الموتور بسرعة عالية لوقت محدد بالبرنامج لتجفيف الغسيل من المياه اعتمادا على قوة الطرد المركزية
4-  تنبيه المستخدم لانتهاء دورة غسيل الملابس من خلال اضاءة مؤشرات التنبية و اصدار صافرة التنبيه لمدة دقيقة واحدة.
ثانيا) يتم عرض كل خطوة من الخطوات السابقة على شاشة العرض بالغسالة.
ثالثا) في حالة حدوث أي توقف مفاجئ مثل انقطاع الكهرباء أو ما إلى ذلك يتم استكمال الجزء المتبقي من البرنامج بدءا من النقطة التي توقف عندها البرنامج.
رابعا) لا يتم تكرار الخطوات السابقة الا في حالة قيام المستخدم باعادة تشغيل البرنامج مرة أخرى بعد وضع ملابس جديدة بالغسالة.

2) نظام عمل الساعة
أهم العناصر اللي بيتكون منها النظام هي الآتي:
·        هيكل أو جسم الساعة الخارجي
·        الوجه الخاص بالساعة
·        الأوستيك الخاص بالساعة
·        التروس الموجودة داخل جسم الساعة
·        عقارب الساعة المتصلة بالتروس
·        البطارية الخاصة بالساعة
الغرض من عمل هذه العناصر
استعراض الوقت ومعرفة الوقت بالتفصيل
الخطة التي تعمل بها هذه العناصر
أولا) تتحرك جميع عقارب الساعة في اتجاه دوراني واحد فقط من اليسار إلى اليمين يعرف باسم اتجاه عقارب الساعة.
ثانيا) يتحرك أطول العقارب و أكثرها رٌفعا بشكل دائري كل ثانية بحيث يدور دورة كاملة و يعود إلى موضعه الأصلي كل 60 ثانية
ثالثا) يتحرك عقرب آخر أقل طولا من السابق بشكل دائري كل دقيقة بحيث يدور دورة كاملة و يعود إلى موضعه الأصلي كل 60 دقيقة
رابعا) يتحرك أقصر العقارب طولا بشكل دائري كل ساعة بحيث يدور دورة كاملة و يعود إلى موضعه الأصلي كل 12 ساعة
خامسا) تعود جميع العقارب إلى موضعها الأصلي كل 12 ساعة من كل يوم
بعد الانتهاء من تحليل النظامين السابقين ومعرفة كيفية نقوم بتحليلهم بدقة بنفس الاسلوب السابق فعليك الان ان تكون قد فهمت ولو بنسبة قليلة معني كلمة نظام
الان سوف نقوم بمعرفة معني كلمة نظام مدمج Embedded System
فالنظام المدمج او ما يسمي ب Embedded System ماهو الا كمبيوتر مبرمج لآداء مهمة واحدة أو عدة مهمات محددة فقط ولا يمكنه تنفيذ أي مهام أخرى
و لكونه كمبيوتر فهذا يعني أنه يتكون من جزئين رئيسيين Hardware, Software تماماً مثل جهاز الكمبيوتر العادي فإذا نظرنا عن قرب لجهاز الكمبيوتر فنجده يتكون من مجموعة من المكونات نعرفها جميعا جيداً مثل ( البروسيسور - وحدات الإدخال و الإخراج - الذاكرة بأنواعها - نظام التشغيل ... إلخ )
أما الـ Embedded systems و لكونه مبرمج لآداء مهمة واحدة أو عدة مهمات محددة فقط كما ذكرنا من قبل فلن يحتاج من كل تلك المكونات سوى ما يكفيه لآداء تلك المهام المحددة حيث ان ال  Embedded system نظام بخيل جدا و في غاية الحرص كما سنرى ..
فعلي سبيل المثال نجد أننا قد نستخدم بروسيسور أقل سرعة عن عمد و ذلك لتوفير استهلاك الطاقة و التي تكون بدورها محدودة بالبطارية المستخدمة - معظم الـ Embedded systems تعمل بالبطارية - و يجب توخي الحرص في استنفاذها
كما نجد أيضا أنه يتوجب علينا استخدام ذاكرة أصغر لتقليل تكلفة التصنيع و من الممكن ألا نحتاج إلى شاشة و قد نستغني عن بعض الإضافات (peripherals ) التي لا حاجة لنا بها مثل الإتصال بالإنترنت أو البلوتوث أو إضافة ذاكرة خارجية أو وجود منفذ USB أو ما إلى ذلك من الإضافات بالموجودة بجهاز الكمبيوتر العادي ..
ليس المقصود بذلك هنا هو عدم استخدام تلك الإضافات فحسب و لكن المقصود هو اختيار بروسيسور لا يدعم أمكانية استخدام تلك الإضافات من الأساس و لكنه يكون أرخص في السعر ..
كذلك ال Software  ايضا المبني علي هذا ال Hardware عليه القيام بالمهام المحددة له فقط
في كل مرة في نفس الوقت و ألا يأخذ أي وقت إضافي فيما يعرف بـ
Real time constrains و قد نجد بعض الـ systems التي يوجد بها نوع من السماحية فيما يعرف بـ Fault tolerant و لكن لا تفرح كثيرا فتلك السماحية تكون محدودة أيضاً حيث تنقسم الـ Real time constrains إلى
 Hard real time constrains, Soft real time constrains
و لتضح الصورة أكثر و لنعرف أهمية أن يكون الـ System يتميز بكونه Real time فلنفكر في التطبيقات الحرجة لتلك الأنظمة مثل جهاز تنظيم ضربات القلب على سبيل المثال فلا يمكن بأي حال من الأحوال أن يحدث تأخير و لو لجزء من الثانية في البرنامج الذي يعمل عليه الجهاز .. مثال آخر هو الـ Air bag الموجودة بالسيارات و التي تعمل عند تعرض السيارة لحادث لحماية السائق من الاصطدام بعجلة القيادة فهل تعتقد أنه سيكون لها أي أهمية اذا تأخرت عن العمل لبضع أجزاء من الثانية بعد حدوث الاصطدام .. بالتأكيد لا
تلخيصاً لكل ما سبق فلكي نقوم بتعريف أي نظام على أنه Embedded system فإليك بعض المواصفات التي يجب أن تنطبق عليه :
1-  يحتوي بداخله على كمبيوتر
2-  يقوم بمهمة واحدة أو عدة مهمات محددة مسبقاً فقط ولا يستطيع تنفيذ غيرها
3-  محدود الذاكرة
4-  محدود الطاقة ( يعمل بالبطاريات عادة )
5 - يحمل بروسيسور محدود الإمكانيات
6 - يتسم نظام التشغيل خاص به ويكون Real time operating system

ومن الامثلة علي الانظمة المدمجة
·        Switches & Routers
·        Mobile phones & Tablets
·        Fax, printer and scanners
·        Mp3, Mp4 and Mp5 players
·        Digital cameras
·        CD/DVD players
·        Microwave
·        Washing machine
·        Medical devices

و قريبا ستكون مزروعة داخل أجسادنا لمتابعة وظائف الجسم الحيوية و ستكون موجودة بكل شيئ نراه حولنا من الإبرة إلى الصاروخ فيما يعرف بـ Internetof things
و نلاحظ من الأمثلة أن الـ Software الخاص بأي منها مرتبط بالـ Hardware المبني عليه فلا يمكن وضع الـ Software الخاص بأي System على الـ Hardware الخاص بـ System آخر بالطبع .. فلن يتحول الـ Microwave إلى Mobile phone

و بعبارة أخرى أكثر دقة فأي System يكون مبني خصيصا على الـ Application المستخدم به و ذلك من خلال اختيار ما يناسبه من :
·        Processor
·        Available memory
·        Amount of I/O
·         Communication protocols
و لكن هل يمكن اعتبار جهاز الكمبيوتر أنه Embedded system ؟
لابد الان انك تعرف الاجابة علي هذا السوال ولكن سنقوم بتوضيح الاجابة بصورة اوضح
فجهاز الكمبيوتر يمكنه القيام بعدد لا نهائي من المهام بناء على الـ software الموجود عليه
 ( تشغيل أغاني - تشغيل فيديو - تحرير النصوص - تشغيل الألعاب - تصميم الجرافيكس - تصفح انترنت ... إلخ ) لذا يمكن وصف الـ Hardware الخاص به بأنه :
General purpose platform that holds different types of software
مما يتعارض بالتالي مع تعريفنا للـ Embedded system في كونه يقوم بمهمة واحدة أو عدد من المهمات المحددة مسبقا فقط .. لكن رغم ذلك فيمكن النظر إلى بعض مكونات الكمبيوتر على أنها Embedded systems على سبيل المثال DVD player و كارت الـ LAN لكل منهما مهمة محددة يقوم بها و تنطبق عليه كافة مواصفات الـ Embedded system السابقة لذلك يمكن اعتبارهما كذلك
ينبغي على مبرمج الأنظمة المدمجة أن يتعامل مع كل تلك القيود التي ذكرناها
و كون الـ Software مرتبط بشدة بالـ Hardware يستوجب على المبرمج أن يكون على علم دقيق بالـ Hardware الذي يتعامل معه مما يتطلب دراسته الجيدة للإلكترونيات و الفيزياء
أدوات التطوير أكثر تعقيدا فأنت تقوم بكتابة الـ Software على جهاز كمبيوتر يحمل بروسيسور مختلف و له إمكانيات مختلفة عن البروسيسور الحقيقي الذي سيعمل عليه الـ Software في الواقع و لا يمكنك تجربة الـ Software بالكامل و التأكد من فاعليته من خلال الكمبيوتر المستخدم في كتابة الـ Software قبل أن تقوم بحرقه على الـ Hardware الفعلي الذي سيعمل عليه لاحقا لتتأكد من فاعليته على أرض الواقع و ليس مجرد محاكاة تقوم بها
من المهم جدا أن تراعي مشكلة محدودية الطاقة كون معظم الـ Embedded systems تعمل بالبطارية لذا قد تلجأ إلى استخدام Sleep mode أو استخدام Clock rate أقل إذا أصبح الحمل على البروسيسور أقل و إن زاد الحمل فيتم زيادة الـ Clock rate مرة أخرى
و بالنهاية فأجور و مرتبات من يعملون بمجال الـ Embedded systems engineering تكون أعلى من أجور أي Software engineer آخر و كذلك إمكانية دخول هذا المجال و التخصص به لغير دارسي مجال الهندسة تكاد تكون مستحيلة بعكس مجال البرمجة التقليدي سواء في تطوير مواقع الإنترنت أو الموبايل أو حتى برامج الـ Desktop و الذي يمكن أن يتخصص به أي شخص و إن لم يدرس الهندسة من قبل.
لغات البرمجة الخاصة ببرمجة الانظمة المدمجة
a)  Assembly programming
فى الشغل مش بتحتاج الاسميلى الا فى حالات قليلة.. لما تكون محتاج تعمل جزئية فى الكود عاوزها تتنفذ فى وقت صغير جدا لانه التطبيق اللى بتعمله سرعة تنفيذ الكود فى الجزئية دى حرجة ... زى التطبيقات الخاص بتتبع الصواريخ و دقة التوجيه مثلا.
كمان بيكون فيه وظائف خاصة بيأديها البروسيسور.. عشان تخليه ينفذها لازم تكتبله امرها بالاسميللى لانها ملهاش مقابل فى لغة اخري ك C
لكن الطبيعى فى الشركات انه الشغل بيكون بلغة السى و هنوضح فيما بعد الاسباب
الخلاصة.. انك محتاج يكون عندك فكرة عن لغة الاسميبلى لكن مش محتاج تحترفها
b) C, advanced C and data structure
لغة السى ميزتها انها لغة وسطية  قريبة من الهاردوير لكن مش قوى زى الاسمبيلى.. و مفهوم syntax بتاعتها لكن ليست كاللغات ال High Level Langauge..
المقصود بلغة السى يعنى ازاى تعرف متغيرات و Functions و Array و Pointers و ازاى تعمل برنامج يشتغل بدقة.
اما الـ advanced C ازاى تستخدم الحاجات اللى مش شائعة فى شغل الطلبة و الكلية فى البرامج بتاعتك.. زى انك تستخدم Pointers كتيير و يكون بين Pointers علاقات.. و تستخدم array of pointers to structures
و تتعامل مع الداتا مظبوط و تبعتها و تستقبلها فى فنشكنز مختلفة.. و يكون عندك خلفية عن مكتابات لغة السى و Functions المتاحة فيها
لغة السى ليها كذا Standard و اللى بنشتغل عليه فى Embedded  هو
ANSI standard which is C99 & C89 as I remember
 فعليك الان ان تتقن لغة ال C اذا ارت ان تدخل الي عالم ال Embedded systems وبرمجته
فلتكن على يقين أنك بمجرد دخولك هذا المجال قد أصبحت مميزا عن العديد ممن حولك ممن يعملون في مجال الـ Software لكن مع ذلك عليك أن تعلم منذ البداية أيضا أن هذا المجال هو لأصحاب النفس الطويل و الآمال و الطموحات الكبيرة نظرا لكثرة ما قد تحتاج لتتعلمه لتتمكن من التميز في هذا المجال.


Contact

Get in touch with US


about us

simple description


ads