ما هي بعض المشاريع البسيطة التي يمكنك القيام بها لتعلم أساسيات البرمجة المضمنة؟[مغلق]

StackOverflow https://stackoverflow.com/questions/111254

  •  02-07-2019
  •  | 
  •  

سؤال

بالنسبة لشخص يرغب في تعلم أساسيات البرمجة المضمنة، ما هي بعض المشاريع البسيطة التي يمكنه التعامل معها؟

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

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

إذا كان هناك كتاب يغطي شيء من هذا القبيل، هل يمكنك وضع رابط له؟

هل كانت مفيدة؟

المحلول

لقد اشتريت اردوينو مؤخرًا، وهو أمر سهل الإنشاء والتشغيل.إنها لوحة صغيرة وغير مكلفة إلى حد ما تعمل على تشغيل Atmega168 مع منفذ الإدخال/الإخراج والطاقة وUSB وغيرها من الأشياء الممتعة.يقوم بتشغيل كود C الأصلي (كما يتوقع المرء من شريحة Atmega) ويمكن استخدامه لقيادة الدوائر من خلال البرامج.

نصائح أخرى

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

هدف:

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

القطع:

  • واحد 8 بت AT90USB1287 لوحة عرض وحدة التحكم الدقيقة
  • مستشعر درجة حرارة واحد (موجود على متن AT90)
  • محرك DC واحد (حساس للجهد بين 3.3 فولت و5.0 فولت)
  • المروحة أو شفرة المروحة التي تناسب محرك التيار المستمر
  • واحد L293D جسر H
  • منظم 5 فولت واحد

تصميم:

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

مستشعر درجة الحرارة موجود بالفعل على متن AT90USB1287 ومتصل بمنفذ AD الخاص بوحدة التحكم الدقيقة.يُطلب منك قراءة ورقة البيانات الخاصة بوحدة التحكم الدقيقة هذه وكتابة التعليمات البرمجية لتكوين مستشعر درجة الحرارة واستقصائه.

سيتم التحكم في محرك التيار المستمر من خلال تعديل عرض النبض.يمكن لـ PWM التحكم في سرعة محرك DC المرفق عن طريق تغيير دورة التشغيل لإشارة PWM.لمزيد من المعلومات حول PWM، قم بمراجعة المعلومات الكبيرة والمفصلة (ربما أكثر من اللازم) ورقة البيانات لAT90USB1287.

بمجرد تشغيل مستشعر درجة الحرارة ومحرك التيار المستمر، تكون قد أكملت هذا المشروع.يمكن استخدام الجسر L293D H ومنظم 5V لزيادة الطاقة المقدمة لمحرك التيار المستمر (من 3.3 فولت على اللوحة مقابل 5.0 فولت من الجسر H).

في تجربتي، هناك "حدة" تعلم أولية، إذا صح التعبير، في الأنظمة المدمجة التي قد يكون من الصعب التغلب عليها، ولكن بمجرد القيام بذلك ستصاب بخيبة أمل إذا كان المشروع الأول الذي اخترته بسيطًا جدًا.

هناك بعض الاستثمار الأولي في أدوات التطوير (أي.الرقائق والمبرمج على أقل تقدير).لن يسمح لك بناء مشروع بسيط للغاية باستكشاف المجالات الأكثر فائدة في الشريحة، وبالتالي فإن مقدار المعرفة التي ستحصل عليها لن يتناسب مع حجم الموارد التي تستثمرها؛سواء في الوقت أو المال.

أقترح صنع شيء أكثر جاذبية من بضعة مصابيح LED وامضة.الجزء الأصعب في تطوير منصة مدمجة جديدة، بالنسبة لي، هو دائمًا الحصول على التجميع الأولي وتحميل البرنامج الأول على الشريحة.نظرًا لأن هذه الخطوة هي نفسها بغض النظر عن مدى تعقيد أو سهولة مشروعك الأول، فسأصوت مرة أخرى بقوة لصالح الشروع في مشروع معقد إلى حد ما على الفور.يتبادر إلى الذهن شيء مثل جهاز التحكم عن بعد بالأشعة تحت الحمراء.على أية حال، توقع استثمار الكثير من الوقت إذا كنت تريد حقًا تعلم أي شيء.

أود أيضًا أن أقترح عدم اللجوء إلى شيء مثل BASIC STAMP أو حتى Arduino، نظرًا لأن هذه الأجهزة لن تعلمك المهارات الحقيقية اللازمة للقيام بالبرمجة المدمجة.إنها أكثر من منصة ستقوم بتشغيل التعليمات البرمجية عالية المستوى الخاصة بك.أنت تستخدم نسخة ممجدة من هذا النظام الأساسي لقراءة هذا المنشور، جهاز الكمبيوتر الخاص بك؛بالكاد جهاز مدمج.على الجانب الإيجابي، فإنها ستوفر عليك الكثير من المتاعب إذا لم تكن على دراية بالإلكترونيات.

احصل على شريحة 8 بت من صنع Microchip أو ATMEL، وكلاهما شائع جدًا ورخيص نسبيًا للبدء، واحصل على مبرمج وربما لوحة تجريبية، تعمل اللوحة التجريبية إذا لم تكن على دراية بالإلكترونيات، لإحدى تلك الرقائق.والأهم من ذلك، قراءة أوراق البيانات المرفقة، ومحاولة بناء شيء مفيد إلى حد ما.البرنامج في C أو المجمع.يعد ATMEL أفضل بكثير مع المترجمين والدعم لـ C.على المدى الطويل، ستكون سعيدًا لأنك لم تضيع وقتك في تعلم منصة لن يستخدمها أي شخص بكامل قواه العقلية لمنتج تجاري، وستكتسب فهمًا أفضل للتعامل مع قيود الأنظمة المدمجة، حيث لا يوجد أفضل منها مصدر المعلومات من ورقة البيانات.

يوجد كتاب جيد جدًا حول هذا الموضوع يسمى "Embedded Linux Primer" (مؤلفه كريستوفر هالينان).يأخذك هذا الكتاب إلى التفاصيل الأساسية لتطوير البرامج على نظام Linux الأساسي.قم بإقران ذلك بنظام تطوير غير مكلف نسبيًا ولا حدود للسماء.

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

سيكون المشروع البسيط (المشابه لـ Hello World) هو إنشاء مطارد LED.انت تحتاج:6 إلى 10 مصابيح LED ومفتاح بسيط.

في كل مرة تضغط فيها على المفتاح، تومض مصابيح LED بنمط مختلف.بعض النمط:
1 LED للتمرير لليمين
1 LED التمرير إلى اليسار
المصابيح بالتناوب
...

سيعلمك هذا عن منافذ الإدخال/الإخراج، وكيفية استخدام المؤقت، وربما كيفية استخدام المقاطعة للمحول (أو يمكنك استخدام الاستقصاء).

أنا شخصياً سأقوم ببناء مسجل صوت بسيط.دعنا نتدرب على استخدام محول AD وإخراج موجة PWM.كما أنه سيعلم كيفية تقسيم الكود للسماح بالتحكم في التسجيل والتشغيل.القيد الوحيد هو مقدار الذاكرة، ولكن حتى عينة بحجم 1 كيلو بايت يجب أن تكون ممتعة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top