You are on page 1of 93

‫انجـــــبة االول‬

‫يمذيـــخ‬

‫‪1‬‬
‫انًمذيخ‬ ‫‪1.1‬‬

‫قديما كان االنسان يعتمد عمى نفسه في كل شيء ومنذ القرن التاسع عشر الذي كان بداية التطور والنهضة الصناعية وبداية‬

‫عصر التكنولوجيا تم ابتكار العديد من الصناعات اإللكترونية ومن أهمها الروبوتات‪ .‬والروبوتات عبارة عن آلة قادرة عمى‬

‫الحركة تمقائيا يتم ضبطها عن طريق البرامج الحاسوبية وتستطيع القيام بالمهام المختمفة بشكل منظم من خالل التأثير عميها‬

‫واستشعار بيئة العمل المحيطة بها‪.‬‬

‫ؽ‪ٔ٘٤‬ب ٗغٔغ ًِٔخ "‪ٗ "Robot‬شؼش ثأٗ٘ب ٗزؾذس ػٖ ش‪٢‬ء ٓزؼِن ثأكالّ (ؽشة اٌُ‪ٞ‬اًت) ‪ٝ‬اٗ‪ٛ ٞٛ ٚ‬ز‪ ٙ‬ا‪ُ٥‬خ اُؼخٔخ اُز‪٢‬‬

‫ط٘ؼ‪ٜ‬ب االٗغبٕ ً٘‪ٞ‬ع ٖٓ اُشكب‪٤ٛ‬خ اُزٌ٘‪ُٞٞ‬ع‪٤‬خ ‪ ،‬االٕ ػِ‪٤‬ي إ رظؾؼ كٌشري ‪ٝ ،‬رؼِْ إ ‪ Robot‬اهزؾْ اُؼبُْ ٖٓ ؽ‪ُٞ‬ي ‪ٝ‬سثٔب‬

‫‪ ٌٕٞ٣‬ك‪ ٢‬ؽش‪٣‬و‪ُِٞ ٚ‬ط‪ ٍٞ‬اُ‪٤‬ي ‪.‬‬

‫‪٣‬شعغ ربس‪٣‬خ اُــ‪ Robot‬اُ‪ ٢‬خٔغ‪ ٖ٤‬ػبٓب ٓؼذ ‪ ٌُٖٝ ..‬اُلٌشح ظ‪ٜ‬شد هجَ رُي ثلزشح ؽ‪ِ٣ٞ‬خ ؽ‪ٔ٘٤‬ب اخزبس اٌُبرت اُزش‪٢ٌ٤‬‬

‫"ًبس‪ً َ٣‬بث‪٤‬ي" االٗغبٕ ا‪ً ٢ُ٥‬أؽذ اثطبٍ هظز‪ ٚ‬اُش‪٤ٜ‬ش ‪ Rossum's Universal Robots‬ك‪ ٢‬ػبّ ‪. 1920‬‬

‫‪ٝ‬هذ اشزوذ ًِٔخ س‪ٝ‬ث‪ٞ‬د ‪ًِٔ ٖٓ Robot‬خ "س‪ٝ‬ث‪ٞ‬رب" اُزش‪٤ٌ٤‬خ ‪ٝ‬اُز‪ ٢‬رش‪٤‬ش اُ‪ ٢‬اُؼٔبُخ اُغجش‪٣‬خ ك‪ٛ ٢‬ز‪ ٙ‬اُوظخ ُْ ‪٣‬زؾ‪ ٍٞ‬االٗغبٕ‬

‫ا‪ ٢ُ٥‬اُ‪ ٢‬ؽو‪٤‬وخ ئال ك‪ ٢‬اُخٔغ‪٤٘٤‬بد ‪ٝ‬اُغز‪٤٘٤‬بد ثبخزشاع اُزشاٗض‪٣‬غز‪ٞ‬س ‪ٝ‬اُذ‪ٝ‬ائش أُـِوخ ‪ ،‬صْ ثذأد ط٘بػخ أٌُج‪ٞ٤‬رش‬

‫‪ٝ‬االٌُزش‪٤ٗٝ‬بد رض‪ٝ‬د ‪ٛ‬ز‪ ٙ‬ا‪ُ٥‬خ ثؼوَ ػِ‪ ٠‬شٌَ ًٔج‪ٞ٤‬رش طـ‪٤‬ش ‪٣ Microcomputer‬غؼِ‪ ٚ‬اًضش رؾٔال ‪ٝ‬أعشع ٖٓ االٗغبٕ‬

‫اُؼبد‪. ١‬‬

‫‪ٝ‬ك‪ ٢‬ػبّ ‪ 1959‬أ‪ٝ‬ػؼ اُجبؽض‪ ٕٞ‬ئٌٓبٗ‪٤‬خ رظ٘‪٤‬غ سث‪ٞ‬د ؽ‪ٔ٘٤‬ب ًشل‪ٞ‬ا اُـطبء ػٖ ٓبً‪٘٤‬خ رلش‪٣‬ض (‪ )machine milling‬رؼَٔ‬

‫ثبٌُٔج‪ٞ٤‬رش (‪ . )2‬آب ك‪ ٢‬ػبّ ‪ 1967‬كوذ ظ‪ٜ‬ش ا‪ ٍٝ‬س‪ٝ‬ث‪ٞ‬د ؽو‪٤‬و‪ ٢‬ك‪ٓ ٢‬ؼ‪ٜ‬ذ عزبرل‪ٞ‬سد ُألثؾبس ‪ًٝ..‬بٕ ثذائ‪٤‬ب ٓض‪ٝ‬دا ثضالصخ‬

‫ػغالد ‪٣ٝ ،‬زلبد‪ ٟ‬اُؼ‪ٞ‬ائن ػٖ ؽش‪٣‬ن أُِظ ‪ٝ‬ظِذ أُؾب‪ٝ‬الد ػِ‪ ٠‬ؽِ‪ٜ‬ب ٖٓ اُجغبؽخ ‪ٝ‬اُجذائ‪٤‬خ ػذح ع٘‪ٞ‬اد ‪.‬‬

‫ك‪ ٢‬أ‪ٝ‬ائَ اُضٔبٗ‪٤٘٤‬بد ‪ ،‬ظ‪ٜ‬ش أُغِغَ اُش‪٤ٜ‬ش ؽشة اٌُ‪ٞ‬اًت ‪ٝ ..‬اٗج‪ٜ‬ش اُ٘بط ثــ"اُش‪ٝ‬ث‪ٞ‬د" ‪٣ ٞٛٝ‬و‪ ّٞ‬ثذ‪ٝ‬س اُخبدّ أُط‪٤‬غ‬

‫ُإلٗغبٕ ‪ ..‬صْ كزشد اُلٌشح ك‪ ٢‬ػو‪ ُْٜٞ‬ثؼذ رُي ؽ‪ٔ٘٤‬ب شؼ‪ٞ‬ا إ ‪ٛ‬ز‪ ٙ‬االُخ اُؼخٔخ رزؾشى ثظؼ‪ٞ‬ثخ ‪ ٖٓٝ‬أُؾبٍ إ رٌ‪ ٕٞ‬راد‬

‫كبئذح ُ‪.. ْٜ‬‬

‫‪ٝ‬ك‪ ٢‬ظَ اُؼِٔبء ك‪ٓ ٢‬ؾب‪ُٝ‬خ دائٔخ ُغؼَ اُش‪ٝ‬ث‪ٞ‬د ك‪ٓ ٢‬ز٘ب‪ً ٍٝ‬بكخ اُجشش ؽز‪ٗ ٢‬غؾ‪ٞ‬ا ك‪ ٢‬اُزغؼ‪٤٘٤‬بد ك‪ ٢‬اؽ‪٤‬بء اُلٌشح ٖٓ عذ‪٣‬ذ‬

‫ك‪ ٢‬ار‪ٛ‬بٕ اُ٘بط ثغؼِ‪ ٚ‬اعشع ‪ٝ‬اسخض ‪ٝ‬اطـش ك‪ ٢‬ؽغٔ‪. ٚ‬‬

‫‪2‬‬
‫رؼذ اُ‪٤‬بثبٕ ‪ ٢ٛ‬اُذ‪ُٝ‬خ اُشائذح ك‪ ٢‬رٌ٘‪ُٞٞ‬ع‪٤‬ب االٗغبٕ ا‪ ٢ُ٥‬ػِ‪ٓ ٠‬غز‪ ١ٞ‬اُؼبُْ ‪٣ٝ‬إٖٓ أُخزشػ‪ ٕٞ‬اُ‪٤‬بثبٗ‪ ٕٞ٤‬ثإٔ اُؼظش اُوبدّ ‪ٞٛ‬‬

‫ػظش ‪.Robot‬‬

‫‪٣ ٢ٌُٝ‬طِن ػِ‪ ٠‬ا‪ُ٥‬خ "ئٗغبٕ آُ‪ "٢‬كال ثذ إ رلؼَ ش‪٤‬ئ‪: ٖ٤‬‬

‫اُؾظ‪ ٍٞ‬ػِ‪ٓ ٠‬ؼِ‪ٓٞ‬بد ٖٓ اُج‪٤‬ئخ أُؾ‪٤‬طخ ‪.‬‬ ‫‪‬‬

‫اُو‪٤‬بّ ثؼَٔ ػؼ‪ٓ ١ٞ‬ضَ اُزؾشى ‪٘ٓٝ‬ب‪ُٝ‬خ االش‪٤‬بء ٖٓ ؽ‪. ُٚٞ‬‬ ‫‪‬‬

‫‪ٝ‬هذ اػزجش االٗغبٕ ا‪ٓ ٢ُ٥‬ضبُ‪٤‬ب ُألػٔبٍ اُز‪ ٢‬رؾزبط اُ‪ ٢‬اُذهخ ‪ٝ‬اُزٌشاس ‪ ،‬دخَ اُظ٘بػخ ٖٓ ا‪ٝ‬عغ اث‪ٞ‬اث‪ٜ‬ب ‪ ٖٓ %90 ٝ‬سث‪ٞ‬د‬

‫اُؼبُْ ك‪ ٢‬أُظبٗغ ًٔظبٗغ اُغ‪٤‬بساد ‪ٝ‬األد‪٣ٝ‬خ ‪ٝ ،‬اُ٘غ‪٤‬ظ ‪ٝ‬اُطؼبّ ‪ٝ‬ؿ‪٤‬ش‪ٛ‬ب ‪ٗٝ ..‬بكظ االٗغبٕ ك‪ ٢‬هذسر‪ ٚ‬ػِ‪ ٠‬االٗزبط ‪ ،‬كوذ ‪٣‬شؼش‬

‫اُؼبَٓ االٗغبٕ ثبُزؼت ‪ٝ‬أَُِ ‪٣ٝ ،‬ؾزبط اُ‪ ٢‬اُطؼبّ ‪ٝ‬اُشاؽخ ‪ ٌُٖٝ ،‬اُؼبَٓ ا‪ ٢ُ٥‬ال ‪٣‬ؾزبط ش‪٤‬ئب ٖٓ ‪ٛ‬زا ‪.‬‬

‫‪ٝ‬ال شي إ ‪٘ٛ‬بى ا‪٤ٔٛ‬خ ؽو‪٤‬وخ ُِش‪ٝ‬ث‪ٞ‬د ك‪ ٢‬ثؼغ أُغبالد اُخط‪٤‬شح ُإلٗغبٕ ‪ ،‬ك‪ ٜٞ‬ال ‪٣‬غزط‪٤‬غ إ ‪٣‬ؾون ‪٣ٝ‬ؾَِ اُو٘بثَ‬

‫ًبُش‪ٝ‬ث‪ٞ‬د "‪٣ٝ "Andros‬غزط‪٤‬غ إ ‪٣‬ضؽق ك‪ٞ‬م ؽبكخ اُجشاً‪ًٔ ٖ٤‬ب سأ‪٘٣‬ب اُش‪ٝ‬ث‪ٞ‬د "‪ "Danty‬ك‪ ٢‬ػبّ ‪ٝ 1994‬أُض‪ٝ‬د‬

‫ثٌٔشار‪ ٢‬ك‪٤‬ذ‪ ٞ٣‬ػِ‪٤ٛ ٠‬ئخ ػ‪٣ ٖ٤٘٤‬ضؽق ك‪ٞ‬م ؽبكخ ثشاً‪ ٖ٤‬أالعٌب‪..‬‬

‫ثَ ‪ٝ ..‬ؿبص "‪ " deep brawn‬رؾذ عطؼ أُؾ‪٤‬ؾ ‪ٝ ،‬عبػذ ك‪ ٢‬اٗزشبٍ اُظ٘ذ‪ٝ‬م االع‪ٞ‬د ُِطبئشح أُظش‪٣‬خ اُز‪ ٢‬عوطذ ك‪٢‬‬

‫أُؾ‪٤‬ؾ االؽِ٘ط‪ ٢‬ك‪ ٢‬ػبّ ‪ ٖٓٝ ، 1999‬هجَ اٗزشَ ؽطبّ عل‪٘٤‬خ "ر‪٤‬زبٗي" اُش‪٤ٜ‬شح ٖٓ ػِ‪ ٠‬ثؼذ ‪ 12‬اُق ‪ 500 ٝ‬هذّ ‪٣ٝ ،‬غزط‪٤‬غ‬

‫اُش‪ٝ‬ث‪ٞ‬د اعزطالع االٓبًٖ أُِ‪ٞ‬صخ اشؼبػ‪٤‬ب ‪٤ٔ٤ًٝ‬ب‪٣ٝ‬ب ‪ٝ‬اُز‪ ٢‬رؼزجش ٓٔ‪٤‬زخ ُإلٗغبٕ ًٔب ؽذس ك‪ ٢‬ؽبدصخ "رششٗ‪ٞ‬ثَ" ك‪ ٢‬ػبّ‬

‫‪.1986‬‬

‫اُش‪ٝ‬ث‪ٞ‬د هذ ‪ ٌٕٞ٣‬خبدٓب ٓط‪٤‬ؼب ‪٣ ..‬وذّ ُي ً‪ٞ‬ثب ٖٓ اُشب‪ ١‬اُغبخٖ ‪٣ٝ ،‬و‪ ّٞ‬ثؼذد ٖٓ أُ‪ٜ‬بّ أُ٘ضُ‪٤‬خ أُٔ‪٤‬ضح ًشلؾ االرشثخ ‪ٝ‬كزبد‬

‫اُطؼبّ ‪ٝ‬رشر‪٤‬ت أٌُبٕ ‪ٝ ..‬هذ ‪٣‬خزبس ُي ثشآغي اُزِلض‪٤ٗٞ٣‬خ أُلؼِخ ‪٣ٝ ،‬غزٔغ أل‪ٝ‬آشى ك‪ ٢‬رشـ‪ َ٤‬عٔ‪٤‬غ اع‪ٜ‬ضح أُ٘ضٍ ‪.‬‬

‫‪ٝ‬اُش‪ٝ‬ث‪ٞ‬د "‪٣ "mobot‬ش‪٤‬غ ع‪ٞ‬ا ٖٓ أُشػ ‪ٝ‬اُغؼبدح ُؼ‪ٞ٤‬كي ‪ِٔ٣ٝ‬ي ‪ٝ‬عبئَ ػذ‪٣‬ذح ُزغِ‪٤‬ز‪ .. ْٜ‬كوؾ ػِ‪٤‬ي إ رزؾَٔ رجؼبد‬

‫ص‪٣‬بسر‪ ْٜ‬أُزٌشسح ‪.‬‬

‫‪3‬‬
‫‪ٝ‬ك‪ ٢‬ػبُْ اُزشك‪ .. ٚ٤‬عبء اٌُِت "‪ "Aybo‬اش‪ٜ‬ش ًالة اُؼبُْ ٓضبال ‪ٝ‬اػؾب ػِ‪ ٠‬رُي ؽ‪ٔ٘٤‬ب هذٓز‪ُِ ٚ‬ؼبُْ ششًخ "‪"sony‬‬

‫الٌُزش‪٤ٗٝ‬بد ك‪ ٢‬ػبّ ‪ًِ ٞٛٝ 1999‬ت آُ‪ ٢‬طـ‪٤‬ش ‪٣‬ضٕ ‪ً 1.5‬غْ ‪ .‬هبدس ػِ‪ ٠‬اُزؼشف ػِ‪ ٠‬خٔغ‪ًِٔ ٖ٤‬خ ‪٣ ،‬غزٔغ اُ‪ ٢‬ا‪ٝ‬آشى‬

‫ثبُ‪ٞ‬ه‪ٞ‬ف ‪ ،‬ا‪ ٝ‬اُغِ‪ٞ‬ط ا‪ ٝ‬اُـ٘بء ‪.‬‬

‫‪ ٖٓٝ‬اس‪ٝ‬ع ٓب اٗغ ضر‪ ٚ‬رٌ٘‪ُٞٞ‬ع‪٤‬ب االٗغبٕ االُ‪ ٞٛ ٢‬دخ‪ ُٚٞ‬ك‪ ٢‬ػبُْ اُطت ‪ٝ‬اُزٔش‪٣‬غ‪ ..‬ك‪٣ ٜٞ‬و‪ ّٞ‬ثغشاؽبد أُخ ‪ٝ‬اُؼظبّ ثذهخ‬

‫ٓز٘ب‪٤ٛ‬خ رجِؾ اهَ ٖٓ أُِٔزش ‪ٝ ،‬اعزطغ "‪ٓ "Robodok‬غبػذح اُطج‪٤‬ت أُب‪ٛ‬ش صسع اٗغغخ ؽ‪٤‬خ ك‪ ٢‬ػظبّ اُلخز ‪ ..‬كوؾ ‪٣‬و‪ّٞ‬‬

‫اُغشاػ االٗغبٕ ثٔغي رساع اُش‪ٝ‬ث‪ٞ‬د ‪ٝ‬رؾش‪ ٌٚ٣‬ثبُؾشًبد أُشاد ارٔبٓ‪ٜ‬ب ‪ ٖٓٝ ،‬صْ ‪٣‬و‪ ّٞ‬اُش‪ٝ‬ث‪ٞ‬د ث٘لظ ‪ٛ‬ز‪ ٙ‬اُؾشًبد ثذهخ‬

‫اػِ‪ ٖٓ ٢‬اُطج‪٤‬ت ‪ٝ‬ثذ‪ ٕٝ‬ا‪ٛ‬زضاصاد اُ‪٤‬ذ اُطج‪٤‬ؼ‪٤‬خ ‪ٝ ..‬هذ رزْ اُؼِٔ‪٤‬خ ػٖ ثؼذ ػٖ ؽش‪٣‬ن اُش‪ٞٔ٣‬د‪.‬‬

‫‪ٝ‬ك‪ ٢‬أُبٗ‪٤‬ب ‪٣ ..‬ؼٌق ػِٔبء عبٓؼخ ‪ٛ‬بٗ‪ٞ‬كش ػِ‪ ٠‬رط‪٣ٞ‬ش اٗغبٕ آُ‪٣ ٢‬و‪ ّٞ‬ثاعشاء ػِٔ‪٤‬بد عشاؽ‪٤‬خ ده‪٤‬وخ ك‪ ٢‬اُؼٔ‪ٞ‬د اُلوش‪ٝ .. ١‬ك‪٢‬‬

‫ؽبُخ ٗغبؽ‪ ٚ‬كغ‪ٞ‬ف ‪ٛ ٌٕٞ٣‬زا كزؾب عذ‪٣‬ذا ك‪ ٢‬ػبُْ اُطت اُز‪ ١‬ال ؽبُٔب ‪ٝ‬عذ خط‪ٞ‬سح ك‪ ٢‬االهزشاة ٖٓ أُ٘بؽن اُخط‪٤‬شح‪.‬‬

‫آب ك‪ ٢‬آخش ط‪٤‬ؾبر‪ ٚ‬ك‪ٓ ٜٞ‬ب هبّ ث‪ ٚ‬ػِٔبء ع‪٣ٞ‬ذ‪ ٕٞ٣‬ثزظ٘‪٤‬غ س‪ٝ‬ث‪ٞ‬د ‪٣‬غجؼ داخَ ع‪ٞ‬ائَ عغْ االٗغبٕ ًبُذّ ‪ٝ‬اُج‪ِ٣ٝ ٍٞ‬زوؾ‬

‫اُجٌز‪٤‬ش‪٣‬ب ا‪ ٝ‬اُخال‪٣‬ب ‪٘٣ٝ ،‬وِ‪ٜ‬ب اُ‪ٓ ٢‬شاًض اُزؾِ‪. َ٤‬‬

‫‪ٝ‬ك‪ ٢‬اُ‪٤‬بثبٕ ‪ ..‬ؽ‪٤‬ش ‪٣‬زضا‪٣‬ذ أػذاد أُغ٘‪ ٖ٤‬ثظ‪ٞ‬سح ًج‪٤‬شح ‪ ..‬هبّ اُؼِٔبء ثاٗزبط اٗغبٕ آُ‪ ٢‬ػِ‪ ٠‬شٌَ آشأح راد ٓالٓؼ ثشش‪٣‬خ‬

‫عٔ‪ِ٤‬خ ‪ٝٝ‬ع‪ٜٜ‬ب ٓظ٘‪ٞ‬ع ٖٓ اُجالعز‪٤‬ي اُشه‪٤‬ن ‪ٓٝ ،‬ض‪ٝ‬د ثٌبٓ‪٤‬شا ك‪٤‬ذ‪ ٞ٣‬ك‪ ٢‬اُؼ‪ ٖ٤‬اُ‪٤‬غش‪. ١‬‬

‫ع‪٤‬جشٓظ ‪ٛ‬زا ‪ Robot‬ثؾ‪٤‬ش ‪٣‬ظ‪ٜ‬ش ػِ‪ٝ ٠‬ع‪ٗ ٜٚ‬لظ رؼج‪٤‬شاد ‪ٝ‬ع‪٣ ٖٓ ٚ‬زؾذس ٓؼ‪ ٚ‬ػٖ ؽش‪٣‬ن سطذ اُزـ‪٤‬شاد أٌُبٗ‪٤‬خ ُ‪ٞ‬ع‪ٚ‬‬

‫أُش‪٣‬غ ‪ٓٝ ..‬وبسٗز‪ٜ‬ب ثٔب ‪٣‬ؼشف ٖٓ ٓؼِ‪ٓٞ‬بد ‪ ،‬صْ رخٔ‪ ٖ٤‬سد اُلؼَ أُ٘بعت ‪.‬‬

‫‪ٝ‬اُ٘ٔ‪ٞ‬رط االخش ‪٣‬ظِؼ ًٔششذ ا‪ٓ ٝ‬ؼب‪ٌُ ٕٝ‬جبس اُغٖ ‪ٝ‬أُؼبه‪ .. ٖ٤‬ؽ‪٤‬ش اثزٌشد ششًخ "ع‪ٔٓ "٢ٗٞ‬شػب ٓ٘ضُ‪٤‬ب ػِ‪ ٠‬شٌَ ًِت‬

‫ٖٓ هٔبػ ‪ٓ ،‬ض‪ٝ‬د ثزشٓ‪ٓٞ‬زش ‪ٝ‬ع‪ٜ‬بص ُو‪٤‬بط اُؼـؾ ‪٣ٝ ،‬غزط‪٤‬غ ٗوَ ؽبُخ أُش‪٣‬غ ا‪ٝ‬ال اُ‪ ٢‬أُشًض اُطج‪ ٢‬أُزبثغ ‪.‬‬

‫ثبُشؿْ ٓٔب ٗش‪ٗٝ ١‬غٔغ ػٖ ػبُْ اُش‪ٝ‬ث‪ٞ‬ربد كبٗ‪ ٚ‬ال ‪٣‬زغب‪ٝ‬ص ً‪ ٚٗٞ‬آُخ ٖٓ ط٘غ االٗغبٕ ‪٣ٝ ..‬ؼزشف اُؼِٔبء إ اُشث‪ٞ‬د ال ‪ٌٖٔ٣‬‬

‫إ ‪ٔ٣‬ذ ثبُجذ‪٤ٜ٣‬خ اُالصٓخ ُِزؼب‪ٓ ٕٝ‬غ اُؼبُْ ٖٓ ؽ‪ًٔ ُٚٞ‬ب هبٍ د‪ .‬د‪٣‬ق الك‪٤‬ش‪ٓ ١‬ذ‪٣‬ش ثشٗبٓظ سث‪ٞ‬د ٗبعب ‪"..‬اُزوذّ اُزٌ٘‪ُٞٞ‬ع‪ ٢‬ك‪٢‬‬

‫ػبُْ اُشث‪ٞ‬ربد ‪٣‬ضجذ ُِؼِٔبء ‪ٓٞ٣‬ب ٓب ثؼذ إ اُوذسح اُجشش‪٣‬خ ُِل‪ٝ ْٜ‬اإلدساى ‪ٝ‬اإلؽغبط أًضش رؼو‪٤‬ذا ٓٔب رخ‪ِٞ٤‬ا‬

‫‪4‬‬
‫كبإلٗغبٕ اُز‪٣ ١‬جِؾ ػوِ‪ ٚ‬اُجشش‪ٓ ١‬بئخ ِٓ‪ ٕٞ٤‬خِ‪٤‬خ ػظج‪٤‬خ ‪ ٞٛ‬دائٔب االهذس ػِ‪ ٠‬اُزؾٌْ ‪٣ ُْٝ ..‬غزطغ اؽذ اخزشاع س‪ٝ‬ث‪ٞ‬د ‪٣‬لؼَ‬

‫ٓب ‪٣‬لؼِ‪ ٚ‬ؽلَ ك‪ ٢‬ػٔشح ع٘خ ‪ ..‬ثَ اعزجؼذد رٔبٓب كٌشح ا‪٣‬غبد ٓؼ٘‪ ٢‬االؽغبط ا‪ ٝ‬اُزًبء اُلؼِ‪ ٢‬ػ٘ذ االٗغبٕ االُ‪. ٢‬‬

‫ٓ٘ز صالص‪ ٖ٤‬ػبٓب ٓؼذ ‪ ،‬دخَ اُشث‪ٞ‬د ػبُْ اُظ٘بػخ ‪ ،‬كضاد ٖٓ االٗزبع‪٤‬خ ‪ٝ‬اُذهخ ‪ٝ‬اُزظ٘‪٤‬غ ‪ٝ‬سكغ ٖٓ ٓغز‪ ١ٞ‬االهزظبد ُزِي‬

‫أُؼبَٓ اُز‪ ٢‬رغزخذّ ‪ٛ‬ز‪ ٙ‬اُزو٘‪٤‬خ ‪.‬‬

‫‪ٝ‬ال ثذ إ ٗش‪٤‬ش إ اُؼَٔ ك‪ٛ ٢‬زا أُغبٍ ‪٣‬زطِت خجشاد ٓزؼذدح ك‪ ٖٓ ًَ ٢‬ػِ‪ ّٞ‬اُ‪ٜ٘‬ذعخ االٌُزش‪٤ٗٝ‬خ ‪ٝ‬أُ‪ٌ٤‬بٗ‪٤ٌ٤‬خ كؼال ػٖ‬

‫االهزظبد ‪ٝ‬ػِْ اُش‪٣‬بػ‪٤‬بد ‪.‬‬

‫‪ 2.1‬يشكهخ انًشزوع‬

‫ٗظشا ُٔب ‪٣‬ؼبٗ‪ ٚ٤‬أُ‪ٜ٘‬ذع‪ ٖٓ ٖ٤‬طؼ‪ٞ‬ثخ ك‪ٓ ٢‬ؼشكخ أٓبًٖ اُزغشة ك‪ ٢‬أٗبث‪٤‬ت اُـبص ‪ٝ‬خبطخ ك‪ ٢‬األٓبًٖ اُز‪٣ ٢‬ظؼت اُ‪ٞ‬ط‪ٍٞ‬‬

‫اُ‪ٜ٤‬ب‪ًٝ ،‬زُي ُٔب ٗ‪ٞ‬اع‪ ٖٓ ٚ‬رؼ‪٤‬غ ُِ‪ٞ‬هذ ‪ٝ‬اُغ‪ٜ‬ذ ‪ ٝ‬أُبٍ ‪ٝ‬سثٔب ا‪٣‬وبف اُششًخ ػٖ اُؼَٔ ‪٘ٛ ٖٓٝ‬ب عبءد كٌشح أُشش‪ٝ‬ع‪.‬‬

‫‪ 3.1‬أهذاف انًشزوع‬

‫‪ -‬ا‪٣‬غبد ثذ‪٣ َ٣‬و‪ ّٞ‬ثز٘ل‪٤‬ز ٓ‪ٜ‬بّ ك‪ ٢‬أٓبًٖ ‪٣‬ظؼت ػِ‪ ٢‬اُؼبِٓ‪ ٖ٤‬اُ‪ٞ‬ط‪ ٍٞ‬اُ‪ٜ٤‬ب ‪.‬‬

‫‪ -‬روِ‪ٓ َ٤‬خبؽش اطبثخ اُؼبِٓ‪ ٖ٤‬ك‪ ٢‬أُ٘شأح اُ٘لط‪٤‬خ ‪ٝ‬أُظبٗغ أٌُ‪٤‬بئ‪.ٚ٤‬‬

‫‪ -‬ر‪ٞ‬ك‪٤‬ش س‪ٝ‬ث‪ٞ‬د ‪٣‬زؾَٔ ث‪٤‬ئخ اُؼَٔ اُظؼجخ ‪.‬‬

‫‪ -‬رظٔ‪ ْ٤‬س‪ٝ‬ث‪ٞ‬د ع‪٤‬بسح رغزشؼش رغشة اُـبص ‪ ٝ‬رؾذ‪٣‬ذ ٓ‪ٞ‬هؼ‪ٜ‬ب ٓغ آٌبٗ‪٤‬خ رخط‪ٜ‬ب ُِؾ‪ٞ‬اعض ‪ٝ‬اُزؾٌْ اُ‪٤‬ذ‪.١ٝ‬‬

‫‪ 4.1‬فكزح انًشزوع‬

‫‪٣‬زؼٖٔ ‪ٛ‬زا أُشش‪ٝ‬ع ػِ‪ ٢‬س‪ٝ‬ث‪ٞ‬د ػِ‪٤ٛ ٢‬ئخ ع‪٤‬بسح ‪٣‬و‪ ّٞ‬ثبعزٌشبف رغشة ٓغٔ‪ٞ‬ػخ ٖٓ اُـبصاد اُغبٓخ ٖٓ خالٍ ؽغبعبد‬

‫‪٣‬زْ رشً‪٤‬ج‪ٜ‬ب ٓؼ‪٣ٝ ٚ‬زْ اُزؾٌْ ك‪ٛ ٢‬زا اُش‪ٝ‬ث‪ٞ‬د ٖٓ خالٍ ‪ٝ‬ؽذح رؾٌْ رغٔ‪ ٠‬االسد‪ٝ ٞ٘٣ٝ‬هذ رْ اخز‪٤‬بس ُ‪ٞ‬ؽز‪ ٢‬االسد‪ ٞ٘٣ٝ‬اٗ‪ٞ‬‬

‫‪٤ٓٝ‬ـب(‪ )Arduino uno & mega‬ك‪ٛ ٢‬زا أُشش‪ٝ‬ع‪.‬‬

‫‪5‬‬
‫‪ 5.1‬يخطط انًشزوع‬
‫اُجبة اال‪ٓ : ٍٝ‬وذٓخ ٓ‪ٞ‬عضح ػٖ أُشش‪ٝ‬ع ‪٣ ٝ‬ؾز‪ ١ٞ‬ػِ‪ ٠‬ا‪ٛ‬ذاف أُشش‪ٝ‬ع ‪ٓ ٝ‬شاؽَ ر٘ل‪٤‬ز‪ ٙ‬أُغزخذٓخ إلٗغبص ‪ٛ‬زا‬

‫أُشش‪ٝ‬ع‪ .‬اُجبة اُضبٗ‪ : ٢‬ئػطبء كٌشح ػبٓخ ػٖ اُش‪ٝ‬ث‪ٞ‬ربد‪ .‬اُجبة اُضـبُش ‪ :‬ك‪ٛ ٢‬زا اُجبة ع‪ٞ‬ف ٗو‪ ّٞ‬ثز‪ٞ‬ػ‪٤‬ؼ اُغبٗت‬

‫اُؼِٔ‪ ٖٓ ٢‬أُشش‪ٝ‬ع ٖٓ ؽ‪٤‬ش اُزؼش‪٣‬ق ثبُوطغ االٌُزش‪٤ٗٝ‬خ أُغزخذٓخ ‪٤ً ٝ‬ل‪٤‬خ سثط‪ٜ‬ب ٓغ ثؼغ ‪ .‬اُجبة اُشاثغ ‪ :‬اُزظٔ‪ٝ ْ٤‬‬

‫اُز٘ل‪٤‬ز اُؼِٔ‪ ٝ ٢‬اُزغٔ‪٤‬غ اُ٘‪ٜ‬بئ‪ُ ٢‬ؼ٘بطش أُشش‪ٝ‬ع‪ .‬اُجبة اُخبٓظ ‪ :‬اُ٘زبئظ ‪ ٝ‬االعز٘زبعبد ‪٣ ٝ‬ؾز‪ ١ٞ‬ػِ‪ ٠‬اُخالطخ ‪ًٝ‬زُي‬
‫ً‪٤‬ل‪٤‬خ االعزلبدح ٖٓ ‪ٛ‬زا أُشش‪ٝ‬ع ٓغزوجال‪.‬‬

‫‪ 6.1‬انًخطط انصُذولً نهًشزوع‬


‫اُشٌَ (‪ٞ٣ )1.1‬ػؼ أُخطؾ اُظ٘ذ‪ٝ‬ه‪ُِٔ ٢‬شش‪ٝ‬ع‪.‬‬

‫‪ROBOT‬‬

‫‪…..‬‬

‫‪DC‬‬ ‫‪DC‬‬ ‫…‬


‫‪MOTOR‬‬ ‫‪CIRCUIT‬‬ ‫‪MOTOR‬‬ ‫…‬
‫‪Mobile‬‬
‫‪DRIVER‬‬

‫‪ARDUINO‬‬
‫‪GSM‬‬ ‫‪GAS‬‬
‫‪UNO‬‬
‫‪MODULE‬‬ ‫‪SENSORS‬‬
‫‪S‬‬ ‫‪ARDUINO‬‬

‫‪Mega‬‬
‫‪GPS‬‬
‫‪JOYSTICK‬‬
‫‪S‬‬ ‫‪…..‬‬
‫‪ULTRA SONIC‬‬ ‫…‬
‫…‬
‫‪CONTROLER‬‬

‫‪Mobile‬‬

‫اُشٌَ(‪ )1.1‬أُخطؾ اُظ٘ذ‪ٝ‬ه‪ُِٔ ٢‬شش‪ٝ‬ع‪.‬‬

‫‪6‬‬
‫انجــبة انثبًَ‬

‫انزوثىد‬

‫‪7‬‬
‫‪ 2.1‬يمذيخ‬

‫ظ‪ٜ‬شد ًِٔخ س‪ٝ‬ث‪ٞ‬د أل‪ٓ ٍٝ‬شح ػبّ ‪، ّ1920‬ك‪ٓ ٢‬غشؽ‪٤‬خ اٌُبرت أُغشؽ‪( ٢‬اُزش‪ً ٢ٌ٤‬بسٍ رشبث‪٤‬ي) اُز‪ ٢‬ؽِٔذ ػ٘‪ٞ‬إ (سعبٍ‬

‫سع‪ ّٞ‬االُ‪٤‬خ اُؼبُٔ‪٤‬خ ) ‪،‬رشٓض ًِٔخ س‪ٝ‬ث‪ٞ‬د ك‪ ٢‬اُِـخ اُزش‪٤ٌ٤‬خ ئُ‪( ٢‬اُؼَٔ اُشبم) أ‪ ١‬أٗ‪ٜ‬ب ٓشزوخ ٖٓ ًِٔخ (‪ )Robota‬اُز‪ ٢‬رؼ٘‪٢‬‬

‫اُؼَٔ اُشبم أ‪ ٝ‬اُؼَٔ اإلعجبس‪ًٝ ،١‬بٕ ٓجزٌش ‪ٛ‬ز‪ ٙ‬أٌُِخ ‪( ٞٛ‬ع‪ٞ‬ص‪٣‬ق رشبث‪٤‬ي) ؽ‪٤‬ش رؼذ رٌ٘‪ُٞٞ‬ع‪٤‬ب اُش‪ٝ‬ث‪ٞ‬د ‪ٝ‬اؽذح ٖٓ أًضش‬

‫رو٘‪٤‬بد اُزًبء االطط٘بػ‪ ٢‬روذٓب ٖٓ ؽ‪٤‬ش اُزطج‪٤‬وبد اُز‪ ٢‬روذّ ك‪ٜ٤‬ب ‪ٛ‬ز‪ ٙ‬اُزو٘‪٤‬خ ؽِ‪ٞ‬ال ًبِٓخ ُِٔشبًَ‪ٝ ،‬اُش‪ٝ‬ث‪ٞ‬د ثجغبؽخ ‪ ٞٛ‬أُخ‬

‫(ً‪ٜ‬ش‪ٌ٤ٓ ٝ‬بٗ‪٤ٌ٤‬خ رً‪٤‬خ ) ‪ ٌٖٔ٣‬ثشٓغز‪ٜ‬ب أ‪ ٝ‬ر‪ٞ‬ط‪ِٜ٤‬ب ثبُؾبعت ا‪ُ ٢ُ٥‬زإد‪ ١‬ثؼغ أُ‪ٜ‬بّ اُز‪٣ ٢‬و‪ ّٞ‬ث‪ٜ‬ب اإلٗغبٕ ‪٣‬ذ‪٣ٝ‬ب‪.‬‬

‫‪َ 2.2‬ظزح ػبيخ ػٍ انزوثىد‬

‫‪٘ٛ‬بى عذاٍ هبئْ ث‪ ٖ٤‬اُؼِٔبء ‪ٝ‬اُِـ‪ ٖ٤٣ٞ‬ػِ‪ ٢‬ؽذ ع‪ٞ‬اء ثشإٔ اُزؼش‪٣‬ق اُذه‪٤‬ن ُش‪ٝ‬ث‪ٞ‬د‪ ،‬كبُجؼغ ‪٣‬و‪ ٍٞ‬ثاؽالم ‪ٛ‬ز‪ ٙ‬اُظلخ ػِ‪ًَ ٢‬‬

‫اُخ ‪ُ ٌٖٔ٣‬إلٗغبٕ اُغ‪٤‬طشح ػِ‪ٜ٤‬ب ‪ٝ‬رغ‪٤٤‬ش‪ٛ‬ب ػٖ ثؼذ‪ ،‬ث‪ٔ٘٤‬ب ال ‪ٞ٣‬اكن اُجؼغ االخش ػِ‪ٛ ٢‬زا‪ٝ ،‬ؽغز‪ ْٜ‬إٔ رِي ا‪٥‬الد ٖٓ شبًِخ‬

‫اُغ‪٤‬بسح أ‪ ٝ‬اُطبئشح راد اُزؾٌْ ػٖ ثؼذ ال ‪ ٌٖٔ٣‬اػزجبس‪ٛ‬ب س‪ٝ‬ث‪ٞ‬د ُؼذّ آزالً‪ٜ‬ب اُوذسح ػِ‪ ٠‬اُزلٌ‪٤‬ش ‪ٝ‬ارخبر اُوشاس ث٘لغ‪ٜ‬ب‪ٞ٣ٝ ،‬سد‬

‫‪ٛ‬إال ء ٓضبال ثأٗ‪ ٚ‬ئرا ًبٕ ثبعزطبػخ رِي االُخ إٔ رزظشف ‪ٝ‬كن ثشٗبٓظ ٓؼذ عِلب ثبثزؼبد‪ٛ‬ب ػٖ ؽبعض خط‪ٞ‬ر‪ ٖ٤‬ئُ‪ ٠‬اُ‪ٞ‬ساء‬

‫‪ٝ‬االرغب‪ٗ ٙ‬ؾ‪ ٞ‬اُ‪ ٖ٤ٔ٤‬أ‪ ٝ‬اُ‪٤‬غبس ‪ٝ‬االعزٔشاس ثبُزوذّ‪ ،‬كإ ‪ٛ‬زا ‪٣‬غؼَ ٖٓ أٌُٖٔ ئؽالم طلخ س‪ٝ‬ث‪ٞ‬د ؽو‪٤‬و‪٤‬خ ػِ‪ٜ٤‬ب‪.‬‬

‫‪ 3.2‬يكىَبد انزوثىد‬

‫‪٣‬ؾبً‪ ٢‬اُش‪ٝ‬ث‪ٞ‬د ػبدح ٓ‪ٜ‬بسح ‪ٝ‬اؽ ذح ك‪ ٢‬اإلٗغبٕ‪٣ٝ ،‬زٌ‪ ٕٞ‬أثغؾ أشٌبٍ اُش‪ٝ‬ث‪ٞ‬د ػٔ‪ٓٞ‬ب ٖٓ صالصخ أعضاء ‪ ٢ٛٝ‬اُزساع أُ‪ٌ٤‬بٗ‪٤ٌ٤‬خ‪،‬‬

‫‪ٝ‬آُ‪٤‬خ ُ٘وَ اُؾشًخ‪ٓٝ ،‬ؾشى اُز‪٣ ١‬و‪ ّٞ‬ثزشـ‪ٜٔ٤ًِ َ٤‬ب‪ٝ ،‬األٗ‪ٞ‬اع اُزً‪٤‬خ ٖٓ اُش‪ٝ‬ث‪ٞ‬د رؾز‪ ١ٞ‬ػِ‪ ٢‬عضء ئػبك‪ٓ ٢‬زؼِن ثبإلدساى‬

‫اُز‪ ٢‬رزٔضَ ك‪ ٢‬اُؾغبعبد (‪٣ )Sensor‬غؼِ‪ ٚ‬هبدسا ػِ‪ ٢‬ئدساى اُج‪٤‬ئخ أُؾ‪٤‬طخ ث‪ ٝ ٚ‬رؼذ‪ َ٣‬ػِٔ‪٤‬بر‪ ٚ‬ؽجوب ُِٔزـ‪٤‬شاد اُز‪ ٢‬رؾذس ك‪٢‬‬

‫اُج‪٤‬ئخ‪.‬‬

‫‪ 4.2‬انخطىاد انًتجؼخ نصُبػخ روثىد‬

‫‪٣‬غت ك‪ ٢‬أ‪ ١‬ػِٔ‪٤‬خ ‪٣‬زْ ك‪ٜ٤‬ب ط٘بػخ أ‪ ١‬سث‪ٞ‬د األخز ثؼ‪ ٖ٤‬االػزجبس ٓذ‪ ٟ‬رؼو‪٤‬ذ اُش‪ٝ‬ث‪ٞ‬د اُز‪ ١‬ر‪ٞ‬د ط٘بػز‪ ٖٓ ٚ‬ؽ‪٤‬ش اُزشً‪٤‬ت‬

‫‪ٝ‬األعضاء أٌُ‪ٗٞ‬خ ك‪ َٛٝ ،ٚ٤‬ثبإلٌٓبٕ إٔ رز‪ٞ‬كش اُوطغ اُالصٓخ اُز‪ ٢‬رؾزبع‪ٜ‬ب ك‪ ٢‬ػِٔ‪٤‬خ اُزظ٘‪٤‬غ ‪ٝ‬أ‪٣‬ؼب ر‪ٞ‬كش أُظبدس اُالصٓخ‬

‫ُِٔؼِ‪ٓٞ‬بد اُز‪ ٢‬هذ رؾزبع‪ٜ‬ب‪ ،‬كالثذ إٔ رغزؾظَ ثؼغ أُؼِ‪ٓٞ‬بد ك‪ ٢‬ػِٔ‪٤‬خ ط٘بػخ اُش‪ٝ‬ث‪ٞ‬د‪ ،‬ئٓب ٖٓ اٌُزت راد االخزظبص‬

‫‪8‬‬
‫ك‪ٛ ٢‬زا اُشإٔ‪ ،‬أ‪ ٖٓ ٝ‬األثؾبس اُؼِٔ‪٤‬خ‪ ،‬أ‪ ٖٓ ٝ‬اُشجٌخ اُؼبُٔ‪٤‬خ ُإلٗزشٗذ‪ٝ ،‬األ‪ ٖٓ ْٛ‬رُي ػِٔ‪٤‬خ اُزظٔ‪ٝ ْ٤‬اُجشٓغ‪٤‬بد‪ٝ ،‬اُزٌِلخ‬

‫اُؼبٓخ‪.‬‬

‫‪ 5.2‬أَىاع انزوثىد واطتخذايه‬

‫‪ٝ‬رٌ‪ ٕٞ‬اُظ‪ٞ‬سح أدم ئرا ٓب ‪ٝ‬طل٘ب اُش‪ٝ‬ث‪ٞ‬د ثأٗ‪٤ُ ٚ‬ظ ٓغشد اُخ ُزؾَ ٓؾَ اإلٗغبٕ‪ٝ ،‬ئٗٔب ‪ ٞٛ‬آُخ ‪ٌٜ٘ٔ٣‬ب إٔ رإد‪ٓ ١‬بال ؽبهخ‬

‫ُإلٗغبٕ ػِ‪ ٝ ،ٚ٤‬اُزوذّ ك‪ٓ ٢‬غبٍ رظ٘‪٤‬غ اُش‪ٝ‬ث‪ٞ‬د أطجؼ ًج‪٤‬شا كوذ أٗزغذ ثؼغ اُششًبد ٗ‪ٞ‬ػب ٖٓ اُش‪ٝ‬ث‪ٞ‬د ‪٣‬إد‪ ١‬اُؼذ‪٣‬ذ ٓٔب‬

‫‪٣‬إد‪ ١‬اإلٗغبٕ‪ ،‬ك‪ ٌٚ٘ٔ٤‬اُغ‪٤‬ش ثغشػخ ‪/ًْ4‬عبػخ ‪ٝ‬ك‪ٓ ٢‬ؼ‪ٜ‬ذ ٓبعبرش‪ٞ‬عزظ ُِزٌ٘‪ُٞٞ‬ع‪٤‬ب (‪ )MIT‬ك‪ ٢‬اُ‪ٞ‬ال‪٣‬بد أُزؾذح األٓش‪٤ٌ٣‬خ‬

‫رْ رظ٘‪٤‬غ س‪ٝ‬ث‪ٞ‬د ‪ ٌٚ٘ٔ٣‬إٔ ‪٣‬زٌِْ ‪٣ٝ‬زؾشى اعزغبثخ أل‪ٝ‬آش ثشش‪٣‬خ رؼط‪ ُٚ ٠‬ثبٌُالّ‪ .‬كل‪ ٢‬اُ٘‪ٜ‬ب‪٣‬خ ال ‪ ٌٖٔ٣‬االعزـ٘بء ػٖ اُؼ٘ظش‬

‫اُجشش‪ٓٝ ١‬شاهجخ اإلٗغبٕ ُ‪ٜ‬ز‪ ٙ‬االُخ‪٘ٛٝ ،‬ب ٗزًش ثؼغ أ‪ ْٛ‬اعزخذآبد اُش‪ٝ‬ث‪ٞ‬د ‪ٝ‬أٗ‪ٞ‬اػ‪ٜ‬ب ك‪ٔ٤‬ب ‪:٢ِ٣‬‬

‫‪ 1.5.2‬روثىتبد صُبػٍخ‬

‫‪ ٢ٛٝ‬ػجبسح ػٖ أع‪ٜ‬ضح أ‪ٝ‬ر‪ٓٞ‬بر‪٤ٌ٤‬خ ‪ ٌٖٔ٣‬رط‪٣ٞ‬ش‪ٛ‬ب ‪ٝ‬ئػبدح ثشٓغز‪ٜ‬ب ‪ٝ‬رغزؼَٔ ألؿشاع ػذ‪٣‬ذح‪٤ٔٓٝ ،‬ضار‪ٜ‬ب إٔ ثآٌبٗ‪ٜ‬ب اُؾشًخ‬

‫ػِ‪ ٢‬صالصخ ٓؾب‪ٝ‬س أ‪ ٝ‬أً ضش ‪٣ٝ ،‬غزؼَٔ ‪ٛ‬زا اُ٘‪ٞ‬ع ك‪ ٢‬اُششًبد اُظ٘بػ‪٤‬خ اٌُجش‪ُ ٟ‬ـشع ُؾْ أُؼبدٕ ‪ٝ‬اُظجبؿخ ‪ٝ‬اٌُ‪ٝ ١ٞ‬اُزوبؽ‬

‫‪ٗٝ‬وَ أعغبّ ‪ٓٝ‬شاهجخ ع‪ٞ‬دح أ‪ ٝ‬طالؽ‪٤‬خ ع‪ٞ‬دح اُ٘برظ اُ٘‪ٜ‬بئ‪ُِٔ ٢‬ظ٘غ هجَ اُزظذ‪٣‬ش ‪ٛٝ‬ز‪ ٙ‬اُش‪ٝ‬ث‪ٞ‬ربد ٓجشٓغخ ػبدح ُز٘ل‪٤‬ز ٓ‪ٜ‬بٓ‪ٜ‬ب‬

‫ثظ‪ٞ‬سح عش‪٣‬ؼخ ‪ٌٓٝ‬شسح ‪ٝ‬ده‪٤‬وخ ‪ٝ‬اُشٌَ (‪٣ )1.2‬ج‪ ٖ٤‬اؽذ‪ ٟ‬اُش‪ٝ‬ث‪ٞ‬ربد أُغزخذٓخ ك‪ ٢‬اُظ٘بػخ‪.‬‬

‫اُشٌَ(‪ )2.2‬س‪ٝ‬ث‪ٞ‬د ‪٣‬غزخذّ ك‪ ٢‬اُظ٘بػخ‪.‬‬

‫‪9‬‬
‫‪ 2.5.2‬روثىتبد لبدرح ػهً انحزكخ واالَتمبل‬

‫‪ٜ٘ٓٝ‬ب ؽبئشح ثذ‪ ٕٝ‬ؽ‪٤‬بس (‪ٝ )predator‬اُطبئشاد راد اُزؾٌْ اُزار‪٣ٝ ،٢‬ؼزجش اُشث‪ٞ‬ربٕ اُِزبٕ أسعِز‪ٜٔ‬ب ٗبعب ك‪ ٢‬ػبّ ‪ ّ2004‬ئُ‪٢‬‬

‫عطؼ أُش‪٣‬خ ٖٓ أش‪ٜ‬ش اُش‪ٝ‬ث‪ٞ‬ربد أُزؾشًخ‪ٜٔٓٝ ،‬ز‪ٜٔ‬ب االعزٌشبف ‪ٝ‬اخذ ػ‪٘٤‬بد ٖٓ اُزشثخ ‪ٝ‬رؾِ‪ِٜ٤‬ب ‪ٝ‬ئسعبٍ أُؼِ‪ٓٞ‬بد‬

‫‪ٝ‬اُزظ‪٣ٞ‬ش ‪ٝ‬اُشٌَ(‪٣ )2.2‬ج‪ ٖ٤‬اؽذ‪ ٟ‬اُش‪ٝ‬ث‪ٞ‬ربد اُوبدسح ػِ‪ ٠‬اُؾشًخ ‪ٝ‬االٗزوبٍ‪.‬‬

‫اُشٌَ (‪ )2.2‬س‪ٝ‬ث‪ٞ‬د هبدس ػِ‪ ٠‬اُؾشًخ ‪ٝ‬االٗزوبٍ‪.‬‬

‫‪ 3.5.2‬روثىتبد يتغٍزح انشكم‬

‫‪ ٢ٛٝ‬هبدسح ػِ‪ ٢‬رغٔ‪٤‬غ ٗلغ‪ٜ‬ب ثظ‪ٞ‬سح شج‪ٓ ٚ‬غزوِخ ػِ‪ ٢‬عج‪ َ٤‬أُضبٍ رظـ‪٤‬ش ؽغٔ‪ٜ‬ب ُِٔش‪ٝ‬س خالٍ ٗلن ػ‪٤‬ن ‪ٛ ٝ‬ز‪ ٙ‬اُش‪ٝ‬ث‪ٞ‬ربد‬

‫رؾ‪ ١ٞ‬ك‪ٞٔٗ ٢‬رع‪ٜ‬ب ػِ‪ ٢‬ػذح س‪ٝ‬اثؾ ٓغ ‪ٝ‬ؽذح أُؼبُغخ أُشًض‪٣‬خ ‪ٓٝ‬غزوجالد اإل‪٣‬ؼبص ‪ٝ‬اُزاًشح ‪ٛٝ‬ز‪ ٙ‬اُش‪ٝ‬ث‪ٞ‬ربد هبدسح ػِ‪٢‬‬

‫ثؼغ اُؾشًبد اُشج‪ٓ ٚ‬طبؽ‪٤‬خ الؽز‪ٞ‬ائ‪ٜ‬ب ػِ‪ٝ ٢‬ؽذح ٓشٗخ ئٓب ػٖ ؽش‪٣‬ن رؾ‪ َ٣ٞ‬ؽبهخ اُ‪ٜٞ‬اء أُؼـ‪ٞ‬ؽ ك‪ ٢‬أعط‪ٞ‬اٗبد ئُ‪٢‬‬

‫ؽشًبد خط‪٤‬خ أ‪ ٝ‬د‪ٝ‬ساٗ‪٤‬خ ‪ ،‬أ‪ ٝ‬رزْ اُؾشًخ ثزؾ‪ َ٣ٞ‬اُطبهخ اٌُ‪ٜ‬شثبئ‪٤‬خ ئُ‪ ٢‬ؽبهخ ؽشً‪٤‬خ ‪ٝ‬اُشٌَ(‪٣ )3.2‬ج‪ ٖ٤‬س‪ٝ‬ث‪ٞ‬د ٓزـ‪٤‬ش اُشٌَ‪.‬‬

‫اُشٌَ (‪ )3.2‬س‪ٝ‬ث‪ٞ‬د ٓزـ‪٤‬ش اُشٌَ‪.‬‬

‫‪10‬‬
‫‪ 6.2‬يٍشاد اطتخذاو انزوثىد‬

‫ٖٓ أ‪٤ٔٛ‬خ اعزخذاّ اُش‪ٝ‬ث‪ٞ‬د ك‪ ٢‬ؽ‪٤‬بر٘ب رزؼذد ك‪ ٢‬اُ٘وبؽ اُزبُ‪٤‬خ‪:‬‬

‫ص‪٣‬بدح ‪ٝ‬اػؾخ ك‪ ٢‬اإلٗزبع‪٤‬خ ‪ُ ٌٖٔ٣ :‬ش‪ٝ‬ث‪ٞ‬د ‪ٝ‬اؽذ ك‪ٝ ٢‬ؽذح ٖٓ ‪ٝ‬ؽذاد اإلٗزبط إٔ ‪٣‬شكغ ٖٓ اٌُلبءح اإلٗزبع‪٤‬خ ُِ٘ظبّ ئرا‬ ‫‪‬‬

‫ٓب أؽغٖ اعزخذآ‪.ٚ‬‬

‫روِ‪ َ٤‬اُ٘لوبد ‪٣ :‬زشرت ػِ‪ ٠‬اعزخذاّ االُ‪٤‬بد اُزً‪٤‬خ ٓضَ اُش‪ٝ‬ث‪ٞ‬د خلؼب ك‪ ٢‬اإلٗلبم االعزضٔبس‪ ١‬ػِ‪ ٢‬أُذ‪ ١‬اُط‪، َ٣ٞ‬‬ ‫‪‬‬

‫‪ٛ ٌُٖٝ‬زا ثبُطجغ ال ‪٘٣‬طجن ػِ‪ ٢‬أُ‪ٜ‬بّ أُؾذ‪ٝ‬دح أ‪ ٝ‬أُشش‪ٝ‬ػبد اُظـ‪٤‬شح ‪.‬‬

‫اُزـِت ػِ‪ ٢‬اُ٘وض ك‪ٜٓ ٢‬بسح األ‪٣‬ذ‪ ١‬اُؼبِٓخ ‪ :‬ئرا ؽَ ٓؾَ اُؼٔبُخ اُ‪٤‬ذ‪٣ٝ‬خ ك‪ ٢‬اُؼذ‪٣‬ذ ٖٓ أُ‪ ٖٜ‬اُز‪ً ٢‬بدد إٔ ر٘وشع‬ ‫‪‬‬

‫أ‪ ٝ‬اُظؼجخ أدائ‪ٜ‬ب‪.‬‬

‫ر‪ٞ‬ك‪٤‬ش أُش‪ٗٝ‬خ ك‪ ٢‬األػٔبٍ اُظ٘بػ‪٤‬خ ‪ :‬ئرا ‪ ٌٖٔ٣‬ئػبدح ثشٓغخ اُش‪ٝ‬ث‪ٞ‬د ُِؼَٔ ك‪ ٢‬األػٔبٍ أُخزِلخ ًٔب إٔ ثؼغ‬ ‫‪‬‬

‫أع‪ٜ‬ضح اُش‪ٝ‬ث‪ٞ‬د ‪ٌٜ٘ٔ٣‬ب رـ‪٤٤‬ش ٓغبس ػِٔ‪ٜ‬ب ُزإد‪ٜٔٓ ١‬خ صبٗ‪٣ٞ‬خ ئرا ٓب رطِت األٓش رُي‪.‬‬

‫رؾغ‪ٞٗ ٖ٤‬ػ‪٤‬خ اإلٗزبط ‪ٝ‬ع‪ٞ‬در‪ٝ ٚ‬رش‪٤‬ش أُؼِ‪ٓٞ‬بد اُ‪ٞ‬اسدح ٖٓ ٓظبٗغ ؽالء أُؼبدٕ ئُ‪ ٢‬إٔ ٗ‪ٞ‬ػ‪٤‬خ اإلٗزبط هذ رؾغ٘ذ‬ ‫‪‬‬

‫ثشٌَ ِٓؾ‪ٞ‬ظ ثبعزخذاّ اُش‪ٝ‬ث‪ٞ‬د‪.‬‬

‫اعزخذآ‪ ٚ‬ك‪ ٢‬األػٔبٍ اُز‪ٔ٣ ٢‬ضَ اُو‪٤‬بّ ث‪ٜ‬ب خط‪ٞ‬سح ًج‪٤‬شح ػِ‪ ٢‬ؽ‪٤‬بح اُجشش‪.‬‬ ‫‪‬‬

‫رغ٘‪٤‬ت اإلٗغبٕ اإلطبثخ ثبَُِٔ ٖٓ األػٔبٍ اُزٌشاس‪٣‬خ‪.‬‬ ‫‪‬‬

‫‪ 7.2‬ػٍىة اعزخذاّ انزوثىد‬

‫ثؼغ اُؼ‪ٞ٤‬ة اُز‪ ٢‬هذ رإصش ك‪ ٢‬اعزخذاّ اُش‪ٝ‬ث‪ٞ‬د ثشٌَ ػبّ‪:‬‬

‫اٌُغَ ‪ٝ‬اُخٔ‪ : ٍٞ‬ئر ‪٣‬إد‪ ١‬االػزٔبد أُلشؽ ػِ‪ ٢‬اُش‪ٝ‬ث‪ٞ‬د ئُ‪ ٢‬اُزٌبعَ ‪ٝ‬اُخٔ‪ ٍٞ‬ك‪ ٢‬األػٔبٍ اُز‪٘٣ ٢‬زظ ػ٘‪ ٚ‬رجبؽإ‬ ‫‪‬‬

‫رذس‪٣‬غ‪ ٢‬ك‪ ٢‬اُغ‪ٜ‬ذ ‪ٝ‬اُؾشًخ ُِلشد ٓٔب ‪٣‬إد‪ ١‬ئُ‪ٓ ٢‬شبًَ طؾ‪٤‬خ اُ٘برغخ ٖٓ ػذّ اُو‪٤‬بّ ثأ‪ ١‬أػٔبٍ رزًش‪.‬‬

‫األػطبٍ اُل٘‪٤‬خ ‪ :‬ؽ‪٤‬ش هذ ‪٘٣‬زظ ػٖ ػطَ ُش‪ٝ‬ث‪ٞ‬د أعبع‪ ٢‬ك‪ٓ ٢‬ظ٘غ ٓب ئُ‪ ٠‬ر‪ٞ‬هق خؾ اإلٗزبط ثبٌُبَٓ اُز‪ ١‬ثذ‪ٝ‬س‪ ٙ‬هذ‬ ‫‪‬‬

‫‪٣‬إد‪ ١‬ئُ‪ ٢‬كوذ ك‪ ٢‬اإلٗزبط أُغجت ك‪ ٢‬اُخغبسح أُبد‪٣‬خ ك‪ ٢‬ثؼغ األؽ‪٤‬بٕ‪.‬‬

‫اُزٌِلخ اُجب‪ٛ‬ظخ ‪ :‬كجؼغ ٖٓ اُش‪ٝ‬ث‪ٞ‬ربد راد رٌِلخ ثب‪ٛ‬ظخ عذاً ثغت اُزو٘‪٤‬خ اُؼبُ‪٤‬خ أُغزخذٓخ ك‪ ٢‬ػِٔ‪٤‬خ رظ٘‪٤‬ؼ‪ٜ‬ب‪.‬‬ ‫‪‬‬

‫‪11‬‬
‫انجــــبة انثـبنث‬

‫انكٍبٌ انًبدي و انًؼُىي نهًشزوع‬

‫‪12‬‬
‫‪1.3‬األجشاء انزئٍظٍخ نهًشزوع‬

‫ٖٓ اُؼ٘بطش اإلٌُزش‪٤ٗٝ‬خ أُغزخذٓخ ٓغ أُزؾٌٔخ (‪ ٝ )Ardunino Mega‬اُز‪ ٢‬رؼزجش أعبط ك‪ٛ ٢‬زا أُشش‪ٝ‬ع ‪ ٢ٛ‬اُ‪ٞ‬ؽذح‬
‫أُالعٌِ‪٤‬خ (‪ُٞ ،)nRF24L01‬ؽخ ‪، ،SIM900 GSM/GPRS‬ؽغبعبد ؿبص ٓخزِلخ ( ‪ً )LM135- MQ2‬زُي ُ‪ٞ‬ؽخ‬
‫اُز‪ٞ‬ط‪، )PCB( َ٤‬أعالى ر‪ٞ‬ط‪ٓ ، َ٤‬ظذس ع‪ٜ‬ذ (‪ًٔ ، )POWER SUPPLY‬ج‪ٞ٤‬رش (‪ٝ )LAPTOP‬ػِٔب ثإٔ ٗظبّ اُزؾٌْ‬
‫أُغزخذّ ك‪ ٢‬اُزظٔ‪. )On-Off( ْ٤‬‬

‫‪ 1.1.3‬نىحخ اردٌُى‬
‫‪ُٞ ٢ٛ‬ؽخ اٌُزش‪٤ٗٝ‬خ ‪ٓٝ‬لز‪ٞ‬ؽخ أُظذس ‪ُ Open Hard Ware‬زط‪٣ٞ‬ش اٌُض‪٤‬ش ٖٓ األكٌبس ‪ٝ‬أُشبس‪٣‬غ أُزؼِوخ ثبُزؾٌْ ا‪٢ُ٥‬‬
‫ثظ‪ٞ‬سح ع‪ِٜ‬خ ‪ٝ‬ثغ‪٤‬طخ ػٖ ؽش‪٣‬ن اعزخذاّ ُـخ ثشٓغخ ٓلز‪ٞ‬ؽخ أُظذس ‪٣ٝ‬زْ ثشٓغخ أُزؾٌٔخ أُ‪ٞ‬ع‪ٞ‬دح ػِ‪ ٠‬اُِ‪ٞ‬ؽخ ثبعزخذاّ‬
‫ثشٗبٓظ خبص ‪٣‬غٔ‪٣ٝ .)C Arduino) ٠‬ج‪ ٖ٤‬اُشٌَ )‪ )1.3‬ط‪ٞ‬س ُِ‪ٞ‬ؽخ اسد‪ (ٞ٘٣ٝ‬أ‪ُ )ٞٗٝ‬ذائشح اُزؾٌْ ‪٤ٓ( ٝ‬ـب) ػ٘ذ اُؼشثخ‬
‫(‪)Robot‬أُغزخذٓخ ك‪٘ٓ ٢‬ظ‪ٓٞ‬خ أُشش‪ٝ‬ع ]‪. [2‬‬

‫‪ ‬انًتحكى ‪: ATMEGA2560‬‬

‫‪ٓ ٞٛ‬زؾٌْ ػبُ‪ ٢‬االداء ‪٣‬غز٘ذ اُ‪ RISC ٠‬راد اُطبهخ أُ٘خلؼخ‪٣ .‬ؾز‪ٛ ١ٞ‬زا اُ٘‪ٞ‬ع ػِ‪ ٠‬راًشح كالػ(‪)Flash memory‬‬
‫ثؾغْ ‪ KB8 ٝ KB128‬راًشح ‪ٝ‬ط‪ ٍٞ‬ػش‪ٞ‬ائ‪ )SRAM(٢‬اػبكخ اُ‪ ٖٓ KB8 ٠‬راًشح اُوشاءح اُوبثِخ ُِٔغؼ (‪.)EEPROM‬‬
‫‪٣ ٝ‬ؾز‪ ١ٞ‬ا‪٣‬ؼب َ ػِ‪ٓ 32 ٠‬غغال (‪ ،)Registers‬ػذاد ‪ٝ‬هذ ؽو‪٤‬و‪ُ )counters/timers)، )Real time counter( ٢‬زؾ‪َ٣ٞ‬‬
‫‪ 10‬ثذ ٖٓ أُؼِ‪ٓٞ‬بد اُزٔبصِ‪٤‬خ اُ‪ ٠‬سهٔ‪٤‬خ ‪.‬‬
‫‪٣‬غزط‪٤‬غ ‪ٛ‬زا اُ٘‪ٞ‬ع ٖٓ أُزؾٌٔبد اٗزبط رشدد ‪٣ ٝ MHz16‬ؼَٔ ػِ‪ ٠‬ع‪ٜ‬ذ ‪٣‬زشا‪ٝ‬ػ ث‪ V4.5 ٖ٤‬اُ‪ .V5 ٠‬رؾز‪ ١ٞ‬اُذائشح ػِ‪54 ٠‬‬
‫ٓ٘لزاَ سهٔ‪٤‬ب رغزخذّ الدخبٍ االشبساد اُشهٔ‪٤‬خ ‪ 0‬ا‪ 5 ٝ‬ك‪ُٞ‬ذ ًٔب ‪ٌٜ٘ٔ٣ ٝ‬ب رأٓ‪ ٖ٤٤‬ر‪٤‬بس ‪٣‬ظَ اُ‪ ٢ِ٤ٓ 20 ٠‬آج‪٤‬ش ًؾذ اهظ‪ٝ . ٠‬‬
‫‪ ٌٖٔ٣‬اعزخذاّ ‪٘ٓ 15‬لز ٓ٘‪ٜ‬ب الدخبٍ اشبسح ‪ًٔ. PWM‬ب ‪ ٝ‬رؾز‪ ١ٞ‬أُ‪٤‬غب ا‪٣‬ؼب ػِ‪٘ٓ 16 ٠‬لزاَ رٔبصال الدخبٍ ع‪ٜ‬ذ ‪٣‬زشا‪ٝ‬ػ ث‪0 ٖ٤‬‬
‫اُ‪ 5 ٠‬ك‪ُٞ‬ذ‪.‬‬

‫‪13‬‬
‫ُ‪ٞ‬ؽخ ‪)a( Uno‬‬

‫ُ‪ٞ‬ؽخ ‪)b( Mega‬‬

‫اُشٌَ )‪ُٞ )1.3‬ؽخ اسد‪. [2] ٞ٘٣ٝ‬‬

‫‪14‬‬
‫ٓؼ٘‪ ٠‬إٔ أسد‪ٓ ٞ٘٣‬لز‪ٞ‬ػ أُظذس ‪٣‬ؼ٘‪ ٢‬ثأٗ‪ٌ٘ٔ٣ ٚ‬ي االؽالع ‪ٝ‬اُزؼذ‪ َ٣‬ػِ‪ ٠‬اُزظٔ‪ٔ٤‬بد اُ‪ٜ٘‬ذع‪٤‬خ ‪ٝ‬اُشلشاد أُظذس‪٣‬خ ‪source‬‬
‫‪ ٖٓ ٌَُ Codes‬اُِ‪ٞ‬ؽبد أسد‪ ٞ٘٣‬أُخزِلخ ‪ Arduino LDE Arduino Boards‬ثٔب ‪٣‬ز٘بعت ٓؼي ‪ٌ٘ٔ٣ٝ‬ي أ‪٣‬ؼب رط‪٣ٞ‬ش ُـخ‬
‫ثشٓغخ (‪ )C Arduino‬ثغ‪ُٜٞ‬خ ربٓخ ‪ٝ‬االؽالع ػِ‪ ٠‬اُشلشاد أُظذس‪٣‬خ اُخبطخ ث‪ٜ‬ب ًٔب إ ‪ٛ‬ذ‪ ٙ‬أُٔ‪٤‬ضاد ‪ٝ‬اُجشٓغ‪٤‬بد ٓغبٗ‪٤‬خ‬
‫رٔبٓب ُ‪٤‬ظ ٓضَ ثؼغ اُج‪٤‬ئبد اُزط‪٣ٞ‬ش‪٣‬خ ٓضَ ‪ٝ micro C‬اُز‪ ٢‬رزطِت ششاء سخظخ ٌِٓلخ ‪.‬‬

‫‪٤ٔ٣ -‬ض ُ‪ٞ‬ؽبد األسد‪ ٞ٘٣‬ػٖ ثبه‪ ٢‬اُِ‪ٞ‬ؽبد اُزط‪٣ٞ‬ش‪٣‬خ ُِٔزؾٌٔبد اُذه‪٤‬وخ األخش‪ٓ ٞٛ ٟ‬ذ‪ ٟ‬اُغ‪ُٜٞ‬خ اُزؼبَٓ ٓؼ‪ٜ‬ب ‪ٝ‬ثغبؽخ اُِـخ‬
‫اُجشٓغ‪٤‬خ ‪ٝ‬اُز‪ ٢‬ػَٔ كش‪٣‬ن ٖٓ ئ‪٣‬طبُ‪٤‬ب ػِ‪ ٠‬رط‪٣ٞ‬ش‪ٛ‬ب ٓ٘ذ ػبّ ‪ 2005‬ؽز‪ ٠‬ا‪ُٝ ، ٕ٥‬وذ رْ اشزوبم ُـخ أسد‪ ٞ٘٣‬اُجشٓغ‪٤‬خ ٖٓ ُـخ‬
‫‪ُٝ processing‬ـخ ‪ٝ C‬اُز‪ ٢‬رؼذ أعبط ُـبد اُجشٓغخ اُؾذ‪٣‬ضخ ‪.‬‬

‫‪ُ -‬وذ رْ رط‪٣ٞ‬ش‪٘٤ُ ٙ‬بعت عٔ‪٤‬غ أُغز‪٣ٞ‬بد اثزذاء ٖٓ اُ‪ٜٞ‬اح ‪ٝ‬اٗز‪ٜ‬بء ثبُٔشبس‪٣‬غ أُزط‪ٞ‬سح ‪ٝ‬اُذُ‪ َ٤‬أٗ‪٘ٛ ٚ‬بى ٓٔ‪٤‬ضاد عجبسح رغؼَ‬
‫أسد‪ ٞ٘٣‬ػِ‪ ٠‬هٔخ أُزؾٌٔبد اُذه‪٤‬وخ ‪ ٢ٛٝ‬ئٌٓبٗ‪٤‬خ دٓغ‪ ٚ‬ك‪ٓ ٢‬شبس‪٣‬غ ‪٣‬زْ ثشٓغز‪ٜ‬ب ثِـبد ‪٘ٛ‬ذع‪٤‬خ ٓزط‪ٞ‬سح ٓضَ ‪ُٝ MATLAB‬ـخ‬
‫‪ Java‬ؽ‪٤‬ش رغذ ٌٓزجبد ثشٓغ‪٤‬خ ك‪ ٢‬ئؽذ‪ ٟ‬اُِـز‪ MATLAB/Java ٖ٤‬خبطخ ثبُزؼبَٓ ٓغ أسد‪. [2] ٞ٘٣‬‬

‫‪ ‬أَىاع انىحبد أردٍَى‬


‫رخزِق اُِ‪ٞ‬ؽبد ػٖ ثؼؼ‪ٜ‬ب اُجؼغ ٖٓ ٗبؽ‪٤‬خ ػذد اُخبسط ‪ٝ‬أُذاخَ ‪ٝ‬اُز‪ ٢‬رؾذد ػذد األع‪ٜ‬ضح اُز‪ ٌٖٔ٣ ٢‬اُزؾٌْ ث‪ٜ‬ب ‪ٝ‬ػذد‬
‫اُؾغبعبد اُز‪ ٌٖٔ٣ ٢‬دٓغ‪ٜ‬ب ٓغ اُِ‪ٞ‬ؽخ ‪ًٝ‬زُي ٗ‪ٞ‬ع أُزؾٌٔخ اُذه‪٤‬وخ ‪ٝ‬عشػخ أُؼبُظ أُ‪ٞ‬ع‪ٞ‬د ثذاخِ‪ٜ‬ب ‪ٌٓٝ‬بٗ‪٤‬خ رجذُ‪ٜ‬ب ‪ٝ‬اُشٌَ‬
‫(‪ٞ٣ )2.3‬ػخ اٗ‪ٞ‬اع ُ‪ٞ‬ؽبد االس‪. ٞ٘٣‬‬

‫اُشٌَ (‪ )2.3‬أٗ‪ٞ‬اع ُ‪ٞ‬ؽبد األسد‪.ٞ٘٣‬‬

‫‪15‬‬
‫‪ ‬إيذاد انذائزح ثبنطبلخ ‪: Power up‬‬

‫‪ٌ٘ٔ٣‬ي ئٓذاد اُذائشح ثبُطبهخ ئٓب ٖٓ خالٍ ٓ٘لز اُــ‪ USB‬كوؾ أ‪ ٝ‬ػٖ ؽش‪٣‬ن اعزخذاّ ٓظذس خبسع‪ٌُِٜ ٢‬شثبء ًٔؾ‪DC/AC ٍٞ‬‬
‫ُ‪ٔ٤‬ذ اُذائشح ثبُغ‪ٜ‬ذ اُالصّ ُِؼَٔ أ‪ ٝ‬ؽز‪ ٠‬ػٖ ؽش‪٣‬ن ثطبس‪٣‬خ ‪ 9‬ك‪ُٞ‬ذ ا‪ 4 ٝ‬ثطبس‪٣‬بد ‪ 1.5‬ك‪ُٞ‬ذ ؽز‪٣ ٠‬زْ ر‪ٞ‬ط‪ َ٤‬ؽشك‪ ٢‬اُجطبس‪٣‬خ‬
‫ئُ‪ ٢‬أُذخَ األسػ‪ٝ GND ٢‬اُـ ‪ Vin‬ك‪ ٢‬اُذائشح ]‪. [2‬‬

‫اُشٌَ (‪ )3.3‬ئٓذاد اُذائشح ثبُطبهخ ‪.Power up‬‬

‫رغزط‪٤‬غ اُذائشح اُؼَٔ ػِ‪ ٠‬ع‪ٜ‬ذ ‪٣‬زشا‪ٝ‬ػ ث‪ 20 - 6 ٖ٤‬ك‪ُٞ‬ذ ٌُٖ ‪٣‬غت االٗزجب‪ ٙ‬ؽ‪٤‬ش اٗ‪ ٚ‬ئرا هٔ٘ب ثزأٓ‪ ٖ٤‬ع‪ٜ‬ذ اهَ ٖٓ ‪ 7‬ك‪ُٞ‬ذ كبٕ‬
‫أُخشط أُزؾٌْ ‪ Pin 5v‬هذ ال ‪٣‬غزط‪٤‬غ رأٓ‪ ٖ٤‬ع‪ٜ‬ذ ‪٣‬جِؾ اُـ ‪ 5‬ك‪ُٞ‬ذ أُطِ‪ٞ‬ة ‪ٝ‬هذ ‪٣‬إد‪ ١‬ئُ‪ ٢‬ػذّ اعزوشاس اُذائشح ‪ ،‬ئٓب ئرا هٔ٘ب‬
‫ثزض‪٣ٝ‬ذ اُذائشح ثغ‪ٜ‬ذ اػِ‪ 12 ٖٓ ٢‬ك‪ُٞ‬ذ كاٗ‪ ٚ‬هذ ‪٣‬إصش ػِ‪ ٠‬ػ٘ظش ر٘ظ‪ ْ٤‬اُغ‪ٜ‬ذ ‪٣ٝ voltage regulator‬إد‪ ١‬ئُ‪ ٢‬اسرلبع دسعخ‬
‫ؽشاسر‪ٔٓ ٚ‬ب ‪٣‬إد‪ ١‬ئُ‪ ٢‬رِق اُِ‪ٞ‬ؽخ ‪ُ ،‬زا كبٕ ٓغبٍ اُغ‪ٜ‬ذ اُز‪٣ ١‬لؼَ اعزخذآ‪ 7 ٖٓ ٞٛ ٚ‬ئُ‪ 12 ٢‬ك‪ُٞ‬ذ ‪.‬‬

‫‪ ‬يخبرج ويذاخم انطبلخ انكهزثبئٍخ نهًتحكًخ ‪Power Inputs /Outputs :‬‬

‫‪ : Vin‬ع‪ٜ‬ذ اُذاخَ ػ٘ذٓب ٗغزخذّ ٓظذس ع‪ٜ‬ذ خبسع‪ٌ٘٘ٔ٣ ، ٢‬ب رأٓ‪ ٖ٤‬اُغ‪ٜ‬ذ ٖٓ خالٍ ‪ٛ‬زا أُذخَ ‪ ،‬ئرا ً٘ب ٗو‪ ّٞ‬ثزأٓ‪ ٖ٤‬اُطبهخ‬
‫ُِذائشح ٖٓ خالٍ أُؾ‪ٌ٘٘ٔ٣ ٍٞ‬ب اُ‪ٞ‬ط‪ ٖٓ ُٚ ٍٞ‬خالٍ ‪ٛ‬زا أُذخَ أ‪٣‬ؼب ‪.‬‬

‫‪ : V5‬ع‪ٜ‬ذ ٓ٘ظْ ‪٣‬غزخذّ ُزأٓ‪ ٖ٤‬اُطبهخ ُِؼ٘بطش أُغزخذٓخ ػِ‪ ٠‬اُذائشح ‪ٝ‬ع‪ٞ‬ف ٗغزخذٓ‪ُ ٚ‬ز‪ٞ‬ك‪٤‬ش اُطبهخ ُِوطبع االٌُزش‪ ٢ٗٝ‬اُز‪٢‬‬
‫ع٘ؼ‪٤‬ل‪ٜ‬ب ‪ٝ ،‬هذ ‪٣‬أر‪ٛ ٢‬زا اُغ‪ٜ‬ذ ٖٓ خالٍ ‪ Vin‬ػجش ٓ٘ظْ ع‪ٜ‬ذ داخِ‪ ٢‬أ‪ ٝ‬رأٓ‪ ٖٓ ٚ٘٤‬خالٍ ٓ٘لز اُـ ‪ USB‬أ‪ ٝ‬ئُ‪ٓ ٢‬ظذس ع‪ٜ‬ذ‬
‫ٓ٘ظْ ثو‪ٔ٤‬خ ‪ 5‬ك‪ُٞ‬ذ ‪.‬‬

‫‪ٓ :V3.3‬ظذس ُِغ‪ٜ‬ذ ثو‪ٔ٤‬خ ‪ 3.3‬ك‪ُٞ‬ذ ٓإٖٓ ٖٓ هجَ ٓ٘ظْ اُغ‪ٜ‬ذ اُذاخِ‪ُ ٢‬ذائشح ‪ٝ‬أهظ‪ ٢‬ه‪ٔ٤‬خ ُغؾت اُز‪٤‬بس ٖٓ خالٍ ‪ٛ‬زا اُخؾ‬
‫‪ ٢ِ٤ٓ 50 ٞٛ‬أٓج‪٤‬ش‪.‬‬

‫‪ : GND‬اُخؾ األسػ‪. ٢‬‬

‫‪16‬‬
.‫خ ُِٔزؾٌٔخ‬٤‫شثبئ‬ٌُٜ‫ٓذاخَ اُطبهخ ا‬ٝ ‫) ٓخبسط‬4.3( ٌَ‫اُش‬

. [2]Uno ٞ٘٣‫ؽخ االسد‬ُٞ ‫اطلبد‬ٞٓ )1.3( ٍٝ‫عذ‬

Specifications of Arduino Uno


Microcontroller ATmega328
Operating Voltage 5V
Input Voltage 7-9V
(recommended)
Input Voltage (limits) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
Analog Input Pins 6
DC Current per I/O Pin 40mA
DC Current for 3.3V 50 Ma
Pin
Flash Memory 32 KB (ATmega328) (0.5 KB used by
bootloader)
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed 16 MHz

17
‫‪ 2.1.3‬يحزن انظٍزفى‬
‫ٓؾشى اُغ‪٤‬ش ك‪ ٞٛ ٞ‬ػجبسح ػٖ ٓؾشى ر‪٤‬بس ٓغزٔش ٓغ‪ٜ‬ض ثذائشح اٌُزش‪٤ٗٝ‬خ ُِزؾٌْ ثذهخ ك‪ ٢‬ارغب‪ ٙ‬د‪ٝ‬سإ ػٔ‪ٞ‬د أُؾشى ‪ٝٝ‬ػؼ‪ٚ‬‬
‫‪ٝ‬ط٘ذ‪ٝ‬م اُزش‪ٝ‬ط ‪ًٝ‬زُي ‪٣‬ؼشف ػِ‪ ٢‬أٗ‪ٗ ٚ‬ظبّ رؾٌْ ٓـِن ُٔؾشى ر‪٤‬بس ٓغزٔش ػبد‪ٞ٣ ٝ ١‬ػؼ اُشعْ اُزخط‪٤‬ط‪ ٢‬اُزبُ‪ٓ ٢‬ب‬
‫أػ٘‪-: ٢‬‬

‫شٌَ (‪ٞ٣ )5.3‬ػؼ ٗظبّ رؾٌْ ٓـِن ُٔؾشى اُغ‪٤‬شك‪.ٞ‬‬

‫‪ ‬أَىاع يحزكبد انظٍز فى (‪)Types of Servo motor‬‬


‫‪ٞ٣‬عذ ٗ‪ٞ‬ػ‪ٓ ٖٓ ٖ٤‬ؾشًبد اُغ‪٤‬ش ك‪ٔٛ ٞ‬ب ػِ‪ ٠‬اُ٘ؾ‪ ٞ‬اُزبُ‪: ٢‬‬

‫‪ .1‬اُغ‪٤‬شك‪ ٞ‬اُو‪٤‬بع‪ٝ ) Stander servo ( : ٢‬ك‪ ٌٕٞ٣ ٚ٤‬أُؾشى هبثَ ُِذ‪ٝ‬سإ ٖٓ (‪ 0‬ئُ‪ ) 180 - 120 ٠‬ك‪ ٢‬االرغب‪ٖ٤ٛ‬‬
‫( ٓغ ػوبسة اُغبػخ ‪ٝ‬ػٌظ ػوبسة اُغبػخ ) ‪.‬‬

‫‪ٓ . 2‬ؾشى اُغ‪٤‬شك‪ ٞ‬أُغزٔش‪ٝ :‬ك‪ ٌٕٞ٣ ٚ٤‬د‪ٝ‬سإ أُؾشى ٓغ ‪ٝ‬ػٌظ ػوبسة اُغبػخ ٖٓ ( ‪ٝ ) 360 – 0‬اُؼبَٓ األعبع‪ ٢‬ك‪٢‬‬
‫رؾذ‪٣‬ذ ٌٓبٕ ػٔ‪ٞ‬د اُذ‪ٝ‬سإ ‪ٓ ٢ٛ‬وبٓخ ‪ ٢ٛٝ‬ػجبسح ػٖ ٓوب‪ٓ ٚٓٝ‬زـ‪٤‬شح رإد‪ ٟ‬اُ‪ ٠‬رـ‪٤‬ش ك‪ ٢‬ه‪ ٚٔ٤‬اُغ‪ٜ‬ذ اُخبسط ٓ٘‪ٜ‬ب ‪ ٝ‬ػٖ ؽش‪٣‬ن‬
‫ه‪ٔ٤‬خ اُغ‪ٜ‬ذ اُ٘برغخ رؾذد اُذائشح اإلٌُزش‪٤ٗٝ‬خ ‪ٝ‬ػغ ٓؾ‪ٞ‬س اُذ‪ٝ‬سإ ثذهخ ‪.‬‬

‫‪18‬‬
‫‪ ‬يكىَبد يحزكبد انظٍزفى ‪-:‬‬
‫‪٣‬ؾز‪ٓ ٟٞ‬ؾشى اُخبدّ ثبخزظبس ػِ‪ ٠‬أسثؼخ أعضاء ًبُزبُ‪: ٢‬‬

‫‪ .1‬دائشح اُزؾٌْ ‪ٝ :‬ظ‪٤‬لز‪ٜ‬ب اعزالّ ئشبسح اُزؾٌْ اُذه‪٤‬ن ‪ٝ‬رشـ‪ َ٤‬أُؾشى ‪.‬‬
‫‪ .2‬أُؾشى ‪ٝ :‬ظ‪٤‬لز‪ ٚ‬اُو‪٤‬بّ ثبُؾشًخ ‪.‬‬
‫‪ٓ .3‬غٔ‪ٞ‬ػ‪ ٚ‬اُزش‪ٝ‬ط ‪ٝ :‬ظ‪٤‬لز‪ٜ‬ب رخل‪٤‬غ اُغشػخ ‪ ٝ‬ص‪٣‬بدح اُؼضّ ‪.‬‬
‫‪ .4‬أُوبٓخ أُزـ‪٤‬شح ‪ٝ :‬ظ‪٤‬لز‪ٜ‬ب اػطبء ه‪ٔ٤‬خ ع‪ٜ‬ذ رٔبصِ‪ٝٝ ٢‬ػغ ػٔ‪ٞ‬د د‪ٝ‬سإ أُؾشى ث٘بء ػِ‪ ٠‬ه‪ٔ٤‬خ ٓوب‪ٓٝ‬ز‪ ٢ٛٝ ٚ‬رزؾشى‬
‫ٓغ ػٔ‪ٞ‬د د‪ٝ‬سإ أُؾشى ًٔب ك‪ ٢‬اُظ‪ٞ‬سح اُزبُ‪٤‬خ‪.‬‬
‫‪ .5‬ثؼغ اُوطغ اُجالعز‪٤ٌ٤‬خ اُز‪ ٢‬رضجذ ػِ‪ٓ ٠‬ؾشى اُغ‪٤‬شك‪٤ُ ٞ‬زْ رشً‪٤‬ت ثؼغ األد‪ٝ‬اد االٌُزش‪٤ٗٝ‬خ ػِ‪ً ٚ٤‬ب ؽغبط‬
‫أُ‪ٞ‬عبد ك‪ٞ‬م اُظ‪ٞ‬ر‪٤‬خ أُغزخذّ ك‪ٛ ٢‬زا أُشش‪ٝ‬ع ‪ٝ‬اُشٌَ (‪ٞ٣ )6.3‬ػؼ ‪ٛ‬ز‪ ٙ‬اُوطغ‪.‬‬

‫شٌَ (‪ٞ٣ )6.3‬ػؼ ٌٓ‪ٗٞ‬بد اُغ‪٤‬شك‪ٞٓ ٞ‬ر‪ٞ‬س‪.‬‬

‫‪ ‬كٍفٍخ انتحكى فً حزكخ يحزن انظٍز فى‬


‫ًٔب ٗالؽع ك‪ ٢‬اُشٌَ (‪ )7.3‬صالصخ أعالى خبسعخ ٖٓ أُؾشى أع‪ٞ‬اد ‪ٝ‬أؽٔش ‪ٝ‬أطلش ‪ ،‬األع‪ٞ‬د ‪٣‬زظَ ثبألسػ‪ٝ ٢‬األؽٔش‬
‫ثٔ‪ٞ‬عت ‪ 5‬ك‪ُٞ‬ذ ‪ٝ‬األطلش ئشبسح اُزؾٌْ ‪ٓ ٢ٛٝ‬غٔ‪ٞ‬ػ‪ٗ ٚ‬جؼبد ‪ PWM‬ثزشدد ‪ٓ 50HZ‬غ اخزالف ػشع اُ٘جؼخ ثؾغت ارغب‪ٙ‬‬
‫اُذ‪ٝ‬سإ أُطِ‪ٞ‬ة ‪.‬‬

‫‪19‬‬
‫شٌَ (‪ٞ٣ )7.3‬ػؼ اؽشاف اُزـز‪٣‬خ ُٔؾشى اُغ‪٤‬ش ك‪.ٞ‬‬

‫إٔ صٖٓ اٍ (‪٣ ٠ٌُٝ ) 1/50( ) 20ms ( ٞٛ )50HZ‬ذ‪ٝ‬س ٓؾشى اُغ‪٤‬ش ك‪ ٞ‬ك‪ ٢‬ارغب‪ٓ ٙ‬ؼ‪٣ ٖ٤‬ؾزبط ٓغٔ‪ٞ‬ػ‪ٗ ٚ‬جؼبد ثزشدد‬
‫(‪ ) 50HZ‬ػشع اُ٘جؼخ أُز‪ُٞ‬ذح ‪ ٞٛ‬ػجبسح ػٖ ٓغٔ‪ٞ‬ع اُ٘جؼخ اُؼبُ‪٤‬خ ‪ٝ‬اُ٘جؼخ أُ٘خلؼخ ‪ٝ‬اُز‪٣ ٢‬غت إٔ رؼط‪ ٢‬صٖٓ هذس‪ٙ‬‬
‫(‪. )20ms‬‬

‫‪High +1ow=20ms‬‬

‫ك‪ ٢‬ؽبُخ أسدٗب إٔ ‪٣‬زؾشى أُؾشى اُغ‪٤‬ش ك‪ ٞ‬ك‪ ٢‬ارغب‪ ٙ‬ػوبسة اُغبػخ ٗو‪ ّٞ‬ثاػطبئ‪ٗ ٚ‬جؼخ ثو‪ٔ٤‬خ (‪ُٔ )1‬ذح( ‪) 1ms - 0.7ms‬‬
‫‪ٗٝ‬جؼخ(‪ُٔ ) 0‬ذح (‪ٝ (19ms‬ثبُزبُ‪ ٢‬اُضٖٓ اُذ‪ٝ‬س‪ 20ms(ٞٛ ١‬أ‪ ) 50 HZٝ‬ك‪ ٢‬ؽبُخ ًبٗذ اُ٘جؼخ اُؼبُ‪٤‬خ (‪ (1ms‬ع‪٤‬ذ‪ٝ‬س‬
‫أُؾشى ألهظ‪ ٠‬صا‪٣ٝ‬خ ٓزبؽخ ُ‪ )180( ٚ‬دسعخ ‪ٝ‬روَ اُضا‪٣ٝ‬خ ًِٔب هَ ػشع اُ٘جؼخ ؽز‪ ٠‬اُ‪. ) 0.7 ms( ٠‬‬
‫ك‪ ٢‬ؽبُخ أسدٗب ئػطبء ؽشًخ ك‪ ٢‬ػٌظ ػوبسة اُغبػخ ٗو‪ ّٞ‬ثاػطبئ‪ٗ ٚ‬جؼخ ػبُ‪٤‬خ (‪ُٔ )1‬ذح (ٖٓ ‪ٗٝ ) 2 ms – 1.7‬جؼخ‬
‫ٓ٘خلؼخ (‪ٝ )0‬رطشػ (‪ ٖٓ ) 20 ms‬اُ٘جؼخ اُؼبُ‪٤‬خ (‪.)1‬‬
‫‪ٝ‬ئرا أسدٗب ‪٣‬ؼ‪ٞ‬د ٓؾ‪ٞ‬س أُؾشى ُ‪ٞ‬ػؼ‪ ٚ‬األطِ‪ ٢‬ػ٘ذ (‪ )0‬صا‪٣ٝ‬خ ‪٣‬زْ ئػطبئ‪ٗ ٚ‬جؼخ ػبُ‪٤‬خ (‪ُٔ )1‬ذح (‪ ٌٕٞ٣ ٢ٌُ )1.5ms‬دائٔب‬
‫اُزشدد ‪ )50 HZ( ٞٛ‬اُشٌَ(‪ٞ٣ )8.3‬ػؼ ثبخزظبس اُششػ اُغبثن ‪.‬‬

‫‪20‬‬
‫شٌَ (‪ٞ٣ )8.3‬ػؼ ارغبع ػشع ٗجؼبد اُغبػخ‪.‬‬

‫‪َ ‬ظزٌخ ػًم يحزكبد انظٍز فى‬


‫‪٣‬و‪ ّٞ‬أُزؾٌْ اُذه‪٤‬ن ثوشاء ه‪ٔ٤‬خ أُوب‪ٓٝ‬خ أُزـ‪٤‬شح ُزؾذ‪٣‬ذ اُضا‪٣ٝ‬خ ‪ٝ‬ػِ‪ٛ ٠‬زا األعبط ‪٣‬و‪ ّٞ‬ثزؾش‪٣‬ي أُؾشى ؽز‪٣ ٠‬ز‪ٞ‬هق ػ٘ذ‬
‫صا‪٣ٝ‬خ ٓؼ‪٘٤‬خ شبٓالً ثزُي اُزؾشى ‪٘٤ٔ٣‬ب ً أ‪٣ ٝ‬غبساً أ‪ ٝ‬اُز‪ٞ‬هق ػٖ اُؾشًخ اُشع‪ٞ‬ع ئُ‪ ٠‬اُضا‪٣ٝ‬خ (‪. )0‬‬

‫‪ًٔٝ‬ضبٍ ثغ‪٤‬ؾ كإ اُجشٗبٓظ اُز‪ ١‬رْ اعزخذآ‪ُِ ٚ‬زؾٌْ ثبُزساع ا‪٣ ٢ُ٥‬و‪ ّٞ‬ثؼجؾ ‪ٝ‬ػغ أُؾشًبد ثؾ‪٤‬ش ‪٣‬غزوش ًَ ٓؾشى ػ٘ذ‬
‫اُضا‪٣ٝ‬خ أُطِ‪ٞ‬ثخ ألداء ؽشًخ ٓؼ‪٘٤‬خ ٓ‪ٜٔ‬ب ًبٗذ اُض‪ٝ‬ا‪٣‬ب األعبع‪٤‬خ ُِٔؾشًبد ػ٘ذ اُضا‪٣ٝ‬خ (‪.)0‬‬

‫‪ 3.1.3‬حظبص انًىجبد انفىق انصىتٍخ (‪)HC-SR 04‬‬


‫أع‪ٜ‬ضح االعزشؼبس رجش ٓ‪ٞ‬عبد ك‪ٞ‬م اُظ‪ٞ‬ر‪٤‬خ ثبعزٔشاس ك‪ٓ ٢‬غٔ‪ٞ‬ػخ ٖٓ األؽ‪ٞ‬اٍ أُ‪ٞ‬ع‪٤‬خ ‪،‬ؽ‪٤‬ش ‪٣‬و‪ ّٞ‬أُشعَ (‪ )Trig‬ثاسعبٍ‬
‫أُ‪ٞ‬عخ ػِ‪ ٠‬اُ‪ٜ‬ذف كزظطذّ ‪ٝ‬رشرذ ٓ٘‪ٝ ٚ‬رزِو‪ ٠‬ئشبسح اُظذ‪ ٖٓ ٟ‬هجَ أُغزوجَ(‪ .)Echo‬رزْ ٓؼبُغخ ئشبسح اُظذ‪ ٟ‬ثؾغبة‬
‫اُ‪ٞ‬هذ اُالصّ ث‪ ٖ٤‬اإلسعبٍ ‪ ٝ‬االعزوجبٍ ‪ٝ‬ثزُي ‪ ٌٖٔ٣‬ؽغبة أُغبكخ‪.‬‬

‫‪21‬‬
‫اُشٌَ(‪ )9.3‬ؽغبط أُ‪ٞ‬عبد ك‪ٞ‬م اُظ‪ٞ‬ر‪٤‬خ ‪.‬‬

‫خش‪ٝ‬ط ٓ‪ٞ‬عبد ػبُ‪٤‬خ اُزشدد ‪ٝ‬اُز‪ ٠‬ػ٘ذٓب رظطذّ ثغغْ ٓب رشرذ ‪ٛ‬ز‪ ٙ‬أُ‪ٞ‬عبد ػِ‪ ٠‬شٌَ طذ‪(Echo).ٟ‬‬
‫‪ُِٝ‬ؼِْ إ عشػخ أُ‪ٞ‬عبد ك‪ ٠‬اُلشاؽ ‪ٓ 345‬زش ‪ /‬صبٗ‪٤‬خ ػ٘ذ دسعخ ؽشاسح ‪ 25‬ع‪٤ِ٤‬غ‪ٞ٤‬ط ‪ٝ‬رؾزِق ٖٓ ‪ٝ‬عؾ الخش ؽغت ٗ‪ٞ‬ع‬
‫اُ‪ٞ‬عؾ ٖٓ ع‪ٞ‬ائَ ‪ ٝ‬ؿبصاد ‪ ٝ‬اعغبّ طِجخ ‪ ٖٓ .‬االعظ اُ‪ٜ‬بٓ‪ ٚ‬ك‪ ٠‬اُزؼبَٓ ٓغ ‪ٛ‬زا اُ٘‪ٞ‬ع ٖٓ اُؾغبط الثذ ٓؼشكخ أُغبكخ كالثذ‬
‫إ ٗؼشف عشػخ ‪ٛ‬زح أُ‪ٞ‬عبد ‪ٝ‬اُلشم ث‪ ٖ٤‬صٖٓ االسعبٍ ‪ ٝ‬صٖٓ االسرذاد ُ‪ٜ‬ز‪ ٙ‬أُ‪ٞ‬عبد ك‪ٜ‬ز‪ ٙ‬االعظ رزًشٗب ثوبٗ‪ٞ٤ٗ ٕٞ‬رٖ ‪:‬‬
‫انًظبفخ = انظزػخ * انشيٍ‪.‬‬

‫االعزشؼبس ثبُٔ‪ٞ‬عبد ك‪ٞ‬م اُظ‪ٞ‬ر‪٤‬خ ُذ‪ ٚ٣‬أُ‪٤‬ضاد اُزبُ‪٤‬خ‪:‬‬


‫اُغ‪ٜ‬ذ اُزـز‪٣‬خ ‪ 5 -‬ك‪ُٞ‬ذ‪.‬‬ ‫‪‬‬
‫‪ ٢ِِٓ 30‬أٓج‪٤‬ش؛ ‪ ٢ِِٓ 35‬أٓج‪٤‬ش ًؾذ أهظ‪.٠‬‬ ‫‪‬‬
‫أُذ‪ 2 ٟ‬عْ ًؾذ أدٗ‪ ٠‬ئُ‪ 3 ٠‬أٓزبس ًؾذ أهظ‪. ٠‬‬ ‫‪‬‬

‫‪22‬‬
‫اُشٌَ(‪ )10.3‬كٌشح ػَٔ ؽغبط أُ‪ٞ‬عبد ك‪ٞ‬م اُظ‪ٞ‬ر‪٤‬خ ‪.‬‬

‫اُشٌَ(‪ )11.3‬أُخطؾ اُضٓ٘‪ُِ ٢‬ؾغبط (‪.)HC-SR 04‬‬

‫‪)Mobile( Camera 4.1.3‬‬


‫اُشٌَ(‪ٞ٣ )12.3‬ػؼ ًبٓ‪٤‬شا اُ‪ٜ‬برق‪.‬‬

‫اُشٌَ(‪ً )12.3‬بٓ‪٤‬شا‪.‬‬

‫‪23‬‬
‫‪ 5.1.3‬انهىحخ ‪: SIM900 GSM/GPRS‬‬
‫ر‪ٞ‬كش ُ‪ٞ‬ؽخ ‪ SIM900 GSM/GPRS‬ؽش‪٣‬وخ العزخذاّ شجٌخ اُ‪ٜ‬برق أُؾٔ‪ ٍٞ‬العزوجبٍ ث‪٤‬بٗبد ٖٓ ٓ‪ٞ‬هغ ثؼ‪٤‬ذ‪٣ ٝ ،‬زْ رؾو‪٤‬ن‬
‫رُي ث‪ٞ‬اعطخ صالصخ ؽشم‪:‬‬
‫خذٓبد اُشعبئَ اُوظ‪٤‬شح‪.‬‬ ‫‪.1‬‬
‫سعبئَ ط‪ٞ‬ر‪٤‬خ‪.‬‬ ‫‪.2‬‬
‫خذٓبد ‪.GPRS‬‬ ‫‪.3‬‬
‫‪٣‬ج‪ ٖ٤‬اُشٌَ (‪ )13.3‬اُِ‪ٞ‬ؽخ ‪ ٝ SIM900 GSM/GPRS‬اُز‪ ٢‬رز‪ٞ‬اكن ٓغ عٔ‪٤‬غ ُ‪ٞ‬ؽبد ‪ ٝ ،Arduino‬رزْ ر‪٤ٜ‬ئخ اُِ‪ٞ‬ؽخ ‪ٝ‬‬
‫اُزؾٌْ ك‪ٜ٤‬ب ػجش ٓ٘لز ‪[3].UART‬‬

‫اُشٌَ (‪ُٞ )13.3‬ؽخ ‪.SIM900 GSM/GPRS‬‬

‫‪24‬‬
‫‪ ‬يًٍشاد نىحخ ‪:SIM900 GSM/GPRS‬‬
‫‪ ٌٖٔ٣ .1‬اعزخذآ‪ٜ‬ب ك‪ ٢‬عٔ‪٤‬غ اُجِذإ ؽ‪ ٍٞ‬اُؼبُْ إلٗ‪ٜ‬ب سثبػ‪٤‬خ اُؾضّ أُ‪ٞ‬ع‪٤‬خ )‪1800 ٝ 900 ٝ 850 ،(Quad band‬‬
‫‪ًٝ‬زُي ‪٤ٓ 1900‬غب ‪ٛ‬شرض ‪.MHz‬‬
‫‪٣ .2‬زْ ػٖ ؽش‪٣‬و‪ٜ‬ب ئسعبٍ سعبئَ ٗظ‪٤‬خ‪.‬‬
‫‪ .3‬سخ‪٤‬ظخ اُضٖٔ ‪ ٝ‬رغز‪ِٜ‬ي ر‪٤‬بساً هذس‪ 1.5 mA ٙ‬ك‪ ٢‬ؽبُخ اُخٔ‪.(sleep mode) ٍٞ‬‬
‫‪ .4‬رؾز‪ ١ٞ‬ػِ‪ ٠‬عٔبػخ ‪ٌٓ ٝ‬جش ط‪ٞ‬د إلٌٓبٗ‪٤‬خ ئسعبٍ ئشبساد ‪( DTMF) Dual-tone multi-frequency signaling‬‬
‫أ‪ ٝ‬رشـ‪ َ٤‬سعبئَ ط‪ٞ‬ر‪٤‬خ ٓغغِخ‪.‬‬
‫ر‪ٞ‬طَ اُِ‪ٞ‬ؽخ ‪ SIM900 GSM/ GPRS‬ثبُؾبع‪ٞ‬ة ث‪ٞ‬اعطخ ‪ٝ‬طِخ ‪ USB‬اُخبطخ ثِ‪ٞ‬ؽخ ‪ُ Arduino‬زؾٔ‪ َ٤‬اُجشٗبٓظ‬
‫اُ ُٔؼذ‪ ٌٖٔ٣ٝ ،‬كظَ اُِ‪ٞ‬ؽخ ػٖ اُؾبع‪ٞ‬ة ‪ ٝ‬رـز‪٣‬ز‪ٜ‬ب ث‪ٞ‬اعطخ ٓظذس ع‪ٜ‬ذ خبسع‪٣ٝ ،٢‬زْ االرظبٍ ث‪ٜ٘٤‬ب ‪ٝ‬ث‪ُٞ ٖ٤‬ؽخ ‪Arduino‬‬
‫ث‪ٞ‬اعطخ ٌٓزجخ ‪ software serial library‬ػجش خبٗز‪ ٖ٤‬سهٔ‪٤‬ز‪( ٖ٤‬رغِغِ‪٤‬خ) ‪ٔٛ‬ب ‪ًٔ Tx,Rx‬ب ‪ٓ ٞٛ‬ج‪ ٖ٤‬ثبُشٌَ (‪.)14.3‬‬

‫اُشٌَ (‪ )14.3‬خبٗبد سثؾ اُِ‪ٞ‬ؽخ ثبُٔزؾٌْ‬

‫لطؼخ اتصبل الطهكً ثتمٍُخ واي فبي (‪. (RF Transceiver NRF24L01‬‬ ‫‪6.1.3‬‬

‫هطؼخ ارظبٍ العٌِ‪٣ ٢‬زْ رشً‪٤‬ج‪ٜ‬ب ٓغ أُشبس‪٣‬غ االٌُزش‪٤ٗٝ‬خ اُز‪ ٢‬رؾزبط الرظبٍ ثزو٘‪٤‬خ ‪ٝ‬ا‪ ١‬كب‪ ، ١‬ؽ‪٤‬ش رغزخذّ ع‪ٜ‬بص ئسعبٍ‬

‫‪ٝ‬اعزوجبٍ ثزشدد ‪ٛ .2.4 GHz‬ز‪ ٙ‬اُ‪ٞ‬ؽذح ع‪ٞ‬ف ‪٣‬زْ ر‪ٞ‬ط‪ِٜ٤‬ب ٓغ ٓزؾٌْ أسد‪ ٞ٘٣‬ع‪٤‬زْ ر‪ٞ‬ػ‪٤‬ؼ رُي الؽوب ك‪ ٢‬اُغضء اُؼِٔ‪.[4]٢‬‬

‫‪25‬‬
‫اُشٌَ (‪ )15.3‬هطؼخ ارظبٍ ‪ٝ‬ا‪ ١‬كب‪.)NRF24L01( ١‬‬

‫‪ ‬انًُبفذ انخبصخ نهىحذح (‪)Nrf24l01‬‬

‫اُشٌَ (‪ٞ٣ )17.3‬ػؼ أُ٘بكز أُغزخذٓخ ُِشثؾ ٓغ أُزؾٌْ اُغذ‪ٞ٣ )2.3( ٍٝ‬ػؼ ً‪٤‬ل‪٤‬خ ر‪ٞ‬ط‪ َ٤‬أُ٘بكز اُضٔبٗ‪٤‬خ ُِ‪ٞ‬ؽذح ٓغ‬

‫ُ‪ٞ‬ؽخ االسد‪ً ٞ٘٣‬ال ؽغت ٗ‪ٞ‬ع االسد‪ ٝ ٞ٘٣‬االسد‪ ٞ٘٣‬اُز‪ٜ٘ٔ٣ ١‬ب ‪ ٝ‬أُغزخذّ ‪ ٞٛ‬أسدٗ‪.)UNO&MEGA(ٞ٤‬‬

‫‪.‬‬

‫اُشٌَ (‪ )16.3‬أُ٘بكز اُخبطخ ثبُ‪ٞ‬ؽذح (‪.)Nrf24l01‬‬

‫‪26‬‬
‫عذ‪ٞٓ )2.3(ٍٝ‬اطلبد ‪ٝ‬ؽذح (‪.)Nrf24l01‬‬

‫‪ 7.1.3‬حظبطبد انغبساد ‪MQ‬‬

‫‪٘ٛ‬بُي ػذح أٗ‪ٞ‬اع ٖٓ ؽغبعبد اُـبصاد رخزِق ك‪ٞٗ ٢‬ع اُـبص أُزؾغظ ‪ ٌُٖٝ‬رغزٔغ ك‪ ٢‬آُ‪٤‬خ اُؼَٔ ‪ٝ‬اُشٌَ أؽ‪٤‬بٗب ‪ ،‬ك‪ٛ ٢‬زا‬

‫أُشش‪ٝ‬ع ٗؾزبط ُؼذح ؽغبعبد ؽز‪ٗ ٠‬غزط‪٤‬غ اٌُشق ػٖ اُـبصاد هجَ ‪ٝ‬أص٘بء ‪ٝ‬ثؼذ اُؾش‪٣‬ن ‪ٌُِ ،‬شق ػٖ اُـبصاد أُغججخ ُِؾش‪٣‬ن‬

‫‪ٝ‬أُ٘جؼضخ خالٍ اُؾش‪٣‬ن ‪ٜ٘ٓٝ‬ب اُذخبٕ ‪ٝ‬اُ٘بعٔخ ػٖ اُؾش‪٣‬ن ‪ُ ،‬زُي ع٘غزخذّ ػذد أسثؼخ ؽغبعبد ‪[MQ2-MQ5-MQ9- ٠ٛٝ‬‬

‫]‪ ، MQ135‬رؼَٔ ‪ٛ‬ز‪ ٙ‬اُؾغبعبد ث٘لظ آُ‪٤‬خ اُؼَٔ ‪ٝ‬رؾَٔ ٗلظ أُ‪ٞ‬اطلبد ٌُٖ ًَ ٓ٘‪ٜ‬ب ‪٣‬زؾغظ ٓغٔ‪ٞ‬ػخ ٓخزِلخ ٖٓ اُـبصاد ‪،‬‬

‫شٌَ (‪ٞ٣ )18.3‬ػؼ شٌَ اُؾغبط ‪.MQ‬‬

‫‪27‬‬
‫شكم (‪ )17.3‬اَىاع انحظبص ‪.MQ‬‬

‫‪ ‬أنٍخ ػًم انحظبص ‪MQ‬‬

‫ًَ ؽغبعبد اُـبص رٔزِي ‪ 4‬أسعَ ًٔب ٓ‪ٞ‬ػؼ ك‪ ٢‬اُشٌَ (‪ ، )19.3‬هذ ‪ ٌٕٞ٣‬رشر‪٤‬ت األسعَ ٓخزِلخ ك‪ ٢‬اُجؼغ ٓ٘‪ٜ‬ب ٌُٖ دائٔب ‪٢ٛ‬‬

‫ػجبسح ػٖ عبُت )‪ٞٓٝ(GND‬عت)‪ٓ ٝ(VCC‬خشط ث‪٤‬بٗبد سهٔ‪٤‬خ )‪ٓ ٝ(DO‬خشط ث‪٤‬بٗبد‬

‫رٔبصِ‪٤‬خ )‪ (AO‬اُغبُت ‪ ٝ‬أُ‪ٞ‬عت ًٔب ‪ٝ ٞٛ‬اػؼ ‪ُ ٞٛ‬زـز‪٣‬خ اُذائشح أُزٌبِٓخ أُ‪ٞ‬ع‪ٞ‬دح ك‪ ٢‬اُؾغبط (‪5‬ك‪ُٞ‬ذ)‪ٓ .‬خشط ث‪٤‬بٗبد‬

‫رٔبصِ‪٤‬خ )‪٣(AO‬ؼط‪ ٢‬ع‪ٜ‬ذ ٖٓ ‪ 0‬اُ‪ 4.2 ٠‬ك‪ُٞ‬ذ روش‪٣‬جب ‪٣ ٝ‬ؼزٔذ ٓوذاس اُغ‪ٜ‬ذ اُخبسط ػِ‪ٗ ٠‬غجخ اُـبص اُز‪٣ ٢‬زْ ًشلخ ؽشد‪٣‬ب ‪ ،‬أ‪ ١‬إٔ‬

‫ًَ ٓب صاد ٗغجخ اُـبص ‪٣‬ضداد ٓوذاس ع‪ٜ‬ذ اُخبسط ٓخشط ث‪٤‬بٗبد سهٔ‪٤‬خ )‪٣ (DO‬ؼط‪٤‬ي ع‪ٜ‬ذ ئٓب ‪ 0‬ك‪ُٞ‬ذ ئٓب ‪ 5‬ك‪ُٞ‬ذ ‪٣ٝ‬ؼزٔذ رُي ػِ‪٠‬‬

‫ٗغجخ اُـبص ‪ ،‬ػ٘ذٓب ‪٣‬زلبػَ اُـبص ٓغ اُؾغبط ‪٣‬زأ‪ ٖ٣‬اُ‪ٌٗٞٓ ٠‬بر‪٣ٝ ٚ‬زْ آزظبط‪ ٚ‬ث‪ٞ‬اعطخ اُؾغبط ‪ٛٝ‬زا االٓزظبص ‪٣‬ؼَٔ ػِ‪ ٠‬ر‪٤ُٞ‬ذ‬

‫‪28‬‬
‫كشم ع‪ٜ‬ذ ػِ‪ ٠‬اُؼ٘ظش اُؾغبط اُز‪٣ ٟ‬شعِ‪ ٚ‬ك‪ ٢‬شٌَ ر‪٤‬بس ‪ ٌٖٔ٣ ،‬اُزؾٌْ ك‪ ٢‬ؽغبع‪٤‬خ اُؾغبط ك‪ ٢‬ؽبٍ اعزخذاّ ث‪٤‬بٗبد‬

‫اُشهٔ‪٤‬خ )‪ (DO‬ػٖ ؽش‪٣‬ن أُوب‪ٓٝ‬خ أُزـ‪٤‬شح كجبُزبُ‪ ٢‬أٗذ رخزبس ك‪ ٢‬أ‪ٗ ١‬غجخ ٖٓ رشً‪٤‬ض اُـبص ‪٣‬ظجؼ اُخشط ‪ 5‬ك‪ُٞ‬ذ ‪ ٝ‬ك‪ ٢‬أ‪ٗ ١‬غجخ‬

‫ٖٓ اُـبص ‪٣‬ظجؼ ‪ 0‬ك‪ُٞ‬ذ ‪ ،‬اُغذ‪ٞ٣ )3.3( ٍٝ‬ػؼ اُؾغبعبد أُغزخذٓخ ‪ٞٗٝ‬ع اُـبصاد أُزؾغغخ‪.‬‬

‫شٌَ (‪ )18.3‬دائشح اُؾغبط ‪.MQ‬‬

‫‪ ‬يًٍشاد انحظبص ‪: MQ‬‬

‫‪٣ -1‬غزط‪٤‬غ ئػطبء اُخشط ك‪ ٢‬اُظ‪ٞ‬سح اُشهٔ‪٤‬خ ‪ٝ‬اُو‪ٔ٤‬خ اُز٘بظش‪٣‬خ‪.‬‬

‫‪ -2‬ؽغبع‪٤‬خ ػبُ‪٤‬خ ُ٘‪ٞ‬ع اُـبص أُزؾغظ رجذأ ٖٓ ‪.%0.01‬‬

‫‪ -3‬ؽغبع‪٤‬خ هبثِخ ُِؼجؾ ‪ٝ‬اعزوشاس ػبُ‪ ٢‬ك‪ ٢‬اُزشـ‪.َ٤‬‬

‫‪ -4‬ر‪ٞ‬ط‪ َ٤‬ع‪ َٜ‬ػجش ‪ٓ 4‬خبسط أص٘‪ٌُِٜ ٖ٤‬شثبء ‪ٝٝ‬اؽذ ٓخشط سهٔ‪ُِ ٢‬وشاءح ‪ٝ‬اُضبٗ‪ ٢‬ر٘بظش‪.١‬‬

‫‪29‬‬
‫) اُـبصاد أُزؾغغخ‬3.3( ٍٝ‫عذ‬

‫انغبس انًتحظض‬ ‫انُىع‬ ‫رلى‬

Methane, Butane, LPG, smoke MQ-2 1

Natural gas, LPG MQ-5 2

.Carbon Monoxide, flammable gasses MQ-9 3

Air Quality (Benzene, Alcohol, smoke) MQ-135 4

30
‫‪ 8.1.3‬وحذح (‪) GPS NEO-6M‬‬
‫رؾز‪ٝ ١ٞ‬ؽذح (‪ ) GPS NEO-6M‬ػِ‪٘ٓ 4 ٠‬بكذ العزوجبٍ ث‪٤‬بٗبد‪ .‬اُز‪ٞ‬ط‪٤‬الد ٓ‪ٞ‬ػؾخ ثبُشٌَ (‪ًٔ )20.3‬ب ‪: ٢ِ٣‬‬

‫شٌَ (‪ٝ )19.3‬ؽذح (‪.) GPS NEO-6M‬‬

‫‪31‬‬
‫‪ ‬فكزح ػًم ‪GPS‬‬

‫رؼَٔ ٓغزوجالد ‪ GPS‬كؼِ‪ً٤‬ب ػٖ ؽش‪٣‬ن ٓؼشكخ ٓذ‪ ٟ‬ثؼذ‪ٛ‬ب ػٖ ػذد ٖٓ األهٔبس اُظ٘بػ‪٤‬خ‪ٓ .‬جشٓغخ ٓغجوًب ُٔؼشكخ ٓ‪ٞ‬اهغ أهٔبس‬
‫‪GPS‬ك‪ ٢‬أ‪ٝ ١‬هذ ‪.‬ر٘وَ األهٔبس اُظ٘بػ‪٤‬خ ٓؼِ‪ٓٞ‬بد ؽ‪ٞٓ ٍٞ‬هؼ‪ٜ‬ب ‪ٝ‬اُ‪ٞ‬هذ اُؾبُ‪ ٢‬ك‪ ٢‬شٌَ ئشبساد العٌِ‪٤‬خ ثبرغب‪ ٙ‬األسع‪ .‬رؾذد‬
‫‪ٛ‬ز‪ ٙ‬اإلشبساد األهٔبس اُظ٘بػ‪٤‬خ ‪ٝ‬رُخجش ع‪ٜ‬بص االعزوجبٍ أ‪ ٖ٣‬ر‪ٞ‬عذ‪ .‬صْ ‪٣‬ؾغت ع‪ٜ‬بص االعزوجبٍ أُغبكخ اُجؼ‪٤‬ذح ٌَُ هٔش ط٘بػ‪ ٢‬ػٖ‬
‫ؽش‪٣‬ن ٓؼشكخ أُذح اُز‪ ٢‬اعزـشه‪ٜ‬ب ‪ٝ‬ط‪ ٍٞ‬اإلشبساد‪ .‬ثٔغشد اؽز‪ٞ‬ائ‪ ٚ‬ػِ‪ٓ ٠‬ؼِ‪ٓٞ‬بد ؽ‪ٓ ٍٞ‬ذ‪ٝ ٟ‬ع‪ٞ‬د صالصخ أهٔبس ط٘بػ‪٤‬خ ػِ‪٠‬‬
‫األهَ ‪ٌٓٝ‬بٕ ‪ٝ‬ع‪ٞ‬د‪ٛ‬ب ك‪ ٢‬اُلؼبء ‪ ٌٚ٘ٔ٣ ،‬رؾذ‪٣‬ذ ٓ‪ٞ‬هؼي ػِ‪ ٠‬األسع‪.‬‬

‫شٌَ (‪ )20.3‬اإلشبساد األهٔبس اُظ٘بػ‪٤‬خ‪.‬‬

‫‪32‬‬
‫‪ 9.1.3‬انجطبرٌخ‬

‫ك‪ٛ ٢‬زا أُشش‪ٝ‬ع ع‪ٞ‬ف ٗو‪ ّٞ‬ثبعزخذاّ ثطبس‪٣‬خ (‪ُ)3S 1500mAh‬ز‪ٞ‬ك‪٤‬ش ع‪ٜ‬ذ ه‪ٔ٤‬ز‪ٝ ، 11v ٚ‬اُشٌَ (‪ٞ٣ )21.3‬ػؼ شٌَ‬

‫اُجطبس‪٣‬خ‪.‬‬

‫شٌَ (‪ )21.3‬اُجطبس‪٣‬خ‪.‬‬

‫‪ 10.1.3‬ػصب انتحكى (‪)Joystick‬‬

‫ك‪ ٢‬اُشٌَ (‪ٞ٣ )22.3‬ػؼ ػظب اُزؾٌْ (‪ )Joystick‬أُغزخذٓخ ك‪ ٢‬اُزؾٌْ ػٖ ثؼذ ثبُش‪ٝ‬ث‪ٞ‬د‪.‬‬

‫اُشٌَ (‪ )22.3‬ػظب اُزؾٌْ (‪.)Joystick‬‬

‫‪33‬‬
‫‪ 11.1.3‬دائزح لٍبدح انًحزكبد (‪)motor driver L298‬‬
‫‪ ٢ٛ‬دائشح رغزخذّ ُو‪٤‬بدح ٓؾشً‪ًٜ ٖ٤‬شثبئ‪ ٖ٤٤‬ثو‪ٔ٤‬خ ػظٔ‪ ٖٓ ٠‬اُز‪٤‬بس ‪ٓ ٌَُ 2A‬ؾشى‪ ٝ ،‬رزٔ‪٤‬ض ثغ‪ُٜٞ‬خ اُزؾٌْ ‪ ٝ‬رزؾَٔ ع‪ٜ‬ذ‬
‫‪٣‬ظَ ؽز‪ٞٓ ٢ٛٝ .36v ٠‬ػؾخ ًٔب ثبُشٌَ (‪)23.3‬‬

‫اُشٌَ (‪ )23.3‬دائشح ه‪٤‬بدح أُؾشًبد ‪.L298‬‬

‫‪ٝ‬رزٌ‪ٛ ٕٞ‬ز‪ ٙ‬اُذائشح أُزٌبِٓخ ٖٓ ػذح ٓذاخَ‪:‬‬

‫‪ -1‬يذاخم انًحزكبد‬
‫ػذد‪ٛ‬ب ‪ٓ 4‬ذاخَ ‪ٞٓ ٝ‬صػخ ث‪ٞ‬اهغ ٓذخِ‪ ٖ٤‬ك‪ ًَ ٢‬ع‪ٜ‬خ‪٣ ٝ ،‬شثؾ ث‪ٜٔ‬ب أُؾشى اٌُ‪ٜ‬شثبئ‪ .٢‬ثؾ‪٤‬ش رٌ‪ٛ ٕٞ‬ز‪ ٙ‬أُخبسط ٓشهٔخ ة "‬
‫‪OUT1‬ئُ‪ٗ OUT4 " ٠‬شثؾ أُؾشى األ‪ ٍٝ‬ثبُٔذخِ‪ٝ OUT2"، "OUT1 ٖ٤‬أُؾشى اُضبٗ‪ ٢‬ثبُٔذخِ‪OUT4" ، "OUT3 ٖ٤‬‬
‫‪ٌٛ‬زا ٗغزط‪٤‬غ اُزؾٌْ ثغ‪ُٜٞ‬خ ثبرغب‪ ٙ‬د‪ٝ‬سإ أُؾشى‪.‬‬

‫‪ -2‬يذاخم انتفؼٍم‪ENA,ENB :‬‬


‫‪ٛ‬زإ ٓذخالٕ اُزلؼ‪ ،َ٤‬ئرا رْ رطج‪٤‬ن طلش ٓ٘طو‪ LOW ٢‬كإ أُؾشى ُٖ ‪٣‬ذ‪ٝ‬س اثذاً ‪ ٝ‬ع‪٤‬ز‪ٞ‬هق‪ٝ ،‬ارا ًبٕ ث‪ٞ‬ػغ اُزلؼ‪َ٤‬‬
‫"‪ "Pins‬ك‪ ٢‬اٍ‪،Arduino‬‬ ‫"‪"HIGH‬كإ اُزؾٌْ ‪٘٣‬زوَ ػٖ ؽش‪٣‬ن أُذاخَ "‪ "IN1-IN4‬ثظ‪ٞ‬سح ػبٓخ ‪ ٝ‬ر‪ٞ‬ك‪٤‬شاً ُِٔذاخَ‬
‫‪٣‬زْ ‪ٝ‬ػغ ‪ jumper‬طـ‪٤‬ش ث‪ٛ ٖ٤‬ز‪ ٙ‬أُذاخَ ٓغ ‪ُ 5v‬زلؼ‪ِٜ٤‬ب دائٔبً‪.‬‬

‫‪34‬‬
‫‪ -3‬يذاخم انتحكى‪IN1-IN4 :‬‬
‫"‪ "5v‬ػِ‪٠‬‬ ‫ؽ‪٤‬ش إٔ "‪٣ "IN1‬زؾٌْ ثبُٔذخَ "‪ ٝ "OUT1‬اٍ "‪٣ "IN2‬زؾٌْ ة "‪ٌٛٝ "OUT2‬زا‪ ،‬كجزطج‪٤‬ن ‪٘ٓ 1‬طو‪٢‬‬
‫ٓذخَ "‪ٓ "IN1‬ضالً ع‪٤‬زْ رٔش‪٣‬ش اُز‪٤‬بس ٖٓٔ خالٍ "‪ٝ "OUT1‬ػ٘ذ رطج‪٤‬ن ‪٘ٓ 0‬طو‪ ٢‬ع‪٤‬زْ ا‪٣‬وبف ٓش‪ٝ‬س اُز‪٤‬بس ػجش ‪. "OUT1‬‬

‫‪12.1.3‬يحزن انتٍبر انًظتًز )‪) DC motor‬‬


‫‪ٓ ٞٛ‬ؾشى ً‪ٜ‬شثبئ‪٣ ٢‬ؾ‪ ٍٞ‬اُطبهخ اٌُ‪ٜ‬شثبئ‪٤‬خ ئُ‪ ٠‬ؽبهخ ؽشً‪٤‬خ ‪٣ٝ‬ؼَٔ كوؾ ػِ‪ ٠‬أٗظٔخ اُز‪٤‬بس أُغزٔش ‪ ٖٓ ٞٛٝ‬أؽذ اُؼ٘بطش اُز‪٢‬‬
‫ع٘ؾزبع‪ٜ‬ب ك‪ ٢‬أُشش‪ٝ‬ع‪ ،‬ؽ‪٤‬ش إٔ رشـ‪ِٜ٤‬ب ‪٣‬ؾزبط ئُ‪ ٠‬ر‪٤‬بس ػبُ‪ٗ ٢‬غ‪٤‬جب ‪٣‬ظَ ئُ‪٣ 250mA ٠‬ؼَٔ ػِ‪ ٠‬ع‪ٜ‬ذ ‪ٌٖٔ٣ٝ 4.5v‬‬
‫رشـ‪ ِٚ٤‬ػِ‪ ٠‬ع‪ٜ‬ذ اثزذأ ٖٓ ‪ٝ 3v‬ؽز‪ ٠‬اُـــ ‪ًٔ 9v‬ب ‪٣‬ؾز‪ٛ ١ٞ‬زا أُؾشى ػِ‪ ٠‬ط٘ذ‪ٝ‬م رش‪ٝ‬ط ُض‪٣‬بدح ػضّ د‪ٝ‬ساٗ‪ٝ ٚ‬روِ‪ َ٤‬ػذد ُلبد‬
‫اُغشػخ ك‪ ٢‬اُذه‪٤‬وخ ‪ ٌٖٔ٣ٝ‬اُزؾٌْ ك‪ ٢‬ارغب‪ ٙ‬د‪ٝ‬سإ ‪ٛ‬زا أُؾشى ‪ٝ‬رُي ثزـ‪٤‬ش هطج‪٤‬خ اُزـز‪٣‬خ ‪ٝ‬اُشٌَ (‪٣ )24.3‬ج‪ٓ ٖ٤‬ؾشى اُز‪٤‬بس‬
‫أُغزٔش‪.‬‬

‫اُشٌَ(‪ٓ )24.3‬ؾشى اُز‪٤‬بس أُغزٔش‪.‬‬

‫إن العالقة األساسية لمحرك مثالي )‪ (Ideal‬هي إن القدرة الميكانيكية عمى محور المحرك تساوي القدرة الكهربائية المستهمكة‬

‫عن طريق منتج المحرك ‪ ،‬حيث ‪:‬‬

‫)‪Tm * ωm = Vb * Ia ............................................. (1.3‬‬


‫حيث ) ‪ : Tm‬العزم عمى محور المحرك‪( .‬‬

‫) ‪: ωm‬السرعة الزاوية لممحرك‪( .‬‬

‫) ‪: Vb‬ق‪.‬د‪.‬ك العكسية‪( .‬‬

‫) ‪: Ia‬تيار المنتج‪( .‬‬

‫‪35‬‬
‫اُشٌَ(‪ )25.3‬اُذائشح أٌُبكئخ ُٔؾشى أُـ٘بؽ‪٤‬ظ اُذائْ أُضبُ‪ ٢‬ك‪ ٢‬ؽبُخ اُالؽَٔ ‪.‬‬

‫أٓب ك‪ ٢‬أُؾشى اُؾو‪٤‬و‪ ( Real ) ٢‬كبٕ اُوذسح اٌُ‪ٜ‬شثبئ‪٤‬خ اُذاخِخ ئُ‪ ٚ٤‬رٌ‪ ٕٞ‬دائٔب أًجش ٖٓ اُوذسح اُخبسعخ ػِ‪ٓ ٠‬ؾ‪ٞ‬س‪( Shaft ٙ‬‬
‫‪ٝ) .‬إ عشػخ أُؾشى ) ‪ ( ωm‬رز٘بعت ؽشد‪٣‬ب ٓغ اُغ‪ٜ‬ذ ػِ‪ ٠‬ؽشك‪ ٢‬أُ٘زظ )‪ ( Vb‬أ‪:-١‬‬
‫)‪Vb = Kb * ωm .....................................(2.3‬‬
‫ؽ‪٤‬ش ) ‪ : Kb‬صبثذ اُز٘بعت ‪ ٞٛٝ‬صبثذ اٍ م‪.‬د‪.‬ى اُؼٌغ‪٤‬خ‪( .‬‬
‫ًٔب ئٕ عشػخ أُؾشى رضداد ثض‪٣‬بدح اُغ‪ٜ‬ذ ػِ‪ ٠‬ؽشك‪ ٢‬أُ٘زظ )‪ ٖٓٝ ( Vb‬اُشٌَ(‪ )26.3‬اُز‪ٞ٣ ١‬ػؼ اُذائشح‬
‫أٌُبكئخ ُٔؾشى راد أُـ٘بؽ‪٤‬ظ اُذائْ ػ٘ذ اُؾَٔ كبٕ ٓؼبدُخ ع‪ٜ‬ذ أُ٘زظ رؾذد ٖٓ هبٗ‪٤ً ٕٞ‬شش‪ٞ‬ف ‪ًٔٝ‬ب‬
‫‪:-٢ِ٣‬‬

‫اُشٌَ(‪ )26.3‬اُذائشح أٌُبكئخ ُٔؾشى ك‪ ٢‬ؽبُخ اُؾَٔ ‪.‬‬

‫)‪Va – VR a – VLa – Vb = 0 .................................(3.3‬‬


‫ع‪٤‬ذ أُظذس أُغزٔش ‪( . Va :‬ؽ‪٤‬ش‬
‫) ‪: VR a‬اُ‪ٜ‬ج‪ٞ‬ؽ ك‪ ٢‬اُغ‪ٜ‬ذ ػِ‪ٓ ٠‬وب‪ٓٝ‬خ أُ٘زظ‪( .‬‬
‫) ‪: VLa‬اُ‪ٜ‬ج‪ٞ‬ؽ ك‪ ٢‬اُغ‪ٜ‬ذ ثغجت ٓؾبصخ أُ٘زظ‪( .‬‬

‫‪36‬‬
‫) ‪: Vb‬م‪.‬د‪.‬ى اُؼٌغ‪٤‬خ‪( .‬‬
‫‪ٝ‬ثبُزؼ‪٣ٞ‬غ ػٖ ًَ ؽذ كبٕ ع‪ٜ‬ذ أُظذس ‪٣‬غب‪:-١ٝ‬‬
‫)‪Va = I aRa +L* dia / dt+ Kb* ωm .............(4.3‬‬

‫‪ٝ‬ػ٘ذ اُؾبُخ أُغزوشح كبٕ اُؾذ ‪ٝ َٜٔ٣ L dia / dt‬رظجؼ أُؼبدُخ ًب‪٥‬ر‪:٢‬‬

‫)‪Va = I aRa + Kb* ωm ..................................(5.3‬‬

‫‪ ٌٖٔ٣ٝ‬ؽغبة ر‪٤‬بس أُ٘زظ ٖٓ خالٍ اُذائشح أٌُبكئخ ُِٔؾشى ‪:‬‬

‫)‪.....................................(63‬‬

‫‪37‬‬
‫‪ 13.1.3‬األجشاء انًٍكبٍَكٍخ نهزوثىد‬
‫اُشٌَ(‪ٞ٣ )27.3‬ػؼ أعضاء ‪ ٌَ٤ٛ‬اُش‪ٝ‬ث‪ٞ‬د ٓغ أُؾشًبد اُز‪٤‬بس أُغزٔش‪.‬‬

‫اُشٌَ(‪ )27.3‬أعضاء ‪ ٌَ٤ٛ‬اُش‪ٝ‬ث‪ٞ‬د‪.‬‬

‫‪ 2.3‬انجبَت انجزيجى فً انًشزوع‬

‫ك‪ٛ ٢‬زا أُشش‪ٝ‬ع رْ اعزخذاّ ُـخ ثشٓغخ ‪ُ ٢ٛٝ‬ـخ (‪، )C Arduino‬ثبُ٘غجخ ٌُِ‪ٞ‬د اُخبص ثبالسد‪ ٞ٘٣‬ع‪ٞ‬ف ‪ٞ٣‬صن ك‪ ٠‬أُِؾن‬
‫ثبٌُبَٓ‪ .‬اُشٌَ (‪ٞ٣ )28.3‬ػؼ اُج‪٤‬ئخ اُزط‪٣ٞ‬ش‪٣‬خ ُجشٗبٓظ اُخبص ثبُٔشش‪ٝ‬ع‪ .‬ث‪٤‬ئخ رط‪٣ٞ‬ش ‪ ٢ٛ Arduino‬أٌُبٕ أُخظض‬
‫ٌُزبثخ اُجشٗبٓظ اُخبص ‪ٝ‬اُز‪ٗ ٢‬غزؼَٔ ك‪ُ ٚ٤‬ـخ(‪ ٢ٛٝ)C Arduino‬هش‪٣‬جخ عذا ٖٓ ُـخ ‪ ٢ٛٝ C++‬أٌُبٕ أُخظض ُزؾٔ‪َ٤‬‬
‫اُجشٗبٓظ ُِٔزؾٌٔخ رزٔ‪٤‬ض ث‪٤‬ئخ رط‪٣ٞ‬ش ‪ Arduino‬ثبُجغبؽخ ‪ٝ‬اُغ‪ُٜٞ‬خ ك‪ ٢‬اُزؼبَٓ ك‪ ٢ٜ‬رٌبد رخِ‪ ٖٓ ٞ‬اُزؼو‪٤‬ذاد ‪ٝ‬عشػخ رؾٔ‪َ٤‬‬
‫اُجشٗبٓظ ُِٔزؾٌٔخ ‪ٝ‬رُي ػٖ ؽش‪٣‬ن ‪ USB‬ثؼذ ر‪ٞ‬ط‪ ِٚ٤‬ثبُؾبعت ا‪ٗٝ ٢ُ٥‬غزط‪٤‬غ أ‪٣‬ؼب ٓشاهجخ ع‪٤‬ش اُؼِٔ‪٤‬بد ك‪ ٢‬أُزؾٌٔخ ٖٓ‬
‫خالٍ شبشخ داخَ ث‪٤‬ئخ اُزط‪٣ٞ‬ش ‪.‬‬

‫‪38‬‬
‫اُشٌَ (‪ )28.3‬ث‪٤‬ئخ رط‪٣ٞ‬ش أسد‪[1]Arduino . ٞ٘٣ ٝ‬‬

‫ِٓؾ‪ٞ‬ظخ ‪ -:‬رؼَٔ اُج‪٤‬ئخ اُزط‪٣ٞ‬ش‪٣‬خ االسد‪ ٞ٘٣‬ثظ‪ٞ‬سح أعشع ػِ‪ٌ٘٤ُ ٠‬ظ أًضش ٖٓ ‪٘٣ٝ‬ذ‪ٝ‬ص ُزُي اٗظؼ ئرا ًبٕ ع‪ٜ‬بصى أُغزخذّ‬
‫ك‪ ٢‬ػِٔ‪٤‬خ اُجشٓغخ ر‪ ٝ‬ئٌٓبٗ‪٤‬بد ٓز‪ٞ‬عطخ أ‪ ٝ‬ػؼ‪٤‬لخ ٖٓ ٗبؽ‪٤‬خ ‪٣ Hardware‬لؼَ ئٕ رغزخذّ ئؽذ‪ٗ ٟ‬غخ ُ‪ٌ٘٤‬ظ‪.‬‬

‫‪ 1.2.3‬خطىاد تىصٍم انهىحخ ثبنحبطت‬

‫‪ -1‬هْ ثز‪ٞ‬ط‪ُٞ َ٤‬ؽخ االسد‪ ٞ٘٣‬ثبٌُبثَ‪.‬‬

‫‪ - 2‬ادخَ اُطشف ا‪٥‬خش ك‪ ٢‬كزؾخ ‪ USB‬ك‪ ٢‬اُؾبعت ا‪ٝ ٢ُ٥‬اٗزظش هِ‪٤‬ال ؽز‪ ٠‬رظ‪ٜ‬ش ُي سعبُخ رل‪٤‬ذ ثإٔ ع‪ٜ‬بص اُؾبعت رؼشف‬
‫ػِ‪ ٠‬هطؼخ ػزبد عذ‪٣‬ذح ‪ Found Arduino Uno Board‬ثؼذ ظ‪ٜٞ‬س رِي اُشعبُخ ‪٣‬أر‪ ٢‬اُ‪ٞ‬هذ ُ‪٤‬جذأ اُؼَٔ ػِ‪ ٠‬اُج‪٤‬ئخ‬
‫اُزط‪٣ٞ‬ش‪٣‬خ ‪.‬‬

‫‪39‬‬
‫اُشٌَ (‪ )29.3‬ر‪ٞ‬ط‪[1] . Arduino Uno USB َ٤‬‬

‫‪ 2.2.3‬انىاجهخ انزطىيٍخ نجٍئخ انتطىٌز‬

‫رزٌ‪ ٕٞ‬ث‪٤‬ئخ اُزط‪٣ٞ‬ش اُجشٓغ‪٤‬خ ٖٓ ‪ٝ‬اع‪ٜ‬خ ثغ‪٤‬طخ ‪ٝ‬ر٘وغْ ئُ‪ ٠‬أسثؼخ أعضاء سئ‪٤‬غ‪٤‬خ ‪-:‬‬

‫األ‪ : ٍٝ‬شش‪٣‬ؾ اُو‪ٞ‬ائْ ‪.‬‬

‫اُضبٗ‪ : ٢‬شش‪٣‬ؾ األ‪ٝ‬آش اُغش‪٣‬ؼخ‪.‬‬

‫اُضبُش ‪٘ٓ :‬طوخ ًزبثخ االً‪ٞ‬اد اُجشٓغ‪٤‬خ ‪.‬‬

‫اُشاثغ ‪:‬اُغضء اُخبص ثؼشع اُز٘ج‪ٜ٤‬بد ‪ٝ‬األخطبء اُجشٓغ‪٤‬خ ك‪ ٢‬ث‪٤‬ئخ اُزط‪٣ٞ‬ش ‪.‬‬

‫‪40‬‬
‫اُشٌَ (‪ )30.3‬اُ‪ٞ‬اع‪ٜ‬خ اُشع‪٤ٓٞ‬خ ُج‪٤‬ئخ اُزط‪٣ٞ‬ش‪[1] .‬‬

‫‪ 3.2.3‬تجهٍش ثٍئخ انتطىٌز‬

‫أ‪ ٍٝ‬خط‪ٞ‬ح ُزغ‪٤ٜ‬ض اُج‪٤‬ئخ أُزط‪٣ٞ‬ش‪ ٢ٛ ٙ‬اخز‪٤‬بس اُج‪ٞ‬سد اُز‪ ٢‬ع٘زؼبَٓ ٓؼ‪ٜ‬ب ‪٣ٝ‬زْ رُي ػٖ ؽش‪٣‬ن اُز‪ٛ‬بة ئُ‪ ٠‬هبئٔخ ‪Tools‬‬
‫‪ٝ‬اخز‪٤‬بس ‪ Board‬صْ ٗخزبس ٗ‪ٞ‬ع اُج‪ٞ‬سد أُز‪ٞ‬كشح ُذ‪٘٣‬ب ‪ٝ‬ك‪ٛ ٢‬ز‪ ٙ‬اُؾبُخ ع٘خزبس ‪ًٔ Arduino Uno‬ب ك‪ ٢‬اُشٌَ (‪.)31.3‬‬

‫‪41‬‬
‫اُشٌَ (‪ )31.3‬رغ‪٤ٜ‬ض ث‪٤‬ئخ اُزط‪٣ٞ‬ش ‪[1] Arduino Uno .‬‬

‫‪42‬‬
‫انجـــــــبة انـزاثغ‬

‫انتصًٍى و انتُفٍذ انؼًهً نهًشزوع‬

‫‪43‬‬
‫‪ 1.4‬يمذيــخ‬
‫ك‪ٛ ٢‬زا اُلظَ ع‪٤‬زْ ر‪ٞ‬ػ‪٤‬ؼ كٌشح ػَٔ دائشح أُشش‪ٝ‬ع ٖٓ خالٍ ر‪ٞ‬ط‪ َ٤‬اُؼ٘بطش اإلٌُزش‪٤ٗٝ‬خ أُغزخذٓخ ٓغ ُ‪ٞ‬ؽخ االسد‪ٞ٘٣ٝ‬‬
‫‪ ٝ‬اُز‪ ٢‬رؼزجش أعبط أُشش‪ٝ‬ع ‪ .‬ر‪ٞ‬ط‪ ًَ َ٤‬هطؼخ ػِ‪ ٠‬ؽذح ٓغ االسد‪ ٞ٘٣‬صْ رغٔ‪٤‬غ اُذائشح ثبٌُبَٓ‪.‬‬

‫‪ 2.4‬انىاجهخ انطزفٍخ انتظهظهٍخ ‪Serial Peripheral Interface - SPI‬‬

‫‪ ٢ٛ‬ثش‪ٝ‬ر‪ ًٍٞٞ‬ث‪٤‬بٗبد ٓزغِغِخ ‪ٓٝ serial‬زضآ٘خ ‪ synchronous‬رغزخذٓ‪ ٚ‬أُزؾٌٔبد ُِز‪ٞ‬اطَ ٓغ ع‪ٜ‬بص ؽشك‪ٝ ٢‬اؽذ أ‪ ٝ‬أًضش‬
‫أ‪ٓ ٝ‬غ ٓزؾٌْ آخش ثغشػخ ٗوَ ث‪٤‬بٗبد ػبُ‪٤‬خ ‪ٝ‬ػجش ٓغبكبد هظ‪٤‬شح‪.‬‬
‫أؽذ أُضا‪٣‬ب اُشئ‪٤‬غ‪٤‬خ ُـ ‪ ٞٛ SPI‬أٗ‪ٞ٣ ٚ‬كش ٓؼذٍ ٗوَ ث‪٤‬بٗبد أػِ‪٣ٝ I2C ٝ UART ٖٓ ٠‬غزخذّ ػ٘ذ اُؾبعخ ئُ‪ ٠‬ارظبٍ رغِغِ‪٢‬‬
‫ؼب ئسعبٍ أُض‪٣‬ذ ٖٓ أُؼِ‪ٓٞ‬بد ٌَُ ػِٔ‪٤‬خ ٗوَ ث‪٤‬بٗبد ‪٣ ٌُٖٝ‬ؼ‪٤‬ج‪ٜ‬ب ؽبعز‪ٜ‬ب اُ‪ ٠‬أُض‪٣‬ذ ٖٓ األؽشاف‬
‫ػبُ‪ ٢‬اُغشػخ‪ٌ٘ٔ٣ .‬ي أ‪ً ٣‬‬
‫ػٖ رِي اُز‪ ٢‬ثـ ‪. I2Cٝ UART‬‬
‫ك‪ ٢‬اُـ ‪٘ٛ SPI‬بى دائ ًٔب ع‪ٜ‬بص سئ‪٤‬غ‪ٝ ٢‬اؽذ (ػبدحً ٓب ‪ ٌٕٞ٣‬أُزؾٌْ) ‪٣‬زؾٌْ ك‪ ٢‬األع‪ٜ‬ضح اُطشك‪٤‬خ‪ٝ .‬ػبدح ٓب ‪٘ٛ ٌٕٞ٣‬بُي صالصخ‬
‫خط‪ٞ‬ؽ ٓشزشًخ ث‪ ٖ٤‬عٔ‪٤‬غ األع‪ٜ‬ضح‪:‬‬

‫‪SCLK - Serial Clock-1‬‬

‫رؾذد اُغبػخ ٓؼذٍ ٗوَ اُج‪٤‬بٗبد ‪٘٣ٝ‬وَ ‪ٛ‬زا اُخؾ ٗجؼبد اُغبػخ اُز‪ ٢‬رؼَٔ ػِ‪ ٠‬رضآٖ ٗوَ اُج‪٤‬بٗبد اُز‪ ٢‬رْ ئٗشبؤ‪ٛ‬ب ث‪ٞ‬اعطخ‬
‫اُطشف اُشئ‪٤‬غ‪ ًَ .٢‬ثذ ٖٓ اُج‪٤‬بٗبد ‪٣‬زْ ٗوِ‪ ٚ‬ػِ‪ٛ ٠‬زا اُخؾ رزضآٖ ‪ٝ‬رز‪ٞ‬اكن ٓغ ئشبسح أ‪ٗ ٝ‬جؼخ ‪ٝ‬اؽذح ُِغبػخ‪ٝ .‬اُ‪ٜ‬ذف ٖٓ‬
‫رُي ‪ ٞٛ‬رٌٔ‪ ٖ٤‬أُزِو‪ ٖٓ ٢‬ئعزوجبٍ اُجزبد ك‪ ٢‬اُشعبُخ ث٘لظ أُؼذٍ اُز‪ ١‬رْ ٗوِ‪ٜ‬ب ػِ‪ُِ ٚ٤‬زأًذ ٖٓ ػذّ ػ‪٤‬بع أ‪٣‬خ ثذ ‪٤ُٝ‬زٌٖٔ‬
‫أُغزوجَ ٖٓ رلغ‪٤‬ش‪ٛ‬ب ثشٌَ طؾ‪٤‬ؼ‪.‬‬

‫‪MOSI - Master Out Slave In-2‬‬

‫‪ significant bit‬أ‪ٝ‬الً‪.‬‬ ‫‪٣‬غزخذٓ‪ ٚ‬اُغ‪ٜ‬بص اُشئ‪٤‬غ‪ ٢‬إلسعبٍ اُج‪٤‬بٗبد ئُ‪ ٠‬األع‪ٜ‬ضح اُطشك‪٤‬خ‪٣ٝ .‬زْ ئسعبٍ اُجذ األػِ‪most ٠‬‬

‫‪MISO - Master In Slave Out-3‬‬

‫‪٣‬زِو‪ ٠‬اُغ‪ٜ‬بص اُشئ‪٤‬غ‪ ٢‬اُج‪٤‬بٗبد ٖٓ األع‪ٜ‬ضح اُطشك‪٤‬خ ػجش ‪ٛ‬زا اُخؾ‪٣ٝ .‬زْ ئعزوجبٍ اُجذ األػِ‪ significant bit most ٠‬أ‪ٝ‬الً‪.‬‬

‫‪٘ٛٝ‬بُي خؾ ‪ٝ‬اؽذ خبص ثٌَ ع‪ٜ‬بص كشػ‪ٓ ٌٕٞ٣ٝ ٢‬زظالً ثبُغ‪ٜ‬بص اُشئ‪٤‬غ‪:٢‬‬

‫‪44‬‬
‫‪SS - Slave Select-4‬‬
‫‪٣‬زْ رجِ‪٤‬ؾ اُغ‪ٜ‬بص اُلشػ‪ ٢‬ػِ‪ٛ ٠‬زا اُخؾ ثإٔ ػِ‪ ٚ٤‬االعزؼذاد ُزِو‪ ٢‬اُج‪٤‬بٗبد ‪ٝ‬ثأٗ‪ ٞٛ ٚ‬أُؼ٘‪ ٢‬ثاعزوجبٍ ‪ٛ‬ز‪ ٙ‬اُج‪٤‬بٗبد‪٘ٛ .‬بى ؽشف‬
‫‪٘ٓ pin‬لظَ ٌَُ ع‪ٜ‬بص كشػ‪ٓ ٢‬زظَ ثبُغ‪ٜ‬بص اُشئ‪٤‬غ‪ .٢‬ك‪ ٢‬اُؾبُخ اُؼبد‪٣‬خ رٌ‪ ٕٞ‬ئشبسح ‪ٛ‬زا اُخؾ ػبُ‪٤‬خ (‪ٓٝ )1‬ز‪ٓ ٠‬ب أسدٗب‬
‫اُز‪ٞ‬اطَ ٓغ أؽذ األؽشاف كٌَ ٓب ػِ‪٘٤‬ب كؼِ‪ ٞٛ ٚ‬عؼَ ه‪ٔ٤‬خ اُخؾ اُخبص ثبُغ‪ٜ‬بص اُطشك‪٘ٓ ٢‬خلؼ‪ )0( ٚ‬صْ سكؼ‪ٜ‬ب ٓشح أخش‪ٟ‬‬
‫ثؼذ اإلٗز‪ٜ‬بء ٖٓ ػِٔ‪٤‬خ اإلسعبٍ‪.‬‬

‫اُشٌَ (‪ )1.4‬اُشعْ اُز‪ٞ‬ػ‪٤‬ؾ‪ ٢‬اُزبُ‪ٔ٣ ٢‬ضَ االرظبٍ ث‪ ٖ٤‬ع‪ٜ‬بص سئ‪٤‬غ‪ٝ ٢‬ع‪ٜ‬بص كشػ‪ٝ ٢‬اؽذ‬

‫جذول(‪SSI Signal )1.4‬‬

‫أٓب ئرا ًبٕ ُذ‪٘٣‬ب أًضش ٖٓ ع‪ٜ‬بص كشػ‪ٝ ٢‬اؽذ‪ ،‬كإ صالصخ ٖٓ اُخط‪ٞ‬ؽ عزٌ‪ٓ ٕٞ‬زظِخ ثغٔ‪٤‬غ األؽشاف ‪ٝ MOSI ٝ: SCLK‬‬
‫‪ ،MISO‬ث‪ٔ٘٤‬ب ع‪ ٌَُ ٌٕٞ٤‬ؽشف خؾ ‪ٝ SS‬اؽذ‪:‬‬

‫أٗٔبؽ اُـ‪SPI‬‬

‫ػ٘ذٓب ‪٣‬زظَ ع‪ٜ‬بصإ ٓؼب ً ػٖ ؽش‪٣‬ن اُـ ‪ SPI‬ك‪ٜ٘‬بُي أٓشإ ٓ‪ٜٔ‬بٕ ‪٣‬غت ػِ‪ٜٔ٤‬ب إٔ ‪٣‬زلوبٕ ػِ‪:ٚ٤‬‬

‫ٓب ‪ٝ ٞٛ‬ػغ اُغبػخ ك‪ ٢‬كزشاد ػذّ اُ٘شبؽ؟‬ ‫‪‬‬

‫‪ٓٝ‬ز‪٣ ٠‬لزشع أخز ػ‪٘٤‬بد اُج‪٤‬بٗبد؟‬ ‫‪‬‬

‫‪45‬‬
‫‪٣ٝ‬شبس ئُ‪ٛ ٠‬بر‪ ٖ٤‬اُخبط‪٤‬ز‪ ٖ٤‬ػبدح ثبعْ هطج‪٤‬خ اُغبػخ ‪ٝ clock polarity‬ؽ‪ٞ‬س اُغبػخ ‪ clock phase‬ػِ‪ ٠‬اُز‪ٞ‬اُ‪.٢‬‬

‫رؾذد هطج‪٤‬خ اُغبػخ ‪ٓ clock polarity‬ب ئرا ًبٕ ‪ٝ‬ػغ اُغبػخ ٓ٘خلغ ‪ 0‬أ‪ٓ ٝ‬شرلغ ‪ 1‬ػ٘ذ ػذّ ئسعبٍ اُج‪٤‬بٗبد (اُؾبُخ اُـ‪٤‬ش‬
‫ٗشطخ)؛ ثٔؼ٘‪ َٛ ٠‬اُغبػخ ؿ‪٤‬ش ٗشطخ ػ٘ذٓب رٌ‪ٓ ٕٞ‬شرلؼخ أّ ٓ٘خلؼخ؟ ئرا رْ ػجؾ اُوطج‪٤‬خ ‪ polarity‬ػِ‪ ،0 ٠‬كغ‪ٝ ٌٕٞ٤‬ػغ‬
‫اُغبػخ ٓ٘خلغ ‪ 0‬ػ٘ذٓب رٌ‪ ٕٞ‬ؿ‪٤‬ش ٗشطخ‪ٝ .‬ػ٘ذٓب رٌ‪ ٕٞ‬اُوطج‪٤‬خ ‪ 1‬ع‪ٝ ٌٕٞ٤‬ػغ اُغبػخ ‪ 1‬ػ٘ذٓب رٌ‪ٗ ٕٞ‬شطخ‪.‬‬

‫‪٣ٝ‬ش‪٤‬ش ؽ‪ٞ‬س اُغبػخ ‪ clock phase‬ئُ‪ ٠‬اُؾبكخ اُز‪ ٢‬ع‪٤‬و‪ ّٞ‬ك‪ٜ٤‬ب اُغ‪ٜ‬بص ثٔؼب‪٘٣‬خ اُجب‪٣‬ذ األ‪ ٖٓ ٍٝ‬اُج‪٤‬بٗبد‪ٓ .‬ب ئرا ًبٕ ٗوَ‬
‫اُج‪٤‬بٗبد ػِ‪ ٠‬اُؾبكخ اُظبػذح أ‪ ٝ‬أُزغبهطخ إلشبسح اُغبػخ‪ .‬ئرا ًبٕ اُط‪ٞ‬س ‪٣‬غب‪ ،0 ١ٝ‬كغ‪٤‬زْ ٓؼب‪٘٣‬خ اُج‪٤‬بٗبد ػِ‪ ٠‬اُؾبكخ األ‪٠ُٝ‬‬
‫ٖٓ اُغبػخ‪ .‬أٓب ئرا ًبٕ اُط‪ٞ‬س ‪٣‬غب‪ ،1 ١ٝ‬كغ‪٤‬زْ ٓؼب‪٘٣‬خ اُج‪٤‬بٗبد ػِ‪ ٠‬اُؾبكخ اُضبٗ‪٤‬خ ٖٓ اُغبػخ‪.‬‬

‫‪٘ٛ‬بى ‪ 4‬أ‪ٝ‬ػبع ٓخزِلخ ك‪ ٢ٛٝ MODE3. ٝ MODE2 ٝ MODE1 ٝ MODE0 ٢ٛٝ SPI ٢‬رؼزٔذ ػِ‪ ٠‬أٗ‪ٌ٘ٔ٣ ٚ‬ي‬
‫رؾذ‪٣‬ذ ثبُؼجؾ ً‪٤‬ق ‪٣‬زْ ثبُؼجؾ ٓؼب‪٘٣‬خ اُجذ ‪ٝ‬رُي ػِ‪ ٠‬أعبط ٓ‪ٞ‬ػغ ئشبسح اُغبػخ‪٘ٛ .‬بى عضءإ ٖٓ اُغبػخ ‪٣‬غت إٔ رؼؼ‪ٚ‬‬
‫ك‪ ٢‬اػزجبسى‪ ،‬هطج‪٤‬خ اُغبػخ ‪ٝ CPOL‬ؽ‪ٞ‬س اُغبػخ‪CPHA.‬‬

‫ػ٘ذٓب ‪ CPOL = 0 ٌٕٞ٣‬كزُي ‪٣‬ؼ٘‪ ٢‬أٗ‪ ٚ‬ع‪٤‬زْ ػجؾ اُغبػخ ئُ‪ٓ ٠‬غز‪٘ٓ ٟٞ‬خلغ ‪ٝ‬ػ٘ذٓب رجذأ كؼِ‪ً٤‬ب ثبإلسعبٍ كإ اإلشبسح عزجذأ‬
‫ٖٓ اُ‪ٞ‬ػغ أُ٘خلغ ‪ ٖٓٝ‬صْ ٓشرلؼخ ‪ ٖٓٝ‬صْ ٓ٘خلؼخ ‪ٌٛٝ‬زا‪ٝ .‬ػ٘ذٓب ‪ CPOL = 1 ٌٕٞ٣‬كزُي ‪٣‬ؼ٘‪ ٢‬أٗ‪ ٚ‬ع‪٤‬زْ ػجؾ اُغبػخ‬
‫كؼِ‪ً٤‬ب ػِ‪ ٠‬اُ‪ٞ‬ػغ أُشرلغ‪ٝ ،‬ػ٘ذٓب ٗجذأ كؼِ‪ً٤‬ب ثبإلسعبٍ‪ ،‬كإ اإلشبسح عز٘خلغ صْ رشرلغ صْ ر٘خلغ ‪ٌٛٝ‬زا‪.‬‬

‫‪٣‬ؾذد ‪ٓ CPHA‬ب ئرا ًبٕ ع‪٤‬زْ ٓؼب‪٘٣‬خ اإلشبسح ك‪ ٢‬اُزـ‪٤٤‬ش األ‪ُِ ٍٝ‬غبػخ أ‪ ٝ‬اُزـ‪٤٤‬ش اُضبٗ‪ُِ ٢‬غبػخ‪ُ .‬زُي ػ٘ذٓب ‪CPHA = 0‬‬
‫‪٣‬ؼ٘‪ ٢‬إٔ اُجذ ‪٣‬زْ رؾذ‪٣‬ذ‪ ٙ‬ػِ‪ ٠‬أ‪ ٍٝ‬رـ‪٤٤‬ش ُِغبػخ‪ٝ .‬ػ٘ذٓب ‪ CPHA = 1 ٌٕٞ٣‬كزُي ‪٣‬ؼ٘‪ ٢‬أٗ‪ ٚ‬ع‪٤‬زْ ٓؼب‪٘٣‬خ اُجذ ػِ‪ ٠‬اُزـ‪٤٤‬ش‬
‫اُضبٗ‪ُِ ٢‬غبػخ ‪ٝ‬رُي ػ٘ذٓب ر٘زوَ اإلشبسح ٖٓ ٓشرلغ ئُ‪٘ٓ ٠‬خلغ أ‪ ٝ‬اُؼٌظ‪.‬‬

‫‪46‬‬
‫اُشٌَ (‪ )2.4‬اُشعْ اُز‪ٞ‬ػ‪٤‬ؾ‪ ٢‬اُزبُ‪ٔ٣ ٢‬ضَ أًضش ٖٓ ع‪ٜ‬بص كشػ‪ٝ ٢‬اؽذ‬

‫‪.‬‬

‫ثبعزخذاّ ًَ ٖٓ اُوطج‪٤‬خ ‪ٝ polarity‬اُط‪ٞ‬س‪ٌ٘٘ٔ٣ ، phase‬ب رؾذ‪٣‬ذ ‪ 4‬أٗٔبؽ ٓخزِلخ ُـ) ‪ 0 ٖٓ( SPI‬ئُ‪ٝ3 ٠‬كوًب ُ‪ٜ‬زا اُغذ‪:ٍٝ‬‬

‫‪47‬‬
‫‪ 3.4‬تىصٍم انمطغ انًظتخذيخ فى انًشزوع‬

‫ك‪ٛ ٢‬ز‪ ٙ‬أُشؽِخ رْ رغٔ‪٤‬غ اُؼ٘بطش اُؾو‪٤‬و‪٤‬خ ُِذائشح ثؼذ اُزأًذ ٖٓ ٓألٓز‪ٜ‬ب ٓغ ثؼؼ‪ٜ‬ب اُجؼغ ٖٓ ؽ‪٤‬ش ه‪ ْ٤‬اُز‪٤‬بساد ‪ ٝ‬اُغ‪ٜٞ‬د ‪ٝ‬‬
‫رُي ثبُشع‪ٞ‬ع اُ‪ ٌَُ )DATA SHEET( ٠‬هطؼخ‪.‬‬

‫‪ 1. 3.4‬انىحذح (‪ )nrf24l01‬يغ نىح االردٌُى)‪(Mega‬‬

‫هٔ٘ب ك‪ٛ ٢‬زا أُشش‪ٝ‬ع ثزظٔ‪ ْ٤‬دائشر‪ ٠‬االسعبٍ ‪ ٝ‬االعزوجبٍ ‪ٝ‬اُز‪ ٢‬رٔضَ اُغضء اُشئ‪٤‬غ‪ ٢‬ثبُزظٔ‪ ٝ ْ٤‬اُشٌَ(‪ٞ٣ ) 3.4‬ػؼ ً‪٤‬ل‪٤‬خ‬
‫ر‪ٞ‬ط‪ َ٤‬اُوطؼخ ‪ٓ Nrf 24l01‬غ ُ‪ٞ‬ؽخ االسد‪.ٞ٘٣‬‬

‫اُشٌَ (‪ٞ٣ )3.4‬ػؼ ً‪٤‬ل‪٤‬خ ر‪ٞ‬ط‪ َ٤‬اُوطؼخ ‪ٓ Nrf 24l01‬غ ُ‪ٞ‬ؽخ االسد‪.(Mega)ٞ٘٣‬‬

‫‪ 2.3.4‬حظبص انغبس )‪ (MQ2‬يغ نىح االردٌُى)‪(Mega‬‬


‫ك‪ٛ ٢‬زا أُشش‪ٝ‬ع ًٔب ٓ‪ٞ‬ػؼ ثبُشٌَ (‪ )4.4‬رُو َشأ ه‪ٔ٤‬خ اُ َخشْ ط اُزٔبصِ‪٤‬خ ُِؾغّبط‪ ،‬كؼ٘ذٓب ‪ ٌٕٞ٣‬رشً‪٤‬ض اُذخبٕ ٓغب‪٣ٝ‬بً ُو‪ٔ٤‬خ‬
‫ٓؾ ّذدح‪ُ٣ ،‬لؼََّ ر٘ج‪ ٚ٤‬ط‪ٞ‬ر ّ‪ ٢‬ػجش )‪ٝ (buzzer‬ر٘ج‪ ٚ٤‬ػ‪ٞ‬ئ ّ‪ ٢‬ثبعزخذاّ ُ‪٤‬ذ أؽٔش)‪ٝ،( red LED‬ػ٘ذ اٗخلبع ه‪ٔ٤‬خ ع‪ٜ‬ذ اُخَ شْ ط ػٖ‬
‫كإ ر٘ج‪ٜ٤‬ب ػ‪ٞ‬ئ‪٤‬ب ًّ ع‪٤‬ؼَٔ ٖٓ خالٍ ُ‪٤‬ذ أخؼش)‪.(LED green‬‬
‫اُو‪ٔ٤‬خ أُؾ ّذدح –اٗخلبع رشً‪٤‬ض اُـبص‪ّ -‬‬

‫‪48‬‬
‫رزـ‪ّ٤‬ش ه‪ٔ٤‬خ اُغ‪ٜ‬ذ ػِ‪َ ٠‬خشْ ط اُؾغّبط ‪ٝ‬كوب ً ُزـ‪ّ٤‬ش رشً‪٤‬ض اُـبص‪/‬اُذخبٕ ك‪ ٢‬اُغ ّ‪ٝ ،ٞ‬ثبُزبُ‪٣ ٢‬و‪ ّٞ‬اُؾغّبط ثاخشاط ع‪ٜ‬ذ ‪٣‬ز٘بعت ٓغ‬
‫رشً‪٤‬ض ‪ٛ‬زا اُـبص‪/‬اُذخبٕ‪.‬‬

‫ثؼجبسح أخش‪ :ٟ‬اُؼالهخ ث‪ ٖ٤‬اُغ‪ٜ‬ذ ‪ٝ‬رشً‪٤‬ض اُـبص ك‪ ٢‬اُغ ّ‪ً ٢ٛ ٞ‬بُزبُ‪:٢‬‬

‫ثض‪٣‬بدح رشً‪٤‬ض اُـبص ‪ :‬رضداد ه‪ٔ٤‬خ اُغ‪ٜ‬ذ ػِ‪َ ٠‬خشْ ط اُؾغّبط‪.‬‬ ‫‪‬‬

‫ث٘وظبٕ رشً‪٤‬ض اُـبص‪ :‬ر٘وض ه‪ٔ٤‬خ اُغ‪ٜ‬ذ ػِ‪َ ٠‬خشْ ط اُؾغّبط‪.‬‬ ‫‪‬‬

‫‪ٝ‬ثبُزّبُ‪ّ ٢‬‬
‫كإ اُؼالهخ ؽشد‪ّ٣‬خ ث‪ ٖ٤‬رشً‪٤‬ض اُـبص‪/‬اُذخبٕ ‪ٝ‬ه‪ٔ٤‬خ خشط اُؾغّبط‪.‬‬

‫‪ ٌٖٔ٣‬إٔ ‪ ٌٕٞ٣‬اُ َخشْ ط ػجبسح ػٖ ئشبسح اُزٔبصِ‪٤‬خ )‪ ٌٖٔ٣(A0‬هشاءر‪ٜ‬ب ٖٓ خالٍ أُذاخَ اُزٔبصِ‪٤‬خ ُـ‪ ، Arduino‬أ‪ ٌٖٔ٣ ٝ‬إٔ‬
‫رٌ‪ ٕٞ‬ئشبسح سهٔ‪ّ٤‬خ )‪ ٌٖٔ٣ (D0‬هشاءر‪ٜ‬ب ٖٓ خالٍ أُذاخَ اُشهٔ‪ّ٤‬خ ٍ‪. Arduino‬‬

‫اُشٌَ (‪ )4.4‬ر‪ٞ‬ط‪ َ٤‬ؽغبط اُـبص )‪ٓ (MQ2‬غ ُ‪ٞ‬ػ االسد‪.Megaٞ٘٣‬‬

‫‪49‬‬
‫‪ 3.3.4‬تىصٍم انهىحخ ) ‪ ( SIM900 GSM/GPRS‬يغ االردٌُى)‪(Mega‬‬

‫اُشٌَ (‪ٞ٣ )5.4‬ػؼ ر‪ٞ‬ط‪ُٞ َ٤‬ؽخ ‪ٓ SIM900 GSM/GPRS‬غ االسد‪ ٞ٘٣‬ػجش أُ٘بكز ‪]4[ . TR ٝ TX‬‬

‫اُشٌَ (‪ٞ٣ )5.4‬ػؼ ر‪ٞ‬ط‪ُٞ َ٤‬ؽخ (‪ٓ (SIM900 GSM/GPRS‬غ االسد‪.(Mega)ٞ٘٣‬‬

‫‪ 4.3.4‬تىصٍم انهىحخ )‪ ( NEO-6M GPS Module‬يغ االردٌُى)‪(Mega‬‬

‫ا‪ ٕ٥‬ثؼذ إٔ ػشك٘ب ًَ ش‪٢‬ء ػٖ اُ‪ٞ‬ؽذح ‪ٌ٘٘ٔ٣ ،‬ب إٔ ٗجذأ ثزضج‪٤‬ز‪ٜ‬ب ػِ‪ Arduino ٠‬اثذأ ثز‪ٞ‬ط‪ٞٛ َ٤‬ائ‪ ٢‬اُزظؾ‪٤‬ؼ ثٔ‪ٞ‬طَ ‪. U.FL‬‬
‫سثؾ ًبثَ ‪ ٖٓ U.FL‬خالٍ أؽذ كزؾبد اُزضج‪٤‬ذ ُالرظبٍ اُو‪.١ٞ‬اُ‪ٞ‬ؽذح ػبدح ٓب رأر‪ٓ ٢‬غ ٓ٘بكز سأط ِٓؾ‪ُ ّٞ‬زُي ‪ٗ .‬و‪ّٞ‬‬
‫ثز‪ٞ‬ط‪ Rx ٝ Tx َ٤‬ك‪ ٢‬اُ‪ٞ‬ؽذح اُ٘ٔط‪٤‬خ ئُ‪ ٠‬اُشهْ اُشهٔ‪ ٢‬سهْ ‪ٝ 2‬سهْ ‪ 3‬ػِ‪ ٠‬اُز‪ٞ‬اُ‪ ٢‬ك‪ Arduino ٢‬؛ ألٗ٘ب ع٘غزخذّ اُجشٗبٓظ‬
‫اُزغِغِ‪ُِ ٢‬زؾذس ئُ‪ ٠‬اُ‪ٞ‬ؽذح ‪.‬ثؼذ رُي ‪ٗ ،‬و‪ ّٞ‬ثز‪ٞ‬ط‪ VCC pin َ٤‬ئُ‪٘ٓ ٠‬لز ‪ V5‬ػِ‪ ٠‬اسد‪ GND ٝ ٞ٘٣ٝ‬ثبألسع‪.‬‬

‫‪50‬‬
‫اُشٌَ (‪ٞ٣ )6.4‬ػؼ ر‪ٞ‬ط‪ُٞ َ٤‬ؽخ) ‪ٓ (NEO-6M GPS Module‬غ االسد‪. (Mega)ٞ٘٣‬‬

‫‪ 5.3.4‬تىصٍم يحزن )‪ ( Servo motor‬يغ االردٌُى)‪(Mega‬‬

‫رؾز‪ ١ٞ‬أُؾشًبد أُإاصسح ػِ‪ ٠‬صالصخ أعالى‪ :‬اُطبهخ ‪ٝ‬األسػ‪ٝ ٢‬اإلشبسح‪ ٌٕٞ٣ .‬عِي اُطبهخ أؽٔشً ا ثشٌَ ٗٔ‪ٞ‬رع‪٣ٝ ، ٢‬غت‬
‫ر‪ٞ‬ط‪ ِٚ٤‬ثٔ٘لز ‪ V5‬ػِ‪ُٞ ٠‬ؽخ ‪ .Arduino‬اُغِي األسػ‪ ٢‬ػبدح ٓب ‪ ٌٕٞ٣‬أع‪ٞ‬د أ‪ ٝ‬ث٘‪٣ٝ ٢‬غت ر‪ٞ‬ط‪ ِٚ٤‬ثٔ٘لز أسػ‪ ٢‬ػِ‪ُٞ ٠‬ؽخ‬
‫‪ ٌٕٞ٣ .Arduino‬عِي اإلشبسح ػبدحً أطلش أ‪ ٝ‬ثشروبُ‪ ٢‬أ‪ ٝ‬أث‪٤‬غ ‪٣ٝ‬غت ر‪ٞ‬ط‪ ِٚ٤‬ثأؽذب أُ٘بكز اُخبطخ ة(‪ )PWM‬ػِ‪٠‬‬
‫اُِ‪ٞ‬ؽخ ‪. Arduino‬‬

‫اُشٌَ (‪ٞ٣ )7.4‬ػؼ ر‪ٞ‬ط‪ٓ َ٤‬ؾشى )‪ٓ ( Servo motor‬غ االسد‪.(Mega)ٞ٘٣‬‬

‫‪51‬‬
‫‪ 6.3.4‬تىصٍم جهبس اطتشؼبر )‪ ( HC-SR04‬يغ االردٌُى)‪(Mega‬‬

‫اُشٌَ (‪ )8.4‬اُزبُ‪ٞ٣ ٢‬ػؼ ر‪ٞ‬ط‪ َ٤‬ع‪ٜ‬بص اعزشؼبس ثبُٔ‪ٞ‬عبد ك‪ٞ‬م اُظ‪ٞ‬ر‪٤‬خ ‪ HC-SR04‬ئُ‪ ٠‬اسد‪.ٞ٘٣ٝ‬‬

‫اُشٌَ (‪ٞ٣ )8.4‬ػؼ ر‪ٞ‬ط‪ َ٤‬ع‪ٜ‬بص اعزشؼبس ثبُٔ‪ٞ‬عبد ك‪ٞ‬م اُظ‪ٞ‬ر‪٤‬خ ٓغ االسد‪.(Mega)ٞ٘٣‬‬

‫‪ 7.3.4‬تىصٍم ػصب انتحكى (‪ ) Joystick- Shield‬يغ االردٌُى)‪(Uno‬‬

‫اُشٌَ (‪ )9.4‬اُزبُ‪ٞ٣ ٢‬ػؼ ر‪ٞ‬ط‪ َ٤‬ػظب اُزؾٌْ (‪ ) Joystick- Shield‬ئُ‪ ٠‬اسد‪ ٝ ٞ٘٣ٝ‬رٔضَ دائشح اُزؾٌْ‪.‬‬

‫اُشٌَ (‪ )9.4‬ر‪ٞ‬ط‪ َ٤‬ػظب اُزؾٌْ (‪ٓ ) Joystick- Shield‬غ اسد‪.(Uno)ٞ٘٣ٝ‬‬

‫‪52‬‬
‫‪ 8.3.4‬تىصٍم انًحزكبد انخبصخ ثؼجالد انزثىد يغ دائزح لٍبدح انًحزكبد )‪(L298n‬‬
‫ال ‪ ٌٖٔ٣‬ر‪ٞ‬ط‪ٓ َ٤‬ؾشى اُز‪٤‬بس أُغزٔش ٓغ االسد‪ٓ ٞ٘٣‬جبششح ‪ ٝ‬رُي الٕ أُؾشى ‪٣‬ؾزبط اُ‪ ٢‬ر‪٤‬بس ػبُ‪ ٢‬ال ‪٣‬غزط‪٤‬غ االسد‪ٞ٘٣‬‬
‫ر‪ٞ‬ك‪٤‬ش‪ُٝ ،ُٚ ٙ‬زُي ع‪ٞ‬ف ٗو‪ ّٞ‬ثز‪ٞ‬ط‪ َ٤‬اُو٘طشح (‪ )H-Bridge‬ث‪ ٖ٤‬االسد‪ ٝ ٞ٘٣‬أُؾشى اٌُ‪ٜ‬شث‪ .)DC( ٢‬اُشٌَ (‪ٞ٣ )8.4‬ػؼ‬
‫ر‪ٞ‬ط‪ َ٤‬أُؾشى اٌُ‪ٜ‬شث‪ٓ ٢‬غ ُ‪ٞ‬ؽخ (‪ )H-Bridge‬ؽ‪٤‬ش رْ رخظ‪٤‬ض ٓ٘بكز االسد‪ ٞ٘٣‬ك‪ ٢‬دائشح االعزوجبٍ } ‪.{ 8 7 6 5 4 3‬‬

‫اُشٌَ (‪٣ )10.4‬ج‪ ٖ٤‬ر‪ٞ‬ط‪ َ٤‬أُؾشى اٌُ‪ٜ‬شث‪ٓ ٢‬غ االسد‪ ٞ٘٣‬ػٖ ؽش‪٣‬ن (‪.)H-Bridge‬‬

‫‪ 4.4‬انشكم انُهبئً نهًشزوع‬


‫اُشٌَ (‪٣ ) 11.4‬ج‪ ٖ٤‬رغٔ‪٤‬غ ػ٘بطش أُشش‪ٝ‬ع ثبٌُبَٓ ‪ ،‬ثؼذ اخزجبس ًَ هطؼخ ػِ‪ ٠‬ؽذ‪.ٙ‬‬

‫)‪( a‬‬

‫‪53‬‬
(b)
.َٓ‫ع ثبٌُب‬ٝ‫) ػ٘بطش أُشش‬11.4-a&b ( ٌَ‫اُش‬

U(S( Y(S)
Soft wear Plant
Arduino Motors

Sensor
ultrasonic

.‫) اُ٘ظبّ أُـِن ُِزؾٌْ ثبُؼشثخ‬12.4( ٌَ‫اُش‬

54
‫‪ 5.4‬انجبَت انجزيجى فً انًشزوع‬
‫ك‪ٛ ٢‬زا أُشش‪ٝ‬ع رْ اعزخذاّ ُـخ ثشٓغخ ‪ُ ٢ٛٝ‬ـخ (‪، )C Arduino‬ثبُ٘غجخ ٌُِ‪ٞ‬د اُخبص ثبالسد‪ ٞ٘٣‬ع‪ٞ‬ف ‪ٞ٣‬صن ك‪ ٠‬أُِؾن‬
‫ثبٌُبَٓ‪.‬‬

‫اُشٌَ ( ‪ )13.4‬اٌُ‪ٞ‬د اُجشٓغ‪.٢‬‬

‫‪ 6.4‬فكـزح انؼًـم‬

‫رزِخض كٌشح ػَٔ اُِ‪ٞ‬ؽخ أُغزخذٓخ ثبُٔشش‪ٝ‬ع ك‪ ٠‬اُ٘وبؽ اُزبُ‪٤‬خ‪:‬‬

‫‪٣ -1‬زْ رؾظ‪ َ٤‬اُج‪٤‬بٗبد (هشاءح ؽغبط اُـبص) ػٖ ؽش‪٣‬ن ُ‪ٞ‬ؽخ أسد‪ ٞ٘٣‬ك‪ ٢‬دائشح االسعبٍ ثبُؼشثخ (‪٣ ٢ٌُ )Robot‬زْ أسعبٍ‬

‫اُج‪٤‬بٗبد ػجش سعبئَ ‪ SMS‬ث‪ٞ‬اعطخ ‪ٝ‬ؽذح (‪.)SIM900 GSM/GPRS‬‬

‫‪ -2‬اُؼشثخ (‪ )Robot‬أُظٔٔخ ُذ‪ٜ٣‬ب ٗظبٓ‪ُِ ٖ٤‬ؾشًخ ‪ً ٢ٛٝ‬بألر‪: ٢‬‬

‫ٗظبّ اُؾشًخ اُزار‪٤‬خ ‪ ٌٕٞ٣‬اُشث‪ٞ‬د ؽش اُؾشًخ ثذ‪ ٕٝ‬إٔ ‪٣‬ؾذس أططذاّ ‪ٝ‬رُي ث‪ٞ‬اعطخ ؽغبط اعزشؼبس )‪ٝ ( HC-SR04‬‬ ‫‪‬‬

‫أص٘بء اُزغ‪٣ ٍٞ‬و‪ ّٞ‬اُشث‪ٞ‬د ثأعزٌشبف ‪ ٝ‬اُزؾغظ ػٖ اُـبص ‪ ٝ‬اُز٘ج‪٤‬خ ػٖ رُي ‪ ٝ‬أسعبٍ ‪ُِٜ SMS‬برق ػ٘ذ أُغزوجَ‪.‬‬
‫‪ ٌٖٔ٣ ‬اُزؾٌْ ك‪ ٢‬ه‪٤‬بدح اُشث‪ٞ‬د رؾٌْ ده‪٤‬ن ػ٘ذ اُؾبعخ ‪ ٝ‬رُي ث‪ٞ‬اعطخ ػظب اُزؾٌْ (‪ ) Joystick- Shield‬ثأعزخذاّ رو٘‪٤‬خ‬
‫‪ RF‬ػٖ ؽش‪٣‬ن ‪ٝ‬ؽذح (‪.)nrf24l01‬‬

‫‪55‬‬
‫‪ -3‬ر‪ٞ‬عذ ػِ‪ ٢‬اُؼشثخ ًبٓ‪٤‬شا ‪٣‬زْ ػٖ ؽش‪٣‬و‪ٜ‬ب ٓشاهجخ ‪ ٝ‬أعزٌشبف أُغبساد ث‪ٞ‬اعطخ اُ‪ٜ‬برق‪ٗٝ ,‬ظشا ُزٌِلخ ًبٓ‪٤‬شا (‪)Wifi‬‬

‫رْ أعزجذاُ‪ٜ‬ب ثٌبٓ‪٤‬شا اُ‪ٜ‬برق أُؾٔ‪ ٍٞ‬ػ٘ذ اُشث‪ٞ‬د ُ٘وَ اُظ‪ٞ‬س اُ‪ٛ ٠‬برق أخش ػ٘ذ دائشح‬

‫االعزوجبٍ (دائشح اُزؾٌْ)‪٣ ,‬زْ رُي ثأعزخذاّ رطج‪٤‬ن (‪ًٔ )IP Webcam‬ب ك‪ ٢‬اُخط‪ٞ‬اد األر‪٤‬خ ‪:‬‬

‫‪ ‬اُشٌَ (‪ٞ٣ )14.4‬ػؼ ‪ٝ‬اع‪ٜ‬خ ثذء أدساط اُزطج‪٤‬ن‪.‬‬

‫اُشٌَ ( ‪ )14.4‬ثذء أدساط اُزطج‪٤‬ن‪.‬‬

‫‪ ‬اُشٌَ (‪ٞ٣ )15.4‬ػؼ ‪ٝ‬اع‪ٜ‬خ اُجشٗبٓظ صْ ٗؼـؾ ػِ‪.start serve ٠‬‬

‫اُشٌَ ( ‪ٝ )15.4‬اع‪ٜ‬خ اُجشٗبٓظ‪.‬‬

‫‪56‬‬
‫‪ ‬رظ‪ٜ‬ش ُ٘ب اُ‪ٞ‬اع‪ًٔ ٜٚ‬ب ك‪ ٢‬اُشٌَ (‪ ،)16.4‬ك٘أخذ اُؼ٘‪ٞ‬إ أٌُز‪ٞ‬ة (‪ ) http://192.168.1.3:8080‬صْ ‪٣‬زْ ًزبثز‪ ٚ‬ك‪٢‬‬

‫اُ‪٣ٞ‬ت أُ‪ٞ‬ػؼ ثبُشٌَ ( ‪ )17.4‬صْ ٗؼـؾ ػِ‪ )IP Webcam( ٠‬كزظ‪ٜ‬ش ُ٘ب اُ‪ٞ‬اع‪ ٚ‬ثبُشٌَ ( ‪ )18.4‬صْ ٗؼـؾ ػِ‪٠‬‬

‫‪٤ُBrowser‬ظ‪ٜ‬ش ُ٘ب اُل‪٤‬ذ‪ ٞ٣‬اُز‪٣ ١‬ظ‪ٞ‬س‪ ٙ‬اُزِ‪٤‬ل‪ ٕٞ‬االخش‪.‬‬

‫اُشٌَ ( ‪ٝ )16.4‬اع‪ٜ‬خ ػ٘‪ٞ‬إ ‪.IP‬‬

‫اُشٌَ ( ‪ )17.4‬طلؾخ اُ‪٣ٞ‬ت‪.‬‬

‫‪ ٖٓ ٌٖٔ٣ ‬خالٍ اُجشٗبٓظ رشـ‪ َ٤‬اُلالػ ‪ ٝ‬رجذ‪ٌُِ َ٣‬بٓ‪٤‬ش األٓبٓ‪ٝ ٚ٤‬اُزوبؽ اُظ‪ٞ‬س ‪ٝ‬رغغ‪ َ٤‬اُل‪٤‬ذ‪ٞ٣‬اد ث‪ٞ‬اعطخ اُشٌَ (‬

‫‪.)19.4‬‬

‫‪57‬‬
‫اُشٌَ ( ‪ٝ)18.4‬اع‪ٜ‬خ أخز‪٤‬بس اُؼشع‪.‬‬

‫اُشٌَ ( ‪ٝ )19.4‬اع‪ٜ‬خ ػشع اُظ‪ٞ‬س‪.‬‬

‫‪58‬‬
‫‪ -4‬اُؼشثخ ٓغ‪ٜ‬ضح ثأسثغ ٓؾشًبد (دكغ سثبػ‪ُِ )٢‬زـِت ػِ‪ ٢‬طؼ‪ٞ‬ثخ أُغبساد ‪ً ٝ‬زُي صوَ اُؼشثخ ُزُي ٗؾزبط ٌَُ ٓؾشً‪ٖ٤‬‬

‫دائشح ه‪٤‬بدح (‪.)motor driver L298‬‬

‫‪٣ -5‬زْ رؾذ‪٣‬ذ أُ‪ٞ‬هغ ُِش‪ٝ‬ث‪ٞ‬د ث‪ٞ‬اعطخ ‪ٝ‬ؽذح ‪)NEO-6M GPS Module( GPS‬‬

‫‪59‬‬
‫انجـــــبة انخبيض‬

‫انخالصخ و انتىصٍبد‬

‫‪60‬‬
‫‪ 1.5‬انخالصخ‬
‫خالٍ اخزجبس دائشح أُشش‪ٝ‬ع اعز٘زغ٘ب االر‪: ٢‬‬

‫دائشح أُشش‪ٝ‬ع رشزـَ ثشٌَ ع‪٤‬ذ‪.‬‬


‫ٓش‪ٗٝ‬خ ًج‪٤‬شح ‪(:‬ئٌٓبٗ‪٤‬خ رـ‪٤٤‬ش ‪ٝ‬ئػبكخ اُ‪ٞ‬ظبئق ثغ‪ُٜٞ‬خ)‪.‬‬
‫دهخ اُوشاءاد ‪ ٌٖٔ٣‬االػزٔبد ػِ‪ٜ٤‬ب‪.‬‬
‫رْ اعزوجبٍ هشاءح ؽغبط اُـبص ‪ٞٓ ٝ‬هغ اُش‪ٝ‬ث‪ٞ‬د ػجش سعبئَ ‪ SMS‬ث‪ٞ‬اعطخ ‪. GSM‬‬
‫أػبكخ ؽغبط ثبُٔ‪ٞ‬عبد ك‪ٞ‬م اُظ‪ٞ‬ر‪٤‬خ ‪ُ HC-SR04‬ض‪٣‬بدح دهخ اعزٌشبف اُؼ‪ٞ‬ائن أٓبّ اُش‪ٝ‬ث‪ٞ‬د‪.‬‬
‫‪ 2.5‬انًشبكـــم‬
‫ك‪ ٢‬أ‪ ١‬ػَٔ ‪ٝ‬ػٖٔ ٓشاؽَ ر٘ل‪٤‬ز أ‪ٓ ١‬شش‪ٝ‬ع ػِٔ‪ ٢‬أ‪ ٝ‬ثؾض‪ ٢‬الثذ ٖٓ ‪ٝ‬ع‪ٞ‬د ٓشبًَ ‪ٝ‬ظ‪ٜٞ‬س ػشاه‪ٜٔٓ َ٤‬ب ًبٗذ اُزشر‪٤‬جبد‬
‫‪ٝ‬االؽز‪٤‬بؽبد رؾذ ٖٓ ر٘ل‪٤‬ز اُؼَٔ ‪ٝ‬اُ‪ٞ‬ط‪ ٍٞ‬ئُ‪ ٠‬األ‪ٛ‬ذاف أُ٘ش‪ٞ‬دح ‪ٝ‬رظ‪ٜ‬ش اُزؾذ‪٣‬بد ك‪٤ً ٢‬ل‪٤‬خ اُزـِت ػِ‪ ٠‬رِي أُشبًَ أ‪ٝ‬‬
‫روِ‪ِٜ٤‬ب ‪ٝ‬اُؾذ ٓ٘‪ٜ‬ب ‪ٓٝ‬ب ‪ٛ‬زا أُشش‪ٝ‬ع أُظـش ئال ‪ٝ‬اؽذ ٖٓ رِي األػٔبٍ ‪ٝ‬أُشبس‪٣‬غ اُز‪ ٢‬أخذد ٗظ‪٤‬ج‪ٜ‬ب ٖٓ اُؼشاه‪ٝ َ٤‬أُشبًَ‬
‫‪ ٖٓٝ‬أثشص أُشبًَ اُز‪ٝ ٢‬اع‪ٜ‬ذ ‪ٛ‬زا اُجؾش ‪.٢ٛ‬‬

‫اُزٌِلخ اُؼبُ‪٤‬خ ‪ٝ‬اُغ‪ٞ‬دح أُ٘خلؼخ ُجؼغ اُوطغ اإلٌُزش‪٤ٗٝ‬خ ٓضَ ( ‪Gps , Gsm , Arduino ، Wi-Fi Camera‬‬
‫‪ )Uno&Mega , Battery‬كٔضال ‪ٓ Wi-Fi Camera‬وبسٗخ ثزٌِلز‪ٜ‬ب اُـبُ‪٤‬خ ئال إٔ ع‪ٞ‬د‪ ٙ‬اُظ‪ٞ‬سح اُز‪ ٢‬ر‪ٞ‬كش‪ٛٝ‬ب سد‪٣‬ئخ ٓٔب‬
‫عؼِ٘ب ٗغزجذُ‪ٜ‬ب ‪. Mobile Camera‬‬

‫ػذّ ر‪ٞ‬كش ثؼغ اُوطغ اإلٌُزش‪٤ٗٝ‬خ اُز‪ ١‬عجت رأخ‪٤‬ش أُشش‪ٝ‬ع ‪ٝ‬رـ‪٤‬ش ثؼغ االكٌبس ك‪ٓ ٚ٤‬ضَ أُ‪ٞ‬اػ اُطبهخ اُشٔغ‪٤‬خ ‪.‬‬

‫‪ 3.5‬انتىصٍبد وانؼًم انًظتمجهً‬

‫‪ ‬أػبكخ خال‪٣‬ب شٔغ‪٤‬خ ُزض‪٣ٝ‬ذ اُؼشثخ ثبُطبهخ رذػْ اُجطبس‪٣‬خ ‪ٗ ٌُٖ ٝ‬ظشا ُؾغْ اُؼشثخ ؿ‪٤‬ش ًبك‪ٞ٣ ٢‬ط‪ ٠‬ثز‪ٞ‬ك‪٤‬ش ػشثخ ثؾغْ‬
‫أًجش‪.‬‬

‫‪ٗ ‬أَٓ إٔ ‪٣‬زْ رط‪٣ٞ‬ش اُ٘ظبّ ثؾ‪٤‬ش ‪٣‬زْ أػبكخ ٓ٘ظ‪ٓٞ‬خ ُو‪ٞ‬اػذ اُج‪٤‬بٗبد (‪ً )data base‬أسش‪٤‬ق ُغٔ‪٤‬غ اُوشاءاد ‪٣‬زْ اُشع‪ٞ‬ع‬
‫ئُ‪ٜ٤‬ب ُالعزلبدح ‪.‬‬

‫‪ ‬ئػبكخ ث‪ٞ‬طِخ ُِش‪ٝ‬ث‪ٞ‬د ٓزظِخ ٓغ ‪، GPS‬ثؾ‪٤‬ش ‪٣‬و‪ ّٞ‬ثززجغ ٗوبؽ ثخؾ ؽ‪ٝ ٍٞ‬ػشع ٓؾذد‪ ٙ‬ك‪ ٢‬أُ٘شئخ أُشاد ٖٓ‬
‫اُش‪ٝ‬ث‪ٞ‬د اُزغ‪ ٍٞ‬داخِ‪ٜ‬ب ‪.‬‬
‫‪ ‬ئػبكخ ٓو‪ ١ٞ‬ئشبسح ُزو‪٣ٞ‬خ اإلشبسح ُ‪ُٞ ٢‬ؽخ ‪.SIM900 GSM‬‬

‫‪61‬‬
‫انًزاجـــــــــــغ‬

‫‪62‬‬
‫ؽخ‬ٞ‫خؼغ ُِشخظخ اُؾشح أُلز‬٣ ‫ اٌُزبة‬-ّ 2014 ‫ ؽجؼخ‬- ‫ ثجغبؽخ‬ٞ٘٣ٝ‫ ًزبة اسد‬- ‫ ػجذ هللا‬٠ِ‫٘ذط ػجذا هلل ػ‬ُٜٔ‫[ ا‬1]
.‫أُظذس‬

. )Arduino. cc( . Arduino ‫ اُخبطخ ث‬٢ٔ‫هغ اُشع‬ُٞٔ‫ط ٖٓ ا‬ٝ‫[ دس‬2]

2019/6/ 7‫ظ‬٤ٔ‫ اُخ‬، http://www.gsm-arabic.com/2010/12/gsm-2_27.html [ 3]


2019/6/ 23 ‫ اُغجذ‬، http://roboticx.ps/arduino-genuino-mega-2560/ [ 4]

[5]. Farrugia, Liam, “Wireless Sensor Networks”, Nova Science Publishers, Inc., 2011.

[6]. Akyildiz, Ian and Mehmet Can Vuran, “Wireless Sensor Networks”, Wiley, 2010.

[7]. Li, Yingshu, My Thai, and Weili Wu, “Wireless Sensor Networks and Applications”,
Springer, 2008.

[8]. Dargie, Waltenegus, and Christian Poellabauer, “Fundamentals of Wireless Sensor


Networks: Theory and Practice”, Wiley, 2010.

63
‫انًالحــــــــــــــك‬

‫انكىد انجزيجً‬

‫‪64‬‬
********************************************************************

#define Serial_Enable 0

String Phone_Number = "0922884135";

String SMS_Text = "Gas Alarm";

#define SMS_Resend 3

#define MAX_SPEED 255 // sets speed of DC motors

#define MAX_LEFT_RIGHT 140 // sets speed of DC motors

#define MAX_SPEED_OFFSET 20

#define Smoke_Sensor_Pin_1 A0

#define Smoke_Treshold 160

#define SMS_Resend_Time 60000 //60 Sec

boolean Mode = 0; // 1 Automatic 0 Manual

boolean Smoke;

boolean Manual_Enable;

//*************************************** GPS
********************************************

#include <TinyGPS.h>

TinyGPS gps;

static void smartdelay(unsigned long ms);

static void print_float(float val, float invalid, int len, int prec);

static void print_int(unsigned long val, unsigned long invalid, int len);

static void print_date(TinyGPS &gps);

static void print_str(const char *str, int len);

65
float flat, flon;

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

//*************************************** GSM
********************************************

#include <GPRS_Shield_Arduino.h>

#include <SoftwareSerial.h>

#include <Wire.h>

#define GMS_CHEAK_TIME 15 // 15 Second

#define MESSAGE_LENGTH 190

#define PIN_TX 10

#define PIN_RX 11

#define POWER_PIN 9

#define BAUDRATE 9600

GPRS GSM(PIN_TX, PIN_RX, BAUDRATE); //RX,TX,BaudRate

#define MESSAGE_LENGTH 190

char message[MESSAGE_LENGTH], phone[16];

char sms[MESSAGE_LENGTH], datetime[24], gprsBuffer[64];

char configuration[MESSAGE_LENGTH];

int messageIndex = 0;

volatile long Current_Millis, Last_SMS_Time;

int SMS_Counter;

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

//*************************************** RF
*********************************************

#include <SPI.h>

#include <nRF24L01.h>

66
#include <RF24.h>

// This is just the way the RF24 library works:

// Hardware configuration: Set up nRF24L01 radio on SPI bus (pins 10, 11, 12, 13) plus pins 7
&8

RF24 radio(49, 53);

const byte addresses[][6] = {"1Node", "2Node"};

boolean select = false;

#define Length 31

byte buffer[Length];

byte send_RF1[Length], send_RF2[Length];

byte receive_RF1[Length], receive_RF2[Length];

int16_t Telemetry_Receiver[30], Telemetry_Sender[30];

volatile long started_waiting_at;

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

//************************************** Servo
*******************************************

#include <Servo.h>

Servo Sonar_Servo;

#define Sonar_Servo_Pin 2

int Sonar_Servo_Angle[3] = {5, 75, 150}; // Left - Middle - Right

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

//************************************** Sonar
*******************************************

#include <NewPing.h>

#define TRIG_PIN A4

#define ECHO_PIN A5

67
#define MAX_DISTANCE 200

NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

int distance = 100;

int readPing()

delay(70);

int cm = sonar.ping_cm();

if (cm == 0)

cm = 250;

#if Serial_Enable

Serial.println(cm);

#endif

return cm;

//********************************* FRONT H-BRIDGE PINS


**********************************

#define Front_Right_H_Bridge_IN1_Pin 22

#define Front_Right_H_Bridge_IN2_Pin 23

#define Front_Left_H_Bridge_IN3_Pin 24

#define Front_Left_H_Bridge_IN4_Pin 25

#define Front_Right_H_Bridge_ENA_Pin 3

#define Front_Left_H_Bridge_ENB_Pin 4

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

68
//********************************* REAR H-BRIDGE PINS
***********************************

#define REAR_Right_H_Bridge_IN4_Pin 26

#define REAR_Right_H_Bridge_IN3_Pin 27

#define REAR_Left_H_Bridge_IN2_Pin 28

#define REAR_Left_H_Bridge_IN1_Pin 29

#define REAR_Right_H_Bridge_ENB_Pin 5

#define REAR_Left_H_Bridge_ENA_Pin 6

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

void setup()

#if Serial_Enable

Serial.begin(115200);

#endif

Serial1.begin(9600); //For GPS

GSM_Init();

for (int i = 0; i < 30; i++)

Telemetry_Sender[i] = i;

Sonar_Servo.attach(Sonar_Servo_Pin);

pinMode(Front_Right_H_Bridge_IN1_Pin, OUTPUT);

pinMode(Front_Right_H_Bridge_IN2_Pin, OUTPUT);

pinMode(Front_Left_H_Bridge_IN3_Pin, OUTPUT);

pinMode(Front_Left_H_Bridge_IN4_Pin, OUTPUT);

pinMode(REAR_Right_H_Bridge_IN3_Pin, OUTPUT);

pinMode(REAR_Right_H_Bridge_IN4_Pin, OUTPUT);

pinMode(REAR_Left_H_Bridge_IN1_Pin, OUTPUT);

69
pinMode(REAR_Left_H_Bridge_IN2_Pin, OUTPUT);

Robot_Init();

Car("STOP", 0);

RF_init();

//Sonar_Servo.write(Sonar_Servo_Angle[0]);

void loop()

Current_Millis = millis();

if (Mode)

//Robot_Movement();

//Cheak_GSM();

//GPS_data();

Smoke = Smock_Sensor();

if (Smoke)

Car("STOP", MAX_SPEED);

Mode = 0;

SMS_Counter = 0;

Last_SMS_Time = Current_Millis - SMS_Resend_Time;

else

70
//Serial.println("Manual");

RF_Trancevier();

if (Manual_Enable)

int pwm_forward = map(Telemetry_Receiver[16], 123, 0, 0, 255);

int pwm_backward = map(Telemetry_Receiver[16], 123, 255, 0, 255);

int pwm_left = map(Telemetry_Receiver[17], 132, 0, 0, 255);

int pwm_right = map(Telemetry_Receiver[17], 132, 255, 0, 255);

int camera_angle1 = map(Telemetry_Receiver[18], 123, 255, 90, 180);

int camera_angle2 = map(Telemetry_Receiver[18], 123, 0, 0, 90);

pwm_forward = constrain(pwm_forward, 0, 255);

pwm_backward = constrain(pwm_backward, 0, 255);

if (pwm_forward > 0)

Car("FORWARD", pwm_forward);

else if (pwm_backward > 0)

Car("BACKWARD", pwm_backward);

else if (pwm_left > 0)

Car("TURN_LEFT", pwm_left);

else if (pwm_right > 0)

Car("TURN_RIGHT", pwm_right);

else

Car("STOP", 0);

if (camera_angle1 > 0)

Sonar_Servo.write(camera_angle1);

else if (camera_angle2 > 0)

Sonar_Servo.write(camera_angle2);

71
else

Sonar_Servo.write(90);

else

Car("STOP", 0);

delay(50);

//Cheak_GSM();

// Robot_Movement();

//Car("FORWARD",80);

//Car("TURN_RIGHT", MAX_SPEED);

//delay(6000);

//Car("STOP", 0);

//delay(3000);

//readPing();

Smock_Sensor();

//GPS_data();

//print_float(flat, TinyGPS::GPS_INVALID_F_ANGLE, 10, 6);

//print_float(flon, TinyGPS::GPS_INVALID_F_ANGLE, 11, 6);

//Serial.print("|"); Serial.println(flon);

if (Smoke)

if (Current_Millis - Last_SMS_Time >= SMS_Resend_Time)

Last_SMS_Time = Current_Millis;

if (SMS_Counter < SMS_Resend)

72
{

#if Serial_Enable

Serial.println("Sending SMS To >|" + Phone_Number + "| Text>|"); Serial.print(SMS_Text


+ "|SMS_COUNT"); Serial.println(SMS_Counter + 1 + "|");

#endif

Send_message(Phone_Number, SMS_Text);

SMS_Counter++;

if (SMS_Counter == SMS_Resend )

#if Serial_Enable

Serial.println("Stop Sending SMS");

#endif

//************************************* ROBOT INIT


***************************************

void Robot_Init()

Sonar_Servo.write(Sonar_Servo_Angle[1]);

delay(2000);

distance = readPing();

delay(100);

distance = readPing();

delay(100);

73
distance = readPing();

delay(100);

distance = readPing();

delay(100);

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

//*********************************** ROBOT MOVEMENT


*************************************

void Robot_Movement()

int distanceR = 0;

int distanceL = 0;

delay(40);

if (distance <= 15)

Car("STOP", 0);

delay(100);

Car("BACKWARD", MAX_SPEED);

delay(300);

Car("STOP", 0);

delay(200);

distanceR = lookRight();

delay(200);

distanceL = lookLeft();

delay(200);

if (distanceR >= distanceL)

74
{

Car("TURN_RIGHT", MAX_SPEED);

delay(300);

Car("STOP", 0);

} else

Car("TURN_LEFT", MAX_SPEED);

delay(300);

Car("STOP", 0);

} else

Car("FORWARD", MAX_SPEED);

distance = readPing();

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

//******************************* SONAR MOVEMENT


*****************************************

int lookRight()

Sonar_Servo.write(Sonar_Servo_Angle[0]);

delay(500);

int distance = readPing();

delay(100);

Sonar_Servo.write(Sonar_Servo_Angle[1]);

75
return distance;

int lookLeft()

Sonar_Servo.write(Sonar_Servo_Angle[2]);

delay(500);

int distance = readPing();

delay(100);

Sonar_Servo.write(Sonar_Servo_Angle[1]);

return distance;

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

//******************************* CAR H-BRIDGE CONTROLLER


********************************

void Car(String Direction, int pwm)

/*

Front_Right_H_Bridge_IN1_Pin <> Front_Right_H_Bridge_IN2_Pin State[0]<>State[1]

Front_Left_H_Bridge_IN3_Pin <> Front_Left_H_Bridge_IN4_Pin State[2]<>State[3]

REAR_Right_H_Bridge_IN3_Pin <> REAR_Right_H_Bridge_IN4_Pin State[4]<>State[5]

REAR_Left_H_Bridge_IN1_Pin <> REAR_Left_H_Bridge_IN2_Pin State[6]<>State[7]

Front_Right_H_Bridge_ENA_Pin

Front_Left_H_Bridge_ENB_Pin

REAR_Right_H_Bridge_ENB_Pin

REAR_Left_H_Bridge_ENA_Pin

*/

76
boolean State[8];

if (Direction.equals("FORWARD"))

State[0] = HIGH; State[1] = LOW;

State[2] = HIGH; State[3] = LOW;

State[4] = HIGH; State[5] = LOW;

State[6] = HIGH; State[7] = LOW;

if (Direction.equals("BACKWARD"))

State[0] = LOW; State[1] = HIGH;

State[2] = LOW; State[3] = HIGH;

State[4] = LOW; State[5] = HIGH;

State[6] = LOW; State[7] = HIGH;

if (Direction.equals("TURN_RIGHT"))

State[0] = LOW; State[1] = HIGH;

State[2] = HIGH; State[3] = LOW;

State[4] = LOW; State[5] = HIGH;

State[6] = HIGH; State[7] = LOW;

// State[0] = HIGH; State[1] = LOW;

// State[2] = LOW; State[3] = HIGH;

// State[4] = LOW; State[5] = HIGH;

// State[6] = HIGH; State[7] = LOW;

77
if (Direction.equals("TURN_LEFT"))

State[0] = HIGH; State[1] = LOW;

State[2] = LOW; State[3] = HIGH;

State[4] = HIGH; State[5] = LOW;

State[6] = LOW; State[7] = HIGH;

if (Direction.equals("RIGHT"))

State[0] = LOW; State[1] = LOW;

State[2] = HIGH; State[3] = LOW;

State[4] = LOW; State[5] = LOW;

State[6] = HIGH; State[7] = LOW;

if (Direction.equals("LEFT"))

State[0] = HIGH; State[1] = LOW;

State[2] = LOW; State[3] = LOW;

State[4] = HIGH; State[5] = LOW;

State[6] = LOW; State[7] = LOW;

if (Direction.equals("STOP"))

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

State[i] = LOW;

pwm = 0;

78
}

digitalWrite(Front_Right_H_Bridge_IN1_Pin, State[0]);
digitalWrite(Front_Right_H_Bridge_IN2_Pin, State[1]);

digitalWrite(Front_Left_H_Bridge_IN3_Pin, State[2]);
digitalWrite(Front_Left_H_Bridge_IN4_Pin, State[3]);

digitalWrite(REAR_Right_H_Bridge_IN3_Pin, State[4]);
digitalWrite(REAR_Right_H_Bridge_IN4_Pin, State[5]);

digitalWrite(REAR_Left_H_Bridge_IN1_Pin, State[6]);
digitalWrite(REAR_Left_H_Bridge_IN2_Pin, State[7]);

analogWrite(Front_Right_H_Bridge_ENA_Pin, pwm);

analogWrite(Front_Left_H_Bridge_ENB_Pin, pwm);

analogWrite(REAR_Right_H_Bridge_ENB_Pin, pwm);

analogWrite(REAR_Left_H_Bridge_ENA_Pin, pwm);

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

// -----------------------------------------------------------------------------

// GSM

// -----------------------------------------------------------------------------

//**********************GSM INIT****************

void GSM_Init()

pinMode(POWER_PIN, OUTPUT);

while (!GSM.init()) //gprs init

#if Serial_Enable

Serial.print("Failure GSM <Trying To Init>\r\n");

#endif

79
boolean OK = GSM.checkPowerUp();

if (!OK)

GSM.powerUpDown(POWER_PIN);

delay(1000);

GSM.GSMbusy();

#if Serial_Enable

Serial.println("GSM Init Success");

#endif

//delay(3000);

//**********************Cheak GSM****************

volatile long GSM_Time;

void Cheak_GSM()

if (Current_Millis - GSM_Time >= GMS_CHEAK_TIME * 1000)

GSM_Time = Current_Millis;

boolean OK = true;

while (OK)

OK = GSM.checkPowerUp();

if (OK)

break;

Car("STOP", MAX_SPEED);

GSM_Init();

80
}

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

//*******************Send Message********************

void Send_message(String string_phone, String SMS)

string_phone.toCharArray(phone, string_phone.length() + 1);

SMS.toCharArray(message, SMS.length() + 1);

GSM.sendSMS(phone, message); //define phone number and text

delay(2500);

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

// -----------------------------------------------------------------------------

// RF

// -----------------------------------------------------------------------------

void RF_init()

// Initiate the radio object

radio.begin();

// Set the transmit power to lowest available to prevent power supply related issues

radio.setPALevel(RF24_PA_MIN);

radio.setPayloadSize(32);

// Set the speed of the transmission to the quickest available

radio.setDataRate(RF24_250KBPS);

// Use a channel unlikely to be used by Wifi, Microwave ovens etc

81
radio.setChannel(110);

// Open a writing and reading pipe on each radio, with opposite addresses

radio.openWritingPipe(addresses[1]);

radio.openReadingPipe(1, addresses[0]);

void RF_Trancevier()

// Ensure we have stopped listening (even if we're not) or we won't be able to transmit

send_RF1[30] = 254;

send_RF2[30] = 255;

radio.stopListening();

if (select)

seprate_data(1);

radio.write( &send_RF1, sizeof(send_RF1) );

else

seprate_data(2);

radio.write( &send_RF2, sizeof(send_RF2) );

select = !select;

// Now listen for a response

radio.startListening();

// But we won't listen for long, 2000 milliseconds is enough

82
// Loop here until we get indication that some data is ready for us to read (or we time out)

if ( ! radio.available() )

Manual_Enable = false;

// Oh dear, no response received within our timescale

if (Current_Millis - started_waiting_at > 2000 )

started_waiting_at = Current_Millis;

#if Serial_Enable

Serial.println("No response received - timeout!");

#endif

// Now read the data that is waiting for us in the nRF24L01's buffer

if (radio.available())

started_waiting_at = Current_Millis;

Smoke = false;

Manual_Enable = true;

while (radio.available())

radio.read( &buffer, sizeof(buffer));

if (buffer[30] == 254) {

for (byte i = 0; i < Length - 1; i++)receive_RF1[i] = buffer[i];

merge_data(1);

if (buffer[30] == 255) {

83
for (byte i = 0; i < Length - 1; i++)receive_RF2[i] = buffer[i];

merge_data(2);

// -----------------------------------------------------------------------------

// Data Processing

// -----------------------------------------------------------------------------

void seprate_data(byte Select_Array)

byte m1[2], m2[2], m3[2], m4[2], m5[2];

byte m6[2], m7[2], m8[2], m9[2], m10[2];

byte m11[2], m12[2], m13[2], m14[2], m15[2];

byte pointer, data_send_BYTE[30];

if (Select_Array == 1)

pointer = 0;

if (Select_Array == 2)

pointer = 15;

memcpy(m1, &Telemetry_Sender[pointer + 0], sizeof(int16_t));

memcpy(m2, &Telemetry_Sender[pointer + 1], sizeof(int16_t));

memcpy(m3, &Telemetry_Sender[pointer + 2], sizeof(int16_t));

memcpy(m4, &Telemetry_Sender[pointer + 3], sizeof(int16_t));

memcpy(m5, &Telemetry_Sender[pointer + 4], sizeof(int16_t));

memcpy(m6, &Telemetry_Sender[pointer + 5], sizeof(int16_t));

memcpy(m7, &Telemetry_Sender[pointer + 6], sizeof(int16_t));

memcpy(m8, &Telemetry_Sender[pointer + 7], sizeof(int16_t));

84
memcpy(m9, &Telemetry_Sender[pointer + 8], sizeof(int16_t));

memcpy(m10, &Telemetry_Sender[pointer + 9], sizeof(int16_t));

memcpy(m11, &Telemetry_Sender[pointer + 10], sizeof(int16_t));

memcpy(m12, &Telemetry_Sender[pointer + 11], sizeof(int16_t));

memcpy(m13, &Telemetry_Sender[pointer + 12], sizeof(int16_t));

memcpy(m14, &Telemetry_Sender[pointer + 13], sizeof(int16_t));

memcpy(m15, &Telemetry_Sender[pointer + 14], sizeof(int16_t));

for (byte i = 0; i < 30; i++)

int separete = i % 2;

int div = i / 2;

switch (div)

case 0: data_send_BYTE[i] = m1[separete]; break;

case 1: data_send_BYTE[i] = m2[separete]; break;

case 2: data_send_BYTE[i] = m3[separete]; break;

case 3: data_send_BYTE[i] = m4[separete]; break;

case 4: data_send_BYTE[i] = m5[separete]; break;

case 5: data_send_BYTE[i] = m6[separete]; break;

case 6: data_send_BYTE[i] = m7[separete]; break;

case 7: data_send_BYTE[i] = m8[separete]; break;

case 8: data_send_BYTE[i] = m9[separete]; break;

case 9: data_send_BYTE[i] = m10[separete]; break;

case 10: data_send_BYTE[i] = m11[separete]; break;

case 11: data_send_BYTE[i] = m12[separete]; break;

case 12: data_send_BYTE[i] = m13[separete]; break;

85
case 13: data_send_BYTE[i] = m14[separete]; break;

case 14: data_send_BYTE[i] = m15[separete]; break;

if (Select_Array == 1)

for (byte i = 0; i < 30; i++)

send_RF1[i] = data_send_BYTE[i];

if (Select_Array == 2)

for (byte i = 0; i < 30; i++)

send_RF2[i] = data_send_BYTE[i];

void merge_data(byte Select_Array)

byte m1[2], m2[2], m3[2], m4[2], m5[2];

byte m6[2], m7[2], m8[2], m9[2], m10[2];

byte m11[2], m12[2], m13[2], m14[2], m15[2];

byte pointer, data_receive_BYTE[30];

if (Select_Array == 1)

for (byte i = 0; i < 30; i++)

data_receive_BYTE[i] = receive_RF1[i];

pointer = 0;

if (Select_Array == 2)

for (byte i = 0; i < 30; i++)

86
data_receive_BYTE[i] = receive_RF2[i];

pointer = 15;

for (byte i = 0; i < 30; i++)

byte separete = i % 2;

int div = i / 2;

switch (div)

case 0: m1[separete] = data_receive_BYTE[i]; break;

case 1: m2[separete] = data_receive_BYTE[i]; break;

case 2: m3[separete] = data_receive_BYTE[i]; break;

case 3: m4[separete] = data_receive_BYTE[i]; break;

case 4: m5[separete] = data_receive_BYTE[i]; break;

case 5: m6[separete] = data_receive_BYTE[i]; break;

case 6: m7[separete] = data_receive_BYTE[i]; break;

case 7: m8[separete] = data_receive_BYTE[i]; break;

case 8: m9[separete] = data_receive_BYTE[i]; break;

case 9: m10[separete] = data_receive_BYTE[i]; break;

case 10: m11[separete] = data_receive_BYTE[i]; break;

case 11: m12[separete] = data_receive_BYTE[i]; break;

case 12: m13[separete] = data_receive_BYTE[i]; break;

case 13: m14[separete] = data_receive_BYTE[i]; break;

case 14: m15[separete] = data_receive_BYTE[i]; break;

87
memcpy(&Telemetry_Receiver[pointer + 0], m1, sizeof(int16_t));

memcpy(&Telemetry_Receiver[pointer + 1], m2, sizeof(int16_t));

memcpy(&Telemetry_Receiver[pointer + 2], m3, sizeof(int16_t));

memcpy(&Telemetry_Receiver[pointer + 3], m4, sizeof(int16_t));

memcpy(&Telemetry_Receiver[pointer + 4], m5, sizeof(int16_t));

memcpy(&Telemetry_Receiver[pointer + 5], m6, sizeof(int16_t));

memcpy(&Telemetry_Receiver[pointer + 6], m7, sizeof(int16_t));

memcpy(&Telemetry_Receiver[pointer + 7], m8, sizeof(int16_t));

memcpy(&Telemetry_Receiver[pointer + 8], m9, sizeof(int16_t));

memcpy(&Telemetry_Receiver[pointer + 9], m10, sizeof(int16_t));

memcpy(&Telemetry_Receiver[pointer + 10], m11, sizeof(int16_t));

memcpy(&Telemetry_Receiver[pointer + 11], m12, sizeof(int16_t));

memcpy(&Telemetry_Receiver[pointer + 12], m13, sizeof(int16_t));

memcpy(&Telemetry_Receiver[pointer + 13], m14, sizeof(int16_t));

memcpy(&Telemetry_Receiver[pointer + 14], m15, sizeof(int16_t));

#if Serial_Enable

for (byte i = 0; i < 30; i++)

Serial.print(Telemetry_Receiver[i]); Serial.print("|");

Serial.println();

#endif

// -----------------------------------------------------------------------------

// GPS

88
// -----------------------------------------------------------------------------

void GPS_data()

unsigned long age, date, time, chars = 0;

unsigned short sentences = 0, failed = 0;

gps.f_get_position(&flat, &flon, &age);

/*

print_int(gps.satellites(), TinyGPS::GPS_INVALID_SATELLITES, 5);

print_int(gps.hdop(), TinyGPS::GPS_INVALID_HDOP, 5);

print_float(flat, TinyGPS::GPS_INVALID_F_ANGLE, 10, 6);

print_float(flon, TinyGPS::GPS_INVALID_F_ANGLE, 11, 6);

print_int(age, TinyGPS::GPS_INVALID_AGE, 5);

print_date(gps);

print_float(gps.f_altitude(), TinyGPS::GPS_INVALID_F_ALTITUDE, 7, 2);

print_float(gps.f_course(), TinyGPS::GPS_INVALID_F_ANGLE, 7, 2);

print_float(gps.f_speed_kmph(), TinyGPS::GPS_INVALID_F_SPEED, 6, 2);

print_str(gps.f_course() == TinyGPS::GPS_INVALID_F_ANGLE ? "*** " :


TinyGPS::cardinal(gps.f_course()), 6);

print_int(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0xFFFFFFFF : (unsigned


long)TinyGPS::distance_between(flat, flon, LONDON_LAT, LONDON_LON) / 1000, 0xFFFFFFFF,
9);

print_float(flat == TinyGPS::GPS_INVALID_F_ANGLE ? TinyGPS::GPS_INVALID_F_ANGLE :


TinyGPS::course_to(flat, flon, LONDON_LAT, LONDON_LON),
TinyGPS::GPS_INVALID_F_ANGLE, 7, 2);

print_str(flat == TinyGPS::GPS_INVALID_F_ANGLE ? "*** " :


TinyGPS::cardinal(TinyGPS::course_to(flat, flon, LONDON_LAT, LONDON_LON)), 6);

gps.stats(&chars, &sentences, &failed);

print_int(chars, 0xFFFFFFFF, 6);

89
print_int(sentences, 0xFFFFFFFF, 10);

print_int(failed, 0xFFFFFFFF, 9);

*/

static void smartdelay(unsigned long ms)

unsigned long start = millis();

do

while (Serial1.available())

gps.encode(Serial1.read());

} while (millis() - start < ms);

static void print_float(float val, float invalid, int len, int prec)

if (val == invalid)

while (len-- > 1)

Serial.print('*');

Serial.print(' ');

else

Serial.print(val, prec);

int vi = abs((int)val);

int flen = prec + (val < 0.0 ? 2 : 1); // . and -

90
flen += vi >= 1000 ? 4 : vi >= 100 ? 3 : vi >= 10 ? 2 : 1;

for (int i = flen; i < len; ++i)

Serial.print(' ');

smartdelay(0);

static void print_int(unsigned long val, unsigned long invalid, int len)

char sz[32];

if (val == invalid)

strcpy(sz, "*******");

else

sprintf(sz, "%ld", val);

sz[len] = 0;

for (int i = strlen(sz); i < len; ++i)

sz[i] = ' ';

if (len > 0)

sz[len - 1] = ' ';

Serial.print(sz);

smartdelay(0);

static void print_date(TinyGPS &gps)

int year;

byte month, day, hour, minute, second, hundredths;

91
unsigned long age;

gps.crack_datetime(&year, &month, &day, &hour, &minute, &second, &hundredths, &age);

if (age == TinyGPS::GPS_INVALID_AGE)

Serial.print("********** ******** ");

else

char sz[32];

sprintf(sz, "%02d/%02d/%02d %02d:%02d:%02d ",

month, day, year, hour, minute, second);

Serial.print(sz);

print_int(age, TinyGPS::GPS_INVALID_AGE, 5);

smartdelay(0);

static void print_str(const char *str, int len)

int slen = strlen(str);

for (int i = 0; i < len; ++i)

Serial.print(i < slen ? str[i] : ' ');

smartdelay(0);

// -----------------------------------------------------------------------------

// Smoke Sensor

// -----------------------------------------------------------------------------

boolean Smock_Sensor()

92
if (analogRead(Smoke_Sensor_Pin_1) >= Smoke_Treshold)

return true;

else

return false;

93

You might also like