|
هل من متطوع ؟؟ ... نعم أنا موجود أخي الحبيب , ونلتقي بإذن الله على الشات لتبادل الخبرات وحل هذه المشكلة تماما فقد سبق لي التعامل مع مسجل الازاحة وعمل مشاريع ليد ماتريكس بها .
والله الموفق
|
شكرا لك أخى الكريم ومهندسنا القدير وجزاك الله خيرا وجعل هذا فى ميزان حسناتك آمين .
--------------------------------------
نبدأ على بركة الله تعالى
الموضوع هو استخدام المصفوفات فى كتابة رسائل قصيرة على الماتريكس لتوفير الذاكرة . ويعتبر دخول لمنظومة المصفوفات والتى سنتناولها بالتفصيل إن شاء الله فى موضوعنا ( دورة سريعة وميسرة لبرمجة البيك بلغة mikroBasic )
---------------
ما هى فكرة الموضوع ؟
لدى البعض منا فكرة عن الماتريكس ولدى البعض منا إحترافا فى طرق التعامل مع الماتريكس . وإنما أحب أن أقدم أو أوضح فكرة برمجة المتحكمات لكتابة الرسائل بطرق احترافية باستخدام المصفوفات .
=======
مثال لتقريب الفكرة :-
الغالبية العظمى من بيننا سبق لهم التعامل مع كتب بدائل المكونات ( الداتا شيت )
نجد كتابا به عدد ضخم من الصفحات , وقد لا يحوى جميع المكونات الإلكترونية فنجد هذه المجموعة من البدائل فى حوالى ما بين كتابان أو ثلاث كتب ضخمة لتتمكن من حصر المكونات الإلكترونية . حيث أن كل صفحة تحوى عدد كبير من المكونات مسلسلة وبخط صغير ومضغوط ليتمكن الكتاب من جمع أكبر عدد ممكن من المكونات . فنجد أن السطر الواحد تم كتابة رقم ترانزستور ثم بجوار الرقم تم وضع رمز مثل ( si ) وهى اختصار لكلمة سليكون ، وهكذا عبارة عن رموز ثم نجد فى نفس السطر رمز مثل ( TO ) وهذا يعنى شكل الترانزستور فكل ترانزستور له شكل خاص ، فمنهم المعدنى ومنهم الصغير البلاستيك ومنهم ذو المبدد الحرارى وكل واحد منهم له توزيع أطراف خاص به . ومع ذلك لم يتم وضع صورة لهذا الترانزستور تحت كل رقم ولكن تم وضع رمز من الرموز مثل الذى أشرنا إليه . ثم تذهب إلى آخر صفحة فتجد الرمز المذكور وتجد أمام هذا الرمز الشكل الموافق !
فمن هنا استطاع المؤلف أن لا يضيع الصفحات فى تكرار الصور التوضيحية وتوزيع الأطراف عليها عند كل رقم من المكونات إنما اكتفى برمز صغير عند كل موديل .
ثم تذهب حضرتك إلى آخر صفحة أو آخر صفحتان فقط فتطلع على الرسوم وتنظر للرسمة الموافقة للرمز الخاص بالموديل المطلوب ، وبذلك تم حل مشكلة تكرار الرسومات أمام كل ترانزستور وإلا كنا سنحتاج لصفحات تصل إلى مئات أمثال هذا العدد لصفحات الكتاب الواحد ! !
نفس الشئ مع المتحكم : _
ترى إذا أردنا كتابة كلمة مثل GOOD BOY كم خانة نحتاجها ؟
خانة لكل حرف بالإضافة لفراغ بين الكلمتان فنكون استغرقنا خانات وإذا قلنا أن كل خانة تتكون من عدد نقات 7 طول و 5 عرض فإننا سنرسم هذه الجملة بالنقاط فنضع كل عامود من النقاط فى متغير فسنحصل على :
5 نقاط عرض لكل خانة بما فيهم الفراغ بين الكلمتان فيكون المجموع 5 نقاط X 8 خانات فيكون المجموع 40 متغير !
هذا خاص برسم السطر البسيط GOOD BOY وهكذا سنستغرق متغيرات بعدد عماويد كل الجمل مما يستهلك الذاكرة التى تعتبر محدودة جدا فى هذه الحالة ويستهلك منا طاقة كبيرة فى رسم كل الجمل والأسطر !
ولكن سنعمل بما يشبه ( القالب ) و ذلك بأن نرسم الحروف مرة واحدة فمثلا الكلمات السابقة تكرر بها الحرف O ثلاث مرات و عند تعدد الرسائل ستتكرر حروف أخرى كثيرا ومنها نفس هذا الحرف فهل نقوم برسمه كل مرة ؟
سنقوم برسم حروف الهجاء المستخدمة مرة واحدة فقط ونقوم بتخزينها فى مصفوفات و المصفوفات هى عبارة عن متغيرات متعددة الخانات أو متغيرات مركبة . وسنرى ذلك بمشيئة الله تعالى . وإذا أردنا تكوين جملة فكل ماعلينا أن نسجل فى متغير رقم فقط ليدل على الحرف المطلوب
فنجد كلمة مثل
WELCOME TO FIRST PROJECT أصبحت مثل الآتى :-
كود:
const var as byte[8] = ( 23,4,12,5,3,6,4,3,6,8,4,6,14,11,21,5,8,19,10,2,5,7,14,6)
المتغير السابق تم وضع أحرف الجملة السابقة بالكامل أى استغرق 24 بايت فقط . أما إذا استخدمنا النظام الرسومى فلنحسب سويا 24 خانة * 5 أعمدة فيكون المجموع المستهلك 120 بايت
إذن جملة واحدة استهلكت بالطريقة الرسومية النقطية 120 بايت
ونفس الجملة استهلكت بمنظومة المصفوفات 24 بايت
وهذا الكلام بالنسبة لجملة واحدة فكم يكلفنا عدد من الأسطر والجمل بالنسبة لهاتان الطريقتان ؟ ؟
طبع الفارق كبير لجملة واحدة وسيكبر أكثر كلما زادت الجمل .
لكن الخطوة الأولى يجب تخزين الأحرف المستخدمة مرة واحدة فى الذاكرة وهم 26 حرفا بالإضافة إلى مسافة فارغة للفصل بين الكلمات . بعد ذلك ببساطة سنرمز للحرف المطلوب عند تكوين الكلمات والجمل كما كتبنا المثال حيث كل حرف له رقم نداء واحد فقط أى بايت واحد فقط !
الموضوع جميل .. أليس كذلك .
سنقوم بمشيئة الله بعرض مشروعا عمليا لفكرة المشروع بغرض التجربة العملية وليس بغرض عرض كلمات ذات معنى ولكن للتوضيح فقط . مع الشرح
وأعتذر للتأخر نظرا لفتح عدة مواضيع مختلفة فى هذا المنتدى بالإضافة لضيق الوقت كطبيعة الحال لدى الجميع .
ومن يحب المشاركة و إبداء الخبرات فليتفضل مشكورا فإنما ترقى الموضوعات بالتعاون .
------------------------------------------------------------
يتتبع ،