![]() |
كيف يحدد الروبوت أن أمامه عائقا في الطريق؟ كيف يعرف الروبوت المسافة بينه وبين اﻷشياء؟ كيف نستطيع أن نبرمج ردة فعل الروبوت عندما يواجه أحد العوائق؟ كيف، كيف وكيف....؟ نعم، هذا هو درس يومنا هذا....
|
![]() | ![]() | ![]() |
هذه لن نستغني عنها.
|
وهذا أيضا.
|
نريد حوالي 5 صمامات ضوئيةLED
|
![]() | ![]() | |
زر (سواءا كان بأربع أرجل أو باثنين)
مهمته هو ايصال الكهرباء عند الضغط عليه. نسميه "مستشعر الضغط"
|
نحتاج لثلاث أنواع من المقاومات:
مقاومة واحدة تتراوح قيمتها بين 20 أوم و220 أوم
5 مقاومات تتراوح قيمها بين 300 أوم و 2 كيلو أوم
مقاومة واحدة تتراوح قيمتها بين 5 كيلوأوم و100 كيلوأوم
|
مستشعر الضغط تبدو كلمة معقدة!!! لا عليك، انما هو عبارة عن زر كهربائي فقط أو بالأحرى انما هو قاطع تيار، بسيطة!!!!
يعمل هذا الزر كما هو موضح في الصور:
|
![]() |
عندما يتم الضغط على الزر الكهربائي (أي مستشعر الضغط أو قاطع التيار) فسيتم غلق الدارة الكهربائية ويشتعل المصباح. لماذا نقول عنه مستشعر الضغط؟ لأنه وبكل بساطة يستشعر ضغط الانسان عليه فيوصل الدارة الكهربائية. وهذا تقريبا عمل كل المستشعرات الاليكترونية حيث تنبني على نفس المبدأ. |
على أي، رغم أن هذا المركب الاليكتروني يحمل أربعة أطراف إلا أن كل طرفين متصلين داخليا. وبالتالي كأنه عندك مربطين فقط واحد في الأعلى والآخر في الأسفل.
| ![]() |
أولا وقبل كل شيء، من المستحسن التأكد من جميع المركبات الاليكترونية عن طريق ايصال بعضها ببعض بواسطة دارة كهربائية. قم بإنجاز الدارة التالية، وبعدها صل بطاقة Arduino بالحاسوب حتى يتم مرور الكهرباء إليها.
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
/*
* شيفرة مستشعر ضغط وصمام ضوئي
*/
int ledPin = 12; //الصمام الضوئي موصل بالثقب 12
int switchPin = 2; // مستشعر الضغط موصول بالثقب 2
int val; // متغير سنحتاج إليه
void setup()
{
pinMode(ledPin, OUTPUT); // اجعل الثقب 12 كمخرج
pinMode(switchPin, INPUT); // اجعل الثقب 2 كمدخل
}
void loop()
{
val = digitalRead(switchPin); // val اقرأ قيمة المدخل 2 ثم احتفظ بها في
if (val == LOW) //إذا تم الضغط على الزر الكهربائي
{
digitalWrite(ledPin, HIGH); // أشعل الصمام إذن
}
else //وإلا، إذ لم يتم الضغط على الزر الكهربائي
{
digitalWrite(ledPin, LOW); // أطفأ الصمام
}
}
|
الحالة
|
الرمز
|
مثال
|
يساوي
|
==
|
If( a == 3)
{ Serial.print(“test”);}
|
يخالف
|
!=
|
If( jomla != “Salam alaikom”)
{ Serial.print(“test”);}
|
أكبر من
|
>
|
If( a > 7)
{ Serial.print(“test ”);}
|
أصغر من
|
<
|
If( d < -5.13)
{ Serial.print(“test ”);}
|
أكبر من أو يساوي
|
>=
|
If( x >= 66)
{ Serial.print(“test”);}
|
أصغر من أو يساوي
| >= |
If( b
{ Serial.print(“test”);}
|
و
|
&&
|
If( y > 3 && z < 6)
{ Serial.print(“test”);}
|
أو
|
||
|
If( w > 3 || w < -10)
{ Serial.print(“test”);}
|
1. قم بتغيير الشيفرة أعلاه بحيث يكون العكس. أي عندما تضغط على الزر ينطفئ الصمام وإلا فإنه يبقى مشتعلا.
2. قم بتغيير الشيفرة مرة أخرى بحيث إذا تم الضغط على الزر فإن الصمام يشتعل وينطفئ 5 مرات (يبقى نصف ثانية مشتعلا ونصف ثانية منطفأ). وسيبقى منطفأ كليا إذا لم يتم الضغط عليه.
3. قم بإضافة صمام LED آخر الى الدارة الكهربائية كما هو مبين في الخطاطة. ثم، قم بتغيير الشيفرة بحيث إذا تم الضغط على الزر يشتعل صمام واحد ويبقى اﻵخر منطفأ، وإلا إذا لم يتم الضغط على الزر ينطفئ اﻷو ويشتعل الثاني.
|
![]() |