-->

اصنع بيدك

تعديل

404
نعتذر , لا نستطيع ايجاد الصفحة المطلوبة
  • العودة الى الصفحة الرئيسية
  •  السلام عليكم ورحمة الله وبركاته


    بناء راديو كونترول من الالف الى الياء بالتفاصيل الدقيقه للمبتدئين الجزء الاول المرسل وانتظرو الجزء الثانى








    شاهد طريقة صنع طائرة F22 الامريكية تحكم عن بعد من خلال الراديو كونترول




    يمكنك الاطلاع على خطوات تنفيذ الطائرة من خلال رابط قناتى على يوتيوب اضغط هنـــا



     رابط مخطط بناء الطائرة اضغط هنا

      بناء طائرات التحكم عن بعد الروسية ميج 29 مع الشرح ومخطط  للتنفيذ




    رابط تحميل ملف الطائرة


      بناء طائرات التحكم عن بعد Edge 540 مع الشرح ومخطط  للتنفيذ


     بناء طائرات التحكم عن بعد مع الشرح ومخطط  للتنفيذ



    لتحميل ملف المخطط اضغط هنا




     تحويل راديو كونترول قديم من الخردة الى راديو كونترول 8 قنوات يمكن ربطه مع مستقبل









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


    بعد ذلك نقوم بنزع المكونات الداخلية مثل لوحة التحكم والازرار التي لا نستخدمها




    وفى هذا المشروع سوف نستخدم بعض القطع الالكترونية وهى موضحه بالمخطط اعلاه


    كما يجب عمل فتحات اضافيه للهده القطع الجديدة 


    بعد ذلك يتم ربط كل قطعه كما هو موضخ بالمخطط أعلاه

















    توصيل قطعة الاردوينو بالكمبيوتر وذلك لرفع الكود البرمجي الخاص بالمرسل


    ملاحظة  هذا الكود يعمل بالاتصال مع قطعة المرسل التي سبق وتم شرحها على قناتي على يوتيوب يمكنك الاطلاع على الموضوع من خلال الضغط هنـــــــا







    الكود البرمجى


    #include <SPI.h>
    #include <nRF24L01.h>
    #include <RF24.h>

    const uint64_t my_radio_pipe = 0xE8E8F0F0E1LL; //Remember that this code should be the same for the receiver

    RF24 radio(9, 10);  //Set CE and CSN pins

    // The sizeof this struct should not exceed 32 bytes
    struct Data_to_be_sent {
      byte ch1;
      byte ch2;
      byte ch3;
      byte ch4;
      byte ch5;
      byte ch6;
      byte ch7;
    };

    //Create a variable with the structure above and name it sent_data
    Data_to_be_sent sent_data;



    void setup()
    {
      radio.begin();
      radio.setAutoAck(false);
      radio.setDataRate(RF24_250KBPS);
      radio.openWritingPipe(my_radio_pipe);

      //Reset each channel value
      sent_data.ch1 = 127;
      sent_data.ch2 = 127;
      sent_data.ch3 = 127;
      sent_data.ch4 = 127;
      sent_data.ch5 = 0;
      sent_data.ch6 = 0;
      sent_data.ch7 = 127;
    }

    /**************************************************/


    void loop()
    {
      /*If your channel is reversed, just swap 0 to 255 by 255 to 0 below
      EXAMPLE:
      Normal:    data.ch1 = map( analogRead(A0), 0, 1024, 0, 255);
      Reversed:  data.ch1 = map( analogRead(A0), 0, 1024, 255, 0);  */
      
      sent_data.ch1 = map( analogRead(A0), 0, 1024, 0, 255);
      sent_data.ch2 = map( analogRead(A1), 0, 1024, 0, 255);
      sent_data.ch3 = map( analogRead(A2), 0, 1024, 0, 255);
      sent_data.ch4 = map( analogRead(A3), 0, 1024, 0, 255);
      sent_data.ch5 = digitalRead(2);
      sent_data.ch6 = digitalRead(3);
      sent_data.ch7 = map( analogRead(A4), 0, 1024, 0, 255);

      radio.write(&sent_data, sizeof(Data_to_be_sent));
    }

    فتح الباب عن طريق كلمة مرور( كلمة السر ) باستخدام الاردوينو 

    أولا المخطط التوضيحي 


    في هذا المشروع سوف نشرح لكم طريقة سهلة لتنفيذ برنامج لفتح الباب عن طريق ادخال كلمة مرور لبرنامج معد مسبقا على الاردوينو وبالتالي يقوم البرنامج بالمقارنة بين كلمة المرور التي تم إدخالها وكلمة المرور المخزنة مسبقا اذا كانت مطابقا يعطى البرنامج وميض باليد الأخضر و يستجيب البرنامج ويفتح الباب اما اذا كانت كلمة المرور خطأ يعطى البرنامج وميض باليد الأحمر وأيضا تنبيه صوتي دليل على انه هناك من يحاول فتح الباب بالإضافة الى تعين زر لتغير كلمة المرور الحالية بكلمة مرور جديدة 

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



     

    أولا ما هي القطع المستخدمة لإنجاز المشروع

    1- قطعة الاردوينو

    2- لوحة مفاتيح 4*4

    3- موديول ريلية

    4- محرك على مجموعة تروس


    ثانيا روابط شراء القطع المستخدمة

    1- قطعة الاردوينو



    اضغط هنا


    2- لوحة مفاتيح 4*4



    اضغط هنا


    3- موديول ريلية



    اضغط هنا

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


    اولا

    في البداية يتم توصيل لوحة المفاتيح من خلال ربط 8 اطراف في لوحة الاردوينو على البنات 

    A0 , A1 , A2 , A3 , A4 , A5 ,  و مدخل 2 و3

    ثم نقوم بتوصيل الريلية على البن 11

    وبعد ذلك يتم ربط اليد الأخضر فى المدخل 12 

    واليد الأحمر في المدخل 13

    وأخيرا يتم توصيل الباذر في المدخل 10

    واما الريلية يتم توصيلة مع المدخل 11

    ولا ننسى ان كلا من GND لليد الأخضر والاحمر والباذر يتم توصيلهم بالأرضي الخاص بالاردوينو

     وأيضا الريلية يتم توصيل السالب والموجب له من الاردوينو

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

     

    ثالثا الكود البرمجي المستخدم في المشروع


    #include <Keypad.h>

    #include<LiquidCrystal.h>

    #include<EEPROM.h>

    LiquidCrystal lcd(9,8,7,6,5,4);

    char password[8];

    char pass[8],pass1[8];

    int i=0;

    char customKey=0;

    const byte ROWS = 4; //four rows

    const byte COLS = 4; //four columns

    char hexaKeys[ROWS][COLS] = {

    {'1','2','3','A'},

    {'4','5','6','B'},

    {'7','8','9','C'},

    {'*','0','#','D'}

    };

    byte rowPins[ROWS] = {A0,A1,A2,A3}; //connect to the row pinouts of the keypad

    byte colPins[COLS] = {A4,A5,3,2};   //connect to the column pinouts of the keypad

    //initialize an instance of class NewKeypad

    Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

    int led=12;

    int led1=13;

    int buzzer=10;

    int m11;

    int m12;

    void setup()

    {

      Serial.begin(9600);

      pinMode(11, OUTPUT);


      lcd.begin(16,2);

      pinMode(led, OUTPUT);

       pinMode(led1, OUTPUT);

      pinMode(buzzer, OUTPUT);

      pinMode(m11, OUTPUT);

      pinMode(m12, OUTPUT);

      lcd.print(" Electronic ");

     Serial.println("مرحبا بكم....");

      lcd.setCursor(0,1);

     // lcd.print(" Keypad Lock ");

     // Serial.print(" Keypad Lock ");

      delay(2000);

      lcd.clear();

      lcd.print("Enter Ur Passkey:");

      Serial.println("ادخل كلمة المرور:");

      lcd.setCursor(0,1);

      for(int j=0;j<8;j++)

        EEPROM.write(j, j+49);

      for(int j=0;j<8;j++)

        pass[j]=EEPROM.read(j);

    }


    void loop()

    {

      digitalWrite(11, HIGH);

      customKey = customKeypad.getKey();

      if(customKey=='#')

        change();

      if (customKey)

      {

        password[i++]=customKey;

        lcd.print(customKey);

        Serial.print(customKey);

        beep();

      }

      if(i==8)

      {

        delay(200);

        for(int j=0;j<8;j++)

          pass[j]=EEPROM.read(j);

        if(!(strncmp(password, pass,8)))

        {

          digitalWrite(led, HIGH);

          beep();

          lcd.clear();

          lcd.print("Passkey Accepted");

          Serial.println("كلمة مرور صحيحة");

          digitalWrite(11, LOW);

          delay(2000);

          lcd.setCursor(0,1);

          lcd.print("#.Change Passkey");

          Serial.println("#.تغير كلمة المرور");

          delay(2000);

          lcd.clear();

          lcd.print("Enter Passkey:");

          Serial.println("ادخل كلمة المرور:");

          lcd.setCursor(0,1);

          i=0;

          digitalWrite(led, LOW);

        }

        else

        { 

          digitalWrite(led1, HIGH);

          digitalWrite(11, HIGH);

          digitalWrite(buzzer, HIGH);

          lcd.clear();

          lcd.print("Access Denied...");

          Serial.println("كلمة مرور غير صحيحة...");

          lcd.setCursor(0,1);

          lcd.print("#.Change Passkey");

          Serial.println("#.تغير كلمة المرور");

          delay(2000);

          digitalWrite(led1, LOW);

          lcd.clear();

          lcd.print("Enter Passkey:");

          Serial.println("ادخل كلمة المرور:");

          lcd.setCursor(0,1);

          i=0;

          digitalWrite(buzzer, LOW);

        }

      }

    }

    void change()

    {

      int j=0;

      lcd.clear();

      lcd.print("UR Current Passk");

      Serial.println("ادخل كلمة المرور الحاليه");

      lcd.setCursor(0,1);

      while(j<8)

      {

        char key=customKeypad.getKey();

        if(key)

        {

          pass1[j++]=key;

          lcd.print(key);

          Serial.print(key);

          beep();

        }

        key=0;

      }

      delay(500);


      if((strncmp(pass1, pass, 8)))

      {

        lcd.clear();

        lcd.print("Wrong Passkey...");

        Serial.println("  كلمة مرور خطأ  ");

        lcd.setCursor(0,1);

        lcd.print("Better Luck Again");

        Serial.println(" # للمحاوله مرة اخرى اضغط رمز");

        delay(1000);

      }

        else

      {

        j=0;

        lcd.clear();

        lcd.print("Enter New Passk:");

        Serial.println(" ادخل كلمة المرور الجديدة ");

        lcd.setCursor(0,1);

        while(j<8)

        {

          char key=customKeypad.getKey();

          if(key)

          {

            pass[j]=key;

            lcd.print(key);

            Serial.print(key);

            EEPROM.write(j,key);

            j++;

            beep();

          }

        }

        lcd.print(" Done......");

        Serial.println(" تم تغير كلمة المرور بنجاح......");

        delay(1000);

      }

      lcd.clear();

      lcd.print("Enter Ur Passk:");

      Serial.println("ادخل كلمة المرور:");

      lcd.setCursor(0,1);

      customKey=0;

    }

    void beep()

    {

      digitalWrite(buzzer, HIGH);

      delay(20);

      digitalWrite(buzzer, LOW);

    }


    ريموت كونترول سيارات تحكم عن بعد طريقة وضع وتركيب الأجزاء المختلفة 

    ---------------------

    نقوم في هذا المشروع بربط جهاز راديو كونترول 

    مع سيارة تم صنعها من ادوات بسيطة للغايه

    وهنا لم نستخدم مراقب سرعة () بل سوف اعرض عليكم

    فكرة بسيطه يمكن من خلالها التحكم فى المحرك من ناحية السرعة

    وايضا التحكم فى اتجاه الدوران

     


    القطع المستخدمة فى المشروع 

    1- جهاز راديو كنترول 

    يمكنك الاطلاع على طريقة صنعه من هنا




    2- لوحة تحكم فى المحرك



    3- عدد 3 سيرفو



    4- بطارية



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

     

    السلام عليكم ورحمة الله وبركاته اصدقائى الاعزاء

    يسعدنى ان اطرح عليكم فكرة مشروع جهاز تحكم عن بعد ولكن فى هذا المشروع سوف احاول جاهدا

    ان ابسط لكم الامور بقدر الامكان

    لذالك اليوم لن نستخدم اى ادوات مساعده مثل مكواة اللحام او لوحات النحاس المستخدمة فى طباعة البوردات الالكترونية

    وايضا سوف اقوم باستخدام كود برمجى تم استخدامة من قبل فى عمل المرسل ل 7 قنوات وبالتالى من قام بتحميل الكود

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

    المختلفة

    واما عن القطع المستخدمة فى هذا المشروع 

    1- لوحة nrf24l01-wireless-module-with-antenna لوحة اتصال عن بعد

    2-لوحة arduino-nano اردوينو نانو او اى نوع متوفر

    3- joystick-module-for-arduino عصى تحكم

     4- Potentiometerمقاومة متغيرة

    5- مفتاح 3 طرف


    روابط شراء القطع


    رابط شراء nrf 

    رابط شراء عصى التحكم 

    رابط شراء الاردوينو نانو 

    على فكرة انا لم استخدم فى هذا المشروع اشياء معقدة فقط قمت بالتوصيل بين القطع عن طريق الاسلاك فقط والريموت كنترول عباره عن 3 شانل اى فقط 3 قنوات يمكن للجميع تنفيذه بكل سهوله





    والان يمكنك مشاهدة هذا الفيديو لمتابعة تفاصيل المشروع ولكن اولا لاتنسى الصلاة على النبى محمد {صلم}

    وايضا ادعوك لمتابعة قناتى على يوتيوب من خلال الضغط هنا















    رسم توضيحى للمخطط

    كود المرسل

    كود المستقبل



    يمكن نسخ الكود من هنا ايضا

    المرسل

    ----------------------------------------------------------------------------------------

    /* Tranmsitter code for the Arduino Radio control with PWM output

     * Install the NRF24 library to your IDE

     * Upload this code to the Arduino UNO, NANO, Pro mini (5V,16MHz)

     * Connect a NRF24 module to it:

     

        Module // Arduino UNO,NANO

        

        GND    ->   GND

        Vcc    ->   3.3V

        CE     ->   D9

        CSN    ->   D10

        CLK    ->   D13

        MOSI   ->   D11

        MISO   ->   D12


    This code transmits 7 channels with data from pins A0, A1, A2, A3, D2 and D3


    */


    #include <SPI.h>

    #include <nRF24L01.h>

    #include <RF24.h>


    const uint64_t my_radio_pipe = 0xE8E8F0F0E1LL; //Remember that this code should be the same for the receiver


    RF24 radio(9, 10);  //Set CE and CSN pins


    // The sizeof this struct should not exceed 32 bytes

    struct Data_to_be_sent {

      byte ch1;

      byte ch2;

      byte ch3;

      byte ch4;

      byte ch5;

      byte ch6;

      byte ch7;

    };


    //Create a variable with the structure above and name it sent_data

    Data_to_be_sent sent_data;




    void setup()

    {

      radio.begin();

      radio.setAutoAck(false);

      radio.setDataRate(RF24_250KBPS);

      radio.openWritingPipe(my_radio_pipe);


      //Reset each channel value

      sent_data.ch1 = 0;

      sent_data.ch2 = 127;

      sent_data.ch3 = 127;

      sent_data.ch4 = 127;

      sent_data.ch5 = 0;

      sent_data.ch6 = 0;

      sent_data.ch7 = 127;

    }


    /**************************************************/



    void loop()

    {

      /*If your channel is reversed, just swap 0 to 255 by 255 to 0 below

      EXAMPLE:

      Normal:    data.ch1 = map( analogRead(A0), 0, 1024, 0, 255);

      Reversed:  data.ch1 = map( analogRead(A0), 0, 1024, 255, 0);  */

      

      sent_data.ch1 = map( analogRead(A0), 0, 1024, 255, 0);

      sent_data.ch2 = map( analogRead(A1), 0, 1024, 0, 255);

      sent_data.ch3 = map( analogRead(A2), 0, 1024, 0, 255);

      sent_data.ch4 = map( analogRead(A3), 0, 1024, 0, 255);

      sent_data.ch5 = digitalRead(2);

      sent_data.ch6 = digitalRead(3);

      sent_data.ch7 = map( analogRead(A4), 0, 1024, 0, 255);


      radio.write(&sent_data, sizeof(Data_to_be_sent));

    }

    ---------------------------------------------------------------------------------------------------------------------------

    كود المستقبل

    --------------------------------------------------------------


    /* Receiver code for the Arduino Radio control with PWM output

     * Install the NRF24 library to your IDE

     * Upload this code to the Arduino UNO, NANO, Pro mini (5V,16MHz)

     * Connect a NRF24 module to it:

     

        Module // Arduino UNO,NANO

        

        GND    ->   GND

        Vcc    ->   3.3V

        CE     ->   D9

        CSN    ->   D10

        CLK    ->   D13

        MOSI   ->   D11

        MISO   ->   D12


    This code receive 7 channels and create a PWM output for each one on D2, D3, D4, D5, D6, D7and D8


    */



    #include <SPI.h>

    #include <nRF24L01.h>

    #include <RF24.h>

    #include <Servo.h>  //To create PWM signals we need this lybrary


    const uint64_t pipeIn = 0xE8E8F0F0E1LL;     //Remember that this code is the same as in the transmitter

    RF24 radio(9, 10);  //CSN and CE pins


    // The sizeof this struct should not exceed 32 bytes

    struct Received_data {

      byte ch1;

      byte ch2;

      byte ch3;

      byte ch4;

      byte ch5;

      byte ch6;

      byte ch7;

    };


    Received_data received_data;


    Servo channel_1;

    Servo channel_2;

    Servo channel_3;

    Servo channel_4;

    Servo channel_5;

    Servo channel_6;

    Servo channel_7;


    int ch1_value = 0;

    int ch2_value = 0;

    int ch3_value = 0;

    int ch4_value = 0;

    int ch5_value = 0;

    int ch6_value = 0;

    int ch7_value = 0;


    void reset_the_Data() 

    {

      // 'safe' values to use when NO radio input is detected

      received_data.ch1 = 0;      //Throttle (channel 1) to 0

      received_data.ch2 = 127;

      received_data.ch3 = 127;

      received_data.ch4 = 127;

      received_data.ch5 = 0;

      received_data.ch6 = 0;

      received_data.ch7 = 127;

    }




    /**************************************************/


    void setup()

    {

      //Attach the servo signal on pins from D2 to D8

      channel_1.attach(3);

      channel_2.attach(8);

      channel_3.attach(4);

      channel_4.attach(5);

      channel_5.attach(6);

      channel_6.attach(7);

      channel_7.attach(2);

      

      //We reset the received values

      reset_the_Data();


      //Once again, begin and radio configuration

      radio.begin();

      radio.setAutoAck(false);

      radio.setDataRate(RF24_250KBPS);  

      radio.openReadingPipe(1,pipeIn);

      

      //We start the radio comunication

      radio.startListening();


    }


    /**************************************************/


    unsigned long lastRecvTime = 0;


    //We create the function that will read the data each certain time

    void receive_the_data()

    {

      while ( radio.available() ) {

      radio.read(&received_data, sizeof(Received_data));

      lastRecvTime = millis(); //Here we receive the data

    }

    }


    /**************************************************/


    void loop()

    {

      //Receive the radio data

      receive_the_data();


    //////////This small if will reset the data if signal is lost for 1 sec.

    /////////////////////////////////////////////////////////////////////////

      unsigned long now = millis();

      if ( now - lastRecvTime > 1000 ) {

        // signal lost?

        reset_the_Data();

        //Go up and change the initial values if you want depending on

        //your aplications. Put 0 for throttle in case of drones so it won't

        //fly away

      } 


      

      ch1_value = map(received_data.ch1,0,255,1000,2000);

      ch2_value = map(received_data.ch2,0,255,1000,2000);

      ch3_value = map(received_data.ch3,0,255,1000,2000);

      ch4_value = map(received_data.ch4,0,255,1000,2000);

      ch5_value = map(received_data.ch5,0,1,1000,2000);

      ch6_value = map(received_data.ch6,0,1,1000,2000);

      ch7_value = map(received_data.ch7,0,255,1000,2000);


      //Creathe the PWM signals

      channel_1.writeMicroseconds(ch1_value);  

      channel_2.writeMicroseconds(ch2_value);  

      channel_3.writeMicroseconds(ch3_value);  

      channel_4.writeMicroseconds(ch4_value);  

      channel_5.writeMicroseconds(ch5_value);  

      channel_6.writeMicroseconds(ch6_value);  

      channel_7.writeMicroseconds(ch7_value);  

      

      

    }//Loop end



     فانوس رمضان اصنع بيدك وتحكم في نوره من الموبايل

    انا في المشروع ده سوف اشرح لكم طريقة عمل فانوس رمضان عن طريق اضافت قطعة الاردوينو 

    والتي سوف يتم ربطها بالبلوتوث ومجموعة ريليهات للتحكم في مجموعة مصابيح مختلفة الألوان

     وعن طريق الموبايل يمكن لمس شاشة الموبايل للتحكم فى اضاءة او إطفاء المصابيح الملونة 

    فكرة جميلة جدا انك تكون واقف امام منزلك وفانوس رمضان معلق في الشارع

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

     تعالو معايا نشوف طريقة العمل على المشروع بس ياريت لو عجبك المشروع لاتنسي الاشتراك بقناتي على يوتيوب ودعمي ب لآيك 





    شرح وتوضيح بالصورلمكونات الفانوس

    رابط التطبيق المستخدم اسفل الموضوع

    القطع المستخدمة فى المشروع 

    1- اردوينو اى نوع لامشكلة

    2- بلوتوث

    3- موديول ريليه

    4- اسلاك توصيل

    توصيل 4 اسلاك ب البلوتوث

    1- VCC

    2- GND

    3- RX

    4- TX

    توصيل البلوتوث ب الاردوينو مع عكس اطراف RX  TX
    توصيل 4 اسلاك ب IN1  IN2  IN3  IN4 في موديول الريليه
    يتم توصيل 4 اسلاك الخارجين من الموديول الى الاردوينو بدون ترتيب لامشكلة الى 2 و 3 و4 و 5
    توصيل دخل فولت الى الموديول ولوحة الاردوينو من 5 الى 12 فولت على مدخل IN و GND
    يتم ربط المصابيح بالريليهات
    يتم رفع الكود البرمجى للاردوينو ولاتنسي فصل البلوتوث قبل نقل الكود
    والان يتم اختبار الدارة
    فى هذه المرحلة يتم تثبيت المصابيح فى الفانوس
    وهنا قمت بوضع ليد شريط على حافة الفانوس 
    واخيرا اضافة بعض اللمسات الجماليه
    يارب يكون الموضوع عجبكم لاتنسونا من صالح دعائكم

    العابشاهد المزيد

    جميع الحقوق محفوظة ل مدونة اصنع بيدك
    تصميم : eltyb3