كتاب المتحكمات

المتحكمات

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

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

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

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

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

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

الفصل الثانى تم تخصيصه للحديث المفصل عن وحدة المعالجة المركزية central processing unit CPU حيث هى القلب النابض أو المكون الرئيسى الذى بدونه لا يكون المعالج ولا المتحكم. وتم دراسة هذه الوحدة من حيث الأطراف الخارجية والمكونات الداخلية لها، وهذا الفصل من الضرورى قراءته قبل البدأ فى باقى الكتاب.

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

الفصل الرابع بدأ بعرض مواصفات المتحكم atmega328  كأحد إصدارات المتحكمات AVR استعرض الفصل أيضا بشىء من التفصيل برنامج الأتمل استديو كأحد البرامج التى سنستخدمها فى هذا الكتاب لبرمجة ومحاكاة هذا المتحكم. ثم انتقل الفصل إلى إدخال وإخراج البيانات الرقمية من وإلى المتحكم من خلال برنامج يضىء ويطفىء عدد من لمبات البيان LEDS .

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

الفصل السادس تكلم عن المقاطعة، من حيث المفهوم العام للمقاطعة ومصادر المقاطعة  المختلفة للمتحكم atmega 328
مع التركيز فى هذا على مقاطعة المتحكم من خلال الأطراف الخارجية، لأن باقى، المقاطعات تكون خاصة بالملحقات الأخرى، وسيأتى شرح كل من هذه الملحقات ومقاطعاتها فى فصل خاص بكل منها

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

الفصل الثامن تناول المؤقت صفر بالتفصيل وكيفية برمجته للحصول على أى زمن تأخير صغيرا أو كبيرا، وكيفية الحصول على أشكال موجية مختلفة وأهمها الشكل الموجى ذو العرض المعدل PWM هذا المؤقت يتكون من 8 بت.

الفصل التاسع تناول المؤقت 1 الذى يتكون من 16 بت وكيفية برمجته أيضا للحصول على أزمنة التأخير والأشكال
الموجية المختلفة.

الفصل العاشر تناول المؤقت 2 وهو مؤقت 8 بت مثل المؤقت صفر ويختلف عنه فقط فى إمكانية الاستخدام غير المتزامن. المؤقتات الثلاثة متشابهة تماما فى نظرية العمل وبالرغم من ذلك فقد أفردنا فصلا خاصا بكل منهم حتى يكون هناك شرحا مستقلا بكل من هذه المؤقتات.

الفصل الحادى عشر عبارة عن فصل تطبيقى تم فيه  شرح اكثر أنواع المواتير استخداما وهى مواتير التيار المستمر، ومواتير المؤازرة servo ومواتير الخطوة stepper  مع برامج تطبيقية على كيفية مواجهة كل منهم مع المتحكم من أجل التحكم فى سرعته واتجاه دورانه.

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

الفصل الثالث عشر  تناول طريقة من طرق الاتصالات المتتالية وهى الاتصالات المتتالية غير المتزامنة عبر الشريحة USART مع شرح مفصل لهذه الطريقة وبرامج تطبيقية عليها.

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

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

محتويات هذا الكتاب مناسبة جدا للتدريس كمقرر دراسى لطلاب الهندسة تخصصات الإلكترونيات والاتصالات والحاسبات، وكليات الحاسبات والمعلومات، وأقسام الميكاترونيات، والهواة المهتمين بالنظم المدمجة. ولقد قمنا بممارسة تدريس هذا المقرر لعدة سنوات على مدار فصل دراسى واحد لمدة ساعتان إسبوعيا كمحاضرة ومعمل ساعتان إسبوعيا لتنفيذ البرامج والمشروعات. المتطلبات السابقة لهذا المقرر هى دراسة مقرر فى الدوائر المنطقية ويوجد للمؤلف كتاب   بعنوان “الدوائر المنطقية” متاح مجانا أيضا على الإنترنت بالإضافة إلى مقرر فى البرمجة  وحبذا لو بلغة C أو أحد إصداراتها

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

download

Advertisements