الأربعاء، 2 مارس 2016

استخدام مستشعر الحركة PIR Sensor مع اردوينو


شرح استخدام مستشعر الحركة PIR Sensor مع لوحة اردوينو


نبذة:





الادوات المطلوبة:

  • PIR Sensor
  • لوحة اردوينو

الخطوات:

 

التوصيل:

قم بتوصيل اطراف المستشعر بلوحة اردوينو طبقا للجدول التالي

Line To Arduino PinPIR Pin
GNDGND1
OUTPUT32
POWER5V3








كتابة الكود:



قم برفع هذا الكود علي لوحة اردوينو

/*
 * //////////////////////////////////////////////////
 * //making sense of the Parallax PIR sensor's output
 * //////////////////////////////////////////////////
 *
 * Switches a LED according to the state of the sensors output pin.
 * Determines the beginning and end of continuous motion sequences.
 * The sensor's output pin goes to HIGH if motion is present.
 * However, even if motion is present it goes to LOW from time to time,
 * which might give the impression no motion is present.
 * This program deals with this issue by ignoring LOW-phases shorter than a given time,
 * assuming continuous motion is present during these phases.
 *
 */


/////////////////////////////
//VARS
//the time we give the sensor to calibrate (10-60 secs according to the datasheet)

int calibrationTime = 30;      

//the time when the sensor outputs a low impulse
long unsigned int lowIn;       

//the amount of milliseconds the sensor has to be low
//before we assume all motion has stopped

long unsigned int pause = 5000;

boolean lockLow = true;
boolean takeLowTime;

int pirPin = 3;    //the digital pin connected to the PIR sensor's output
int ledPin = 13;


/////////////////////////////
//SETUP

void setup(){
  Serial.begin(9600);
  pinMode(pirPin, INPUT);
  pinMode(ledPin, OUTPUT);
  digitalWrite(pirPin, LOW);

  //give the sensor some time to calibrate
  Serial.print("calibrating sensor ");
    for(int i = 0; i < calibrationTime; i++){
      Serial.print(".");
      delay(1000);
      }
    Serial.println(" done");
    Serial.println("SENSOR ACTIVE");
    delay(50);
  }

////////////////////////////
//LOOP

void loop(){

     if(digitalRead(pirPin) == HIGH){
       digitalWrite(ledPin, HIGH);   //the led visualizes the sensors output pin state
       if(lockLow){
         //makes sure we wait for a transition to LOW before any further output is made:
         lockLow = false;          
         Serial.println("---");
         Serial.print("motion detected at ");
         Serial.print(millis()/1000);
         Serial.println(" sec");
         delay(50);
         }       
         takeLowTime = true;
       }

     if(digitalRead(pirPin) == LOW){     
       digitalWrite(ledPin, LOW);  //the led visualizes the sensors output pin state

       if(takeLowTime){
        lowIn = millis();          //save the time of the transition from high to LOW
        takeLowTime = false;       //make sure this is only done at the start of a LOW phase
        }
       //if the sensor is low for more than the given pause,
       //we assume that no more motion is going to happen

       if(!lockLow && millis() - lowIn > pause){
           //makes sure this block of code is only executed again after
           //a new motion sequence has been detected

           lockLow = true;                      
           Serial.print("motion ended at ");      //output
           Serial.print((millis() - pause)/1000);
           Serial.println(" sec");
           delay(50);
           }
       }
  }

 يمكنك ان تجد هذا الكود علي موقع شركة اردوينو بالضغط هنا

 

 افتح شاشة الـ Serial Monitor

واختر السرعة: 9600


قبل ان يبدأ المستشعر ف العمل  , يحتاج فترة تتراوح من بين 30 ثانية الى 60 ثانية حتى يدخل الي وضع الاستعداد:

calibrating sensor ..................

عند بدأ المستشعر بالعمل تظهر هذة الرسالة:

SENSOR ACTIVE

في حالة حدوث اي حركة بالقرب من عدسة المستشعر . تظهر الرسالة

motion detected at 35 sec

الى ان تنتهي الحركة

motion ended at 44 sec


للحصول علي معلومات إضافية حول المستشعر , يمكنك تحميل الداتا شيت الخاصة بالمستشعر من الرابط التالي: Datasheet

مستشعر الحركة و اردوينو - Motion Sensor
PIR Sensor Tutorial   Get Started with PIR Sensor and arduino

راسبيري باي 3 - إطلاق النسخة الأحدث من الكمبيوتر المصغر راسبيري باي





إطلاق راسبيري باي3

بعد أربع سنوات من إطلاق الشركة للنسخة الأولى من راسبيري باي، أتاحت الشركة منتجها الأحدث وهو راسبيري باي3، الطراز B- وهو بمواصفة 64 بت، واي فاي وبلوتوث.
المواصفات، كما هو مفصل في الفيديو أدناه، تتضمن a quad-core ARM Cortex مما يجعله أسرع بنسبة 50% من النسخة السابقة، a built-in 4.1, 400MHz VideoCore IV multimedia، و 1GB LPDDR2-900 SDRAM.
كل هذه المزايا تجعل باي3 ليس مجرد استبدال بسيط بل تطوير حقيقي للنسخة الأصلية، وذلك تماشياً مع ملائمة المنتجات السابقة.
 



ماذا نتوقع من باي3؟

إذا كنت تتوقع أن قدرات باي3 مثل قدرات باي 2، خصوصاً مع تشابه الشريحتان فعليك التفكير مجدداً.
على الرغم من أن سعر النسخة الأحدث هو نفس سعر النسخة السابقة (35$) إلا أنه تم تطوير وحدة المعالجة المركزية في باي3 إلى 1.2 غيغاهيرتز. وهذا لن يجعله أسرع فقط، بل أكثر كفاءةً أيضاً. لكنه يعني ولسوء الحظ أنه يستهلك طاقة أكبر من باي2.



هذه المواصفات تجعل من راسبيري باي3 جيداً كفايةً لاستبداله بدلاً عن الحواسيب المكتبية، لا سيما مع وجود ميزات الاتصال التي يتميز بها الآن من خلال الواي فاي و البلوتوث.

بينما كان من السهل إضافة باي3 إلى الأجهزة للحصول على وظائفها، بني باي3 مع ميزة تجعل المستخدم لا يقلق من التعامل مع الأجهزة والسواقات غير المتوافقة معه.

راسبريباي راسبري باي Raspberry Pi
Raspberry Pi 3 

المصدر: مرصد المستقبل , Make