Professional Documents
Culture Documents
يمذيـــخ
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فكزح انًشزوع
٣زؼٖٔ ٛزا أُششٝع ػِ ٢سٝثٞد ػِ٤ٛ ٢ئخ ع٤بسح ٣و ّٞثبعزٌشبف رغشة ٓغٔٞػخ ٖٓ اُـبصاد اُغبٓخ ٖٓ خالٍ ؽغبعبد
٣زْ رشً٤جٜب ٓؼ٣ٝ ٚزْ اُزؾٌْ كٛ ٢زا اُشٝثٞد ٖٓ خالٍ ٝؽذح رؾٌْ رغٔ ٠االسدٝ ٞ٘٣ٝهذ رْ اخز٤بس ُٞؽز ٢االسد ٞ٘٣ٝاٗٞ
5
5.1يخطط انًشزوع
اُجبة االٓ : ٍٝوذٓخ ٓٞعضح ػٖ أُششٝع ٣ ٝؾز ١ٞػِ ٠اٛذاف أُششٝع ٓ ٝشاؽَ ر٘ل٤ز ٙأُغزخذٓخ إلٗغبص ٛزا
أُششٝع .اُجبة اُضبٗ : ٢ئػطبء كٌشح ػبٓخ ػٖ اُشٝثٞربد .اُجبة اُضـبُش :كٛ ٢زا اُجبة عٞف ٗو ّٞثزٞػ٤ؼ اُغبٗت
اُؼِٔ ٖٓ ٢أُششٝع ٖٓ ؽ٤ش اُزؼش٣ق ثبُوطغ االٌُزش٤ٗٝخ أُغزخذٓخ ٤ً ٝل٤خ سثطٜب ٓغ ثؼغ .اُجبة اُشاثغ :اُزظٔٝ ْ٤
اُز٘ل٤ز اُؼِٔ ٝ ٢اُزغٔ٤غ اُٜ٘بئُ ٢ؼ٘بطش أُششٝع .اُجبة اُخبٓظ :اُ٘زبئظ ٝاالعز٘زبعبد ٣ ٝؾز ١ٞػِ ٠اُخالطخ ًٝزُي
ً٤ل٤خ االعزلبدح ٖٓ ٛزا أُششٝع ٓغزوجال.
ROBOT
…..
ARDUINO
GSM GAS
UNO
MODULE SENSORS
S ARDUINO
Mega
GPS
JOYSTICK
S …..
ULTRA SONIC …
…
CONTROLER
Mobile
6
انجــبة انثبًَ
انزوثىد
7
2.1يمذيخ
ظٜشد ًِٔخ سٝثٞد ألٓ ٍٝشح ػبّ ، ّ1920كٓ ٢غشؽ٤خ اٌُبرت أُغشؽ( ٢اُزشً ٢ٌ٤بسٍ رشبث٤ي) اُز ٢ؽِٔذ ػ٘ٞإ (سعبٍ
سع ّٞاالُ٤خ اُؼبُٔ٤خ ) ،رشٓض ًِٔخ سٝثٞد ك ٢اُِـخ اُزش٤ٌ٤خ ئُ( ٢اُؼَٔ اُشبم) أ ١أٜٗب ٓشزوخ ٖٓ ًِٔخ ( )Robotaاُز ٢رؼ٘٢
اُؼَٔ اُشبم أ ٝاُؼَٔ اإلعجبسًٝ ،١بٕ ٓجزٌش ٛز ٙأٌُِخ ( ٞٛعٞص٣ق رشبث٤ي) ؽ٤ش رؼذ رٌُ٘ٞٞع٤ب اُشٝثٞد ٝاؽذح ٖٓ أًضش
رو٘٤بد اُزًبء االطط٘بػ ٢روذٓب ٖٓ ؽ٤ش اُزطج٤وبد اُز ٢روذّ كٜ٤ب ٛز ٙاُزو٘٤خ ؽِٞال ًبِٓخ ُِٔشبًَٝ ،اُشٝثٞد ثجغبؽخ ٞٛأُخ
(ًٜشٌ٤ٓ ٝبٗ٤ٌ٤خ رً٤خ ) ٌٖٔ٣ثشٓغزٜب أ ٝرٞطِٜ٤ب ثبُؾبعت اُ ٢ُ٥زإد ١ثؼغ أُٜبّ اُز٣ ٢و ّٞثٜب اإلٗغبٕ ٣ذ٣ٝب.
٘ٛبى عذاٍ هبئْ ث ٖ٤اُؼِٔبء ٝاُِـ ٖ٤٣ٞػِ ٢ؽذ عٞاء ثشإٔ اُزؼش٣ق اُذه٤ن ُشٝثٞد ،كبُجؼغ ٣و ٍٞثاؽالم ٛز ٙاُظلخ ػًَِ ٢
اُخ ُ ٌٖٔ٣إلٗغبٕ اُغ٤طشح ػِٜ٤ب ٝرغ٤٤شٛب ػٖ ثؼذ ،ثٔ٘٤ب ال ٞ٣اكن اُجؼغ االخش ػِٛ ٢زاٝ ،ؽغز ْٜإٔ رِي ا٥الد ٖٓ شبًِخ
اُغ٤بسح أ ٝاُطبئشح راد اُزؾٌْ ػٖ ثؼذ ال ٌٖٔ٣اػزجبسٛب سٝثٞد ُؼذّ آزالًٜب اُوذسح ػِ ٠اُزلٌ٤ش ٝارخبر اُوشاس ث٘لغٜبٞ٣ٝ ،سد
ٛإال ء ٓضبال ثأٗ ٚئرا ًبٕ ثبعزطبػخ رِي االُخ إٔ رزظشف ٝكن ثشٗبٓظ ٓؼذ عِلب ثبثزؼبدٛب ػٖ ؽبعض خطٞر ٖ٤ئُ ٠اُٞساء
ٝاالرغبٗ ٙؾ ٞاُ ٖ٤ٔ٤أ ٝاُ٤غبس ٝاالعزٔشاس ثبُزوذّ ،كإ ٛزا ٣غؼَ ٖٓ أٌُٖٔ ئؽالم طلخ سٝثٞد ؽو٤و٤خ ػِٜ٤ب.
3.2يكىَبد انزوثىد
٣ؾبً ٢اُشٝثٞد ػبدح ٜٓبسح ٝاؽ ذح ك ٢اإلٗغبٕ٣ٝ ،زٌ ٕٞأثغؾ أشٌبٍ اُشٝثٞد ػٔٓٞب ٖٓ صالصخ أعضاء ٢ٛٝاُزساع أٌُ٤بٗ٤ٌ٤خ،
ٝآُ٤خ ُ٘وَ اُؾشًخٓٝ ،ؾشى اُز٣ ١و ّٞثزشـٜٔ٤ًِ َ٤بٝ ،األٗٞاع اُزً٤خ ٖٓ اُشٝثٞد رؾز ١ٞػِ ٢عضء ئػبكٓ ٢زؼِن ثبإلدساى
اُز ٢رزٔضَ ك ٢اُؾغبعبد (٣ )Sensorغؼِ ٚهبدسا ػِ ٢ئدساى اُج٤ئخ أُؾ٤طخ ث ٝ ٚرؼذ َ٣ػِٔ٤بر ٚؽجوب ُِٔزـ٤شاد اُز ٢رؾذس ك٢
اُج٤ئخ.
٣غت ك ٢أ ١ػِٔ٤خ ٣زْ كٜ٤ب ط٘بػخ أ ١سثٞد األخز ثؼ ٖ٤االػزجبس ٓذ ٟرؼو٤ذ اُشٝثٞد اُز ١رٞد ط٘بػز ٖٓ ٚؽ٤ش اُزشً٤ت
ٝاألعضاء أٌُٗٞخ ك َٛٝ ،ٚ٤ثبإلٌٓبٕ إٔ رزٞكش اُوطغ اُالصٓخ اُز ٢رؾزبعٜب ك ٢ػِٔ٤خ اُزظ٘٤غ ٝأ٣ؼب رٞكش أُظبدس اُالصٓخ
ُِٔؼِٓٞبد اُز ٢هذ رؾزبعٜب ،كالثذ إٔ رغزؾظَ ثؼغ أُؼِٓٞبد ك ٢ػِٔ٤خ ط٘بػخ اُشٝثٞد ،ئٓب ٖٓ اٌُزت راد االخزظبص
8
كٛ ٢زا اُشإٔ ،أ ٖٓ ٝاألثؾبس اُؼِٔ٤خ ،أ ٖٓ ٝاُشجٌخ اُؼبُٔ٤خ ُإلٗزشٗذٝ ،األ ٖٓ ْٛرُي ػِٔ٤خ اُزظٔٝ ْ٤اُجشٓغ٤بدٝ ،اُزٌِلخ
اُؼبٓخ.
ٝرٌ ٕٞاُظٞسح أدم ئرا ٓب ٝطل٘ب اُشٝثٞد ثأٗ٤ُ ٚظ ٓغشد اُخ ُزؾَ ٓؾَ اإلٗغبٕٝ ،ئٗٔب ٞٛآُخ ٌٜ٘ٔ٣ب إٔ رإدٓ ١بال ؽبهخ
ُإلٗغبٕ ػِ ٝ ،ٚ٤اُزوذّ كٓ ٢غبٍ رظ٘٤غ اُشٝثٞد أطجؼ ًج٤شا كوذ أٗزغذ ثؼغ اُششًبد ٗٞػب ٖٓ اُشٝثٞد ٣إد ١اُؼذ٣ذ ٓٔب
٣إد ١اإلٗغبٕ ،ك ٌٚ٘ٔ٤اُغ٤ش ثغشػخ /ًْ4عبػخ ٝكٓ ٢ؼٜذ ٓبعبرشٞعزظ ُِزٌُ٘ٞٞع٤ب ( )MITك ٢اُٞال٣بد أُزؾذح األٓش٤ٌ٣خ
رْ رظ٘٤غ سٝثٞد ٌٚ٘ٔ٣إٔ ٣زٌِْ ٣ٝزؾشى اعزغبثخ ألٝآش ثشش٣خ رؼط ُٚ ٠ثبٌُالّ .كل ٢اُٜ٘ب٣خ ال ٌٖٔ٣االعزـ٘بء ػٖ اُؼ٘ظش
اُجششٓٝ ١شاهجخ اإلٗغبٕ ُٜز ٙاالُخ٘ٛٝ ،ب ٗزًش ثؼغ أ ْٛاعزخذآبد اُشٝثٞد ٝأٗٞاػٜب كٔ٤ب :٢ِ٣
1.5.2روثىتبد صُبػٍخ
٢ٛٝػجبسح ػٖ أعٜضح أٝرٓٞبر٤ٌ٤خ ٌٖٔ٣رط٣ٞشٛب ٝئػبدح ثشٓغزٜب ٝرغزؼَٔ ألؿشاع ػذ٣ذح٤ٔٓٝ ،ضارٜب إٔ ثآٌبٜٗب اُؾشًخ
ػِ ٢صالصخ ٓؾبٝس أ ٝأً ضش ٣ٝ ،غزؼَٔ ٛزا اُ٘ٞع ك ٢اُششًبد اُظ٘بػ٤خ اٌُجشُ ٟـشع ُؾْ أُؼبدٕ ٝاُظجبؿخ ٝاٌُٝ ١ٞاُزوبؽ
ٗٝوَ أعغبّ ٓٝشاهجخ عٞدح أ ٝطالؽ٤خ عٞدح اُ٘برظ اُٜ٘بئُِٔ ٢ظ٘غ هجَ اُزظذ٣ش ٛٝز ٙاُشٝثٞربد ٓجشٓغخ ػبدح ُز٘ل٤ز ٜٓبٜٓب
ثظٞسح عش٣ؼخ ٌٓٝشسح ٝده٤وخ ٝاُشٌَ (٣ )1.2ج ٖ٤اؽذ ٟاُشٝثٞربد أُغزخذٓخ ك ٢اُظ٘بػخ.
9
2.5.2روثىتبد لبدرح ػهً انحزكخ واالَتمبل
ٜ٘ٓٝب ؽبئشح ثذ ٕٝؽ٤بس (ٝ )predatorاُطبئشاد راد اُزؾٌْ اُزار٣ٝ ،٢ؼزجش اُشثٞربٕ اُِزبٕ أسعِزٜٔب ٗبعب ك ٢ػبّ ّ2004ئُ٢
عطؼ أُش٣خ ٖٓ أشٜش اُشٝثٞربد أُزؾشًخٜٔٓٝ ،زٜٔب االعزٌشبف ٝاخذ ػ٘٤بد ٖٓ اُزشثخ ٝرؾِِٜ٤ب ٝئسعبٍ أُؼِٓٞبد
٢ٛٝهبدسح ػِ ٢رغٔ٤غ ٗلغٜب ثظٞسح شجٓ ٚغزوِخ ػِ ٢عج َ٤أُضبٍ رظـ٤ش ؽغٜٔب ُِٔشٝس خالٍ ٗلن ػ٤ن ٛ ٝز ٙاُشٝثٞربد
رؾ ١ٞكٞٔٗ ٢رعٜب ػِ ٢ػذح سٝاثؾ ٓغ ٝؽذح أُؼبُغخ أُشًض٣خ ٓٝغزوجالد اإل٣ؼبص ٝاُزاًشح ٛٝز ٙاُشٝثٞربد هبدسح ػِ٢
ثؼغ اُؾشًبد اُشجٓ ٚطبؽ٤خ الؽزٞائٜب ػِٝ ٢ؽذح ٓشٗخ ئٓب ػٖ ؽش٣ن رؾ َ٣ٞؽبهخ اُٜٞاء أُؼـٞؽ ك ٢أعطٞاٗبد ئُ٢
ؽشًبد خط٤خ أ ٝدٝساٗ٤خ ،أ ٝرزْ اُؾشًخ ثزؾ َ٣ٞاُطبهخ اٌُٜشثبئ٤خ ئُ ٢ؽبهخ ؽشً٤خ ٝاُشٌَ(٣ )3.2ج ٖ٤سٝثٞد ٓزـ٤ش اُشٌَ.
10
6.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
14
ٓؼ٘ ٠إٔ أسدٓ ٞ٘٣لزٞػ أُظذس ٣ؼ٘ ٢ثأٌٗ٘ٔ٣ ٚي االؽالع ٝاُزؼذ َ٣ػِ ٠اُزظٔٔ٤بد اُٜ٘ذع٤خ ٝاُشلشاد أُظذس٣خ source
ٖٓ ٌَُ Codesاُِٞؽبد أسد ٞ٘٣أُخزِلخ Arduino LDE Arduino Boardsثٔب ٣ز٘بعت ٓؼي ٌ٘ٔ٣ٝي أ٣ؼب رط٣ٞش ُـخ
ثشٓغخ ( )C Arduinoثغُٜٞخ ربٓخ ٝاالؽالع ػِ ٠اُشلشاد أُظذس٣خ اُخبطخ ثٜب ًٔب إ ٛذ ٙأُٔ٤ضاد ٝاُجشٓغ٤بد ٓغبٗ٤خ
رٔبٓب ُ٤ظ ٓضَ ثؼغ اُج٤ئبد اُزط٣ٞش٣خ ٓضَ ٝ micro Cاُز ٢رزطِت ششاء سخظخ ٌِٓلخ .
٤ٔ٣ -ض ُٞؽبد األسد ٞ٘٣ػٖ ثبه ٢اُِٞؽبد اُزط٣ٞش٣خ ُِٔزؾٌٔبد اُذه٤وخ األخشٓ ٞٛ ٟذ ٟاُغُٜٞخ اُزؼبَٓ ٓؼٜب ٝثغبؽخ اُِـخ
اُجشٓغ٤خ ٝاُز ٢ػَٔ كش٣ن ٖٓ ئ٣طبُ٤ب ػِ ٠رط٣ٞشٛب ٓ٘ذ ػبّ 2005ؽز ٠اُٝ ، ٕ٥وذ رْ اشزوبم ُـخ أسد ٞ٘٣اُجشٓغ٤خ ٖٓ ُـخ
ُٝ processingـخ ٝ Cاُز ٢رؼذ أعبط ُـبد اُجشٓغخ اُؾذ٣ضخ .
ُ -وذ رْ رط٣ٞش٘٤ُ ٙبعت عٔ٤غ أُغز٣ٞبد اثزذاء ٖٓ اُٜٞاح ٝاٗزٜبء ثبُٔشبس٣غ أُزطٞسح ٝاُذُ َ٤أٗ٘ٛ ٚبى ٓٔ٤ضاد عجبسح رغؼَ
أسد ٞ٘٣ػِ ٠هٔخ أُزؾٌٔبد اُذه٤وخ ٢ٛٝئٌٓبٗ٤خ دٓغ ٚكٓ ٢شبس٣غ ٣زْ ثشٓغزٜب ثِـبد ٘ٛذع٤خ ٓزطٞسح ٓضَ ُٝ MATLABـخ
Javaؽ٤ش رغذ ٌٓزجبد ثشٓغ٤خ ك ٢ئؽذ ٟاُِـز MATLAB/Java ٖ٤خبطخ ثبُزؼبَٓ ٓغ أسد. [2] ٞ٘٣
15
إيذاد انذائزح ثبنطبلخ : Power up
ٌ٘ٔ٣ي ئٓذاد اُذائشح ثبُطبهخ ئٓب ٖٓ خالٍ ٓ٘لز اُــ USBكوؾ أ ٝػٖ ؽش٣ن اعزخذاّ ٓظذس خبسعٌُِٜ ٢شثبء ًٔؾDC/AC ٍٞ
ُٔ٤ذ اُذائشح ثبُغٜذ اُالصّ ُِؼَٔ أ ٝؽز ٠ػٖ ؽش٣ن ثطبس٣خ 9كُٞذ ا 4 ٝثطبس٣بد 1.5كُٞذ ؽز٣ ٠زْ رٞط َ٤ؽشك ٢اُجطبس٣خ
ئُ ٢أُذخَ األسػٝ GND ٢اُـ Vinك ٢اُذائشح ]. [2
رغزط٤غ اُذائشح اُؼَٔ ػِ ٠عٜذ ٣زشاٝػ ث 20 - 6 ٖ٤كُٞذ ٌُٖ ٣غت االٗزجب ٙؽ٤ش اٗ ٚئرا هٔ٘ب ثزأٓ ٖ٤عٜذ اهَ ٖٓ 7كُٞذ كبٕ
أُخشط أُزؾٌْ Pin 5vهذ ال ٣غزط٤غ رأٓ ٖ٤عٜذ ٣جِؾ اُـ 5كُٞذ أُطِٞة ٝهذ ٣إد ١ئُ ٢ػذّ اعزوشاس اُذائشح ،ئٓب ئرا هٔ٘ب
ثزض٣ٝذ اُذائشح ثغٜذ اػِ 12 ٖٓ ٢كُٞذ كاٗ ٚهذ ٣إصش ػِ ٠ػ٘ظش ر٘ظ ْ٤اُغٜذ ٣ٝ voltage regulatorإد ١ئُ ٢اسرلبع دسعخ
ؽشاسرٔٓ ٚب ٣إد ١ئُ ٢رِق اُِٞؽخ ُ ،زا كبٕ ٓغبٍ اُغٜذ اُز٣ ١لؼَ اعزخذآ 7 ٖٓ ٞٛ ٚئُ 12 ٢كُٞذ .
: Vinعٜذ اُذاخَ ػ٘ذٓب ٗغزخذّ ٓظذس عٜذ خبسعٌ٘٘ٔ٣ ، ٢ب رأٓ ٖ٤اُغٜذ ٖٓ خالٍ ٛزا أُذخَ ،ئرا ً٘ب ٗو ّٞثزأٓ ٖ٤اُطبهخ
ُِذائشح ٖٓ خالٍ أُؾٌ٘٘ٔ٣ ٍٞب اُٞط ٖٓ ُٚ ٍٞخالٍ ٛزا أُذخَ أ٣ؼب .
: V5عٜذ ٓ٘ظْ ٣غزخذّ ُزأٓ ٖ٤اُطبهخ ُِؼ٘بطش أُغزخذٓخ ػِ ٠اُذائشح ٝعٞف ٗغزخذُٓ ٚزٞك٤ش اُطبهخ ُِوطبع االٌُزش ٢ٗٝاُز٢
ع٘ؼ٤لٜب ٝ ،هذ ٣أرٛ ٢زا اُغٜذ ٖٓ خالٍ Vinػجش ٓ٘ظْ عٜذ داخِ ٢أ ٝرأٓ ٖٓ ٚ٘٤خالٍ ٓ٘لز اُـ USBأ ٝئُٓ ٢ظذس عٜذ
ٓ٘ظْ ثؤ٤خ 5كُٞذ .
ٓ :V3.3ظذس ُِغٜذ ثؤ٤خ 3.3كُٞذ ٓإٖٓ ٖٓ هجَ ٓ٘ظْ اُغٜذ اُذاخُِ ٢ذائشح ٝأهظ ٢هٔ٤خ ُغؾت اُز٤بس ٖٓ خالٍ ٛزا اُخؾ
٢ِ٤ٓ 50 ٞٛأٓج٤ش.
16
.خ ُِٔزؾٌٔخ٤شثبئٌُٜٓذاخَ اُطبهخ اٝ ) ٓخبسط4.3( ٌَاُش
17
2.1.3يحزن انظٍزفى
ٓؾشى اُغ٤ش ك ٞٛ ٞػجبسح ػٖ ٓؾشى ر٤بس ٓغزٔش ٓغٜض ثذائشح اٌُزش٤ٗٝخ ُِزؾٌْ ثذهخ ك ٢ارغب ٙدٝسإ ػٔٞد أُؾشى ٝٝػؼٚ
ٝط٘ذٝم اُزشٝط ًٝزُي ٣ؼشف ػِ ٢أٗٗ ٚظبّ رؾٌْ ٓـِن ُٔؾشى ر٤بس ٓغزٔش ػبدٞ٣ ٝ ١ػؼ اُشعْ اُزخط٤ط ٢اُزبُٓ ٢ب
أػ٘-: ٢
.1اُغ٤شك ٞاُو٤بعٝ ) Stander servo ( : ٢ك ٌٕٞ٣ ٚ٤أُؾشى هبثَ ُِذٝسإ ٖٓ ( 0ئُ ) 180 - 120 ٠ك ٢االرغبٖ٤ٛ
( ٓغ ػوبسة اُغبػخ ٝػٌظ ػوبسة اُغبػخ ) .
ٓ . 2ؾشى اُغ٤شك ٞأُغزٔشٝ :ك ٌٕٞ٣ ٚ٤دٝسإ أُؾشى ٓغ ٝػٌظ ػوبسة اُغبػخ ٖٓ ( ٝ ) 360 – 0اُؼبَٓ األعبع ٢ك٢
رؾذ٣ذ ٌٓبٕ ػٔٞد اُذٝسإ ٓ ٢ٛوبٓخ ٢ٛٝػجبسح ػٖ ٓوبٓ ٚٓٝزـ٤شح رإد ٟاُ ٠رـ٤ش ك ٢ه ٚٔ٤اُغٜذ اُخبسط ٜٓ٘ب ٝػٖ ؽش٣ن
هٔ٤خ اُغٜذ اُ٘برغخ رؾذد اُذائشح اإلٌُزش٤ٗٝخ ٝػغ ٓؾٞس اُذٝسإ ثذهخ .
18
يكىَبد يحزكبد انظٍزفى -:
٣ؾزٓ ٟٞؾشى اُخبدّ ثبخزظبس ػِ ٠أسثؼخ أعضاء ًبُزبُ: ٢
.1دائشح اُزؾٌْ ٝ :ظ٤لزٜب اعزالّ ئشبسح اُزؾٌْ اُذه٤ن ٝرشـ َ٤أُؾشى .
.2أُؾشى ٝ :ظ٤لز ٚاُو٤بّ ثبُؾشًخ .
ٓ .3غٔٞػ ٚاُزشٝط ٝ :ظ٤لزٜب رخل٤غ اُغشػخ ٝص٣بدح اُؼضّ .
.4أُوبٓخ أُزـ٤شح ٝ :ظ٤لزٜب اػطبء هٔ٤خ عٜذ رٔبصِٝٝ ٢ػغ ػٔٞد دٝسإ أُؾشى ث٘بء ػِ ٠هٔ٤خ ٓوبٓٝز ٢ٛٝ ٚرزؾشى
ٓغ ػٔٞد دٝسإ أُؾشى ًٔب ك ٢اُظٞسح اُزبُ٤خ.
.5ثؼغ اُوطغ اُجالعز٤ٌ٤خ اُز ٢رضجذ ػِٓ ٠ؾشى اُغ٤شك٤ُ ٞزْ رشً٤ت ثؼغ األدٝاد االٌُزش٤ٗٝخ ػًِ ٚ٤ب ؽغبط
أُٞعبد كٞم اُظٞر٤خ أُغزخذّ كٛ ٢زا أُششٝع ٝاُشٌَ (ٞ٣ )6.3ػؼ ٛز ٙاُوطغ.
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
21
اُشٌَ( )9.3ؽغبط أُٞعبد كٞم اُظٞر٤خ .
خشٝط ٓٞعبد ػبُ٤خ اُزشدد ٝاُز ٠ػ٘ذٓب رظطذّ ثغغْ ٓب رشرذ ٛز ٙأُٞعبد ػِ ٠شٌَ طذ(Echo).ٟ
ُِٝؼِْ إ عشػخ أُٞعبد ك ٠اُلشاؽ ٓ 345زش /صبٗ٤خ ػ٘ذ دسعخ ؽشاسح 25ع٤ِ٤غٞ٤ط ٝرؾزِق ٖٓ ٝعؾ الخش ؽغت ٗٞع
اُٞعؾ ٖٓ عٞائَ ٝؿبصاد ٝاعغبّ طِجخ ٖٓ .االعظ اُٜبٓ ٚك ٠اُزؼبَٓ ٓغ ٛزا اُ٘ٞع ٖٓ اُؾغبط الثذ ٓؼشكخ أُغبكخ كالثذ
إ ٗؼشف عشػخ ٛزح أُٞعبد ٝاُلشم ث ٖ٤صٖٓ االسعبٍ ٝصٖٓ االسرذاد ُٜز ٙأُٞعبد كٜز ٙاالعظ رزًشٗب ثوبٗٞ٤ٗ ٕٞرٖ :
انًظبفخ = انظزػخ * انشيٍ.
22
اُشٌَ( )10.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
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
لطؼخ اتصبل الطهكً ثتمٍُخ واي فبي (. (RF Transceiver NRF24L01 6.1.3
هطؼخ ارظبٍ العٌِ٣ ٢زْ رشً٤جٜب ٓغ أُشبس٣غ االٌُزش٤ٗٝخ اُز ٢رؾزبط الرظبٍ ثزو٘٤خ ٝا ١كب ، ١ؽ٤ش رغزخذّ عٜبص ئسعبٍ
ٝاعزوجبٍ ثزشدد ٛ .2.4 GHzز ٙاُٞؽذح عٞف ٣زْ رٞطِٜ٤ب ٓغ ٓزؾٌْ أسد ٞ٘٣ع٤زْ رٞػ٤ؼ رُي الؽوب ك ٢اُغضء اُؼِٔ.[4]٢
25
اُشٌَ ( )15.3هطؼخ ارظبٍ ٝا ١كب.)NRF24L01( ١
اُشٌَ (ٞ٣ )17.3ػؼ أُ٘بكز أُغزخذٓخ ُِشثؾ ٓغ أُزؾٌْ اُغذٞ٣ )2.3( ٍٝػؼ ً٤ل٤خ رٞط َ٤أُ٘بكز اُضٔبٗ٤خ ُِٞؽذح ٓغ
ُٞؽخ االسدً ٞ٘٣ال ؽغت ٗٞع االسد ٝ ٞ٘٣االسد ٞ٘٣اُزٜ٘ٔ٣ ١ب ٝأُغزخذّ ٞٛأسدٗ.)UNO&MEGA(ٞ٤
.
26
عذٞٓ )2.3(ٍٝاطلبد ٝؽذح (.)Nrf24l01
٘ٛبُي ػذح أٗٞاع ٖٓ ؽغبعبد اُـبصاد رخزِق كٞٗ ٢ع اُـبص أُزؾغظ ٌُٖٝرغزٔغ ك ٢آُ٤خ اُؼَٔ ٝاُشٌَ أؽ٤بٗب ،كٛ ٢زا
أُششٝع ٗؾزبط ُؼذح ؽغبعبد ؽزٗ ٠غزط٤غ اٌُشق ػٖ اُـبصاد هجَ ٝأص٘بء ٝثؼذ اُؾش٣ن ٌُِ ،شق ػٖ اُـبصاد أُغججخ ُِؾش٣ن
ٝأُ٘جؼضخ خالٍ اُؾش٣ن ٜ٘ٓٝب اُذخبٕ ٝاُ٘بعٔخ ػٖ اُؾش٣ن ُ ،زُي ع٘غزخذّ ػذد أسثؼخ ؽغبعبد [MQ2-MQ5-MQ9- ٠ٛٝ
] ، MQ135رؼَٔ ٛز ٙاُؾغبعبد ث٘لظ آُ٤خ اُؼَٔ ٝرؾَٔ ٗلظ أُٞاطلبد ٌُٖ ًَ ٜٓ٘ب ٣زؾغظ ٓغٔٞػخ ٓخزِلخ ٖٓ اُـبصاد ،
27
شكم ( )17.3اَىاع انحظبص .MQ
ًَ ؽغبعبد اُـبص رٔزِي 4أسعَ ًٔب ٓٞػؼ ك ٢اُشٌَ ( ، )19.3هذ ٌٕٞ٣رشر٤ت األسعَ ٓخزِلخ ك ٢اُجؼغ ٜٓ٘ب ٌُٖ دائٔب ٢ٛ
رٔبصِ٤خ ) (AOاُغبُت ٝأُٞعت ًٔب ٝ ٞٛاػؼ ُ ٞٛزـز٣خ اُذائشح أُزٌبِٓخ أُٞعٞدح ك ٢اُؾغبط (5كُٞذ)ٓ .خشط ث٤بٗبد
رٔبصِ٤خ )٣(AOؼط ٢عٜذ ٖٓ 0اُ 4.2 ٠كُٞذ روش٣جب ٣ ٝؼزٔذ ٓوذاس اُغٜذ اُخبسط ػِٗ ٠غجخ اُـبص اُز٣ ٢زْ ًشلخ ؽشد٣ب ،أ ١إٔ
ًَ ٓب صاد ٗغجخ اُـبص ٣ضداد ٓوذاس عٜذ اُخبسط ٓخشط ث٤بٗبد سهٔ٤خ )٣ (DOؼط٤ي عٜذ ئٓب 0كُٞذ ئٓب 5كُٞذ ٣ٝؼزٔذ رُي ػِ٠
ٗغجخ اُـبص ،ػ٘ذٓب ٣زلبػَ اُـبص ٓغ اُؾغبط ٣زأ ٖ٣اٌُٗٞٓ ٠بر٣ٝ ٚزْ آزظبط ٚثٞاعطخ اُؾغبط ٛٝزا االٓزظبص ٣ؼَٔ ػِ ٠ر٤ُٞذ
28
كشم عٜذ ػِ ٠اُؼ٘ظش اُؾغبط اُز٣ ٟشعِ ٚك ٢شٌَ ر٤بس ٌٖٔ٣ ،اُزؾٌْ ك ٢ؽغبع٤خ اُؾغبط ك ٢ؽبٍ اعزخذاّ ث٤بٗبد
اُشهٔ٤خ ) (DOػٖ ؽش٣ن أُوبٓٝخ أُزـ٤شح كجبُزبُ ٢أٗذ رخزبس ك ٢أٗ ١غجخ ٖٓ رشً٤ض اُـبص ٣ظجؼ اُخشط 5كُٞذ ٝك ٢أٗ ١غجخ
ٖٓ اُـبص ٣ظجؼ 0كُٞذ ،اُغذٞ٣ )3.3( ٍٝػؼ اُؾغبعبد أُغزخذٓخ ٞٗٝع اُـبصاد أُزؾغغخ.
-4رٞط َ٤ع َٜػجش ٓ 4خبسط أصٌُِٜ٘ ٖ٤شثبء ٝٝاؽذ ٓخشط سهُِٔ ٢وشاءح ٝاُضبٗ ٢ر٘بظش.١
29
) اُـبصاد أُزؾغغخ3.3( ٍٝعذ
30
8.1.3وحذح () GPS NEO-6M
رؾزٝ ١ٞؽذح ( ) GPS NEO-6Mػِ٘ٓ 4 ٠بكذ العزوجبٍ ث٤بٗبد .اُزٞط٤الد ٓٞػؾخ ثبُشٌَ (ًٔ )20.3ب : ٢ِ٣
31
فكزح ػًم GPS
رؼَٔ ٓغزوجالد GPSكؼًِ٤ب ػٖ ؽش٣ن ٓؼشكخ ٓذ ٟثؼذٛب ػٖ ػذد ٖٓ األهٔبس اُظ٘بػ٤خٓ .جشٓغخ ٓغجوًب ُٔؼشكخ ٓٞاهغ أهٔبس
GPSك ٢أٝ ١هذ .ر٘وَ األهٔبس اُظ٘بػ٤خ ٓؼِٓٞبد ؽٞٓ ٍٞهؼٜب ٝاُٞهذ اُؾبُ ٢ك ٢شٌَ ئشبساد العٌِ٤خ ثبرغب ٙاألسع .رؾذد
ٛز ٙاإلشبساد األهٔبس اُظ٘بػ٤خ ٝرُخجش عٜبص االعزوجبٍ أ ٖ٣رٞعذ .صْ ٣ؾغت عٜبص االعزوجبٍ أُغبكخ اُجؼ٤ذح ٌَُ هٔش ط٘بػ ٢ػٖ
ؽش٣ن ٓؼشكخ أُذح اُز ٢اعزـشهٜب ٝط ٍٞاإلشبساد .ثٔغشد اؽزٞائ ٚػِٓ ٠ؼِٓٞبد ؽٓ ٍٞذٝ ٟعٞد صالصخ أهٔبس ط٘بػ٤خ ػِ٠
األهَ ٌٓٝبٕ ٝعٞدٛب ك ٢اُلؼبء ٌٚ٘ٔ٣ ،رؾذ٣ذ ٓٞهؼي ػِ ٠األسع.
32
9.1.3انجطبرٌخ
كٛ ٢زا أُششٝع عٞف ٗو ّٞثبعزخذاّ ثطبس٣خ (ُ)3S 1500mAhزٞك٤ش عٜذ هٔ٤زٝ ، 11v ٚاُشٌَ (ٞ٣ )21.3ػؼ شٌَ
اُجطبس٣خ.
شٌَ ( )21.3اُجطبس٣خ.
ك ٢اُشٌَ (ٞ٣ )22.3ػؼ ػظب اُزؾٌْ ( )Joystickأُغزخذٓخ ك ٢اُزؾٌْ ػٖ ثؼذ ثبُشٝثٞد.
33
11.1.3دائزح لٍبدح انًحزكبد ()motor driver L298
٢ٛدائشح رغزخذّ ُو٤بدح ٓؾشًًٜ ٖ٤شثبئ ٖ٤٤ثؤ٤خ ػظٔ ٖٓ ٠اُز٤بس ٓ ٌَُ 2Aؾشى ٝ ،رزٔ٤ض ثغُٜٞخ اُزؾٌْ ٝرزؾَٔ عٜذ
٣ظَ ؽزٞٓ ٢ٛٝ .36v ٠ػؾخ ًٔب ثبُشٌَ ()23.3
-1يذاخم انًحزكبد
ػذدٛب ٓ 4ذاخَ ٞٓ ٝصػخ ثٞاهغ ٓذخِ ٖ٤ك ًَ ٢عٜخ٣ ٝ ،شثؾ ثٜٔب أُؾشى اٌُٜشثبئ .٢ثؾ٤ش رٌٛ ٕٞز ٙأُخبسط ٓشهٔخ ة "
OUT1ئُٗ OUT4 " ٠شثؾ أُؾشى األ ٍٝثبُٔذخِٝ OUT2"، "OUT1 ٖ٤أُؾشى اُضبٗ ٢ثبُٔذخِOUT4" ، "OUT3 ٖ٤
ٌٛزا ٗغزط٤غ اُزؾٌْ ثغُٜٞخ ثبرغب ٙدٝسإ أُؾشى.
34
-3يذاخم انتحكىIN1-IN4 :
" "5vػِ٠ ؽ٤ش إٔ "٣ "IN1زؾٌْ ثبُٔذخَ " ٝ "OUT1اٍ "٣ "IN2زؾٌْ ة "ٌٛٝ "OUT2زا ،كجزطج٤ن ٘ٓ 1طو٢
ٓذخَ "ٓ "IN1ضالً ع٤زْ رٔش٣ش اُز٤بس ٖٓٔ خالٍ "ٝ "OUT1ػ٘ذ رطج٤ن ٘ٓ 0طو ٢ع٤زْ ا٣وبف ٓشٝس اُز٤بس ػجش . "OUT1
إن العالقة األساسية لمحرك مثالي ) (Idealهي إن القدرة الميكانيكية عمى محور المحرك تساوي القدرة الكهربائية المستهمكة
35
اُشٌَ( )25.3اُذائشح أٌُبكئخ ُٔؾشى أُـ٘بؽ٤ظ اُذائْ أُضبُ ٢ك ٢ؽبُخ اُالؽَٔ .
أٓب ك ٢أُؾشى اُؾو٤و ( Real ) ٢كبٕ اُوذسح اٌُٜشثبئ٤خ اُذاخِخ ئُ ٚ٤رٌ ٕٞدائٔب أًجش ٖٓ اُوذسح اُخبسعخ ػِٓ ٠ؾٞس( Shaft ٙ
ٝ) .إ عشػخ أُؾشى ) ( ωmرز٘بعت ؽشد٣ب ٓغ اُغٜذ ػِ ٠ؽشك ٢أُ٘زظ ) ( Vbأ:-١
)Vb = Kb * ωm .....................................(2.3
ؽ٤ش ) : Kbصبثذ اُز٘بعت ٞٛٝصبثذ اٍ م.د.ى اُؼٌغ٤خ( .
ًٔب ئٕ عشػخ أُؾشى رضداد ثض٣بدح اُغٜذ ػِ ٠ؽشك ٢أُ٘زظ ) ٖٓٝ ( Vbاُشٌَ( )26.3اُزٞ٣ ١ػؼ اُذائشح
أٌُبكئخ ُٔؾشى راد أُـ٘بؽ٤ظ اُذائْ ػ٘ذ اُؾَٔ كبٕ ٓؼبدُخ عٜذ أُ٘زظ رؾذد ٖٓ هبٗ٤ً ٕٞششٞف ًٔٝب
:-٢ِ٣
36
) : Vbم.د.ى اُؼٌغ٤خ( .
ٝثبُزؼ٣ٞغ ػٖ ًَ ؽذ كبٕ عٜذ أُظذس ٣غب:-١ٝ
)Va = I aRa +L* dia / dt+ Kb* ωm .............(4.3
ٝػ٘ذ اُؾبُخ أُغزوشح كبٕ اُؾذ ٝ َٜٔ٣ L dia / dtرظجؼ أُؼبدُخ ًب٥ر:٢
).....................................(63
37
13.1.3األجشاء انًٍكبٍَكٍخ نهزوثىد
اُشٌَ(ٞ٣ )27.3ػؼ أعضاء ٌَ٤ٛاُشٝثٞد ٓغ أُؾشًبد اُز٤بس أُغزٔش.
كٛ ٢زا أُششٝع رْ اعزخذاّ ُـخ ثشٓغخ ُ ٢ٛٝـخ (، )C Arduinoثبُ٘غجخ ٌُِٞد اُخبص ثبالسد ٞ٘٣عٞف ٞ٣صن ك ٠أُِؾن
ثبٌُبَٓ .اُشٌَ (ٞ٣ )28.3ػؼ اُج٤ئخ اُزط٣ٞش٣خ ُجشٗبٓظ اُخبص ثبُٔششٝع .ث٤ئخ رط٣ٞش ٢ٛ Arduinoأٌُبٕ أُخظض
ٌُزبثخ اُجشٗبٓظ اُخبص ٝاُزٗ ٢غزؼَٔ كُ ٚ٤ـخ( ٢ٛٝ)C Arduinoهش٣جخ عذا ٖٓ ُـخ ٢ٛٝ C++أٌُبٕ أُخظض ُزؾَٔ٤
اُجشٗبٓظ ُِٔزؾٌٔخ رزٔ٤ض ث٤ئخ رط٣ٞش Arduinoثبُجغبؽخ ٝاُغُٜٞخ ك ٢اُزؼبَٓ ك ٢ٜرٌبد رخِ ٖٓ ٞاُزؼو٤ذاد ٝعشػخ رؾَٔ٤
اُجشٗبٓظ ُِٔزؾٌٔخ ٝرُي ػٖ ؽش٣ن USBثؼذ رٞط ِٚ٤ثبُؾبعت اٗٝ ٢ُ٥غزط٤غ أ٣ؼب ٓشاهجخ ع٤ش اُؼِٔ٤بد ك ٢أُزؾٌٔخ ٖٓ
خالٍ شبشخ داخَ ث٤ئخ اُزط٣ٞش .
38
اُشٌَ ( )28.3ث٤ئخ رط٣ٞش أسد[1]Arduino . ٞ٘٣ ٝ
ِٓؾٞظخ -:رؼَٔ اُج٤ئخ اُزط٣ٞش٣خ االسد ٞ٘٣ثظٞسح أعشع ػٌِ٘٤ُ ٠ظ أًضش ٖٓ ٘٣ٝذٝص ُزُي اٗظؼ ئرا ًبٕ عٜبصى أُغزخذّ
ك ٢ػِٔ٤خ اُجشٓغخ ر ٝئٌٓبٗ٤بد ٓزٞعطخ أ ٝػؼ٤لخ ٖٓ ٗبؽ٤خ ٣ Hardwareلؼَ ئٕ رغزخذّ ئؽذٗ ٟغخ ٌُ٘٤ظ.
- 2ادخَ اُطشف ا٥خش ك ٢كزؾخ USBك ٢اُؾبعت اٝ ٢ُ٥اٗزظش هِ٤ال ؽز ٠رظٜش ُي سعبُخ رل٤ذ ثإٔ عٜبص اُؾبعت رؼشف
ػِ ٠هطؼخ ػزبد عذ٣ذح Found Arduino Uno Boardثؼذ ظٜٞس رِي اُشعبُخ ٣أر ٢اُٞهذ ُ٤جذأ اُؼَٔ ػِ ٠اُج٤ئخ
اُزط٣ٞش٣خ .
39
اُشٌَ ( )29.3رٞط[1] . Arduino Uno USB َ٤
رزٌ ٕٞث٤ئخ اُزط٣ٞش اُجشٓغ٤خ ٖٓ ٝاعٜخ ثغ٤طخ ٝر٘وغْ ئُ ٠أسثؼخ أعضاء سئ٤غ٤خ -:
اُشاثغ :اُغضء اُخبص ثؼشع اُز٘جٜ٤بد ٝاألخطبء اُجشٓغ٤خ ك ٢ث٤ئخ اُزط٣ٞش .
40
اُشٌَ ( )30.3اُٞاعٜخ اُشع٤ٓٞخ ُج٤ئخ اُزط٣ٞش[1] .
أ ٍٝخطٞح ُزغ٤ٜض اُج٤ئخ أُزط٣ٞش ٢ٛ ٙاخز٤بس اُجٞسد اُز ٢ع٘زؼبَٓ ٓؼٜب ٣ٝزْ رُي ػٖ ؽش٣ن اُزٛبة ئُ ٠هبئٔخ Tools
ٝاخز٤بس Boardصْ ٗخزبس ٗٞع اُجٞسد أُزٞكشح ُذ٘٣ب ٝكٛ ٢ز ٙاُؾبُخ ع٘خزبس ًٔ Arduino Unoب ك ٢اُشٌَ (.)31.3
41
اُشٌَ ( )31.3رغ٤ٜض ث٤ئخ اُزط٣ٞش [1] Arduino Uno .
42
انجـــــــبة انـزاثغ
43
1.4يمذيــخ
كٛ ٢زا اُلظَ ع٤زْ رٞػ٤ؼ كٌشح ػَٔ دائشح أُششٝع ٖٓ خالٍ رٞط َ٤اُؼ٘بطش اإلٌُزش٤ٗٝخ أُغزخذٓخ ٓغ ُٞؽخ االسدٞ٘٣ٝ
ٝاُز ٢رؼزجش أعبط أُششٝع .رٞط ًَ َ٤هطؼخ ػِ ٠ؽذح ٓغ االسد ٞ٘٣صْ رغٔ٤غ اُذائشح ثبٌُبَٓ.
٢ٛثشٝر ًٍٞٞث٤بٗبد ٓزغِغِخ ٓٝ serialزضآ٘خ synchronousرغزخذٓ ٚأُزؾٌٔبد ُِزٞاطَ ٓغ عٜبص ؽشكٝ ٢اؽذ أ ٝأًضش
أٓ ٝغ ٓزؾٌْ آخش ثغشػخ ٗوَ ث٤بٗبد ػبُ٤خ ٝػجش ٓغبكبد هظ٤شح.
أؽذ أُضا٣ب اُشئ٤غ٤خ ُـ ٞٛ SPIأٗٞ٣ ٚكش ٓؼذٍ ٗوَ ث٤بٗبد أػِ٣ٝ I2C ٝ UART ٖٓ ٠غزخذّ ػ٘ذ اُؾبعخ ئُ ٠ارظبٍ رغِغِ٢
ؼب ئسعبٍ أُض٣ذ ٖٓ أُؼِٓٞبد ٌَُ ػِٔ٤خ ٗوَ ث٤بٗبد ٣ ٌُٖٝؼ٤جٜب ؽبعزٜب اُ ٠أُض٣ذ ٖٓ األؽشاف
ػبُ ٢اُغشػخٌ٘ٔ٣ .ي أً ٣
ػٖ رِي اُز ٢ثـ . I2Cٝ UART
ك ٢اُـ ٘ٛ SPIبى دائ ًٔب عٜبص سئ٤غٝ ٢اؽذ (ػبدحً ٓب ٌٕٞ٣أُزؾٌْ) ٣زؾٌْ ك ٢األعٜضح اُطشك٤خٝ .ػبدح ٓب ٘ٛ ٌٕٞ٣بُي صالصخ
خطٞؽ ٓشزشًخ ث ٖ٤عٔ٤غ األعٜضح:
رؾذد اُغبػخ ٓؼذٍ ٗوَ اُج٤بٗبد ٘٣ٝوَ ٛزا اُخؾ ٗجؼبد اُغبػخ اُز ٢رؼَٔ ػِ ٠رضآٖ ٗوَ اُج٤بٗبد اُز ٢رْ ئٗشبؤٛب ثٞاعطخ
اُطشف اُشئ٤غ ًَ .٢ثذ ٖٓ اُج٤بٗبد ٣زْ ٗوِ ٚػِٛ ٠زا اُخؾ رزضآٖ ٝرزٞاكن ٓغ ئشبسح أٗ ٝجؼخ ٝاؽذح ُِغبػخٝ .اُٜذف ٖٓ
رُي ٞٛرٌٔ ٖ٤أُزِو ٖٓ ٢ئعزوجبٍ اُجزبد ك ٢اُشعبُخ ث٘لظ أُؼذٍ اُز ١رْ ٗوِٜب ػُِِ ٚ٤زأًذ ٖٓ ػذّ ػ٤بع أ٣خ ثذ ٤ُٝزٌٖٔ
أُغزوجَ ٖٓ رلغ٤شٛب ثشٌَ طؾ٤ؼ.
significant bitأٝالً. ٣غزخذٓ ٚاُغٜبص اُشئ٤غ ٢إلسعبٍ اُج٤بٗبد ئُ ٠األعٜضح اُطشك٤خ٣ٝ .زْ ئسعبٍ اُجذ األػِmost ٠
٣زِو ٠اُغٜبص اُشئ٤غ ٢اُج٤بٗبد ٖٓ األعٜضح اُطشك٤خ ػجش ٛزا اُخؾ٣ٝ .زْ ئعزوجبٍ اُجذ األػِ significant bit most ٠أٝالً.
٘ٛٝبُي خؾ ٝاؽذ خبص ثٌَ عٜبص كشػٓ ٌٕٞ٣ٝ ٢زظالً ثبُغٜبص اُشئ٤غ:٢
44
SS - Slave Select-4
٣زْ رجِ٤ؾ اُغٜبص اُلشػ ٢ػِٛ ٠زا اُخؾ ثإٔ ػِ ٚ٤االعزؼذاد ُزِو ٢اُج٤بٗبد ٝثأٗ ٞٛ ٚأُؼ٘ ٢ثاعزوجبٍ ٛز ٙاُج٤بٗبد٘ٛ .بى ؽشف
٘ٓ pinلظَ ٌَُ عٜبص كشػٓ ٢زظَ ثبُغٜبص اُشئ٤غ .٢ك ٢اُؾبُخ اُؼبد٣خ رٌ ٕٞئشبسح ٛزا اُخؾ ػبُ٤خ (ٓٝ )1زٓ ٠ب أسدٗب
اُزٞاطَ ٓغ أؽذ األؽشاف كٌَ ٓب ػِ٘٤ب كؼِ ٞٛ ٚعؼَ هٔ٤خ اُخؾ اُخبص ثبُغٜبص اُطشك٘ٓ ٢خلؼ )0( ٚصْ سكؼٜب ٓشح أخشٟ
ثؼذ اإلٗزٜبء ٖٓ ػِٔ٤خ اإلسعبٍ.
اُشٌَ ( )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( ٠هطؼخ.
هٔ٘ب كٛ ٢زا أُششٝع ثزظٔ ْ٤دائشر ٠االسعبٍ ٝاالعزوجبٍ ٝاُز ٢رٔضَ اُغضء اُشئ٤غ ٢ثبُزظٔ ٝ ْ٤اُشٌَ(ٞ٣ ) 3.4ػؼ ً٤ل٤خ
رٞط َ٤اُوطؼخ ٓ Nrf 24l01غ ُٞؽخ االسد.ٞ٘٣
اُشٌَ (ٞ٣ )3.4ػؼ ً٤ل٤خ رٞط َ٤اُوطؼخ ٓ Nrf 24l01غ ُٞؽخ االسد.(Mega)ٞ٘٣
48
رزـّ٤ش هٔ٤خ اُغٜذ ػَِ ٠خشْ ط اُؾغّبط ٝكوب ً ُزـّ٤ش رشً٤ض اُـبص/اُذخبٕ ك ٢اُغ ّٝ ،ٞثبُزبُ٣ ٢و ّٞاُؾغّبط ثاخشاط عٜذ ٣ز٘بعت ٓغ
رشً٤ض ٛزا اُـبص/اُذخبٕ.
ثض٣بدح رشً٤ض اُـبص :رضداد هٔ٤خ اُغٜذ ػَِ ٠خشْ ط اُؾغّبط.
ث٘وظبٕ رشً٤ض اُـبص :ر٘وض هٔ٤خ اُغٜذ ػَِ ٠خشْ ط اُؾغّبط.
ٝثبُزّبُّ ٢
كإ اُؼالهخ ؽشدّ٣خ ث ٖ٤رشً٤ض اُـبص/اُذخبٕ ٝهٔ٤خ خشط اُؾغّبط.
ٌٖٔ٣إٔ ٌٕٞ٣اُ َخشْ ط ػجبسح ػٖ ئشبسح اُزٔبصِ٤خ ) ٌٖٔ٣(A0هشاءرٜب ٖٓ خالٍ أُذاخَ اُزٔبصِ٤خ ُـ ، Arduinoأ ٌٖٔ٣ ٝإٔ
رٌ ٕٞئشبسح سهّٔ٤خ ) ٌٖٔ٣ (D0هشاءرٜب ٖٓ خالٍ أُذاخَ اُشهّٔ٤خ ٍ. Arduino
49
3.3.4تىصٍم انهىحخ ) ( SIM900 GSM/GPRSيغ االردٌُى)(Mega
اُشٌَ (ٞ٣ )5.4ػؼ رٞطُٞ َ٤ؽخ ٓ SIM900 GSM/GPRSغ االسد ٞ٘٣ػجش أُ٘بكز ]4[ . TR ٝ TX
ا ٕ٥ثؼذ إٔ ػشك٘ب ًَ ش٢ء ػٖ اُٞؽذح ٌ٘٘ٔ٣ ،ب إٔ ٗجذأ ثزضج٤زٜب ػِ Arduino ٠اثذأ ثزٞطٞٛ َ٤ائ ٢اُزظؾ٤ؼ ثٔٞطَ . U.FL
سثؾ ًبثَ ٖٓ U.FLخالٍ أؽذ كزؾبد اُزضج٤ذ ُالرظبٍ اُو.١ٞاُٞؽذح ػبدح ٓب رأرٓ ٢غ ٓ٘بكز سأط ِٓؾُ ّٞزُي ٗ .وّٞ
ثزٞط Rx ٝ Tx َ٤ك ٢اُٞؽذح اُ٘ٔط٤خ ئُ ٠اُشهْ اُشهٔ ٢سهْ ٝ 2سهْ 3ػِ ٠اُزٞاُ ٢ك Arduino ٢؛ ألٗ٘ب ع٘غزخذّ اُجشٗبٓظ
اُزغِغُِِ ٢زؾذس ئُ ٠اُٞؽذح .ثؼذ رُي ٗ ،و ّٞثزٞط VCC pin َ٤ئُ٘ٓ ٠لز V5ػِ ٠اسد GND ٝ ٞ٘٣ٝثبألسع.
50
اُشٌَ (ٞ٣ )6.4ػؼ رٞطُٞ َ٤ؽخ) ٓ (NEO-6M GPS Moduleغ االسد. (Mega)ٞ٘٣
رؾز ١ٞأُؾشًبد أُإاصسح ػِ ٠صالصخ أعالى :اُطبهخ ٝاألسػٝ ٢اإلشبسح ٌٕٞ٣ .عِي اُطبهخ أؽٔشً ا ثشٌَ ٗٔٞرع٣ٝ ، ٢غت
رٞط ِٚ٤ثٔ٘لز V5ػُِٞ ٠ؽخ .Arduinoاُغِي األسػ ٢ػبدح ٓب ٌٕٞ٣أعٞد أ ٝث٘٣ٝ ٢غت رٞط ِٚ٤ثٔ٘لز أسػ ٢ػُِٞ ٠ؽخ
ٌٕٞ٣ .Arduinoعِي اإلشبسح ػبدحً أطلش أ ٝثشروبُ ٢أ ٝأث٤غ ٣ٝغت رٞط ِٚ٤ثأؽذب أُ٘بكز اُخبطخ ة( )PWMػِ٠
اُِٞؽخ . Arduino
51
6.3.4تىصٍم جهبس اطتشؼبر ) ( HC-SR04يغ االردٌُى)(Mega
اُشٌَ ( )8.4اُزبُٞ٣ ٢ػؼ رٞط َ٤عٜبص اعزشؼبس ثبُٔٞعبد كٞم اُظٞر٤خ HC-SR04ئُ ٠اسد.ٞ٘٣ٝ
اُشٌَ (ٞ٣ )8.4ػؼ رٞط َ٤عٜبص اعزشؼبس ثبُٔٞعبد كٞم اُظٞر٤خ ٓغ االسد.(Mega)ٞ٘٣
اُشٌَ ( )9.4اُزبُٞ٣ ٢ػؼ رٞط َ٤ػظب اُزؾٌْ ( ) Joystick- Shieldئُ ٠اسد ٝ ٞ٘٣ٝرٔضَ دائشح اُزؾٌْ.
52
8.3.4تىصٍم انًحزكبد انخبصخ ثؼجالد انزثىد يغ دائزح لٍبدح انًحزكبد )(L298n
ال ٌٖٔ٣رٞطٓ َ٤ؾشى اُز٤بس أُغزٔش ٓغ االسدٓ ٞ٘٣جبششح ٝرُي الٕ أُؾشى ٣ؾزبط اُ ٢ر٤بس ػبُ ٢ال ٣غزط٤غ االسدٞ٘٣
رٞك٤شُٝ ،ُٚ ٙزُي عٞف ٗو ّٞثزٞط َ٤اُو٘طشح ( )H-Bridgeث ٖ٤االسد ٝ ٞ٘٣أُؾشى اٌُٜشث .)DC( ٢اُشٌَ (ٞ٣ )8.4ػؼ
رٞط َ٤أُؾشى اٌُٜشثٓ ٢غ ُٞؽخ ( )H-Bridgeؽ٤ش رْ رخظ٤ض ٓ٘بكز االسد ٞ٘٣ك ٢دائشح االعزوجبٍ } .{ 8 7 6 5 4 3
اُشٌَ (٣ )10.4ج ٖ٤رٞط َ٤أُؾشى اٌُٜشثٓ ٢غ االسد ٞ٘٣ػٖ ؽش٣ن (.)H-Bridge
)( a
53
(b)
.َٓع ثبٌُبٝ) ػ٘بطش أُشش11.4-a&b ( ٌَاُش
U(S( Y(S)
Soft wear Plant
Arduino Motors
Sensor
ultrasonic
54
5.4انجبَت انجزيجى فً انًشزوع
كٛ ٢زا أُششٝع رْ اعزخذاّ ُـخ ثشٓغخ ُ ٢ٛٝـخ (، )C Arduinoثبُ٘غجخ ٌُِٞد اُخبص ثبالسد ٞ٘٣عٞف ٞ٣صن ك ٠أُِؾن
ثبٌُبَٓ.
6.4فكـزح انؼًـم
٣ -1زْ رؾظ َ٤اُج٤بٗبد (هشاءح ؽغبط اُـبص) ػٖ ؽش٣ن ُٞؽخ أسد ٞ٘٣ك ٢دائشح االسعبٍ ثبُؼشثخ (٣ ٢ٌُ )Robotزْ أسعبٍ
ٗظبّ اُؾشًخ اُزار٤خ ٌٕٞ٣اُشثٞد ؽش اُؾشًخ ثذ ٕٝإٔ ٣ؾذس أططذاّ ٝرُي ثٞاعطخ ؽغبط اعزشؼبس )ٝ ( HC-SR04
أص٘بء اُزغ٣ ٍٞو ّٞاُشثٞد ثأعزٌشبف ٝاُزؾغظ ػٖ اُـبص ٝاُز٘ج٤خ ػٖ رُي ٝأسعبٍ ُِٜ SMSبرق ػ٘ذ أُغزوجَ.
ٌٖٔ٣ اُزؾٌْ ك ٢ه٤بدح اُشثٞد رؾٌْ ده٤ن ػ٘ذ اُؾبعخ ٝرُي ثٞاعطخ ػظب اُزؾٌْ ( ) Joystick- Shieldثأعزخذاّ رو٘٤خ
RFػٖ ؽش٣ن ٝؽذح (.)nrf24l01
55
-3رٞعذ ػِ ٢اُؼشثخ ًبٓ٤شا ٣زْ ػٖ ؽش٣وٜب ٓشاهجخ ٝأعزٌشبف أُغبساد ثٞاعطخ اُٜبرقٗٝ ,ظشا ُزٌِلخ ًبٓ٤شا ()Wifi
رْ أعزجذاُٜب ثٌبٓ٤شا اُٜبرق أُؾٔ ٍٞػ٘ذ اُشثٞد ُ٘وَ اُظٞس اُٛ ٠برق أخش ػ٘ذ دائشح
االعزوجبٍ (دائشح اُزؾٌْ)٣ ,زْ رُي ثأعزخذاّ رطج٤ن (ًٔ )IP Webcamب ك ٢اُخطٞاد األر٤خ :
56
رظٜش ُ٘ب اُٞاعًٔ ٜٚب ك ٢اُشٌَ ( ،)16.4ك٘أخذ اُؼ٘ٞإ أٌُزٞة ( ) http://192.168.1.3:8080صْ ٣زْ ًزبثز ٚك٢
اُ٣ٞت أُٞػؼ ثبُشٌَ ( )17.4صْ ٗؼـؾ ػِ )IP Webcam( ٠كزظٜش ُ٘ب اُٞاع ٚثبُشٌَ ( )18.4صْ ٗؼـؾ ػِ٠
ٖٓ ٌٖٔ٣ خالٍ اُجشٗبٓظ رشـ َ٤اُلالػ ٝرجذٌُِ َ٣بٓ٤ش األٓبٓٝ ٚ٤اُزوبؽ اُظٞس ٝرغغ َ٤اُل٤ذٞ٣اد ثٞاعطخ اُشٌَ (
.)19.4
57
اُشٌَ ( ٝ)18.4اعٜخ أخز٤بس اُؼشع.
58
-4اُؼشثخ ٓغٜضح ثأسثغ ٓؾشًبد (دكغ سثبػُِ )٢زـِت ػِ ٢طؼٞثخ أُغبساد ً ٝزُي صوَ اُؼشثخ ُزُي ٗؾزبط ٌَُ ٓؾشًٖ٤
٣ -5زْ رؾذ٣ذ أُٞهغ ُِشٝثٞد ثٞاعطخ ٝؽذح )NEO-6M GPS Module( GPS
59
انجـــــبة انخبيض
انخالصخ و انتىصٍبد
60
1.5انخالصخ
خالٍ اخزجبس دائشح أُششٝع اعز٘زغ٘ب االر: ٢
اُزٌِلخ اُؼبُ٤خ ٝاُغٞدح أُ٘خلؼخ ُجؼغ اُوطغ اإلٌُزش٤ٗٝخ ٓضَ ( Gps , Gsm , Arduino ، Wi-Fi Camera
)Uno&Mega , Batteryكٔضال ٓ Wi-Fi Cameraوبسٗخ ثزٌِلزٜب اُـبُ٤خ ئال إٔ عٞد ٙاُظٞسح اُز ٢رٞكشٛٝب سد٣ئخ ٓٔب
عؼِ٘ب ٗغزجذُٜب . Mobile Camera
ػذّ رٞكش ثؼغ اُوطغ اإلٌُزش٤ٗٝخ اُز ١عجت رأخ٤ش أُششٝع ٝرـ٤ش ثؼغ االكٌبس كٓ ٚ٤ضَ أُٞاػ اُطبهخ اُشٔغ٤خ .
أػبكخ خال٣ب شٔغ٤خ ُزض٣ٝذ اُؼشثخ ثبُطبهخ رذػْ اُجطبس٣خ ٗ ٌُٖ ٝظشا ُؾغْ اُؼشثخ ؿ٤ش ًبكٞ٣ ٢ط ٠ثزٞك٤ش ػشثخ ثؾغْ
أًجش.
ٗ أَٓ إٔ ٣زْ رط٣ٞش اُ٘ظبّ ثؾ٤ش ٣زْ أػبكخ ٓ٘ظٓٞخ ُوٞاػذ اُج٤بٗبد (ً )data baseأسش٤ق ُغٔ٤غ اُوشاءاد ٣زْ اُشعٞع
ئُٜ٤ب ُالعزلبدح .
ئػبكخ ثٞطِخ ُِشٝثٞد ٓزظِخ ٓغ ، GPSثؾ٤ش ٣و ّٞثززجغ ٗوبؽ ثخؾ ؽٝ ٍٞػشع ٓؾذد ٙك ٢أُ٘شئخ أُشاد ٖٓ
اُشٝثٞد اُزغ ٍٞداخِٜب .
ئػبكخ ٓو ١ٞئشبسح ُزو٣ٞخ اإلشبسح ُُٞ ٢ؽخ .SIM900 GSM
61
انًزاجـــــــــــغ
62
ؽخٞخؼغ ُِشخظخ اُؾشح أُلز٣ اٌُزبة-ّ 2014 ؽجؼخ- ثجغبؽخٞ٘٣ٝ ًزبة اسد- ػجذ هللا٠ِ٘ذط ػجذا هلل ػُٜٔ[ ا1]
.أُظذس
[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.
63
انًالحــــــــــــــك
انكىد انجزيجً
64
********************************************************************
#define Serial_Enable 0
#define SMS_Resend 3
#define MAX_SPEED_OFFSET 20
#define Smoke_Sensor_Pin_1 A0
boolean Smoke;
boolean Manual_Enable;
//*************************************** GPS
********************************************
#include <TinyGPS.h>
TinyGPS gps;
static void print_float(float val, float invalid, int len, int prec);
static void print_int(unsigned long val, unsigned long invalid, int len);
65
float flat, flon;
//****************************************************************************
************
//*************************************** GSM
********************************************
#include <GPRS_Shield_Arduino.h>
#include <SoftwareSerial.h>
#include <Wire.h>
#define PIN_TX 10
#define PIN_RX 11
#define POWER_PIN 9
char configuration[MESSAGE_LENGTH];
int messageIndex = 0;
int SMS_Counter;
//****************************************************************************
************
//*************************************** RF
*********************************************
#include <SPI.h>
#include <nRF24L01.h>
66
#include <RF24.h>
// Hardware configuration: Set up nRF24L01 radio on SPI bus (pins 10, 11, 12, 13) plus pins 7
&8
#define Length 31
byte buffer[Length];
//****************************************************************************
************
//************************************** Servo
*******************************************
#include <Servo.h>
Servo Sonar_Servo;
#define Sonar_Servo_Pin 2
//****************************************************************************
************
//************************************** Sonar
*******************************************
#include <NewPing.h>
#define TRIG_PIN A4
#define ECHO_PIN A5
67
#define MAX_DISTANCE 200
int readPing()
delay(70);
int cm = sonar.ping_cm();
if (cm == 0)
cm = 250;
#if Serial_Enable
Serial.println(cm);
#endif
return cm;
#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
GSM_Init();
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;
else
70
//Serial.println("Manual");
RF_Trancevier();
if (Manual_Enable)
if (pwm_forward > 0)
Car("FORWARD", pwm_forward);
Car("BACKWARD", pwm_backward);
Car("TURN_LEFT", pwm_left);
Car("TURN_RIGHT", pwm_right);
else
Car("STOP", 0);
if (camera_angle1 > 0)
Sonar_Servo.write(camera_angle1);
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();
//Serial.print("|"); Serial.println(flon);
if (Smoke)
Last_SMS_Time = Current_Millis;
72
{
#if Serial_Enable
#endif
Send_message(Phone_Number, SMS_Text);
SMS_Counter++;
if (SMS_Counter == SMS_Resend )
#if Serial_Enable
#endif
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);
//****************************************************************************
************
void Robot_Movement()
int distanceR = 0;
int distanceL = 0;
delay(40);
Car("STOP", 0);
delay(100);
Car("BACKWARD", MAX_SPEED);
delay(300);
Car("STOP", 0);
delay(200);
distanceR = lookRight();
delay(200);
distanceL = lookLeft();
delay(200);
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();
//****************************************************************************
************
int lookRight()
Sonar_Servo.write(Sonar_Servo_Angle[0]);
delay(500);
delay(100);
Sonar_Servo.write(Sonar_Servo_Angle[1]);
75
return distance;
int lookLeft()
Sonar_Servo.write(Sonar_Servo_Angle[2]);
delay(500);
delay(100);
Sonar_Servo.write(Sonar_Servo_Angle[1]);
return distance;
//****************************************************************************
************
/*
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"))
if (Direction.equals("BACKWARD"))
if (Direction.equals("TURN_RIGHT"))
77
if (Direction.equals("TURN_LEFT"))
if (Direction.equals("RIGHT"))
if (Direction.equals("LEFT"))
if (Direction.equals("STOP"))
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);
#if Serial_Enable
#endif
79
boolean OK = GSM.checkPowerUp();
if (!OK)
GSM.powerUpDown(POWER_PIN);
delay(1000);
GSM.GSMbusy();
#if Serial_Enable
#endif
//delay(3000);
//**********************Cheak GSM****************
void Cheak_GSM()
GSM_Time = Current_Millis;
boolean OK = true;
while (OK)
OK = GSM.checkPowerUp();
if (OK)
break;
Car("STOP", MAX_SPEED);
GSM_Init();
80
}
//***********************************************
//*******************Send Message********************
delay(2500);
//**************************************************
// -----------------------------------------------------------------------------
// RF
// -----------------------------------------------------------------------------
void RF_init()
radio.begin();
// Set the transmit power to lowest available to prevent power supply related issues
radio.setPALevel(RF24_PA_MIN);
radio.setPayloadSize(32);
radio.setDataRate(RF24_250KBPS);
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);
else
seprate_data(2);
select = !select;
radio.startListening();
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;
started_waiting_at = Current_Millis;
#if Serial_Enable
#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())
if (buffer[30] == 254) {
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
// -----------------------------------------------------------------------------
if (Select_Array == 1)
pointer = 0;
if (Select_Array == 2)
pointer = 15;
84
memcpy(m9, &Telemetry_Sender[pointer + 8], sizeof(int16_t));
int separete = i % 2;
int div = i / 2;
switch (div)
85
case 13: data_send_BYTE[i] = m14[separete]; break;
if (Select_Array == 1)
send_RF1[i] = data_send_BYTE[i];
if (Select_Array == 2)
send_RF2[i] = data_send_BYTE[i];
if (Select_Array == 1)
data_receive_BYTE[i] = receive_RF1[i];
pointer = 0;
if (Select_Array == 2)
86
data_receive_BYTE[i] = receive_RF2[i];
pointer = 15;
byte separete = i % 2;
int div = i / 2;
switch (div)
87
memcpy(&Telemetry_Receiver[pointer + 0], m1, sizeof(int16_t));
#if Serial_Enable
Serial.print(Telemetry_Receiver[i]); Serial.print("|");
Serial.println();
#endif
// -----------------------------------------------------------------------------
// GPS
88
// -----------------------------------------------------------------------------
void GPS_data()
/*
print_date(gps);
89
print_int(sentences, 0xFFFFFFFF, 10);
*/
do
while (Serial1.available())
gps.encode(Serial1.read());
static void print_float(float val, float invalid, int len, int prec)
if (val == invalid)
Serial.print('*');
Serial.print(' ');
else
Serial.print(val, prec);
int vi = abs((int)val);
90
flen += vi >= 1000 ? 4 : vi >= 100 ? 3 : vi >= 10 ? 2 : 1;
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
sz[len] = 0;
if (len > 0)
Serial.print(sz);
smartdelay(0);
int year;
91
unsigned long age;
if (age == TinyGPS::GPS_INVALID_AGE)
else
char sz[32];
Serial.print(sz);
smartdelay(0);
smartdelay(0);
// -----------------------------------------------------------------------------
// Smoke Sensor
// -----------------------------------------------------------------------------
boolean Smock_Sensor()
92
if (analogRead(Smoke_Sensor_Pin_1) >= Smoke_Treshold)
return true;
else
return false;
93