Skip to content

Instantly share code, notes, and snippets.

@noureddin
Last active July 10, 2020 22:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save noureddin/99b5adfaab371354b319c97087b985f3 to your computer and use it in GitHub Desktop.
Save noureddin/99b5adfaab371354b319c97087b985f3 to your computer and use it in GitHub Desktop.
الطريق إلى الأنظمة المدمجة

الطريق إلى الأنظمة المدمجة

نقلا عن منشور للدكتور المهندس وليد عيسى، صاحب دورة الإلكترونيات العملية (مذكورة في آخر المنشور).

المحتوى مطابق للمنشور الأصلى وقت نسخه (عدا السطر الأول الخاص بحذف منشورات سابقة). لم أعدّل أي حرف فيه. وإنما فحسب طوّعت تنسيقه ليناسب Markdown (لغة تنسيق مستندات مستخدمة على GitHub).

بوست ليس للحفظ والنشر فقط .... وانما التطبيق ... ولا تفتح الروابط الا بعد الانتهاء من قراءته ...

الأنظمة المدمجة ... لماذا ؟ .... وكيف ؟ ...

علم الأنظمة المدمجة هو علم تطوير أنظمة يمكن أن نسميها مؤتمتة – حساسة – ذكية – مستقلة – لها دماغها الخاص وتقرر ما تقوله لها أو ما تستنتجه هي ...

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

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

علشان نتعلم برمجة وفي نفس الوقت نكون قريبين من الالكترونيات ... انا أنصح بالاردوينو .... وانا اعتبرها تعلمك البرمجة البسيطة ومن غير تعقيدات وتفاصيل لا نحتاجها ... وأكرر الاردوينو جيدة كبداية ... ولكن من وين المصادر ...

يمكنك البدء والتطبيق من كتب ممتازة جدا

وهنا بعض دورات اليوتيوب المجانية ...

بعد امضاء بعض الوقت هناك ستتعرف على ماهية الـ (If Statement – For, While loops, switch, …) وهذا أقل ما تحتاجه ... ويكون جيد لو انك تعرفت على المقاطعات (Interrupts) وكيف تنفذها .... عند هذه النقطة سوف تدرك ما اذا كان لك حس برمجي ام لا ... وهذا ضروري لما بعد ذلك ... والا لا تكمل والا هيوجعك راسك ....

لو كان عندك خلفية برمجية وتعرفت على الاردوينو فقد حققنا اضافة ايضا ... المهم ماذا بعد ....

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

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

كتاب لتعلم متحكمات اتمل (AVR) ...

وهنا دورات للبيك على اليوتيوب ...

وهنا دورة خارقة للاتمل للمهندس وليد بليد :: http://bit.ly/32B62LU


السؤال الاهم .... ماذا اتعلم .... يجب ان تفهم جيدا تكوين المتحكم الذي تتعامل معه من حيث المسجلات والاوامر ... وتتعلم كيف تربط المتحكم بشتى انواع القطع المحيطية مثل لوحة مفاتيح وشاشات العرض وايضا ارسال بيانات للحاسوب ... وهذا هو المتوقع ان تنجزه من خلال هذه الدورات ....

ولكن السؤال ... هل اتوقف هنا ..... بالطبع يمكن وبشكل كبير أيضا ان تتوقف هنا ... وسأقول لك السبب لتكون مرتاح .... اغلب اغلب اغلب ما حولنا من انظمة مدمجة .. هي معتمدة على هذا المستوى من العلم لحتى اللحظة ... يعني المنازل الذكية – الاجهزة الذكية مثل ثلاجة – غسالة او غيرها – المتحكمات في بعض المركبات – ارسال البيانات المتوسطة .. انترنت الاشياء ... كل هذا يمكنك تحقيقه ... فقط اذا تعلمت بيك او اتمل .... ولا تقلق عما يأتي بعدها حتى لو كان متطور جدا ... حتى لو أردت أن تعمل متحكم يقوم بوظيفة ترتكز على ذكاء صناعي بسيط .. فهنا محاضرة عربية عن كيفية عمل هذا بمتحكمات بسيطة... الرابط :: http://bit.ly/32DzPDr

وكل ما سبق من متحكمات تسمى متحكمات الـ (8 bit) لان كل تركيب المسجلات داخلها من ثمان خانات فقط جيدة لتعمل اشياء كثيرة ولكن لا تستطيع عمل حسابات او معالجة بسرعة عالية جدا ودقة ....

ولكن اذا رأيت مثلا الهواتف الذكية – الحواسيب المصغرة – اجهزة تحليل بيانات معقدة – انظمة ذكاء صناعي متشعب ... فهنا يمكنك التفكير في شيء اخر .. هذا الشيء هو متحكمات مثلا (16 bit – 24 bit – 32 bit).... ومن افضل ما على الساحة الان هو المتحكمات (32 bit) المبنية على نواة من شركة ARM .... ومنها STM32F XXX ومنها عوائل كثيرة بمميزات كبيرة ... والشباب العربي بصراحة يحاول ملء هذا الفراغ وهنا مصادر عربية جميلة جدا .... ولكن لحظة .. لا تبدأ الا اذا كنت حابب المجال والا هيوجعك راسك جدا ...

ولكن هناك سؤال ... اذا انا تعلمت مثلا متحكمات البيك ... لماذا لا انتقل الى متحكمات بيك متطورة (32 bit) تضاهي قدراتها قدرات متحكمات ARM .... وهنا اقول لك ... رائع نعم يمكنك ذلك ... ويمكنك البقاء مع شركة واحدة .... ولكن السوق يجبرنا بعض الاحيان للانتقال وهذا بسبب الشهرة الواسعة لهذا المتحكم من شركة ARM واعتماد كبرى الشركات عليه ... وبعض الوظائف تتطلب هذا من خلال مشاهدتي ..... للاسف شركة ارم ما لها متحكمات (8 bit)

هناك مستوى اخر من المتحكمات (ان صح ان اطلق عليها متحكمات) وهي تسمى FPGA ... اتركها والزمن سيعرفك ما هي لاحقا ... ولكنها باختصار سريعة – قوية ولكنها غير مشهورة على مستوى المنتجات الصغيرة لانها اعلى من اللازم على الاقل لحتى هذه اللحظة ... ولكن المهندس وليد بليد عمل كتاب يكون مدخلا لها :: http://bit.ly/FPGAWalidBalid

ويمكنك ايضا التعرف على الراسبيري باي (لا احبها) والبدء بكتاب المهندس عبد الله علي :: http://bit.ly/34N2F5V

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

هذا كله كووووووم ... والالكترونيات المجردة كوم تاني ..... فالانظمة المدمجة هي الدماغ ... ولكنها ليست العضلات ... الالكترونيات المجردة هي العضلات .... علشان هيك ايضا هناك ثلاث دورات على اليوتيوب لتعلم الالكترونيات بحق وبكل عضلاتها ...

مع التحية
وليد عيسى

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment