You are on page 1of 50

‫بسم ﷲ الرحمن الرحيم‬

‫السالم عليكم ورحمة ﷲ وبركاته‬

‫مقدمة بسيطة عن عالم ال ‪. physical computing‬‬

‫‪ -‬اعداد وتقديم ‪ :‬أحمد جمال خليفة ‪.‬‬

‫‪ -‬تم نشر سلسلة الدروس في منتدى فيجوال بيسك للعرب‬


‫خالل مطلع عام ‪. 2008‬‬

‫المادة العلمية اصال ً قدمت بواسطة ‪ FUTEX Group‬في‬ ‫‪-‬‬


‫مشروع مادة ‪ Seminar‬في الفرقة الثالثة – كلية الحاسبات‬
‫والمعلومات – حلوان – الدكومنتيشن الخاصة بالعرض باللغة‬
‫االنجليزية مرفقة بالكتاب ‪.‬‬

‫‪ -‬الي استفسارات ‪:‬‬


‫‪A-Gamal@windowslive.com‬‬
‫الفھرس‬

‫الصفحة‬ ‫العنوان‬ ‫الدرس‬


‫‪4‬‬ ‫تمثيل البيانات في الكومبيوتر والدوائر الرقمية‬ ‫األول‬
‫‪8‬‬ ‫نظم األرقام‬ ‫الثاني‬
‫‪10‬‬ ‫المنافذ وتركيبھا وطريقة تعامل النظام معھا‬ ‫الثالث‬
‫‪15‬‬ ‫منفذ الطباعة ‪ Parallel Port‬وطريقة التعامل معه بالتفصيل‬ ‫الرابع‬
‫‪20‬‬ ‫برمجة منافذ الكومبيوتر‬ ‫الخامس‬
‫‪21‬‬ ‫مدخل إلى الھاردوير ‪ -‬الجزء األول‬ ‫السادس‬
‫‪26‬‬ ‫مدخل إلى الھاردوير ‪ -‬الجزء الثاني‬ ‫السابع‬
‫‪30‬‬ ‫مدخل إلى الھاردوير ‪ -‬الجزء الثالث‬ ‫الثامن‬
‫‪34‬‬ ‫وسائل المعالجة‬ ‫التاسع‬
‫‪37‬‬ ‫تطبيق تشغيل األجھزة الكھربائية من خالل الكومبيوتر‬ ‫العاشر‬
‫‪45‬‬ ‫قيادة عربة ريموت كنترول من خالل الكومبيوتر‬ ‫الحادي عشر‬
‫‪48‬‬ ‫مقدمة إلى عالم الروبوتات‬ ‫األخير‬
‫الدرس األول ‪ :‬تمثيل البيانات في الكومبيوتر والدوائر‬
‫الرقمية‬

‫ھذا الدرس موجه للمبتدئين على عجالة من أجل فھم كيفية عمل الكومبيوتر‪...‬‬
‫لن أطيل ‪ ،‬ولمن يريد االستزادة يمكنه البحث على اإلنترنت ‪ ،‬ابتداء من الدروس‬
‫القادمة سوف افترض مستوى معين للشرح‪.‬‬

‫بداية ‪ ،‬كيف يعمل الكومبيوتر ؟‬


‫الكومبيوتر عبارة عن جھاز كھربائي ال يفھم سوى لغة الكھرباء ‪ ،‬وما دمنا نتحدث‬
‫من ھذا المنطلق فليس للكھرباء أي حالة سواء ) مفتوح ‪ ،‬مغلق ( ‪.‬‬

‫وھو ما نعبر عنه في حالة الكومبيوتر ب ‪ 0‬و ‪. 1‬‬

‫وكيف يتعامل الحاسب مع ھذه البيانات ؟‬

‫ھناك ثالث معامالت منطقية رئيسية تتم من خاللھا جميع عمليات الكومبيوتر ‪،‬‬
‫ھم‪:‬‬

‫‪Not‬‬

‫حيث أن ‪ Not 1 = 0‬و ‪Not 0 = 1‬‬

‫‪AND‬‬
‫حيث أنه ال بد للطرفين أن يكونا = ‪ 1‬ليكون الناتج ‪ ، 1‬فمثال ً‪:‬‬
‫كود‪:‬‬

‫‪1 And 1 = 1 , 1 And 0 = 0 ... etc‬‬

‫‪OR‬‬
‫حيث ال بد ألحد الطرفين أن يكون ‪ 1‬ليكون الناتج ‪ 1‬فمثال‪ً:‬‬

‫‪1 Or 1 = 1 , 1 Or 0 = 1 , 0 Or 0 = 0‬‬

‫ومن خالل ھذه العمليات نستطيع القيام بما نريد من خالل الحاسب‪.‬‬

‫الترانزستور ‪:‬‬

‫ربما من خالل الشرح السابق تكون قد سألت نفسك بعض األسئلة ‪ ،‬ما دمنا‬
‫قلنا في البداية ان الكومبيوتر ال يتعامل سوى مع الكھرباء ‪ ،‬فكيف يستطيع‬
‫القيام بمثل ھذه العمليات‪.‬‬
‫الجواب أنه وبعد جيل من المحاوالت المختلفة ) مثل الصمامات المفرغة ( ظھرت‬
‫لنا الترانزستورات وفي أبسط أحوالھا فإن القيمة الكھربائية تتجاوز من نقطة ‪1‬‬
‫إلى ‪ 3‬إذا كانت نقطة ‪ ، 1 = 2‬فيما عدا ذلك ال يمكنھا التجاوز‪.‬‬

‫وھذا تخطيط لترانزستور مثال ً‪:‬‬

‫وللمزيد حول الترانزستور تستطيع البدء من ھنا‪:‬‬

‫‪http://ar.wikipedia.org/wiki/%D8%AA%...%D9%88%D 8%B1‬‬

‫وماذا بعد ‪ ،‬كيف استطيع االستفادة من الترانزستور في ھذه العمليات ؟‬


‫لن يفيدك كمبتدئ التعمق كثيراً في ھذه النقطة ‪ ،‬عموماً ھذه طريقة لكيفية‬
‫استخدام الترانزستورات في بناء ‪. AND‬‬
‫وماذا بعد‪:‬‬
‫من خالل ھذه الدوال الرئيسية تم انشاء العديد من الدوال األخرﯨمثل‬
‫‪XOR,NAND ..‬الخ ‪ ،‬لننتقل بعدھا إلى ما يسمى بالدوائر المتكاملة‪.‬‬

‫الدوائر المتكاملة‪.‬‬
‫الحقاً تم تجميع ھذه العمليات في دوائر مغلقة لتسھيل التعامل ‪ ،‬وجرى تجميع‬
‫أكثر من واحدة في نفس المكان ‪ ،‬ال تنس أن كل دائرة تحتاج إلى مصدر ‪VCC‬‬
‫كھربائي حسب الدائرة اضافة إلى مصدر أرضي‪Ground .‬‬

‫نقطة أخرى ‪ :‬التخزين‪.‬‬

‫لتخزين البيانات نحتاج إلى نظام تمثيل ‪ ،‬فإذا كان نظامنا ال يتعمل سوى مع‬
‫ارقام من واحد إلى سبعة فنحن نحتاج إلى ثالث خانات فقط للتمثيل‪:‬‬

‫‪0:000‬‬
‫‪1:001‬‬
‫‪2:010‬‬
‫‪3:011‬‬
‫‪4:100‬‬
‫‪5:101‬‬
‫‪6:110‬‬
‫‪7:111‬‬

‫وھكذا ‪ ،‬وفي نظامنا الحالي نستخدم كمية كبيرة جداً الرموز واألرقام والحروف ‪،‬‬
‫لذا نستخدم نظام ترميز مناسب‪.‬‬

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

‫الكتب‪:‬‬
‫‪http://www.nekhely.com/Main/Kits/KITS-electrobook.htm‬‬

‫ستجد ھنا المكتبة كاملة وھي مفيدة للمحترفين ‪ ،‬وكمبتدء لن أطلب الغوص‬
‫فيھا كثيراً بل نبذة عن كل شيء في حدود دقيقة أو اثنتين كافية جداً لتوصيل‬
‫الھدف الذي اريد الوصول إليه ‪ ،‬ولمعرفة ھل استطعت الفھم بدرجة كافية‬
‫لمتابعة الدورة اسأل نفسك ھذه األسئلة وأجب عليھا‪:‬‬
‫‪ -1‬ماذا يعني ‪ IC -‬دوائر متكاملة ‪ -‬؟‬
‫‪ -2‬كما ھي فكرة عمل الكومبيوتر ) البروسيسور ) ؟‬
‫‪ -3‬ما ھي المصادر الكھربائية المطلوبة للدوائر ‪ VCC,Ground‬؟‬
‫‪ -4‬ما ھو الفرق بين المصدر الكھربائي للعمليات والمصدر الكھربائي في‬
‫السؤال السابق ؟‬
‫‪ -5‬ھل استطعت تخيل ما يمكن أن نقوم بعمله من خالل الصفر والواحد ؟‬

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

‫وكما افترضنا في الدرس السابق األرقام من ‪ 1‬إلى ‪ 7‬وطريقة تمثيلھا سوف‬


‫نتعلم ھنا طريقة التحويل من رقم عشري إلى رقم ثنائي والعكس‪.‬‬

‫مثال ً ‪ :‬الرقم الثنائي ‪00010111 :‬‬


‫طريقة العمل ‪ ،‬سوف نبدأ باألرقام من اليمين إلى اليسار ‪ ،‬ونضرب كل رقم في‬
‫‪^2‬مكانه ‪ ،‬بمعنى‪:‬‬
‫الرقم األول * ‪1 = 1*1 = 0^2*1 = 0^2‬‬
‫الرقم الثاني * ‪= 22*1 = 1^2*1 = 1^2‬‬
‫الرقم الثالث * ‪4 = 4*1 = 2^2*1 = 2^2‬‬
‫الرقم الرابع * ‪= 08*0 = 3^2*1 = 3^2‬‬
‫الرقم الخامس * ‪16 = 16*1 = 4^2*1 = 4^2‬‬
‫الرقم السادس * ‪= 032*0 = 5^2*1 = 5^2‬‬
‫الرقم السابع * ‪0 = 64*0 = 6^2*1 = 6^2‬‬
‫الرقم الثامن * ‪= 0*128 = 07^2*1 = 7^2‬‬

‫**ال تنس أن ^ تعني )أس ‪. ( to the power of -‬‬

‫واآلن نقوم بجمع األرقام الناتجة ‪ 23 = 16+4+2+1 :‬وھي ما يرمز له بـ‬


‫‪ 00010111‬في نظام يتم تمثيل األرقام فيه في ‪ 8‬بت ) ‪ 8‬خانات‪) .‬‬

‫العملية العكسية ‪ ،‬الرقم ‪ 18‬مثال ً ) في نظام ترقيم يتم تمثيل األرقام فيه في ‪8‬‬
‫بت‪) .‬‬
‫‪18 / 2 = 9‬والباقي )صفر(‪.‬‬
‫‪9 / 2 = 4‬والباقي )واحد(‪.‬‬
‫‪4 / 2 = 2‬والباقي )صفر(‪.‬‬
‫‪2 / 2 = 1‬والباقي )صفر(‪.‬‬
‫‪1 / 2 = 0‬والباقي )واحد(‪.‬‬

‫واآلن سوف نقوم برص األرقام منذ البداية ‪ ،‬ونكمل الباقي حتى ‪ 8‬خانات بأصفار‬
‫‪ ،‬ولذا يكون الناتج‪00010010 .‬‬

‫ولكن ماذا عن الرموز والحروف ؟‬

‫ھناك ما يعرف بنظم الترميز مثل ‪ ASCII‬آسكي ‪ ،‬و ‪ Unicode‬يونيكود وغيرھا ‪،‬‬
‫ولنر مثال ً كيف يقوم نظام آسكي بالتعرف على الحروف والرموز‪.‬‬

‫يفترض نظام آسكي ‪American Standard Code for Information‬‬


‫‪ Interchange‬سعة ‪ 8‬بت لتمثيل كل خانة‪.‬‬
‫وبھذ الطريقة يمكننا تخزين المعلومات عن ‪ 8^2‬رمز أو رقم أو حرف وھو ما‬
‫يساوي ‪.256‬‬

‫*ال تنس أن الرقم ‪ 14‬مثال ً يتم تخزين )‪ (4‬كرقم و )‪ (1‬كرقم آخر‪.‬‬

‫في آسكي يتم حجز األرقام من ‪ 31-0‬اضافة للرقم ‪ 127‬للرموز الخاصة مثل‬
‫‪Delete‬وغيرھا‪.‬‬
‫واألرقام من ‪ 47-32‬من أجل الرموز مثل ! ‪+‬‬
‫واألرقام من ‪ 57-48‬يتم فيھا تمثيل األرقام من ‪.9 - 1‬‬
‫من ‪ : 64-58‬رموز أخرى مثل ؟‬
‫من ‪ 90-65‬الحروف اإلنجليزية‪Capital .‬‬
‫من ‪ : 96-91‬رموز مرة أخرى مثل [‬
‫من ‪ : 122-97‬الحروف اإلنجليزية ‪Small‬‬
‫من ‪ : 127-123‬رموز أخرى‪.‬‬

‫وتبقى لدينا ‪ 127‬أخرى يتم تشكيلھا حسب الحاجة حيث تجد مثال ً في حالتنا‬
‫الحروف العربية وخالفه‪.‬‬

‫ولالستزادة يمكنك اإلطالع على ھذا الرابط‪:‬‬


‫‪http://en.wikipedia.org/wiki/ASCII‬‬
‫الدرس الثالث ‪-‬المنافذ وتركيبھا وطريقة تعامل النظام‬
‫معھا‬
‫في ھذا الدرس سوف نلقي نظرة سريعة على عالم منافذ الكومبيوتر ونتعرف عليھا باختصار‬
‫قبل ان نتوسع في الدرس القادم في استخدام منفذ الطابعة وكيفية برمجته والتعامل معه‪.‬‬

‫باختصار فإن منافذ الكومبيوتر على اختالف انواعھا ما ھي إال وسيلة الخراج‬
‫البيانات خارج نطاق الكومبيوتر أو ادخالھا إليه عبر أجھزة مختلفة أو العكس ‪،‬‬
‫ومن أبسط األمثلة على ذلك لوحة المفاتيح مثال ً والتي تستخدم الدخال البيانات‬
‫عبر منفذ ‪ USB‬أو‪، PS2‬وفي المقابل الطابعة والتي تستخدم ايضاً ‪Parallel‬‬
‫‪Port‬أو ‪. USB‬‬

‫وببساطة فإن جميع ھذه األجھزة تقوم باستقبال ‪ 0‬و ‪ 1‬أو ارساله إلى‬
‫الكومبيوتر إلى برنامج مختص بذلك يقوم بفھمھا وتحليل المطلوب ‪ ،‬ففي حالة‬
‫الكيبورد وبعد استالم اشارة كھربائية يقوم ‪ Driver‬خاص بترجمة ھذه االشارة‬
‫إلى حرف أو رمز ‪ ،‬وفي العملية العكسية في الطابعة فإن االشارات الكھربائية‬
‫التي تتسلمھا الطابعة يتم تحويلھا إلى مجموعة من الخطوط والحروف واأللوان‬
‫‪.‬‬

‫المنفذ التسلسلي ‪: Serial Port‬‬

‫صمم ھذا المنفذ قديماً من أجل توصيل المودم الخارجي بالكومبيوتر ‪ ،‬ويحتوي‬
‫على ‪ 8‬مداخل تستقبل كل منھا ‪ 0‬أو ‪) 1‬بايت كامل( ويتم ارسال البيانات‬
‫تسلسيال ً )بايت ورا التاني( حتى تنتھي البيانات‪.‬‬

‫قبل كل بايت ال بد من ارسال ‪ Start Bit‬وكذلك بعد االنتھاء ‪ ،‬قد يكون ھناك أيضاً‬
‫ما يعرف باسم ‪ Parity Bit‬في حالة التأكد من األخطاء وخالفه‪.‬‬
‫السرعة المتوسطة لھذا المنفذ ھو ‪ 116‬كيلوبت‪/‬ثانية ‪ ،‬ولكن مع استخدام ‪ESP‬‬
‫أو ‪ Super ESP‬يمكن الوصول إلى سرعات ‪ 460‬كيلوبت في الثانية‪.‬‬

‫وبالنسبة ل ‪ Parity Bit‬فباختصار ھي طريقة الكتشاف األخطاء حيث يمكن عد‬


‫األصفار الموجودة في الرسالة ‪ ،‬وفي حالة كونھا رقم زوجي يتم ارسال صفر ‪،‬‬
‫وفي حالة الفردي يتم ارسال ‪ ، 1‬وھكذا يستطيع المستقبل التأكد من دقة‬
‫البيانات بنسبة معينة‪.‬‬

‫‪: USB Port‬‬

‫أصبح بفضل سرعته وتوحيد معاييره أحد أشھر المنافذ والتي اتجھت إليھا جميع‬
‫الشركات المصنعة لألجھزة ‪ ،‬حيث نجد سرعة وسھولة التعامل مع ھذا المنفذ‪.‬‬
‫فھذا المنفذ يمكنك من ربط حتى ‪ 127‬جھاز مع الكومبيوتر ‪ ،‬اضف إلى ذلك‬
‫تمتعه بخاصية ‪ hot-swappable‬والتي تسمح بالربط والتعريف مباشرة مع‬
‫الكومبيوتر ‪ ،‬اضف إلى ذلك السرعة والتي تبلغ في ‪ USB 2.0‬حوالي ‪480‬‬
‫ميجابت ‪ /‬ثانية‪.‬‬
‫وبخصوص التركيب الداخلي ‪ ،‬فإنه مكون فقط من أربع أسالك ‪ ،‬واحدة لل ‪VCC‬‬
‫وواحدة لل ‪ Ground‬واالثنتان الباقيتان تستخدمان الرسال واستقبال البيانات‪:‬‬

‫وتنقسم ھذه العملية إلى ثالث أقسام رئيسية‪:‬‬

‫‪ : Interrupt‬مثل الكيبورد والماوس والتي تقوم بارسال كمية قليلة من البيانات‬


‫‪ : Bulk‬مثل الطابعة حيث يتم ارسال كمية كبيرة من البيانات دفعة واحدة‪.‬‬
‫‪ : Isochronous‬مثل الميكروفون والذي يحتاج إلى ارسال كمية متتابعة من‬
‫البيانات لحظياً ‪ ،‬حيث ال يتم عمل تأكد من الخطأ وھو ما يصب في مصلحة‬
‫سرعة النقل‪.‬‬

‫أنوع أخرى من المنافذ‪:‬‬


‫منفذ ‪ PS2‬والمستخدم للكيبورد والماوس‪.‬‬

‫منفذ ‪ PCI‬وھو أعقد أنواع المنافذ واسرعھا في نفس الوقت ‪ ،‬وھو على‬
‫الماذربورد ويتم بناء كارت خاص للتعامل معه ‪ ،‬ولكن يتم التعامل معه ببساطة‬
‫مثل األنواع السابقة اجماال ً‪:‬‬
‫بالطبع يمكن التعامل برمجياً مع جميع ھذه األنواع وھو ما سيتم شرحه في‬
‫دروس قادمة ‪ ،‬وفي جميع األنواع يتم االدخال على كل ‪ Pin‬حيث تمثل سلك و‬
‫‪ bit‬الدخال البيانات ‪ ،‬أيضاً حتى في ‪ PCI‬ستجد شرائح معدنية تمثل كل منھا‬
‫سلك أو‪PIN .‬‬

‫في الدرس القادم سوف نتحدث باستفاضة عن ‪ Parallel Port‬والذي سنتابع‬


‫العمل عليه الحقاً من خالل دروسنا‪.‬‬
‫الدرس الرابع ‪ :‬منفذ الطباعة ‪ Parallel Port‬وطريقة‬
‫التعامل معه بالتفصيل‬

‫مقدمة‪:‬‬
‫ً‬
‫كان درسنا السابق مخصصا للحديث باختصار عن منافذ الكومبيوتر ‪ ،‬ھذا الدرس‬
‫للحديث عن واحد منھا ولكن بالتفصيل نظراً إلننا سوف نقوم باستخدامه ضمن‬
‫ھذه السلسة اضافة لكونه المنفذ األشھر لعمليات التحكم من خالل الكومبيوتر‬
‫قبل أن يظھر ‪ USB‬كمنافس قوي لھذا المنفذ ‪ ،‬ولكن ليس للمبتدئين‪.‬‬

‫منفذ الطابعة‪Parallel Port Interface :‬‬

‫يعد منفذ الطابعة أسھل المنافذ للتعامل معھا من خالل الكومبيوتر نظراً لكونه‬
‫أصبح شاغراً بعد ظھور ‪ USB‬واعتماد األجيال الحديثة من الطابعات عليه ‪ ،‬أيضاً‬
‫كونه سھل في التعامل معه وال يحتاج إلى أدوات اضافية وغيره‪.‬‬

‫وباختصار فإن منفذ الطابعة مكون من خمسة وعشرين ‪ Pin‬أو ‪ Hole‬حسب‬


‫شكل المنفذ ) بمعنى غاطس أو بارز ( تقوم بارسال ‪ 0‬في حالة ‪ Close‬و ‪ 1‬في‬
‫حالة ‪ Open -‬حيث أن ‪ 1‬ھي قيمة تقترب من ‪ volte 5‬في أغلب األحيان‪- .‬‬
‫تركيب منفذ الطابعة‪:‬‬

‫سنبدأ الشرح من خالل الصورة السابقة‪:‬‬


‫الرقم ‪ + 1‬األرقام ‪ 14،16،17‬تسمى بالـ‪Control Pins .‬‬
‫األرقام من ‪ 2‬إإللى ‪ 9‬تسمى بالـ‪Data Pins .‬‬
‫األرقام من ‪ 10‬إلى ‪ 15 + 13‬تسمى بال‪Statues Pins .‬‬
‫األرقام من ‪ 18‬إلى ‪ 25‬تسمى بالـ‪Ground Pins .‬‬

‫‪: Control Pins‬‬


‫عدد ‪ 8‬من المنافذ ولكن ‪ 4‬منھا غير ظاھرة تستخدم لالدخال واالخراج في نفس‬
‫الوقت‪.‬‬

‫‪: Data Pins‬‬


‫ً‬ ‫ً‬
‫ھذه ھي ال ‪ Pins‬ھي األشھر واألكثر استخداما ‪ ،‬وتستخدم دائما لعرض‬
‫البيانات بعد توصيلھا بجھاز مناسب ‪ ،‬وعددھا ‪ ، 8‬وفي الطابعات كانت تستخدم‬
‫ھذه المنافذ لنقل البيانات إلى الطباعة تمھيداً لعملية طباعتھا‪.‬‬

‫‪: Statues Pins‬‬


‫تستخدم ھذه المنافذ الدخال البيانات ‪ ،‬وعددھا الفعلي ھو ‪ 8‬وليس خمسة‬
‫ولكن ھناك ثالث منھا غير ظاھرة ‪ ،‬وفي الطابعات كانت تستخدم الدخال بيانات‬
‫من الطابعة إلى الكومبيوتر مثل رسائل اشعار انتھاء ورق الطابعة‪.‬‬

‫‪: Ground Pins‬‬


‫كأي دائرة كھربائية ‪ ،‬ال بد من وجود قطب موجب وقطب سالب لتعمل الدائرة ‪،‬‬
‫ال ‪ Ground‬ھو ما يشكل القطب السالب ‪ ،‬وفي العادة ال يتم استخدام سوى‬
‫واحد فقط من ال ‪ pins 8‬لجميع ال ‪ Pins‬الخاصة باالدخال واإلخراج‪.‬‬
‫ارسال البيانات عبر منفذ الطابعة‪.‬‬

‫الرسال البيانات عبر منفذ الطابعة ال بد من تحديد رقم المنفذ اوال ً وعادة ما يكون‬
‫‪ h 387‬ومن ثم ارسال قيمة ما بين ‪ 0‬إلى ‪ 255‬لتحديد ال ‪ Pins‬التي ستكو عليھا‬
‫القيمة ‪ 1‬بالشكل التالي مثال ً‪:‬‬
‫لجعل جميع ‪ Pins‬مفتوحة = ‪ 11111111‬بالعد الثنائي ‪ binary‬وھو ما يساوي‬
‫‪.255‬‬
‫لجعل ‪ Pins‬األول والثاني والرابع والسادس مفتوحة = ‪ 00101011‬بالعد‬
‫الثنائي ‪ binarty‬وھو ما يساوي ‪. 1+2+16+64 = 83‬‬

‫***لمزيد من التفاصيل راجع الدرس األول الخاص بالتعامل مع نظم األعداد‪.‬‬

‫تحديد رقم منفذ الطابعة ‪:‬‬

‫قد يحتوي جھازك على أكثر من منفذ للطابعة اضافة إلى احتمالية كون رقم‬
‫المنفذ غير االفتراضي ‪ ،‬لذلك من لوحة التحكم ‪ Control Panel -‬النظام ‪System‬‬
‫‪-‬األجھزة ‪ Hardware -‬ادارة األجھزة ‪ Device Manager -‬المنافذ ‪Ports (COM‬‬
‫‪& LPT) -‬منفذ الطابعة ‪ Printer Port (LPT1) -‬الخصائص ‪ ، Properties‬ثم من‬
‫خالل المصادر ‪ Resources‬ثم ‪ Resources Setting‬سوف تجد الرقم المخصص‬
‫للمنفذ الخاص بك‪.‬‬

‫في الدرس القادم سوف نتعلم كيفية برمجة المنفذ ‪ ،‬ولكن حتى الدرس القادم‬
‫تستطيع عمل ھذه التجربة البسيطة‪:‬‬

‫تجربة‪:‬‬

‫قم بشراء واحد من ال ‪ LED's‬من أي محل لاللكترونيات ‪ ،‬وباختصار فال ‪Leds‬‬


‫ھي عبارة عن انوار كھربائية بسيطة تنير عندما يمر فيھا فرق جھد = ‪ ، 5‬وفي‬
‫خالل دروسنا القادمة سوف نتعرف تفصيال ً على تركيبه ھو وبعض األجزاء‬
‫األخرى التي سوف نقوم باستخدامھا‪.‬‬
‫سعر ال ‪ LED‬الواحد ال يتعدى ‪ 20‬قرشاً مصرياً )أقل من ربع جنيه ) ويمكنك‬
‫شرائھا من أي محل لاللكترونيات‪.‬‬

‫خطوتنا الثانية ھي معرفة أن لل ‪ LED‬توصيلة للسالب وأخرى للموجب ‪ ،‬قم‬


‫بتوصيل السالب بواحد من ال ‪ Grounds‬في منفذ الطابعة لديك وقم بتوصيل‬
‫الموجب في أحد ال ‪ Data Pins‬وليكن األول لديك ‪ ،‬ومن ثم قم بعمل برنامج‬
‫سريع يقوم بفتح واغالق ھذا ال ‪. Pin‬‬

‫إذا كنت مبرمج ‪ .net‬فقم أوال ً بعمل ‪ import‬أو ‪ using -‬حسب ‪ VB‬أو ‪ C# -‬ل ‪:‬‬
‫‪ System.Runtime.InteropServices‬ومن ثم قم باستيراد المكتبة‬
‫‪impout32.dll‬بالشكل التالي ‪ -‬سي شارب‪- :‬‬

‫])"‪[DllImport("inpout32.dll", EntryPoint="Out32‬‬

‫ومن ثم قم بتعريف ال ‪ function‬التالية ‪ -‬مبرمج سي شارب‪- .‬‬

‫;)‪public static extern void Output(int adress, int value‬‬

‫أو مبرمج‪VB.net :‬‬

‫)‪public static extern sub Output(int adress, int value‬‬


‫‪end sub‬‬

‫ومن ثم قم بكتابة الرقم الذي يحدد ال ‪ Pins‬التي تريدھا مفتوحة وليكن مثال ً‬
‫األول فقط وقم بارساله باستخدام ‪ Output‬بالشكل التالي‪:‬‬

‫;)‪Output(888, 1‬‬

‫مبرمج ‪ VB.net‬؟؟؟؟ فقط قم بازالة ال ; من آخر السطر‪.‬‬

‫وحتى إذا كنت مبرمج ‪ Visual Basic 6‬فھذا األمر لك أيضاً ولكن وفر وقتك‬
‫وجھدك وتحول إلى ‪ .net -‬دعاية مجانية ‪-.‬‬
:‫ وضع ھذا الكود داخله‬Module ‫قم بعمل‬

Public Declare Function Inp Lib "inpout32.dll" _


Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" _
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

. (‫ومن ثم في زر األمر )فتح‬

Out "&H378", 1

.(‫زر األمر )اغالق‬

Out "&H378", 0

.‫ في كل خطوة‬Pins ‫حيث يتم فتح واغالق كامل ال‬

‫ فسوف تحتاج لتنزيل مكتبة‬Windows XP ‫ في حالة كونك تعمل على‬: ‫تنبيه‬


‫ وھي موجودة في رابط‬inpout32.dll ‫جديدة في الغالب بدال ً من االفتراضية‬
: ‫الدرس ھنا‬

http://vb4arab.com/vb/showthread.php?t=1531
‫الدرس الخامس ‪ :‬برمجة منافذ الكومبيوتر‬

‫كنا في الدرس السابق قد تعلمنا كيفية كتابة الكود ‪ ،‬في ھذا الدرس سنتعلم‬
‫كيف يتم تنفيذ ھذه األوامر فعلياً قبل أن ننطلق في الدرس القادم في عالم‬
‫الھاردوير‪.‬‬

‫يتم التعامل مع المنافذ في الكومبيوتر أو مع الھاردوير عموماً مروراً بأربعة‬


‫مراحل‪:‬‬

‫‪ : Device Driver -1‬وھو عبارة عن برنامج خاص بالتعامل مع ھاردوير معين‬


‫يتم انتاجه من قبل الشركة المصنعة لھذا الجھاز ‪ ،‬حيث أن الشركة المصنعة‬
‫للطابعة تقوم مثال ً بعمل البرنامج الخاص بالطابعة بحيث يحتوي على مجموعة‬
‫من األوامر مثل ‪ Print Pages ... ، : Print Page‬الخ ‪ ،‬حيث يقوم المبرمج أو نظام‬
‫التشغيل بالتعامل مع ھذه األوامر فقط دون الدخول في تفاصيل كيفية عمل‬
‫ھذه األوامر والتي تھتم بھا فقط الشركة المصنعة‪.‬‬

‫‪ : Operating System -2‬في اصدارات قديمة من نظام التشغيل ‪Windows‬‬


‫كان يمكن للمبرمج التعامل مباشرة مع منافذ الكومبيوتر أو تحديداً مع ال ‪Device‬‬
‫‪Driver‬مباشرة ‪ ،‬وكان ھذا في ‪ DOS‬و ‪ Window 9x‬حيث كان الموضوع يقتر‬
‫على مجموعة من ال ‪ API's‬للتعامل مباشرة ‪ ،‬ولكن بعد ھجوم ‪ CIH‬عام ‪98‬‬
‫الشھير بدأت نظم التشغيل تحمي الھاردوير عن طريق عدم السماح ألي‬
‫شخص بالتعامل معه مباشرة‪.‬‬
‫مع االصدارت التالية تم فقط تعريف نظامين للتعامل مع الھاردوير ‪ 0 ،‬و ‪ ، 3‬حيث‬
‫يقوم المبرمج بالعمل في ‪ 3‬في حين يعمل الھاردوير وال ‪ Kernel‬في ال ‪ 0‬أو ما‬
‫يعرف باسم الحلقة ‪ - ring 0 - 0‬حيث ال يمكن للمستخدم الوصول مباشرة إلى‬
‫الھاردوير إال عن طريق ‪ kernel‬وھو المرحلة الثالثة من عملنا‪.‬‬

‫‪ : Kernel Mode Driver -3‬وھو برنامج مخصص يمكنه نقل البيانات من وإلى ال‬
‫‪ ،Device Driver‬ويتم استخدامه في نظم التشغيل التي ال تسمح بالوصول‬
‫المباشر إلى الھاردوير‪.‬‬

‫أشھر أنواع ال ‪ KMD‬كمبرمج ويندوز ھي ‪ inpout32.dll -‬ارفقناھا في الدرس‬


‫السابق‪ -‬والتي تحتوي على جزء منھا ‪ Kernel Mode Driver‬والجزء اآلخر خاص‬
‫بدول ‪ API‬العادية التي تحتويھا المكتبة‪.‬‬

‫‪ : Programming -5‬المرحلة األخيرة من ھذه العملية ‪ ،‬حيث يتم من خاللھا‬


‫عمل البرنامج الخاص بالتعامل مع المستخدم من جھة ومع الھاردوير من جھة‬
‫أخرى ‪ ،‬لن تفرق لغات البرمجة كثيراً في ھذه النقطة ‪ ،‬في الدرس السابق‬
‫شرحنا كيفية التعامل من خالل ‪ C#,VB.net‬وفيجوال بيسك ‪ ، 6‬ھنا نضيف انه‬
‫في ال ‪ Java‬سوف نستخدم ‪ ، Javax.comm.parallelport‬في ال ‪ PHP‬سوف‬
‫نستخدم إحدى السيرفس والتي تسمى ‪، lptout‬بخصوص ‪ C++‬فھي مثلھا‬
‫مثل ‪ C#‬تحت الويندوز ‪ ،‬أما ‪ C++‬في نظام التشغيل لينوكس فسوف نستخدم‬
‫‪ioperm‬الموجودة في‪<asm/io.h> .‬‬
‫الدرس السادس ‪ :‬مدخل إلى الھاردوير ‪ -‬الجزء األول‬

‫بعد ان تعرفنا في الدروس السابقة على كيفية اخراج البيانات عبر منفذ الطابعة‬
‫بالكود ‪ ،‬واصبح بمقدورنا التحكم في ال ‪ PINS 8‬المخصصين لل ‪ ، Output‬جاء‬
‫الدور اآلن على كيفية قراءة ھذه القيم واالستفادة بھا في العمليات المختلفة‬
‫في الجھة المقابلة ) جھة الھاردوير‪) .‬‬

‫أبسط طرق قياس ھذه القيم ھي استخدام ‪ LED‬واحدة ‪ ،‬يتم توصيل طرفھا‬
‫الموجب بأحد ال ‪ Pins‬الموجودة لل ‪ Output‬وطرفھا السالب بأحد ال ‪Grounds‬‬
‫الموجودة ‪ ،‬وستضيء عندما يكون ھذا ال ‪ Pin‬مفتوحاً‪.‬‬

‫طريقة أخرى سھلة للقراءة وھي استخدام فولتاميتر ‪ Volt Meter‬حيث يتم‬
‫توصيله بال ‪ Pin‬المطلوبة وال ‪ Ground‬أيضاً وقراءة فرق الجھد الناتج‪:‬‬

‫كانت ھذه ھي الطرق التي تعلمناھا في الدرس الماضي ‪ ،‬والھدف منھا فقط‬
‫قراءة والتأكد من عمل البرنامج ‪ ،‬أما في ھذا الدرس ولمدة ثالث دروس قادمة‬
‫فسوف نتعرف على بعض الھاردويرس المستخدمة لبناء الدوائر المختلفة ‪ ،‬في‬
‫ھذا الدرس سوف نتعرف على أساساتھا‪...‬‬
‫أوال ً ‪ :‬اللوحة األم‪breadboard:‬‬

‫تستخدم ھذه اللوحة لتوصيل وتثبيت الدوائر الكھربائية ‪ ،‬وھي الحل األبسط‬
‫واالمثل للمبتدئين ‪ ،‬حيث تجد أن كل خط عرضي ‪ 5 -‬خانات في الصورة مثال ً‬
‫والمرقمة بحروف ‪ -‬تحمل قيمة واحدة بمعنى أنك لو ادخلت قيمة في أي منھم‬
‫وقرأتھا في اآلخرين فسوف تظل ھي نفس القيمة‪.‬‬

‫نستفيد من ذلك فيما لو رغبنا في قراءة قيمة مثل ‪ Ground‬ألكثر من دائرة فإننا‬
‫سنضع ال ‪ Ground‬في خانة ونقرأ من اربع خانات ألربع دوائر مختلفة ‪ ،‬وھكذا‪.‬‬

‫وبخصوص األشرطة السفلية والعلوية في الصورة دعك منھا مبدئياً ‪ ،‬فھي‬


‫نفس ما سبق ولكن خطوطھا بالطول وليس بالعرض للبيانات التي تحتاج‬
‫لقرائتھا عدد كبير من المرات‪.‬‬

‫سعر ھذه اللوحة حوالي ‪ 10‬جنيھات أو أكثر قليال ً ‪ ،‬لكن ھناك حل آخر وھو ما‬
‫يسمى بالفيبر وھو أرخص ولكنه أفضل في التعامل وأصعب نسبياً ‪ ،‬وفي كال‬
‫الحالتين يتم نقل البيانات باستخدام أسالك عادية ‪ ،‬الصورة التالية كمثال‪:‬‬
‫أما مثلما يحصل في ال ‪ MotherBoards‬وھي ما تسمى بالدوائر المطبوعة‬
‫‪Printed Circuits‬حيث يتم نقل البيانات باستخدام سيلكون مطبوع ويتم تثبيت‬
‫الدوائر فھي الطريقة األمثل للمحترفين ولكن طباعتھا إلى حد ما مكلفة ‪ ،‬كما‬
‫أنه ال يمكنك تغييرھا الحقاً‪.‬‬

‫ثانياً ‪ :‬مصدر الكھرباء ‪ - Adapter‬مثال ً‪- :‬‬

‫في حالة تعاملك مع أي دائرة كھربائية فإنك تحتاج إلى ‪ VCC‬اضافة إلى‬
‫‪Ground‬وحينما كنا نتعامل مع ال ‪ LED‬كنا نقرأ ھذه البيانات عن طريق‬
‫الكومبيوتر ‪ ،‬ولكنك في دوائر أخرى ستحتاج إلى مصدر خارجي للتيار الكھربائي‬
‫‪ ،‬يمكن أن يكون بطارية ‪ 9‬فولت ‪ 20 ،‬فولت ‪ ،‬أو ‪ adapter‬يتم توصيله بالكھرباء‬
‫بواسطة ‪ Adapter‬مثل الذي في ھذه الصورة‪:‬‬
‫وبالطبع فإنك ستشتري واحدة يمكنه تزويدك بفرق جھد عادة ما يتراوح بين ‪1.5‬‬
‫و ‪ 12‬فولت يمكنك التحكم فيھا كما تريد ‪ ،‬كما يمنحك قطبين سالب وموجب‪.‬‬

‫سعر ھذا المحول حوالي ‪ 10‬جنيھات مصرية‪.‬‬

‫ثالثاً ‪ :‬منظم الكھرباء‪Regulator :‬‬

‫الھدف من ھذا المنظم ھو الحفاظ على فرق جھد ثابت بمعنى انك لو وضعت ‪v 5‬‬
‫‪regulator‬فسوف يحافظ لك على فرق الجھد ‪ 5‬فولت حتى لو كنت تستخدم‬
‫بطارية ‪ 9‬فولت مثال ً ‪ ،‬حيث اننا دائماً نحتاج إلى قيمة ‪ 5‬فولت في أغلب االحيان‬
‫‪.‬‬

‫طريقة استخدامه ‪ ،‬يتم وضع ال ‪ Ground‬القادم من مصدر التيار سواء‬


‫ً‬
‫الكومبيوتر أو المحول أو البطارية في المنتصف وتتم قرائته من المنتصف ايضا ‪،‬‬
‫أما ال ‪ VCC‬فيتم وضعه في اليمين ثم قرائته من اليسار وادخاله على أي جھاز‬
‫مطلوب‪.‬‬
‫سعر المنظم حوالي ‪ 3‬جنيھات‪.‬‬
‫المقاومات ‪ Resistors‬والترانزستورات‪Transistors :‬‬

‫تم شرحھما سابقاً ‪ ،‬راجع الدرس األول لمزيد من التفاصيل‪...‬‬

‫مثال سريع‪:‬‬

‫سنحاول اآلن تطبيق مثال سريع ومرة أخرى من خالل ‪ ، LED's‬مقاومات ‪،‬‬
‫وسنقوم بالتطبيق مرة من خالل الكومبيوتر ومرة من خالل مصدر كھرباء خارجي‬
‫سواء أكان بطارية أم محول‪.‬‬

‫سنستخدم لوحة نقوم بتثبيت ‪ LED‬عليھا ‪ ،‬وقبلھا سنقوم بوضع مقاومة صغيرة‬
‫لكي تحافظ لنا على ال ‪ ، LED‬يتم وضع المقاومة قبل ال ‪ VCC‬أما ال ‪Ground‬‬
‫فيظل كما ھو مثل ھذه الصورة‪:‬‬

‫طبعاً لن تتم القراءة مباشرة في حالتنا من الكومبيوتر أو من مصدر التيار ‪ ،‬بل‬


‫سوف نربطھا أوال ً باستخدام ‪ Regulator‬وكما تعلمنا من كيفية قرائته من اجل‬
‫الحفاظ على فرق الجھد ثابتاً وألجل التعود عليھا حيث سنحتاجھا في دروس‬
‫قادمة‪.‬‬

‫ھذا التطبيق مشروح تفصيال ً على ھذا الرابط ‪ ،‬يمكنك االطالع عليه لالستفادة‬
‫وللشرح الموسع‪:‬‬
‫‪http://www.codeproject.com/csharp/csppleds.asp‬‬

‫في الدرس القادم سوف نبدأ بالتوسع في الھاردويرس المستخدمة بكثرة في‬
‫عمليات االخراج ‪ Outputs‬قبل أن نعود للھاردوير المستخدم لالدخال ‪ Input‬ومن‬
‫ثم ننتقل إلى الدوائر االلكترونية المستخدمة في عملية المعالجة قبل أن‬
‫ننطلق إلى شرح لبعض أكثر الدوائر شيوعاً‪..‬‬

‫وال داعي إلن اذكر بأنني لن استوفي كل شيء ‪ ،‬فقط سنطرح النقاط‬
‫األساسية والتي يستحسن ان تكون مطلعاً عليھا كونك مبرمج كومبيوتر ‪ ،‬أما‬
‫مھندسي الكومبيوتر فلھم مجاالت متعددة ومواضيع كثيرة لن اتطرق لھا ضمن‬
‫الدروس‪..‬‬
‫الدرس السابع ‪ :‬مدخل إلى الھاردوير ‪ -‬الجزء الثاني‬

‫شرحنا في الدرس السابق اساسيات العمل من خالل الھاردوير ‪ ،‬في ھذا‬


‫الدرس سوف نقوم بعرض بعض الوسائل التي تستخدم في عمليات عرض‬
‫البيانات‪.‬‬

‫‪. LED’s -1‬‬


‫سبق شرحھا أكثر من مرة وباختصار شديد فھي عبارة عن )لمبة( صغيرة تفتح‬
‫في حالة كون ال‪VCC=5 .‬‬

‫‪: Buzzer -2‬‬


‫في ال ‪ LED's‬كنا نستخدم االضاءة كدليل على مرور التيار الكھربائي ‪ ،‬أما في‬
‫‪Buzzer‬فھو يصدر صوتاً وقت أن يكون ال‪VCC=5 :‬‬
‫‪: Seven Segment -3‬‬

‫مثل الصورة السابقة ‪ ،‬فھو يقوم بعرض رقم اعتماداً على اضاءة واغالق عدد من‬
‫ال ‪ inputs‬الخاصة به ‪ ،‬وھو ال يستقبل مدخل واحد بل يستقبل عدد ‪ 8‬مدخالت‬
‫كل منھا يمثل اضاءة من ال ‪ 8‬الموجودة ‪ +‬النقطة حيث يمكن تشكيل الرقم‬
‫المطلوب ‪ ،‬بالشكل التالي مثال ً‪:‬‬

‫حيث يمكن احتساب اضاءة كل واحد منھم على حدة وحسب الرقم المدخل ‪-‬‬
‫بعد تحويل الرقم إلى ‪ Binary‬طبعاً ‪ -‬بمعادالت مثل ھذه المعادالت‪:‬‬

‫‪A = D'C'B'A' + D'C'BA' + D'C'BA + D'CB'A + D'CBA' + D'CBA + DC'B'A' +‬‬


‫‪DC'B'A‬‬

‫وھكذا لكل خانة منھم ‪ A,B....,DP‬معادلة خاصة بھا‪.‬‬


‫ھناك بالطبع اصدارات تستخدم خانتين ‪ ،‬ايضاً ھناك ال ‪ Fourteen Segment‬وال‬
‫‪Sixteen Segment‬وھي مثل تلك التي في الصورة حيث توفر خيارات اضافية‬
‫لكتابة الخانات‪:‬‬

‫‪ -4‬ال ‪: Screens‬‬

‫أكثر تعقيداً بالطبع من ال ‪ Seven Segment‬وعائلتھا حيث تسمح لكل بكتابة‬


‫عدد معين من الخانات يزيد وينقص حسب نوعية الشاشة‪.‬‬

‫‪ -5‬ال ‪ Stepper Motors‬وباقي المحركات ‪:‬‬

‫تعتمد على الحركة لالستفادة من التحكم ‪ ،‬وھي مجموعة من المحركات التي‬


‫تستقبل بيانات رقمية تحدد سرعة وحركة الموتور ‪ ،‬بالطبع ھناك الكثير من‬
‫التفاصيل في ھذا الجزء وكيفية التحكم به والعمل من خالله وھكذا‪...‬‬

‫نكتفي بھذا القدر اليسير في ھذا الدرس ‪ ،‬في الدرس القادم سوف نواصل‬
‫ولكن مع عدد بسيط من وسائل االدخال‪.‬‬
‫الدرس الثامن ‪ :‬مدخل إلى الھاردوير ‪ -‬الجزء الثالث‬

‫نواصل مبادئنا السريعة التي بدأنا فيھا قبل درسين من اآلن ونحاول فيھا تقديم‬
‫نبذة مختصرة قبل الشروع في التطبيق العملي ‪ ،‬في ھذا الدرس سوف نعرض‬
‫سريعاً عدداً من وسائل إدخال البيانات‪.‬‬

‫أوال ً‪: Switches :‬‬

‫توضح الصورة السابقة عدداً من ال ‪ Switches‬المختلفة ‪ ،‬وتشترك كلھا في‬


‫مبدأ قطع التيار ‪ ،‬حيث أنه في حالة ما فإن التيار يمر بين طرفي السويتش في‬
‫حين أنه في الحالة األخرى فإنك السلك يعتبر مقطوعاً ‪ ،‬تستخدم بطريقة‬
‫توصيل تيار كھربائي مستمر ووقت أن نحتاج إلى ادخال بيانات إلى الكومبيوتر‬
‫فإننا نقوم بفتح السويتش المتصل مع ال ‪ Parallel Port‬مثال ً ‪ ،‬مثل استخدامك‬
‫ألي مفتاح للكھرباء أو للمياه ‪ ،‬تماماً مثل الصورة التالية‪:‬‬
‫ھناك عدد من السويتش )ثنائي ‪ -‬رباعي( وأكثر تعتمد على نفس المبدأ ولكن‬
‫تقوم بفتح أكثر من خط في نفس المرة ‪ ،‬أو في نفس األداة تجد التحكم بأكثر‬
‫من سلك‪.‬‬

‫‪ -2‬لوحة المفاتيح ‪: KeyPad‬‬

‫على اختالف انواعھا فھي تشترك في مبدأ واحد ‪ ،‬فمثال ً زر رقم ‪ 7‬يتم تمثيله‬
‫على ‪ keypad‬مرتبطة ب ‪ 8‬خانات بالشكل التالي ‪ ، 00000111 :‬ويمكن في‬
‫ھذه الحالة السماح لبعض الحروف حيث يتم تمثيل ‪ A‬على سبيل المثال‬
‫‪ - 11000100‬مثال فقط‪- .‬‬

‫ثالثاً ‪ :‬المجسات‪Sensors :‬‬

‫ھو عالم متوسع متشعب مليء باالبتكارات واالختراعات والتقنيات المتجددة‬


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

‫أمثلة ‪ :‬سينسور ضوئي‪:‬‬

‫يقوم بقراءة التغير في شدة اإلضاءة‪.‬‬

‫أمثلة ‪ :‬سينسور مائي‪:‬‬


‫يصدر اشارة في حالة وجود مياه تالمس الجزء الحساس منه‪.‬‬

‫أمثلة ‪ :‬سينسور الحريق‪:‬‬

‫يصدر اشارة في حالة وجود لھب‪.‬‬

‫وغيرھا من األمثلة‪.‬‬

‫في الدرس القادم سوف ننتقل إلى دوائر المعالجة قبل أن نبدأ في التطبيقات‬
‫العملية‪.‬‬
‫الدرس التاسع ‪ -‬وسائل المعالجة‬

‫بعد أن تعرفنا على طرق االدخال واإلخراج ‪ ،‬سنعود ھنا في درسنا األخير ضمن‬
‫سلسلة الدروس النظرية للتحدث عن طرق معالجة البيانات ‪ ،‬قبل أن نواصل‬
‫في سلسلة دروسنا القادمة مع مثال حي وتطبيقي خطوة بخطوة‪.‬‬

‫أبسط وسائل المعالجة ‪ :‬المعالجات المنطقية‪Logic Gates :‬‬


‫مثل ‪ And‬و ‪ Or‬و ‪ Not‬وخالفھا ‪ ،‬وباختصار يمكن استخدامھا في عمليات الجمع‬
‫والطرح ‪ ،‬وعكس االشارة وخالفه خارج نطاق الكومبيوتر ‪ ،‬ويتم عادة تجميعھا‬
‫ضمن ‪ Gates‬تستقبل مصدر كھربائي ‪ VCC‬و ‪ Ground‬اضافة إلى عدد من‬
‫المدخالت وبالتالي عدد من المخرجات أيضاً ‪ ،‬على سبيل المثال دائرة ‪And‬‬
‫تكون بھذا الشكل مثال ً‪:‬‬

‫أما تركيبھا الداخلي فيكون بالشكل التالي مثال ً‪:‬‬

‫حيث أن ‪ A1‬مع ‪ B1‬يكون ال ‪ Output‬الخاص بھم على ‪ Q1‬مثال ً‪...‬‬


‫ھناك وسائل أخرى التخاذ القرار مثل ‪ Buffer‬على سبيل المثال ‪ ،‬وھو يسمح‬
‫للتيار )أياً كانت قيمته( بالمرور من نقطة‪ 1‬إلى نقطة‪ 2‬في حالة كون المدخل ‪1‬‬
‫على سبيل المثال ‪ ،‬ونستفيد منه بعمل متحكمات‪.‬‬

‫المتحكم األكثر تعقيداً ھو ال ‪ Relay‬حيث نلحظ في ال ‪ Buffer‬أنه ال يمكن له‬


‫التعامل سوى مع فرق جھد ال يتعدى ‪ ، 12‬أما ال ‪ Relay‬فھو قابل للتحكم بفرق‬
‫جھد يزيد حتى عن ‪ 220‬فولت ‪ ،‬ولذا يعد أحد أحجار الزاوية في أي تطبيق‬
‫صناعي حيث يستخدم مثال ً للتحكم في تشغيل واطفاء األجھزة الكھربائية بداللة‬
‫فرق الجھد القادم من الكومبيوتر ‪ ،‬وسنقوم باستخدامه إن شاء ﷲ في مرحلة‬
‫التطبيق العملي ‪ ،‬ھذه صورة ال ‪ Relay‬على أية حال‪:‬‬

‫وھذه ھي فكرة عمله‪:‬‬


‫ھناك الكثير من وسائل التحكم في العمليات ‪ ،‬ولكن سننتقل مباشرة إلى‬
‫أكبرھا وھو ‪ ، MicroController‬وھو ليس اكبرھا اعتباطاً ولكن إلنك تقوم‬
‫ببرمجته لينفذ لك أي نوع من المھام التي ترغب فيھا ‪ ،‬وعادة ما يكون لل‬
‫‪MicroController‬وسائل ادخال واخراج ويحتوي على ذاكرة ومعالج مختلف‬
‫الكفاءة والقدرة حسب نوع ال ‪ MicroController‬وسعره ‪ ،‬لن نستخدمه في‬
‫أمثلتنا القادمة ولكن ربما بعد انتھائنا من سلسلة الدروس ھذه قد تكون ھناك‬
‫دروس خاصة ببرمجة ال ‪ ، MicroController‬ھذه صورة ل ‪MicroController‬‬
‫على سبيل المثال‪:‬‬
‫الدرس العاشر ‪ :‬تطبيق تشغيل األجھزة الكھربائية‬
‫من خالل الكومبيوتر‬

‫مقدمة‪:‬‬

‫ھذا ھو درسنا التطبيقي األول ‪ ،‬في ھذا الدرس سنتعلم كيفية التحكم باألجھزة‬
‫الكھربائية من خالل الكومبيوتر ‪.‬‬

‫واآلن كل ما عليك ھو تجھيز أحد أجھزة المنزل الكھربائية ) جرس ‪ -‬مصباح ‪-‬‬
‫(‪.‬‬ ‫مروحة ‪ -‬أو أي جھاز كھربائي مكيف ‪ -‬ثالجة ولكن أوعى تبوظھا‬

‫القاعدة العامة في جميع األجھزة السابقة على اختالف انواعھا أنھا تستخدم‬
‫كھرباء سواء كانت من الكھرباء العمومية ‪ 220‬فولت ‪ ،‬أو حتى أجھزة تستمد‬
‫كھرباء من مصدر أقل مثل بطارية ‪ ،‬شخصياً قمت باحضار مصباح عادي‬
‫وسأطبق عليه الدرس ‪ ،‬يمكنك عمل نفس الخطوات مع أي جھاز كھربائي كما‬
‫أسلفت ولن تجد فرقاً واحداً‪.‬‬

‫ال تنس أن تتوخى الحذر خالل تعاملك مع الكھرباء حيث سنتعامل في ھذا‬
‫ً‬
‫الدرس وألول مرة مع كھرباء عالية الجھد ‪ 220‬أو ‪ 110‬فولت ‪ ،‬وھو خطر جدا إلننا‬
‫سنتعامل مع أسالك عارية ‪ ،‬لذا كن على حذر شديد ‪ ،‬حاول دوماً ان تكون في‬
‫مكان غير مبتل وعلى كرسي خشبي أو مكتب خشبي مثال بعيداً عن األرض ‪،‬‬
‫الحرص واجب برغم أن الموضوع سھل تماماً ويتعامل أغلبنا مع الكھرباء بصورة‬
‫دورية ونتعلم درس الدائرة الكھربائية ابتداء من الصف الرابع اإلبتدائي ‪ ،‬ولكن ال‬
‫أريد أن أكون سبباً في مضرة أحد ‪ ،‬أيضاً خالل مراحل التطبيق احرص دوماً على‬
‫كون الدائرة مفصولة عن التيار الكھربائي ‪ ،‬وبعد انتھائك من العمل واستعدادك‬
‫لتجربة شيء ما قم بتوصيل الكھرباء بحذر شديد ‪ ،‬حاول أال يكون ھناك أحد آخر‬
‫في الغرفة )طفل صغير( لكي ال يعبث بالكھرباء‪ .‬بعد انتھائك ال تنس فصل التيار‬
‫الكھربائي ووضع الدائرة في مكان آمن‪.‬‬

‫البداية ) الكھرباء ( ‪.‬‬

‫كما أوضحت في المقدمة ‪ ،‬قمت باحضار مصباح كھربائي عادي جداً وقمت‬
‫بتركيب وصلة كھربائية في طرفه ألتمكن من وصلھا بكھرباء المنزل ‪ ،‬من‬
‫البديھي كما ترى أن تعلم أن السلك الموصل للتيار ھو عبارة عن دائرة ) سالبة‬
‫وموجبة ( مع التيار الكھربائي المصدر بالشكل التالي ‪ -‬تخطيط الصورة على‬
‫مصدر تيار كھربائي )بطارية ( ‪:‬‬
‫ال يخفى عليكم أيضاً أننا نستطيع اضافة زر تحكم ) ‪ ( ON/Off‬في المنتصف‬
‫بحيث يصبح تخطيط الدائرة بالشكل التالي‪:‬‬

‫وبھذا نكون قد كونا دائرة كھربائية كاملة ‪ ،‬فيھا مصدر تيار كھربائي ‪ ،‬زر التحكم‬
‫‪ON/OFF‬تتصل في النھاية بمصباح يتم فتحه واغالقه عن طريق التحكم بھذا‬
‫الزر ‪ ،‬وحتى ھذه اللحظة ‪ ،‬نكون بعيدين تماماً عن الكومبيوتر فكل األدوات التي‬
‫تحتاج لھا ھنا تستطيع توفيرھا من أقرب محل لألدوات الكھربائية‪.‬‬

‫الخطوة الثانية ‪ ،‬مع ال‪Relay :‬‬

‫كما ترى فكل ما نحتاج إليه في نھاية ھذا الدرس أن نستطيع التحكم بالدائرة‬
‫الكھربائية السابقة ولكن بدال ً من استخدام ايدينا لفتح واغالق الدائرة نود‬
‫استخدام الكومبيوتر لھذا الغرض ‪ ،‬ھنا يأتي دور المتحكم‪Relay .‬‬

‫ببساطة شديدة ‪ ،‬يعتبر ال ‪ Relay‬عبارة عن عنصر تحكم يسمح ) بمرور ‪ -‬عدم‬


‫مرور التيار الكھربائي ( مثله مثل المفتاح السابق ‪ ،‬ولكن الفارق الوحيد أن‬
‫المفتاح السابق تتغير حالته طبقاً لتغيير المفتاح يدويا ‪ ،‬أما ال ‪ Relay‬فتتغير‬
‫حالته بناء على ال ‪ Input‬الذي يدخل إليه ) صفر أو واحد ( وھو ما يناسبنا تماماً‬
‫في عالم الكومبيوتر ‪ ،‬المخطط التالي لشكل ال‪Relay :‬‬

‫في الصورة السابقة ترى أن ھناك ‪ pins‬مخصصة الستقبال التحكم ‪، Control‬‬


‫يمكن عمل ذلك بأحد األشكال التالية‪:‬‬

‫أو‬
‫حيث يتم وصل الطرف األول بجھد أرضي والطرف الثاني بجھد ‪V 5‬ليعمل ال‬
‫‪Relay‬ويقوم بنقل التيار الكھربائي بين الطرف األول والثالث ‪ ،‬في حالة كونه‬
‫‪V 0‬يتم نقل التيار الكھربائي بين الطرف األول والثاني‪.‬‬

‫التوصيل مع الدائرة الكھربائية‪:‬‬

‫كل ما سنحتاج إليه ھو توصيل اطراف الدائرة والتي كانت في مكان المتحكم‬
‫اليدوي ‪ Switch‬بالطرف األول والثالث لل ‪ ، Relay‬لتصبح بالشكل التالي‪:‬‬

‫وھكذا تكون دائرتنا الكھربائية قد اكتملت ‪ ،‬في انتظار حصولھا على أوامر‬
‫التحكم من خالل الكومبيوتر‪.‬‬

‫أوامر التحكم من خالل الكومبيوتر‪:‬‬

‫باختصار شديد ‪ ،‬سنقوم بارسال اإلشارات الكھربائية عبر منفذ الطابعة ‪Parallel‬‬
‫‪ ،Port‬والذي له التركيب التالي كما أوضحنا سابقاً ‪:‬‬

‫وكما أسلفنا ‪ ،‬فكل ما يھمنا ھنا في ھذه الدائرة الكھربائية ھي ال ‪ pins‬باللون‬


‫األزرق والتي تمثل ال ‪ VCC‬والتي باللون االخضر والتي تمثل الجھد األرضي‬
‫‪ ،Ground‬سنقوم بأخذ سلك من ‪ pin‬رقم ‪ 2‬والمسماه ‪ D0‬لتكون المصدر األول‬
‫للكھرباء لدينا ويتم ادخالھا على ‪ VCC‬الخاص بال ‪ ، Relay‬فيما نحصل على‬
‫الجھد من اي من ال ‪ pins‬وليكن من رقم ‪ 25‬ونقوم بادخالھما سوية على ال‬
‫‪Relay‬بالشكل التالي‪:‬‬

‫لتسھيل عملية قراءة البيانات من منفذ الطابعة ‪ ،‬اقترح عليك استخدام سلك‬
‫طابعة عادي وقطعه من المنتصف والبدء بتوصيل األسالك ‪ ،‬أو شراء قطعة‬
‫لمنفذ الطابعة وتقوم أنت بلحم األسالك يدوياً ‪ ،‬سيكون األمر أسھل عليك من‬
‫استخدام المنفذ مباشرة وتوصيل األسالك به‪.‬‬

‫البرمجة‪:‬‬

‫بعد انتھائنا من توصيل الكومبيوتر بالدائرة الكھربائية ‪ ،‬جاء دور البرمجة لنتمكن‬
‫من التحكم بھذا الجھاز ‪ ،‬الطريقة األسھل للقيام بذلك ‪ -‬من خالل ‪ C#‬مثال ً ‪ -‬ھو‬
‫عمل زر يقوم بفتح واغالق ال ‪ Pins‬الموجودة بالطريقة التالية‪:‬‬

‫‪using System.Runtime.InteropServices‬‬
‫])"‪[DllImport("inpout32.dll", EntryPoint="Out32‬‬
‫;)‪public static extern void Output(int adress, int value‬‬

‫ومن ثم لفتح ‪ pin‬معينة قم باستخدام األمر التالي‪:‬‬

‫;)‪Output(888, 1‬‬

‫لفتح الثانية قم بكتابة ‪ ، 2‬الثالثة قم بكتابة ‪ 4‬وھكذا ‪ ،‬ولفتح الثانية والثالثة مثال ً ‪:‬‬
‫‪.6 = 4 + 2‬‬

‫طبعاً ال تنس ان تكون لديك مكتبة ‪ Inpout32.dll‬ولربما تحتاج إلى ھذه المكتبة‬
‫بدل االفتراضية ھنا‪:‬‬
‫‪http://www.dll-files.com/dllindex/dll-files.shtml?inpout32‬‬

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

‫الحماية‪:‬‬

‫بدءاً من ھذا الجزء سوف تجد بعض األمور المتقدمة نسبياً ‪ ،‬إذا لم تستطع فھم‬
‫شيء ھنا فقم بتجاوزه إلى المرحلة التالية ‪ ،‬ولكن ال تنس أن ھذا خطر‪.‬‬

‫كما ترى ‪ ،‬فمن الخطوة بمكان االستمرار في عمل ھذه الدائرة الكھربائية ‪،‬‬
‫والسبب بكل بساطة أنه في حالة حدوث أي ‪ Shortage‬في الدائرة الكھربائية‬
‫فسوف يقوم ذلك بإعطاب ال ‪ MotherBoard‬مباشرة ‪ ،‬ومع أنھا حالة ليست‬
‫منتشرة إال أننا ال بد من توفير حماية لل ‪ MotherBoard‬للحاالت الطارئة ‪ ،‬ھذا‬
‫ھو ما سنسعى إليه في ھذه الخطوات‪.‬‬
‫الحل البسيط الذي سنلجأ إليه في حالتنا لحماية اللوحة األم ھو باستخدام‬
‫‪ ،Buffer‬وھي ‪ Chip‬تقوم بعملية مرور للتيار الكھربائي في حالة وعدم مروره‬
‫في حالة أخرى‪.‬‬

‫طريقة العمل ‪:‬‬

‫سيتم وصل اإلشارة القادمة من منفذ الطابعة بال ‪ Buffer‬من ناحية وقرائتھا‬
‫من الناحية األخرى مع ادخال اشارة ‪ 1‬دوماً ليمر التيار الكھربائي ‪ ،‬الھدف من‬
‫ھذه العملية ھو أنه في حالة حدوث أي مشكلة في التيار الكھربائي فإن ال‬
‫‪Buffer‬وحده من سيتعطل ‪ ،‬وھو رخيص بالمناسبة ويعمل عمل الفيوز في‬
‫دائرتنا الكھربائية ھذه ‪ ،‬سيكون بالشكل التالي‪:‬‬
‫لكننا بھذه الطريقة سنواجه مشكلة ‪ ،‬والسبب أن التيار الكھربائي الخارج من ال‬
‫‪Buffer‬إلى دائرتنا الكھربائية سيكون غير قادر على تشغيل ال ‪ ، Relay‬لذا‬
‫سنعتمد على وجود ترانزستور كوسيط الدخال تيار كھربائي مختلف إلى ال‬
‫‪ ،Relay‬بحيث يتم ادخال التيار القادم من منفذ الطابعة بداية إلى ‪ Buffer‬ثم‬
‫إلى الترانزستور ‪ ،‬والذي سيتحكم في دخول مصدر كھربائي خارجي ) ‪ 9‬فولت‬
‫مثال ً ( إلى ال ‪ Relay‬الخاص بنا ‪ ،‬ھذا المخطط على سبيل المثال‪:‬‬

‫التطوير‪:‬‬

‫كما رأيت خالل الدرس السابق ‪ ،‬استخدمنا أدوات بسيطة لعمل دائرة كھربائية‬
‫يتم التحكم فيھا من خالل الكومبيوتر ‪ ،‬ولكن كما ترى فھي مبنية بطريقة سريعة‬
‫وقمنا بعمل دائرة حماية خاصة لھا مما أدى إلى بعض التعقيد فيھا ‪ ،‬لذا يمكننا‬
‫في التطبيقات الجدية االستغناء عن ھذه الطريقة بشراء ما يعرف باسم‬
‫‪Parallel Port Interface‬كالذي في الصورة التالية‪:‬‬
‫طبعاً سيكون أغلى وحسب امكانياته بالطبع لكن سعر العادي منه يصل إلى‬
‫حوالي ‪ 250‬جنيھاً مصرياً ‪ ،‬طريقة عمل الدائرة بسيطة جداً ‪ ،‬وھي قامت بالفعل‬
‫بما نقوم نحن بعمله حيث نجد ‪ Relays‬اضافة إلى دائرة حماية خاصة ‪ ،‬تستطيع‬
‫ھذه الدائرة تشغيل ‪ 8‬أجھزة أو حسب نوعھا ‪ ،‬يتم توصيلھا بسلك عادي إلى‬
‫منفذ الطابعة حيث نجد أن كل ‪ relay‬من الثمانية يتم التحكم به من خالل ‪Pin‬‬
‫في منفذ الطابعة ‪ ،‬بالطبع كل ما عليك ھو توصيل أجھزتك الكھربائية بھذا ال‬
‫‪Relay‬ليتولى ھو عنك الباقي حيث تقوم بتشغيله أو برمجته كما تعلمنا في‬
‫القسم السابق من ھذا الدرس‪.‬‬

‫ھذا ھو واحد من ھذه األنواع‪:‬‬


‫‪http://www.kemo-electronic.de/en/bausaetze/b210/index.htm‬‬
‫الدرس الحادي عشر ‪ :‬قيادة عربة ريموت كنترول من‬
‫خالل الكومبيوتر‬

‫األدوات التي نحتاجھا لھذا الدرس‪:‬‬

‫‪ -1‬سيارة بسيطة )لعبة( تعمل بالريموت كنترول‪.‬‬


‫‪Relay . -2‬‬
‫‪Transisitor . -3‬‬
‫‪Buffer . -4‬‬
‫‪ -5‬مجموعة من األسالك والتوصيالت‪.‬‬

‫واآلن وبعد متابعتك للدروس السابقة ‪ ،‬فأنت تدرك تماماً أن بامكانك التحكم في‬
‫عبور التيار بين النقاط المختلفة عن طريق الكومبيوتر ‪ ،‬ھذا ھو المبدأ الذي‬
‫سنعتمد عليه في درسنا الحالي‪.‬‬

‫سنبدأ اآلن بفك جھاز الريموت كنترول الخاص بالعربة ‪ ،‬الريموت في ابسط‬
‫صوره يكون بالشكل التالي‪:‬‬

‫إذا المس الطرف األول الطرف رقم )‪ ) 2‬تسير العربة لألمام ‪ (3) ،‬للخلف ‪ (4) ،‬و‬
‫)‪ (5‬لليمين واليسار ‪ ،‬لذا سنجرب وضع ‪ Relay‬على التوصيلة لالمام مثال ً بالشكل‬
‫التالي‪:‬‬
‫يمكنك ان تالحظ بكل سھولة امكانية التحكم في ال ‪ relay‬من خالل الكومبيوتر‬
‫وھو ما يعني بالتالي تحريك العربة عن طريق الكومبيوتر ‪ ،‬لذا سنضع ثالث‬
‫ريليھات اخرى لباقي االتجاھات‪.‬‬

‫ال تنس اضافة دائرة للحماية كتلك التي شرحناھا في الدرس السابق ‪ ،‬ايضاً‬
‫يمكنك استخدام ‪ parallel port interface‬مباشرة ‪ ،‬لنفترض اننا قمنا بالتوصيل‬
‫على ال ‪ pins‬من ‪ 1‬إلى ‪.4‬‬

‫البرمجة‪:‬‬

‫بداية سنقوم برسم فورم بسيط يحتوي على اربعة ازرار ‪ ،‬سنقوم بداية‬
‫باستدعاء مكتبة ‪ inpout32.dll‬كما تعلمنا في الدروس السابقة بالشكل التالي‬
‫‪:‬‬

‫‪using System.Runtime.InteropServices‬‬
‫])"‪[DllImport("inpout32.dll", EntryPoint="Out32‬‬
‫;)‪public static extern void Output(int adress, int value‬‬
‫في زر التحرك لالمام سنكتب الكود التالي‪:‬‬

‫;)‪Output(888, 1‬‬
‫في باقي االتجاھات سوف نقوم فقط باستبدال رقم ‪ 1‬باالرقام ‪ 2‬و ‪ 4‬و ‪ 8‬كما‬
‫تعلمنا سابقاً‪.‬‬

‫الريموت السابق كان في ابسط صوره ‪ ،‬بعض الريموتات اكثر تعقيداً ‪ ،‬بل ان‬
‫بعض الريموتات تحتوي على تحكمات اكثر مثل الفرامل ‪ ،‬تشغيل االنوار ‪ ..‬الخ ‪،‬‬
‫وكل ذلك يمكن التحكم فيه عن طريق الكومبيوتر‪.‬‬

‫قبل النھاية ‪ ،‬يمكنك اضافة لمسة جمالية بسيطة عن طريق تحريك العربة عن‬
‫طريق اسھم الكيبورد بدال ً من الضغط عليھا بالماوس ‪ ،‬يتم اقتناص احداث‬
‫الماوس في ‪ key Down‬فقط حيث ال يمكن قراءتھا في‪key press .‬‬

‫لذا قم بتعديل الخاصية ‪ KeyPreview‬للفورم إلى ‪ ، True‬ومن ثم اكتب في‬


‫حدث ‪ Form_KeyDown‬األمر التالي‪:‬‬

‫)"‪if (e.KeyValue.ToString() == "37‬‬


‫‪// left‬‬
‫)"‪else if (e.KeyValue.ToString() == "38‬‬
‫‪// up‬‬
‫)"‪else if (e.KeyValue.ToString() == "39‬‬
‫‪// right‬‬
‫)"‪else if (e.KeyValue.ToString() == "40‬‬
‫‪// down‬‬
‫الدرس األخير ‪ :‬مقدمة إلى عالم الروبوتات‬

‫في درسنا األخير في دورة منفذ الطابعة ‪ ،‬سنطل بطريقة بسيطة على عالم‬
‫الروبوتات نظراً لوجود صلة بينه وبين عالم ال ‪ ، Physical Computing‬وقبل‬
‫البداية نود ان نعرف الروبوت‪.‬‬

‫يقصد بالروبوت اي شيء يتمتع بقدر معين القدرات المشابھه لالنسان والتي‬
‫تقوم بمھام بديلة عنه سواء اكان حقيقياً ام روبوت وھمي على شكل برنامج‬
‫كومبيوتر ‪ ،‬ومن ھذا نستطيع ان نعرف ان محرك البحث ھو روبوت ‪ ،‬العربة التي‬
‫دخلت إلى االھرامات لالسكتشاف او صعدت للقمر لالستكشاف ھي روبوت‬
‫ايضاً‪.‬‬

‫لكن ما يتبادر إلى ذھن الناس دائماً عند اطالق كلمة روبوت ھو ذلك الكائن‬
‫الشديد الشبه باالنسان الذي يملك قدمين ويدين لتنفيذ بعض المھام وخالفه ‪،‬‬
‫إال أن ھذه النظرة قاصرة نوعاً ما ‪ ،‬فھناك انواع شديدة التعقيد من الروبوتات‬
‫التي ربما ال تشابه اإلنسان في اي شيء‪.‬‬

‫في درسنا اليوم سوف نتحدث عن النوع الحقيقي من الروبوتات وليس عن‬
‫برامج الكومبيوتر ‪ ،‬وسنبدأ بتعريف ‪ :‬ما ھي المكونات االساسية الي روبوت ‪،‬‬
‫ومتى نستطيع ان نطلق عليه ھذا االسم "روبوت" ؟‬

‫‪ -1‬جسم ‪ body structure :‬يحدد الشكل بنسبة كبيرة طبيعة المھمة التي‬
‫يقوم بھا الروبوت وتساھم بنسبة كبيرة في نجاحه ‪ ،‬لذا يعد الشكل عنصراً‬
‫اساسياً ليتمكن الروبوت من العمل )روبوت تقطيع االحجار مثال ً يحتاج إلى بنية‬
‫صلبة ‪ ،‬اذرع من الفوالذ منتھية بأدوات التقطيع مثال ً‪.‬‬

‫‪ -2‬عضالت ‪ muscle :‬تقوم بالتحكم في حركاته ‪ ،‬في الغالب تكون عضالت‬


‫الروبوت ھي مجموعة من التروس والمواتير التي تتحكم في جميع حركاته‪.‬‬

‫‪ -3‬حساسات ‪ sensor system :‬تقوم بالتحكم بالمدخالت إليه ‪ ،‬مثال ً قد نحتاج‬


‫إلى كاميرا مراقبة تقوم مقام العين ‪ ،‬مايكروفون اللتقاط االصوات ‪ ،‬قد نحتاج إلى‬
‫حساسات للمياة او للحرارة او الرطوبة او خالفه حسب حاجة الروبوت‪.‬‬

‫‪ -4‬عقل ‪ brain :‬وھو الذي يتحكم في تفسير وفھم المدخالت المختلفة ومن ثم‬
‫تنفيذ الحركات عن طريق العضالت او وسيلة االخراج والتنفيذ الخاصة بالروبوت ‪،‬‬
‫يكون عادة على شكل برنامج كومبيوتر على مايكروكنترولر خاص بالروبوت‪.‬‬

‫‪ -4‬مصدر طاقة ‪ power supply :‬ايضاً يحتاج الروبوت لمصدر لطاقته ‪ ،‬في‬
‫العادة يتم استخدام بطاريات مخصصة حسب حجم واحتياجات الروبوت‪.‬‬
‫مثال سريع‪:‬‬

‫سنحاول اآلن شرح مثال بسيط على روبوت ‪ ،‬وسنحاول تطبيق مبادئ الروبوتات‬
‫الخمسة عليه‪.‬‬

‫سيقوم الروبوت الخاص بنا بالبحث عن األوراق الزرقاء مثال ً في وسط مجموعة‬
‫من االوراق ‪ ،‬وعندما يعثر على واحدة يقوم بطباعة كلمة بسيطة عليھا‪.‬‬

‫المكونات التي نحتاج إليھا‪:‬‬

‫‪-‬على صعيد الجسم ‪ :‬نحتاج إلى جسم قابل للحركة ‪ -‬ذراع تحمل ختماً ما ‪-‬‬
‫واخيراً حامل قابل للحركة في كل االتجاھات ليقوم بحمل الكاميرا‪.‬‬
‫‪-‬على صعيد العضالت ‪ :‬نحتاج إلى موتور لتحريك الجسم )بالعجالت مثال ً( ‪-‬‬
‫موتور اخر للتحكم في الذراع التي تحمل الختم ‪ ،‬واخيراً موتور ثالث لتحريك‬
‫حامل الكاميرا‪.‬‬
‫‪-‬على صعيد وسائل االحساس ‪ :‬نحتاج إلى كاميرا لتقوم بالتقاط الصور‪.‬‬
‫‪-‬على صعيد مصدر الطاقة ‪ :‬سنكتفي ببطارية للكاميرا وأخرى للعربة المتحركة‬
‫التي تحملھا ‪ ،‬بطارية أخيرة للموتور الخاص باألذرعة والحامل‪.‬‬
‫‪-‬وأخيراً على صعيد العقل ‪ :‬نحتاج إلى برنامج كومبيوتر لتحريك الكاميرا ‪ ،‬تحريك‬
‫الذراع ‪ ،‬والجوريزم معالجة الصور والبحث عن اللون األزرق‪.‬‬

‫العمل‪:‬‬

‫‪-‬قم بشراء عربة عادية بالبطاريات ‪ ،‬سيكون ھذا ھو الجسم الخاص بنا والذي‬
‫سنقوم بتحريكه عن طريق الكومبيوتر كما تعلمنا سابقاً‪.‬‬
‫‪-‬قم بشراء كاميرا بسيطة وقم بتوصيلھا بالكومبيوتر ‪ ،‬قم بوضعھا على حامل‬
‫وربطھا بموتور عادي وربط الموتور بالكومبيوتر ايضاً لتحريكه من اجل التحرك‬
‫في جميع االتجاھات‪.‬‬
‫‪-‬ختم بسيط من اي مكتبة ‪ ،‬اربطه بحامل وقم بتحويل حركة الموتور الدائرية‬
‫إلى افقية باستخدام التروس‪.‬‬
‫‪-‬اآلن في برنامجك قم باعطاء األوامر للحامل بالتحرك بالكاميرا في جميع‬
‫االتجاھات كل ثانية ‪ ،‬والتقاط صورة ‪ ،‬قم باستخدام احد الجوريزمات قراءة الصور‬
‫والبحث عن وجود اللون االزرق‪.‬‬
‫‪-‬عندما تجد اللون االزرق قم بحساب زاوية انحراف الكاميرا ‪ ،‬قم بالتحرك بالعربة‬
‫في ھذا االتجاه حتى تصل إليھا ‪ .‬قم بتحريك الختم العلى واسفل‪.‬‬

‫تطويرات‪:‬‬

‫‪-‬سيكون من المربك جداً عمل كل ھذا الجھد باستخدام توصيالت واسالك ‪،‬‬
‫يمكن استخدام وحدات ارسال واستقبال السكلي‪.‬‬
‫‪-‬يمكن ايضاً االستغناء على الكومبيوتر ووضع ‪ microcontrolller‬بدال ً منه في‬
‫العربة‪.‬‬
‫مسابقة روبوكون‪:‬‬

‫ھي مسابقة عالمية تقام فعالياتھا سنوياً بين الطالب من الجامعات المختلفة‬
‫لبناء روبوت يقوم بتنفيذ مھمة محددة ‪ ،‬توجد تصفيات لھا في مصر ويتم سفر‬
‫الفرق الفائزة إلى المسابقة العالمية‪.‬‬

‫ال اعرف إذا كانت ھناك تصفيات في دول عربية اخرى ‪ ،‬ولكن ھذا الرابط‬
‫لتوقيتات المسابقة لھذا العام‪:‬‬
‫‪http://www.egyptradio.tv/robocon/table.htm‬‬

‫مسابقة الروبوكون للعام الفائت كانت بخصوص عمل روبوت يقوم بالبحث عن‬
‫بعض الحلقات ووضعھا داخل عمود ‪ ،‬المطلوب من المسابقة موجود على شكل‬
‫فيديو على الرابط التالي‪:‬‬
‫‪http://www. youtube.com/watch?v=t15r9-ZXFwM&feature=related‬‬

‫اما مسابقة ھذه السنة والتي ستقام نھائياتھا في الھند ‪ ،‬حيث ستقوم‬
‫الروبوتات بنقل االطعمة وسرقتھا احياناً ‪ ،‬تجد في الرابط األول شروط وطبيعة‬
‫المسابقة وكافة التفاصيل عنھا إذا احببت االشتراك فيھا لھذه السنة‪.‬‬

‫اختم ھذا الدرس ببعض الفيديوھات‪:‬‬

‫روبوتات كرة القدم األمريكية‬


‫‪http://www. youtube.com/watch?v=O5KaBtWwu7I‬‬

‫روبوت اللمونة الدايخة‬


‫‪http://www. youtube.com/watch?v=YaoyHHMRXQ4‬‬

‫المصارعة الحرة العالمية‬


‫‪http://www. youtube.com/watch?v=eyorb9MHYr0&NR=1‬‬

‫في نھاية ھذه الدورة اسأل ﷲ ان اكون قد قدمت بعض الفائدة ‪ ،‬فما كان فيھا‬
‫من صواب فمن ﷲ وما كان فيھا من خطأ فمن نفسي والشيطان‪.‬‬

‫وﷲ الموفق‪...‬‬
‫والسالم عليكم ورحمة ﷲ وبركاته‪.‬‬

You might also like