نقلا عن منشور للدكتور المهندس وليد عيسى، صاحب دورة الإلكترونيات العملية (مذكورة في آخر المنشور).
المحتوى مطابق للمنشور الأصلى وقت نسخه (عدا السطر الأول الخاص بحذف منشورات سابقة). لم أعدّل أي حرف فيه. وإنما فحسب طوّعت تنسيقه ليناسب Markdown (لغة تنسيق مستندات مستخدمة على GitHub).
بوست ليس للحفظ والنشر فقط .... وانما التطبيق ... ولا تفتح الروابط الا بعد الانتهاء من قراءته ...
الأنظمة المدمجة ... لماذا ؟ .... وكيف ؟ ...
علم الأنظمة المدمجة هو علم تطوير أنظمة يمكن أن نسميها مؤتمتة – حساسة – ذكية – مستقلة – لها دماغها الخاص وتقرر ما تقوله لها أو ما تستنتجه هي ...
وهذه الانظمة تبدأ من عندنا نحن كمهندسين/هواة ... بالتعامل مع ما يسمى المتحكمات الدقيقة .. وهذه المتحكمات هي عبارة عن دوائر متكاملة / شرائح الكترونية تسمح لك باعطائها وظيفة من خلال أوامر برمجية ... وبالمختصر المفيد .. يجب أن نعرف ما هو شكل البرمجة ... وما هي الشريحة التي نتعامل معها ... وكيف نكتب لها أوامر برمجية ... وسنحصل على نظام مدمج يمكن ان يتحكم أو يقرر أو يعمل اي شيء ... وهذا هو أساس تطبيق علوم كثيرة منها التحكم – الأتمتة – الذكاء الصناعي – الروبوتات – معالجات الاشارة .. والكثير منها ... وحط في بالك .. لا يوجد شخص يملك كل هذه العلوم .... علشان هيك التخصص في واحد او اثنين منهم هو الصواب
يبقى علشان تدخل المجال هذا يجب أن يكون عندك خلفية عن كيف تبدو البرمجة ... وهذا يتم بان تكون درست بالجامعه او بالدراسة الذاتية ... هناك العديد من لغات البرمجة ... ولكن هناك أساس مشترك بينهم جميعا في كتابه بعض الاوامر .... ومن اشهر ما يمكن ان تتعلمه هو لغي السي (C) ... ولكن لا تبدأ بها بشكلها المجرد الان .. فلن تحتاج كل ما تتناولها ... انتظر .... أنا اعتقد ان كل من يتابعني هو شخص يحب الالكترونيات وتطبيقاتها ... وعلاقته بالبرمجة معدومة او جيدة أو سطحية .... والقليل جدا هو محترفون برمجة .... وبالتالي لن نركز على البرمجة كشيء يجب نتعلمه من الصفر الى الاحترف ولكن هي وسيلة فقط نتعلم منها ما نحتاجه ...اعتقد متابعيني هم الاشخاص اللي بدهم في النهاية يعملوا منتج الكتروني بمساعدة الانظمة المدمجة وعلاقتهم بالبرمجة انها وسيلة لتنفيذ هذه المهمة ....
علشان نتعلم برمجة وفي نفس الوقت نكون قريبين من الالكترونيات ... انا أنصح بالاردوينو .... وانا اعتبرها تعلمك البرمجة البسيطة ومن غير تعقيدات وتفاصيل لا نحتاجها ... وأكرر الاردوينو جيدة كبداية ... ولكن من وين المصادر ...
يمكنك البدء والتطبيق من كتب ممتازة جدا
- كتاب اردوينو ببساطة للمهندس عبدالله علي :: http://bit.ly/33AqGgj
- وهنا كتاب جديد للمهندس محمود مسلماني :: http://bit.ly/32vsEx7
- وايضا كتاب للمهندس سامي قرامي :: http://bit.ly/33BvkLd
وهنا بعض دورات اليوتيوب المجانية ...
- للمهندس محمد يوسف :: http://bit.ly/2Q4TeL9
- للمهندس حمدي سلطان:: http://bit.ly/2CzBxes
- والمهندس حسام عرفة:: http://bit.ly/2CxEMmU
- والمهندس سامي قرامي :: http://bit.ly/2CsuG6R
- ومن شركة روبوتيكس :: http://bit.ly/2CyaWyI
- وم. وليد القاسم :: https://bit.ly/2QUK5o2
- وايضا من م حسن ناصر :: http://bit.ly/2K3lGt1
بعد امضاء بعض الوقت هناك ستتعرف على ماهية الـ (If Statement – For, While loops, switch, …) وهذا أقل ما تحتاجه ... ويكون جيد لو انك تعرفت على المقاطعات (Interrupts) وكيف تنفذها .... عند هذه النقطة سوف تدرك ما اذا كان لك حس برمجي ام لا ... وهذا ضروري لما بعد ذلك ... والا لا تكمل والا هيوجعك راسك ....
لو كان عندك خلفية برمجية وتعرفت على الاردوينو فقد حققنا اضافة ايضا ... المهم ماذا بعد ....
أنا اريد ان اخبرك بأن التعامل مع المتحكات الدقيقة ليس كالتعامل مع الاردوينو ... لانه الاردوينو تسهل عليك التعامل مع القطعة الالكترونية بدون فهم ماذا يدور داخل المتحكم .... وهذا لا يحدث اذا ما تعاملت مع متحكمات اخرى او متطورة اكثر بهذا الشكل ...
اذا ما اردت الانتقال خطوة ... فانا انصح ان تذهب لتعلم متحكمات الـ (PIC) من شركة ميكروشيب أو (AVR) من شركة اتمل ... وهنا ستتعامل مع برامج اخرى ولكن تتشارك في شكل الاوامر البرمجية .... أي منهما تختار لا تقلق اللي يرتاح له قلبك أو قلب جهازك او اللي متوفر في بلدك ... الاثنين اقوياء ومشهورات .... وهنا ستتعامل معهم بشكل اكثر تفصيلي ... بمعنى انك لن تستطيع ان تعمل برنامج من غير ما تكون فاتح الداتاشيت وتشوف شو القطعة بتقولك ... وعايزه تركيز كبير ... المهم من وين تتعلمهم .... الحمد لله المكتبة العربية فيها مصادر جميلة .... منها ::
- كتاب لتعلم البيك للمهندس حمدي سلطان :: http://bit.ly/2Q4NFwf
- وهذا الكتاب لمجموعة مهندسين :: http://bit.ly/2K90SjQ
كتاب لتعلم متحكمات اتمل (AVR) ...
- كتاب للمهندس عبد الله علي :: http://bit.ly/32ysOE0
- وكتاب خارق للمهندس وليد بليد :: http://bit.ly/2Q63V04
وهنا دورات للبيك على اليوتيوب ...
- مصدر للمهندس حمدي سلطان :: http://bit.ly/2qCOnpM
- مصدر للمهندس خالد مجدي :: http://bit.ly/2O2ja7m
- مصدر للمهندس سمير سمور :: http://bit.ly/32wIyav
- مصدر للمهندس محمد يوسف :: http://bit.ly/34PcjFb
- مصدر للمهندس كيرلس رفعت :: http://bit.ly/2qLuRqZ
وهنا دورة خارقة للاتمل للمهندس وليد بليد :: http://bit.ly/32B62LU
السؤال الاهم .... ماذا اتعلم .... يجب ان تفهم جيدا تكوين المتحكم الذي تتعامل معه من حيث المسجلات والاوامر ... وتتعلم كيف تربط المتحكم بشتى انواع القطع المحيطية مثل لوحة مفاتيح وشاشات العرض وايضا ارسال بيانات للحاسوب ... وهذا هو المتوقع ان تنجزه من خلال هذه الدورات ....
ولكن السؤال ... هل اتوقف هنا ..... بالطبع يمكن وبشكل كبير أيضا ان تتوقف هنا ... وسأقول لك السبب لتكون مرتاح .... اغلب اغلب اغلب ما حولنا من انظمة مدمجة .. هي معتمدة على هذا المستوى من العلم لحتى اللحظة ... يعني المنازل الذكية – الاجهزة الذكية مثل ثلاجة – غسالة او غيرها – المتحكمات في بعض المركبات – ارسال البيانات المتوسطة .. انترنت الاشياء ... كل هذا يمكنك تحقيقه ... فقط اذا تعلمت بيك او اتمل .... ولا تقلق عما يأتي بعدها حتى لو كان متطور جدا ... حتى لو أردت أن تعمل متحكم يقوم بوظيفة ترتكز على ذكاء صناعي بسيط .. فهنا محاضرة عربية عن كيفية عمل هذا بمتحكمات بسيطة... الرابط :: http://bit.ly/32DzPDr
وكل ما سبق من متحكمات تسمى متحكمات الـ (8 bit) لان كل تركيب المسجلات داخلها من ثمان خانات فقط جيدة لتعمل اشياء كثيرة ولكن لا تستطيع عمل حسابات او معالجة بسرعة عالية جدا ودقة ....
ولكن اذا رأيت مثلا الهواتف الذكية – الحواسيب المصغرة – اجهزة تحليل بيانات معقدة – انظمة ذكاء صناعي متشعب ... فهنا يمكنك التفكير في شيء اخر .. هذا الشيء هو متحكمات مثلا (16 bit – 24 bit – 32 bit).... ومن افضل ما على الساحة الان هو المتحكمات (32 bit) المبنية على نواة من شركة ARM .... ومنها STM32F XXX ومنها عوائل كثيرة بمميزات كبيرة ... والشباب العربي بصراحة يحاول ملء هذا الفراغ وهنا مصادر عربية جميلة جدا .... ولكن لحظة .. لا تبدأ الا اذا كنت حابب المجال والا هيوجعك راسك جدا ...
- هذه الدورة على اليوتيوب للمهندس أحمد الديب :: http://bit.ly/2X5SczR
- وهذه الدورة للمهندس محمد نور الدين :: http://bit.ly/2q1xTYd
- وهذا الكتاب الجميل للمهندس حسام عرفة :: http://bit.ly/2X5Holw
ولكن هناك سؤال ... اذا انا تعلمت مثلا متحكمات البيك ... لماذا لا انتقل الى متحكمات بيك متطورة (32 bit) تضاهي قدراتها قدرات متحكمات ARM .... وهنا اقول لك ... رائع نعم يمكنك ذلك ... ويمكنك البقاء مع شركة واحدة .... ولكن السوق يجبرنا بعض الاحيان للانتقال وهذا بسبب الشهرة الواسعة لهذا المتحكم من شركة ARM واعتماد كبرى الشركات عليه ... وبعض الوظائف تتطلب هذا من خلال مشاهدتي ..... للاسف شركة ارم ما لها متحكمات (8 bit)
هناك مستوى اخر من المتحكمات (ان صح ان اطلق عليها متحكمات) وهي تسمى FPGA ... اتركها والزمن سيعرفك ما هي لاحقا ... ولكنها باختصار سريعة – قوية ولكنها غير مشهورة على مستوى المنتجات الصغيرة لانها اعلى من اللازم على الاقل لحتى هذه اللحظة ... ولكن المهندس وليد بليد عمل كتاب يكون مدخلا لها :: http://bit.ly/FPGAWalidBalid
ويمكنك ايضا التعرف على الراسبيري باي (لا احبها) والبدء بكتاب المهندس عبد الله علي :: http://bit.ly/34N2F5V
المهم اخواني .... انا شخصيا تعلمت البرمجة في الجامعة وقبل الجامعة على برنامج فيجوال بيسك (Visual Basic) .... وتعلمت البيك بشكل شخصي وطورت نفسي فيه .... والان احاول تعلم متحكمات ارم فقط لاني اريد ان اعمل شيء يعتمد عليها وليس لسبب اخر ... انت معك الوقت والمصادر ... اما عن الاحتياجات المادية فلن تحتاج الكثير ابدا ... فاذا توفرت اردوينو في بلدك سيتوفر باقى الاشياء معها .... المصادر والوقت هو رأس مالك الان لتكون مهارة جديدة يمكن ان تكون باب رزق لك أو تنافس فيها غيرك ....
هذا كله كووووووم ... والالكترونيات المجردة كوم تاني ..... فالانظمة المدمجة هي الدماغ ... ولكنها ليست العضلات ... الالكترونيات المجردة هي العضلات .... علشان هيك ايضا هناك ثلاث دورات على اليوتيوب لتعلم الالكترونيات بحق وبكل عضلاتها ...
- دورة الالكترونيات العملية :: http://bit.ly/33B3mPI
- دورة الالكترونيات الرقمية :: http://bit.ly/32DmScN
- دورة التصميم الالكتروني المحترف :: http://bit.ly/3263fdK
مع التحية
وليد عيسى