ماذا احتاج لتعلم embedded Systems programming ?

تعرفت مؤخرًا على embedded systems و اعجبتني فكرتها و قررت ان اتعلمها

لكني اشعر بتشتت نوعًا ما , فعندما بحثت في الامر , كل شخص يذكر شيء مختلف

فلذلك ماذا احتاج لتعلم embedded Systems programming ?


  • تبدأ بدراسة أنظمة العد المختلفة و العمليات عليها

  • تدرس logic gates و boolean algebra

  • تدرس الدوائر الإلكترونية و كيفية عمل الترانزستور (لا داعي للتعمق)

  • تدرس لغة C و أنا شخصيا أعتبرها من أفضل و أسهل لغات البرمجة

كل ما تحتاجه فقط التركيز و لا أخفي عليك المجال برمجته واضحة و بسيطة

ففي البداية يمكنك الإكتفاء بالأساسيات

  • عند وصولك لهذه النقطة أصبحت مستعد للدخول في عالم embedded systems

و هنا الإختيارات كثيرة هناك من يختار arduino و هو إختيار لا أنصح به لأنه يبسط الموضوع

بطريقة غير مقبولة ، الأفضل أن تبدأ مع Atmega32 أو أحد منتجات PIC مثل 16f877a

  • بالنسبة لمصادر التعلم فهي كثيرة لكني أفضل:

An embedded software primer

avr microcontroller and embedded systems

ككتب أما كفيديوهات فأفضل :

بالتوفيق

شكرًا لك كثيرًا , لكن بخصوص الاردوينو , اخاف ان اشتريها و تكون إضاعة للاموال , فهلتنصحني بها ام اشتري غيرها ؟

تدرس لغة C و أنا شخصيا أعتبرها من أفضل و أسهل لغات البرمجة

ماذا عن c++ ? انا درست اساسياتها و OOP , هل هذا كافي ؟ ام انتقل للـ C ؟ ام ماذا ؟

إذا كنت تبحث عن تعلم المجال بطريقة سليمة فالأفضل أن تبدأ مع atmega32

و arduino في النهاية يستعمل atmega ، لكن الاختلاف في مستوى البرمجة

atmega32 سيعطيك استفادة أكبر و سيمكنك من الوصول لجذور المواضيع

ماذا عن c++ ? انا درست اساسياتها و OOP , هل هذا كافي ؟ ام انتقل للـ C ؟ ام ماذا ؟

أغلب microcontrollers تستعمل C ، فالأفضل أن تتابع مع C ، أيضا لغة C مع أنها أقدم

إلا أنها تعتبر جزء من C++ ، فبدون oop أصبحت C++ تقريبا هي نفسها C !

سؤال اخر و اتمنى ان لا اكون ازعجتك بكثرة اسئلتي , لاحظت ان هناك العديد من الإصدارات للـ Atmega32 :

فأي واحدة تنصحني ( من القائمة السابقة) ان اشتريها ؟

و شكرًا لك مرة اُخرى .

ATMEGA32-16PU DIP-40 هو المنشود

و الأفضل قبل تركيب أو تطبيق أي شيء على أرض الواقع

تمثيل مشروعك على برنامج محاكة ، تجنبا للمشكلات

سؤال اخر و اتمنى ان لا اكون ازعجتك بكثرة اسئلتي

لا إزعاج و لا ما يحزنون ، دائما في الخدمة ^__^

أهذه هي التي تقصدها ؟ :

حسب ما رأيته هي عبارة عن معالج , صحيح ؟

نعم هذه هي ، بالمناسبة هي ليست فقط معالج ، بل تسمى MicroController (متحكم صغير)

و في مجال embedded systems هي وحدة البناء الأساسية لأي نظام مدمج ،فهنا لا

نتعامل مع حواسيب كاملة العتاد ، هنا كل شيء موجود على هذه الرقاقة الصغيرة من معالج

و RAM و ROM و الكثير من الأمور التي ستعرفها بالدراسة

لكن لحظة , كيف سأتعامل معها إذا كانت عبارة عن معالج فقط ؟ هل يأتي معها ادوات ؟

يعني ماهي الادوات التي سوف استعملها بالضبط حتى اتعامل مع تلك القطعة ؟

  • Crystal و هي المسؤولة عن توليد pulses و تشغيل microcontroller

  • power supply لإمداد الطاقة

كيف سأتعامل معها إذا كانت عبارة عن معالج فقط ؟

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

لكن بأحجام و مقاييس أصغر + أشياء إضافية للتعامل مع مشاريع الأنظمة المدمجة

لمزيد من التوضيح ألق نظرة على هذا المثال البسيط :

ماذا عن board ? اي نوع يجب ان استخدم ؟

BreadBoard بأي مقاس يناسبك

طيب هل يمكنك ان تقترح علي واحد من الموقع السابق ؟

و هل انا بحاجة إلى AVR USB Programmer ؟

و اشكرك جدًا على إجاباتك :)

  • مع الأسف جميع breadboard في هذا الموقع صغيرة و لن تكون عملية

يمكنك التواصل معهم و سؤالهم إذا توافر أحجام أكبر

  • طبعا ستحتاج AVR USB Programmer لنقل الكود لذاكرة المتحكم

  • أيضا يفضل لو تبحث عن atmega32 kit ، فهي مخصصة لأغراض التعليم و غالبا

تحتوي على كل ما تحتاجه

العفو :)

بخصوص development kit , هل هذه الحزمة جيدة : ؟

ام هذه ؟

طبعا هذه ، بها كل ما ستحتاجه بل و أكثر

كبداية اعتذر عن كثرة اسئلتي المزعجة

لكن المشكلة ان سعر تلك القطعة مرتفع نوعًا ما (هذا دون ان احسب باقي المتطلبات)

لذلك كنت افكر بأن انتقل لمتحكمات PIC مع لغة c , فما رأيك بـ PIC16F877A مع QL200 PIC DEVELOPMENT BOARD ? هل ستكون مناسبة ؟

و شكرًأ للمرة الثانية .

سواء بدأت مع PIC أو atmega32 كلها طرق فعالة

بالنسبة لهذه kit إذا لم تحتوي على LCD (شاشة عرض)

فلا أرى داعي لشراؤها ! ، بالمناسبة توفيرا للمال دعك

من موضوع kit و اشتري الاشياء الاساسية، و يفضل

قبل كل هذا أن تبدأ في المجال و تطبق على أي برنامج

محاكاه ، بعدها انتقل للتطبيق على hardware حقيقي .

لا تضيع وقتك في التفضيلات بين أشياء لا تعرف فائدتها بعد !!

انطلق و بعدها أسأل :)

تعليق مكرر

اخي طيب سؤال , انا بدأت اضيع بين المتطلبات .

هل من الممكن شراء arduino uno ثم اربطها مع atmega32 ؟ ام انها طريقة غير جيدة ؟

و لماذا الربط ، الموضوع بسيط ، اختر احداهما و أبدأ

لكن من وجهة نظري التعلم مع atmega32 أفضل

لأنه سيعطيك حرية أكبر ، أيضا سيتيح لك الوصول

لمستويات أعمق في التعلم