Professional Documents
Culture Documents
ھذا الدرس موجه للمبتدئين على عجالة من أجل فھم كيفية عمل الكومبيوتر...
لن أطيل ،ولمن يريد االستزادة يمكنه البحث على اإلنترنت ،ابتداء من الدروس
القادمة سوف افترض مستوى معين للشرح.
ھناك ثالث معامالت منطقية رئيسية تتم من خاللھا جميع عمليات الكومبيوتر ،
ھم:
Not
AND
حيث أنه ال بد للطرفين أن يكونا = 1ليكون الناتج ، 1فمثال ً:
كود:
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
الدوائر المتكاملة.
الحقاً تم تجميع ھذه العمليات في دوائر مغلقة لتسھيل التعامل ،وجرى تجميع
أكثر من واحدة في نفس المكان ،ال تنس أن كل دائرة تحتاج إلى مصدر 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بسبب طبيعته المحدودة.
العملية العكسية ،الرقم 18مثال ً ) في نظام ترقيم يتم تمثيل األرقام فيه في 8
بت) .
18 / 2 = 9والباقي )صفر(.
9 / 2 = 4والباقي )واحد(.
4 / 2 = 2والباقي )صفر(.
2 / 2 = 1والباقي )صفر(.
1 / 2 = 0والباقي )واحد(.
واآلن سوف نقوم برص األرقام منذ البداية ،ونكمل الباقي حتى 8خانات بأصفار
،ولذا يكون الناتج00010010 .
ھناك ما يعرف بنظم الترميز مثل ASCIIآسكي ،و Unicodeيونيكود وغيرھا ،
ولنر مثال ً كيف يقوم نظام آسكي بالتعرف على الحروف والرموز.
في آسكي يتم حجز األرقام من 31-0اضافة للرقم 127للرموز الخاصة مثل
Deleteوغيرھا.
واألرقام من 47-32من أجل الرموز مثل ! +
واألرقام من 57-48يتم فيھا تمثيل األرقام من .9 - 1
من : 64-58رموز أخرى مثل ؟
من 90-65الحروف اإلنجليزيةCapital .
من : 96-91رموز مرة أخرى مثل [
من : 122-97الحروف اإلنجليزية Small
من : 127-123رموز أخرى.
وتبقى لدينا 127أخرى يتم تشكيلھا حسب الحاجة حيث تجد مثال ً في حالتنا
الحروف العربية وخالفه.
باختصار فإن منافذ الكومبيوتر على اختالف انواعھا ما ھي إال وسيلة الخراج
البيانات خارج نطاق الكومبيوتر أو ادخالھا إليه عبر أجھزة مختلفة أو العكس ،
ومن أبسط األمثلة على ذلك لوحة المفاتيح مثال ً والتي تستخدم الدخال البيانات
عبر منفذ USBأو، PS2وفي المقابل الطابعة والتي تستخدم ايضاً Parallel
Portأو . USB
وببساطة فإن جميع ھذه األجھزة تقوم باستقبال 0و 1أو ارساله إلى
الكومبيوتر إلى برنامج مختص بذلك يقوم بفھمھا وتحليل المطلوب ،ففي حالة
الكيبورد وبعد استالم اشارة كھربائية يقوم Driverخاص بترجمة ھذه االشارة
إلى حرف أو رمز ،وفي العملية العكسية في الطابعة فإن االشارات الكھربائية
التي تتسلمھا الطابعة يتم تحويلھا إلى مجموعة من الخطوط والحروف واأللوان
.
صمم ھذا المنفذ قديماً من أجل توصيل المودم الخارجي بالكومبيوتر ،ويحتوي
على 8مداخل تستقبل كل منھا 0أو ) 1بايت كامل( ويتم ارسال البيانات
تسلسيال ً )بايت ورا التاني( حتى تنتھي البيانات.
قبل كل بايت ال بد من ارسال Start Bitوكذلك بعد االنتھاء ،قد يكون ھناك أيضاً
ما يعرف باسم Parity Bitفي حالة التأكد من األخطاء وخالفه.
السرعة المتوسطة لھذا المنفذ ھو 116كيلوبت/ثانية ،ولكن مع استخدام ESP
أو Super ESPيمكن الوصول إلى سرعات 460كيلوبت في الثانية.
أصبح بفضل سرعته وتوحيد معاييره أحد أشھر المنافذ والتي اتجھت إليھا جميع
الشركات المصنعة لألجھزة ،حيث نجد سرعة وسھولة التعامل مع ھذا المنفذ.
فھذا المنفذ يمكنك من ربط حتى 127جھاز مع الكومبيوتر ،اضف إلى ذلك
تمتعه بخاصية hot-swappableوالتي تسمح بالربط والتعريف مباشرة مع
الكومبيوتر ،اضف إلى ذلك السرعة والتي تبلغ في USB 2.0حوالي 480
ميجابت /ثانية.
وبخصوص التركيب الداخلي ،فإنه مكون فقط من أربع أسالك ،واحدة لل VCC
وواحدة لل Groundواالثنتان الباقيتان تستخدمان الرسال واستقبال البيانات:
منفذ PCIوھو أعقد أنواع المنافذ واسرعھا في نفس الوقت ،وھو على
الماذربورد ويتم بناء كارت خاص للتعامل معه ،ولكن يتم التعامل معه ببساطة
مثل األنواع السابقة اجماال ً:
بالطبع يمكن التعامل برمجياً مع جميع ھذه األنواع وھو ما سيتم شرحه في
دروس قادمة ،وفي جميع األنواع يتم االدخال على كل Pinحيث تمثل سلك و
bitالدخال البيانات ،أيضاً حتى في PCIستجد شرائح معدنية تمثل كل منھا
سلك أوPIN .
مقدمة:
ً
كان درسنا السابق مخصصا للحديث باختصار عن منافذ الكومبيوتر ،ھذا الدرس
للحديث عن واحد منھا ولكن بالتفصيل نظراً إلننا سوف نقوم باستخدامه ضمن
ھذه السلسة اضافة لكونه المنفذ األشھر لعمليات التحكم من خالل الكومبيوتر
قبل أن يظھر USBكمنافس قوي لھذا المنفذ ،ولكن ليس للمبتدئين.
يعد منفذ الطابعة أسھل المنافذ للتعامل معھا من خالل الكومبيوتر نظراً لكونه
أصبح شاغراً بعد ظھور USBواعتماد األجيال الحديثة من الطابعات عليه ،أيضاً
كونه سھل في التعامل معه وال يحتاج إلى أدوات اضافية وغيره.
الرسال البيانات عبر منفذ الطابعة ال بد من تحديد رقم المنفذ اوال ً وعادة ما يكون
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سوف تجد الرقم المخصص
للمنفذ الخاص بك.
في الدرس القادم سوف نتعلم كيفية برمجة المنفذ ،ولكن حتى الدرس القادم
تستطيع عمل ھذه التجربة البسيطة:
تجربة:
إذا كنت مبرمج .netفقم أوال ً بعمل importأو using -حسب VBأو C# -ل :
System.Runtime.InteropServicesومن ثم قم باستيراد المكتبة
impout32.dllبالشكل التالي -سي شارب- :
])"[DllImport("inpout32.dll", EntryPoint="Out32
ومن ثم قم بكتابة الرقم الذي يحدد ال Pinsالتي تريدھا مفتوحة وليكن مثال ً
األول فقط وقم بارساله باستخدام Outputبالشكل التالي:
;)Output(888, 1
وحتى إذا كنت مبرمج Visual Basic 6فھذا األمر لك أيضاً ولكن وفر وقتك
وجھدك وتحول إلى .net -دعاية مجانية -.
: وضع ھذا الكود داخلهModule قم بعمل
Out "&H378", 1
Out "&H378", 0
http://vb4arab.com/vb/showthread.php?t=1531
الدرس الخامس :برمجة منافذ الكومبيوتر
كنا في الدرس السابق قد تعلمنا كيفية كتابة الكود ،في ھذا الدرس سنتعلم
كيف يتم تنفيذ ھذه األوامر فعلياً قبل أن ننطلق في الدرس القادم في عالم
الھاردوير.
: Kernel Mode Driver -3وھو برنامج مخصص يمكنه نقل البيانات من وإلى ال
،Device Driverويتم استخدامه في نظم التشغيل التي ال تسمح بالوصول
المباشر إلى الھاردوير.
بعد ان تعرفنا في الدروس السابقة على كيفية اخراج البيانات عبر منفذ الطابعة
بالكود ،واصبح بمقدورنا التحكم في ال PINS 8المخصصين لل ، Outputجاء
الدور اآلن على كيفية قراءة ھذه القيم واالستفادة بھا في العمليات المختلفة
في الجھة المقابلة ) جھة الھاردوير) .
أبسط طرق قياس ھذه القيم ھي استخدام LEDواحدة ،يتم توصيل طرفھا
الموجب بأحد ال Pinsالموجودة لل Outputوطرفھا السالب بأحد ال Grounds
الموجودة ،وستضيء عندما يكون ھذا ال Pinمفتوحاً.
طريقة أخرى سھلة للقراءة وھي استخدام فولتاميتر Volt Meterحيث يتم
توصيله بال Pinالمطلوبة وال Groundأيضاً وقراءة فرق الجھد الناتج:
كانت ھذه ھي الطرق التي تعلمناھا في الدرس الماضي ،والھدف منھا فقط
قراءة والتأكد من عمل البرنامج ،أما في ھذا الدرس ولمدة ثالث دروس قادمة
فسوف نتعرف على بعض الھاردويرس المستخدمة لبناء الدوائر المختلفة ،في
ھذا الدرس سوف نتعرف على أساساتھا...
أوال ً :اللوحة األمbreadboard:
تستخدم ھذه اللوحة لتوصيل وتثبيت الدوائر الكھربائية ،وھي الحل األبسط
واالمثل للمبتدئين ،حيث تجد أن كل خط عرضي 5 -خانات في الصورة مثال ً
والمرقمة بحروف -تحمل قيمة واحدة بمعنى أنك لو ادخلت قيمة في أي منھم
وقرأتھا في اآلخرين فسوف تظل ھي نفس القيمة.
نستفيد من ذلك فيما لو رغبنا في قراءة قيمة مثل Groundألكثر من دائرة فإننا
سنضع ال Groundفي خانة ونقرأ من اربع خانات ألربع دوائر مختلفة ،وھكذا.
سعر ھذه اللوحة حوالي 10جنيھات أو أكثر قليال ً ،لكن ھناك حل آخر وھو ما
يسمى بالفيبر وھو أرخص ولكنه أفضل في التعامل وأصعب نسبياً ،وفي كال
الحالتين يتم نقل البيانات باستخدام أسالك عادية ،الصورة التالية كمثال:
أما مثلما يحصل في ال MotherBoardsوھي ما تسمى بالدوائر المطبوعة
Printed Circuitsحيث يتم نقل البيانات باستخدام سيلكون مطبوع ويتم تثبيت
الدوائر فھي الطريقة األمثل للمحترفين ولكن طباعتھا إلى حد ما مكلفة ،كما
أنه ال يمكنك تغييرھا الحقاً.
في حالة تعاملك مع أي دائرة كھربائية فإنك تحتاج إلى VCCاضافة إلى
Groundوحينما كنا نتعامل مع ال LEDكنا نقرأ ھذه البيانات عن طريق
الكومبيوتر ،ولكنك في دوائر أخرى ستحتاج إلى مصدر خارجي للتيار الكھربائي
،يمكن أن يكون بطارية 9فولت 20 ،فولت ،أو adapterيتم توصيله بالكھرباء
بواسطة Adapterمثل الذي في ھذه الصورة:
وبالطبع فإنك ستشتري واحدة يمكنه تزويدك بفرق جھد عادة ما يتراوح بين 1.5
و 12فولت يمكنك التحكم فيھا كما تريد ،كما يمنحك قطبين سالب وموجب.
الھدف من ھذا المنظم ھو الحفاظ على فرق جھد ثابت بمعنى انك لو وضعت v 5
regulatorفسوف يحافظ لك على فرق الجھد 5فولت حتى لو كنت تستخدم
بطارية 9فولت مثال ً ،حيث اننا دائماً نحتاج إلى قيمة 5فولت في أغلب االحيان
.
مثال سريع:
سنحاول اآلن تطبيق مثال سريع ومرة أخرى من خالل ، LED'sمقاومات ،
وسنقوم بالتطبيق مرة من خالل الكومبيوتر ومرة من خالل مصدر كھرباء خارجي
سواء أكان بطارية أم محول.
سنستخدم لوحة نقوم بتثبيت LEDعليھا ،وقبلھا سنقوم بوضع مقاومة صغيرة
لكي تحافظ لنا على ال ، LEDيتم وضع المقاومة قبل ال VCCأما ال Ground
فيظل كما ھو مثل ھذه الصورة:
ھذا التطبيق مشروح تفصيال ً على ھذا الرابط ،يمكنك االطالع عليه لالستفادة
وللشرح الموسع:
http://www.codeproject.com/csharp/csppleds.asp
في الدرس القادم سوف نبدأ بالتوسع في الھاردويرس المستخدمة بكثرة في
عمليات االخراج Outputsقبل أن نعود للھاردوير المستخدم لالدخال Inputومن
ثم ننتقل إلى الدوائر االلكترونية المستخدمة في عملية المعالجة قبل أن
ننطلق إلى شرح لبعض أكثر الدوائر شيوعاً..
وال داعي إلن اذكر بأنني لن استوفي كل شيء ،فقط سنطرح النقاط
األساسية والتي يستحسن ان تكون مطلعاً عليھا كونك مبرمج كومبيوتر ،أما
مھندسي الكومبيوتر فلھم مجاالت متعددة ومواضيع كثيرة لن اتطرق لھا ضمن
الدروس..
الدرس السابع :مدخل إلى الھاردوير -الجزء الثاني
مثل الصورة السابقة ،فھو يقوم بعرض رقم اعتماداً على اضاءة واغالق عدد من
ال inputsالخاصة به ،وھو ال يستقبل مدخل واحد بل يستقبل عدد 8مدخالت
كل منھا يمثل اضاءة من ال 8الموجودة +النقطة حيث يمكن تشكيل الرقم
المطلوب ،بالشكل التالي مثال ً:
حيث يمكن احتساب اضاءة كل واحد منھم على حدة وحسب الرقم المدخل -
بعد تحويل الرقم إلى Binaryطبعاً -بمعادالت مثل ھذه المعادالت:
-4ال : Screens
نكتفي بھذا القدر اليسير في ھذا الدرس ،في الدرس القادم سوف نواصل
ولكن مع عدد بسيط من وسائل االدخال.
الدرس الثامن :مدخل إلى الھاردوير -الجزء الثالث
نواصل مبادئنا السريعة التي بدأنا فيھا قبل درسين من اآلن ونحاول فيھا تقديم
نبذة مختصرة قبل الشروع في التطبيق العملي ،في ھذا الدرس سوف نعرض
سريعاً عدداً من وسائل إدخال البيانات.
على اختالف انواعھا فھي تشترك في مبدأ واحد ،فمثال ً زر رقم 7يتم تمثيله
على keypadمرتبطة ب 8خانات بالشكل التالي ، 00000111 :ويمكن في
ھذه الحالة السماح لبعض الحروف حيث يتم تمثيل Aعلى سبيل المثال
- 11000100مثال فقط- .
وغيرھا من األمثلة.
في الدرس القادم سوف ننتقل إلى دوائر المعالجة قبل أن نبدأ في التطبيقات
العملية.
الدرس التاسع -وسائل المعالجة
بعد أن تعرفنا على طرق االدخال واإلخراج ،سنعود ھنا في درسنا األخير ضمن
سلسلة الدروس النظرية للتحدث عن طرق معالجة البيانات ،قبل أن نواصل
في سلسلة دروسنا القادمة مع مثال حي وتطبيقي خطوة بخطوة.
مقدمة:
ھذا ھو درسنا التطبيقي األول ،في ھذا الدرس سنتعلم كيفية التحكم باألجھزة
الكھربائية من خالل الكومبيوتر .
واآلن كل ما عليك ھو تجھيز أحد أجھزة المنزل الكھربائية ) جرس -مصباح -
(. مروحة -أو أي جھاز كھربائي مكيف -ثالجة ولكن أوعى تبوظھا
القاعدة العامة في جميع األجھزة السابقة على اختالف انواعھا أنھا تستخدم
كھرباء سواء كانت من الكھرباء العمومية 220فولت ،أو حتى أجھزة تستمد
كھرباء من مصدر أقل مثل بطارية ،شخصياً قمت باحضار مصباح عادي
وسأطبق عليه الدرس ،يمكنك عمل نفس الخطوات مع أي جھاز كھربائي كما
أسلفت ولن تجد فرقاً واحداً.
ال تنس أن تتوخى الحذر خالل تعاملك مع الكھرباء حيث سنتعامل في ھذا
ً
الدرس وألول مرة مع كھرباء عالية الجھد 220أو 110فولت ،وھو خطر جدا إلننا
سنتعامل مع أسالك عارية ،لذا كن على حذر شديد ،حاول دوماً ان تكون في
مكان غير مبتل وعلى كرسي خشبي أو مكتب خشبي مثال بعيداً عن األرض ،
الحرص واجب برغم أن الموضوع سھل تماماً ويتعامل أغلبنا مع الكھرباء بصورة
دورية ونتعلم درس الدائرة الكھربائية ابتداء من الصف الرابع اإلبتدائي ،ولكن ال
أريد أن أكون سبباً في مضرة أحد ،أيضاً خالل مراحل التطبيق احرص دوماً على
كون الدائرة مفصولة عن التيار الكھربائي ،وبعد انتھائك من العمل واستعدادك
لتجربة شيء ما قم بتوصيل الكھرباء بحذر شديد ،حاول أال يكون ھناك أحد آخر
في الغرفة )طفل صغير( لكي ال يعبث بالكھرباء .بعد انتھائك ال تنس فصل التيار
الكھربائي ووضع الدائرة في مكان آمن.
كما أوضحت في المقدمة ،قمت باحضار مصباح كھربائي عادي جداً وقمت
بتركيب وصلة كھربائية في طرفه ألتمكن من وصلھا بكھرباء المنزل ،من
البديھي كما ترى أن تعلم أن السلك الموصل للتيار ھو عبارة عن دائرة ) سالبة
وموجبة ( مع التيار الكھربائي المصدر بالشكل التالي -تخطيط الصورة على
مصدر تيار كھربائي )بطارية ( :
ال يخفى عليكم أيضاً أننا نستطيع اضافة زر تحكم ) ( ON/Offفي المنتصف
بحيث يصبح تخطيط الدائرة بالشكل التالي:
وبھذا نكون قد كونا دائرة كھربائية كاملة ،فيھا مصدر تيار كھربائي ،زر التحكم
ON/OFFتتصل في النھاية بمصباح يتم فتحه واغالقه عن طريق التحكم بھذا
الزر ،وحتى ھذه اللحظة ،نكون بعيدين تماماً عن الكومبيوتر فكل األدوات التي
تحتاج لھا ھنا تستطيع توفيرھا من أقرب محل لألدوات الكھربائية.
كما ترى فكل ما نحتاج إليه في نھاية ھذا الدرس أن نستطيع التحكم بالدائرة
الكھربائية السابقة ولكن بدال ً من استخدام ايدينا لفتح واغالق الدائرة نود
استخدام الكومبيوتر لھذا الغرض ،ھنا يأتي دور المتحكمRelay .
أو
حيث يتم وصل الطرف األول بجھد أرضي والطرف الثاني بجھد V 5ليعمل ال
Relayويقوم بنقل التيار الكھربائي بين الطرف األول والثالث ،في حالة كونه
V 0يتم نقل التيار الكھربائي بين الطرف األول والثاني.
كل ما سنحتاج إليه ھو توصيل اطراف الدائرة والتي كانت في مكان المتحكم
اليدوي Switchبالطرف األول والثالث لل ، Relayلتصبح بالشكل التالي:
وھكذا تكون دائرتنا الكھربائية قد اكتملت ،في انتظار حصولھا على أوامر
التحكم من خالل الكومبيوتر.
باختصار شديد ،سنقوم بارسال اإلشارات الكھربائية عبر منفذ الطابعة Parallel
،Portوالذي له التركيب التالي كما أوضحنا سابقاً :
لتسھيل عملية قراءة البيانات من منفذ الطابعة ،اقترح عليك استخدام سلك
طابعة عادي وقطعه من المنتصف والبدء بتوصيل األسالك ،أو شراء قطعة
لمنفذ الطابعة وتقوم أنت بلحم األسالك يدوياً ،سيكون األمر أسھل عليك من
استخدام المنفذ مباشرة وتوصيل األسالك به.
البرمجة:
بعد انتھائنا من توصيل الكومبيوتر بالدائرة الكھربائية ،جاء دور البرمجة لنتمكن
من التحكم بھذا الجھاز ،الطريقة األسھل للقيام بذلك -من خالل C#مثال ً -ھو
عمل زر يقوم بفتح واغالق ال Pinsالموجودة بالطريقة التالية:
using System.Runtime.InteropServices
])"[DllImport("inpout32.dll", EntryPoint="Out32
;)public static extern void Output(int adress, int value
;)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ليتولى ھو عنك الباقي حيث تقوم بتشغيله أو برمجته كما تعلمنا في
القسم السابق من ھذا الدرس.
واآلن وبعد متابعتك للدروس السابقة ،فأنت تدرك تماماً أن بامكانك التحكم في
عبور التيار بين النقاط المختلفة عن طريق الكومبيوتر ،ھذا ھو المبدأ الذي
سنعتمد عليه في درسنا الحالي.
سنبدأ اآلن بفك جھاز الريموت كنترول الخاص بالعربة ،الريموت في ابسط
صوره يكون بالشكل التالي:
إذا المس الطرف األول الطرف رقم ) ) 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 .
في درسنا األخير في دورة منفذ الطابعة ،سنطل بطريقة بسيطة على عالم
الروبوتات نظراً لوجود صلة بينه وبين عالم ال ، Physical Computingوقبل
البداية نود ان نعرف الروبوت.
يقصد بالروبوت اي شيء يتمتع بقدر معين القدرات المشابھه لالنسان والتي
تقوم بمھام بديلة عنه سواء اكان حقيقياً ام روبوت وھمي على شكل برنامج
كومبيوتر ،ومن ھذا نستطيع ان نعرف ان محرك البحث ھو روبوت ،العربة التي
دخلت إلى االھرامات لالسكتشاف او صعدت للقمر لالستكشاف ھي روبوت
ايضاً.
لكن ما يتبادر إلى ذھن الناس دائماً عند اطالق كلمة روبوت ھو ذلك الكائن
الشديد الشبه باالنسان الذي يملك قدمين ويدين لتنفيذ بعض المھام وخالفه ،
إال أن ھذه النظرة قاصرة نوعاً ما ،فھناك انواع شديدة التعقيد من الروبوتات
التي ربما ال تشابه اإلنسان في اي شيء.
في درسنا اليوم سوف نتحدث عن النوع الحقيقي من الروبوتات وليس عن
برامج الكومبيوتر ،وسنبدأ بتعريف :ما ھي المكونات االساسية الي روبوت ،
ومتى نستطيع ان نطلق عليه ھذا االسم "روبوت" ؟
-1جسم body structure :يحدد الشكل بنسبة كبيرة طبيعة المھمة التي
يقوم بھا الروبوت وتساھم بنسبة كبيرة في نجاحه ،لذا يعد الشكل عنصراً
اساسياً ليتمكن الروبوت من العمل )روبوت تقطيع االحجار مثال ً يحتاج إلى بنية
صلبة ،اذرع من الفوالذ منتھية بأدوات التقطيع مثال ً.
-4عقل brain :وھو الذي يتحكم في تفسير وفھم المدخالت المختلفة ومن ثم
تنفيذ الحركات عن طريق العضالت او وسيلة االخراج والتنفيذ الخاصة بالروبوت ،
يكون عادة على شكل برنامج كومبيوتر على مايكروكنترولر خاص بالروبوت.
-4مصدر طاقة power supply :ايضاً يحتاج الروبوت لمصدر لطاقته ،في
العادة يتم استخدام بطاريات مخصصة حسب حجم واحتياجات الروبوت.
مثال سريع:
سنحاول اآلن شرح مثال بسيط على روبوت ،وسنحاول تطبيق مبادئ الروبوتات
الخمسة عليه.
سيقوم الروبوت الخاص بنا بالبحث عن األوراق الزرقاء مثال ً في وسط مجموعة
من االوراق ،وعندما يعثر على واحدة يقوم بطباعة كلمة بسيطة عليھا.
-على صعيد الجسم :نحتاج إلى جسم قابل للحركة -ذراع تحمل ختماً ما -
واخيراً حامل قابل للحركة في كل االتجاھات ليقوم بحمل الكاميرا.
-على صعيد العضالت :نحتاج إلى موتور لتحريك الجسم )بالعجالت مثال ً( -
موتور اخر للتحكم في الذراع التي تحمل الختم ،واخيراً موتور ثالث لتحريك
حامل الكاميرا.
-على صعيد وسائل االحساس :نحتاج إلى كاميرا لتقوم بالتقاط الصور.
-على صعيد مصدر الطاقة :سنكتفي ببطارية للكاميرا وأخرى للعربة المتحركة
التي تحملھا ،بطارية أخيرة للموتور الخاص باألذرعة والحامل.
-وأخيراً على صعيد العقل :نحتاج إلى برنامج كومبيوتر لتحريك الكاميرا ،تحريك
الذراع ،والجوريزم معالجة الصور والبحث عن اللون األزرق.
العمل:
-قم بشراء عربة عادية بالبطاريات ،سيكون ھذا ھو الجسم الخاص بنا والذي
سنقوم بتحريكه عن طريق الكومبيوتر كما تعلمنا سابقاً.
-قم بشراء كاميرا بسيطة وقم بتوصيلھا بالكومبيوتر ،قم بوضعھا على حامل
وربطھا بموتور عادي وربط الموتور بالكومبيوتر ايضاً لتحريكه من اجل التحرك
في جميع االتجاھات.
-ختم بسيط من اي مكتبة ،اربطه بحامل وقم بتحويل حركة الموتور الدائرية
إلى افقية باستخدام التروس.
-اآلن في برنامجك قم باعطاء األوامر للحامل بالتحرك بالكاميرا في جميع
االتجاھات كل ثانية ،والتقاط صورة ،قم باستخدام احد الجوريزمات قراءة الصور
والبحث عن وجود اللون االزرق.
-عندما تجد اللون االزرق قم بحساب زاوية انحراف الكاميرا ،قم بالتحرك بالعربة
في ھذا االتجاه حتى تصل إليھا .قم بتحريك الختم العلى واسفل.
تطويرات:
-سيكون من المربك جداً عمل كل ھذا الجھد باستخدام توصيالت واسالك ،
يمكن استخدام وحدات ارسال واستقبال السكلي.
-يمكن ايضاً االستغناء على الكومبيوتر ووضع microcontrolllerبدال ً منه في
العربة.
مسابقة روبوكون:
ھي مسابقة عالمية تقام فعالياتھا سنوياً بين الطالب من الجامعات المختلفة
لبناء روبوت يقوم بتنفيذ مھمة محددة ،توجد تصفيات لھا في مصر ويتم سفر
الفرق الفائزة إلى المسابقة العالمية.
ال اعرف إذا كانت ھناك تصفيات في دول عربية اخرى ،ولكن ھذا الرابط
لتوقيتات المسابقة لھذا العام:
http://www.egyptradio.tv/robocon/table.htm
مسابقة الروبوكون للعام الفائت كانت بخصوص عمل روبوت يقوم بالبحث عن
بعض الحلقات ووضعھا داخل عمود ،المطلوب من المسابقة موجود على شكل
فيديو على الرابط التالي:
http://www. youtube.com/watch?v=t15r9-ZXFwM&feature=related
اما مسابقة ھذه السنة والتي ستقام نھائياتھا في الھند ،حيث ستقوم
الروبوتات بنقل االطعمة وسرقتھا احياناً ،تجد في الرابط األول شروط وطبيعة
المسابقة وكافة التفاصيل عنھا إذا احببت االشتراك فيھا لھذه السنة.
في نھاية ھذه الدورة اسأل ﷲ ان اكون قد قدمت بعض الفائدة ،فما كان فيھا
من صواب فمن ﷲ وما كان فيھا من خطأ فمن نفسي والشيطان.
وﷲ الموفق...
والسالم عليكم ورحمة ﷲ وبركاته.