عناوين الدرس

نظام اصطفاف السيارة

مبتدئ

مقدمة

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

ultrasonic نظام اصطفاف

المواد والأدوات 

ultrasonic

X1 حساس الموجات الفوق صوتي (Ultrasonic)

leds

الثنائي المشع للضوء ( 3×احمر , 3× أزرق , 2× أخضر).

74HC595 Shift Register

X1  74HC595 Shift Register

Piezo sounder

X1 طنان كهربائي 

220 resistor

X9 مقاومة 220 اوم

اردوينو

X1 لوحة الاردوينو (Arduino)

سلك اردوينو

X1 سلك الأردوينو 

Full size breadboard 830

X1 لوحة التجارب (Breaddboard)

Jumper Wires Male/Male

 اسلاك توصيل ذكر/ذكر (Jumper Wires Male Male)

حساس الموجات فوق الصوتية (Ultrasonic sensor)

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

نظام اصطفاف
  • يحتوي حساس الموجات الفوق صوتية على أربع دبابيس .
    Vcc و GND لتزويد الحساس بالطاقة.
  • Trig إرسال الموجات فوق الصوتية.
  • Echo إستقبال صدى الموجة الصوتية.
ultrasonic

 

توصيل الدائرة

دائرة- نظام اصطفاف
توصيل    74HC595 8 Bit Shift Register:
Shift Register Arduino/LEDs
IC Pin 8 , Pin 13 GND
IC Pin 10 , Pin 16 Vcc
IC Pin 11 Pin 11
IC Pin 12 Pin 12
IC Pin 14 Pin 13
IC Pin 15 1st LED
IC Pin 1 -IC Pin 8 2nd – 8th LEDs

ملاحظة : يتم توصيل shift register بالجزء الموجب (Anode) للـ الثنائي المشع للضوء .

توصيل حساس الموجات فوق الصوتية (Ultrasonic Sensor) :
Ultrasonic Sensor Arduino
VCC +5V
Trig Pin 10
Echo Pin 9
Ground GND
توصيل Buzzer:
Buzzer Arduino
Shorter lead GND
Longer lead Pin 4

 *يمكنك الإطلاع على الدرس الخامس لمعرفة المزيد عن  الـ Shift Register.

البرمجة

قم برفع الكود التالي على الاردوينو :

int tonePin = 4;    //Tone - Red Jumper
int trigPin = 10;    //Trig - violet Jumper
int echoPin = 9;   //Echo - yellow Jumper
int clockPin = 11;  //IC Pin 11 - white Jumper
int latchPin = 12;  //IC Pin 12 - Blue Jumper
int dataPin = 13;   //IC Pin 14 - Green Jumper

byte possible_patterns[9] = {
  B00000000,
  B00000001,
  B00000011,
  B00000111,
  B00001111,
  B00011111,
  B00111111,
  B01111111,
  B11111111,
};
int proximity=0;
int duration;
int distance;

void setup() {
  //Serial Port
  Serial.begin (9600);
 
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  pinMode(tonePin, OUTPUT);
}

void loop() {
  digitalWrite(latchPin, LOW);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(1000);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
 
  proximity=map(distance, 0, 45, 8, 0);
  //Serial.println(proximity);
 
 if (proximity <= 0){
      proximity=0; 
    } 
 else if (proximity >= 3 && proximity <= 4){ 
     tone(tonePin, 200000, 200);
      } 
 else if (proximity >= 5 && proximity <= 6){ 
     tone(tonePin,5000, 200); 
      } 
 else if (proximity >= 7 && proximity <= 8){
    tone(tonePin, 1000, 200);
     }
  shiftOut(dataPin, clockPin, MSBFIRST, possible_patterns[proximity]);
  digitalWrite(latchPin, HIGH);
 
  delay(600);
  noTone(tonePin);
}

لمحة سريعة عن الكود:

لإستخدام الحساس يتم ارسال نبضة (HIGH Level)على Trig Pin لمدة تزيد عن 10 Microseconds,ثم بعد ذلك LOW, وهذه تمثل الموجه فوق الصوتية المرسلة .

digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);

إذا تم الكشف عن جسم ما أمام جهاز الاستشعار(ستصبح قيمة Echo Pin =HIGH Level)، يتم حساب مدة بقاء الإشارةHIGH   المستقبلة عن Echo pin .

duration = pulseIn(echoPin, HIGH);

و بعد ذلك يتم حساب المسافة التي يبعد عنها الجسم عن حساس الأمواج فوق الصوتية ويتم تحولها الى رقم  بوحدة السنتيميتر

distance = (duration/2) / 29.1;

حساب المسافة :

  • المسافة الكلية = الزمن x السرعة
  • ومن المعروف ان سرعة الصوت  في الهواء ثابت و يساوي 343 م/ث
  • وباستخدام المعادله اعلاه يمكننا حساب المسافة التي قطعتها الموجه فوق الصوتية ذهابا و اياب و لتحديد بعد الجسم عن مصدر الأمواج فوق الصوتية فلابد من القسمه على اثنان
  • بعد الجسم عن مصدر الأمواج الفوق صوتية =( الزمن x السرعة)/2
X
تم إضافة المنتج إلى السلة بنجاح