ﻣﺴﺘﻜﺸﻒ ﺳﻘﻮط اﻷﻣﻄﺎر ﺗﻮﻓﻴﺮ اﻟﻤﻴﺎه واﺳﺘﺨﺪاﻣﻬﺎ اﻟﺴﻠﻴﻢ أﻣﺮ ﻣﻬﻢ ﺟﺪا. ﻟﺬا ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺳﻨﻘﻮم ﺑﺴﺘﻜﺸﺎف ﻣﺎ إذا ﻛﺎن ﻫﻨﺎك أﻣﻄﺎر ﺣﺘﻰ ﻧﺘﻤﻜﻦ ﻣﻦ اﺗﺨﺎذ ﺑﻌﺾ اﻹﺟﺮاءات وﺣﻔﻆ ﻣﻴﺎه اﻷﻣﻄﺎر. ﻳﻤﻜﻦ اﺳﺘﺨﺪام ﻛﺎﺷﻒ ﻣﻴﺎه اﻷﻣﻄﺎر ﻓﻲ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻤﺠﺎﻻت ﻣﻨﻬﺎ ﻣﺠﺎل اﻟﺮي واﻟﺘﺸﻐﻴﻞ اﻵﻟﻲ ﻟﻠﻤﻨﺰل واﻻﺗﺼﺎﻻت واﻟﺴﻴﺎرات اﻟﺦ. اﻟﻘﻄﻊ اﻟﻤﻄﻠﻮﺑﺔ : ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺳﻨﻘﻮم ﺑﺈﺳﺘﺨﺪام اﻟﻘﻄﻊ اﻟﺘﺎﻟﻴﺔ :
ﺣﺴﺎس ﻛﺎﺷﻒ اﻷﻣﻄﺎر Arduino Uno R3
اﺳﻼك ﺗﻮﺻﻴﻞ ذﻛﺮ / أﻧﺜﻰ ) (Jumper Wires Male Female ﺣﺴﺎس ﻛﺎﺷﻒ اﻷﻣﻄﺎر : وﺣﺪة اﺳﺘﺸﻌﺎر اﻷﻣﻄﺎر ﻫﻲ أداة ﺳﻬﻠﺔ ﻟﻠﻜﺸﻒ ﻋﻦ ﻣﺎ إذا ﻛﺎن ﻫﻨﺎك أﻣﻄﺎر أم ﻻ. ﻫﺬه اﻟﻮﺣﺪة ﺗﺴﻤﺢ ﻟﻚ ﻗﻴﺎس اﻟﺮﻃﻮﺑﺔ ﻋﺒﺮ دﺑﺎﺑﻴﺲ اﻹﺧﺮاج اﻟﺘﻨﺎﻇﺮﻳﺔ ﻛﻤﺎ أﻧﻬﺎ ﺗﻮﻓﺮ ﻣﺨﺮج رﻗﻤﻲ ﻳﻌﻄﻲ ﻗﻴﻢ رﻗﻤﻴﺔ إﻋﺘﻤﺎدا ﻋﻠﻰ ﺗﺠﺎوز ﻗﻴﻤﺔ ﻣﻌﻴﻨﺔ ﻣﻦ اﻟﺮﻃﻮﺑﺔ. ﻳﺸﻤﻞ ﻫﺬا اﻟﻤﺴﺘﺸﻌﺮ اﻟﻮﺣﺪة اﻹﻟﻜﺘﺮوﻧﻴﺔ ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ ﻟﻮح ﻣﻄﺒﻮع ﺗﺠﻤﻊ ﻗﻄﺮات اﻷﻣﻄﺎر ﻋﻠﻴﻪ. ﻣﺪاﺧﻞ وﻣﺨﺎرج وﺣﺪة اﺳﺘﺸﻌﺎر اﻷﻣﻄﺎر : ﺗﻮﺿﺢ اﻟﺼﻮرة واﻟﺠﺪول أدﻧﺎه ﻣﻮﻗﻊ ووﺻﻒ ﻟﻠﻤﺨﺎرج واﻟﻤﺪاﺧﻞ واﻟﻀﻮاﺑﻂ واﻟﻤﺆﺷﺮات.
اﻟﻤﺨﺮج / اﻟﻮﺻﻒ اﻟﻤﺪﺧﻞ / اﻟﻀﺎﺑﻂ Vcc ﻣﺼﺪر اﻟﻄﺎﻗﺔ 5 ﻓﻮﻟﺖ GND ﻣﺼﺪر اﻟﻄﺎﻗﺔ اﻷرﺿﻲ أو اﻟﺴﺎﻟﺐ اﻟﻤﺨﺮج اﻟﺮﻗﻤﻲ ) (DO اﻟﻤﺨﺮج اﻟﺮﻗﻤﻲ : ﺗﻜﻮن اﻟﻘﻴﻤﺔ LOW ﻋﻨﺪﻣﺎ ﺗﺘﺠﺎوز اﻟﺮﻃﻮﺑﺔ ﻗﻴﻤﺔ ﻣﻌﻴﻨﺔ. اﻟﻤﺨﺮج اﻟﺘﻨﺎﻇﺮي ) (AO اﻟﻤﺨﺮج اﻟﺘﻨﺎﻇﺮي : ﻣﻦ ﺻﻔﺮ إﻟﻰ 5 ﻓﻮﻟﺖ. ﻳﺘﻢ اﻧﺨﻔﺎض اﻟﺠﻬﺪ ﻋﻨﺪ زﻳﺎدة اﻟﺮﻃﻮﺑﺔ. ﺿﺒﻂ اﻟﺤﺴﺎﺳﻴﺔ ﻣﻊ إﺗﺠﺎه ﻋﻘﺎرب اﻟﺴﺎﻋﺔ ﻳﻜﻮن أﻛﺜﺮ ﺣﺴﺎﺳﻴﺔ. وﻋﻜﺲ إﺗﺠﺎه ﻋﻘﺎرب اﻟﺴﺎﻋﺔ ﺗﻘﻞ اﻟﺤﺴﺎﺳﻴﺔ. ﻳﺘﻢ اﺳﺘﺨﺪام اﻟﻤﺨﺮج اﻟﺘﻨﺎﻇﺮي ﻟﻠﻜﺸﻒ ﻋﻦ ﻛﻤﻴﺔ ﻫﻄﻮل اﻷﻣﻄﺎر. ﻓﻌﻨﺪ ﺗﺠﻤﻊ ﻗﻄﺮات اﻷﻣﻄﺎر ﻋﻠﻰ اﻟﻠﻮح اﻟﻤﻄﺒﻮع ﻓﺈﻧﻬﺎ ﺗﺨﻠﻖ ﻣﺴﺎرات ﻣﻘﺎوﻣﺔ ﻣﻮازﻳﺔ. ﻟﺬﻟﻚ ﻋﻨﺪ زﻳﺎدة اﻷﻣﻄﺎر )إﻧﺨﻔﺎض اﻟﻤﻘﺎوﻣﺔ( ﺳﻴﺆدي إﻟﻰ إﻧﺨﺎض اﻟﺠﻬﺪ اﻟﻨﺎﺗﺞ ﻋﻠﻰ اﻟﻤﺨﺮج )أي ﻗﻴﻤﺔ LOW ﻋﻠﻰ اﻟﻤﺨﺮج اﻟﺮﻗﻤﻲ(. ﻋﻠﻰ اﻟﻌﻜﺲ ﺗﻤﺎﻣﺎ ﻓﻌﻨﺪ إﻧﺨﻔﺎض ﻛﻤﻴﺔ اﻷﻣﻄﺎر ﺳﻴﺆدي ذﻟﻚ إﻟﻰ زﻳﺎدة اﻟﺠﻬﺪ اﻟﻨﺎﺗﺞ ﻋﻠﻰ اﻟﻤﺨﺮج اﻟﺘﻨﺎﻇﺮي واﻟﺮﻗﻤﻲ. ﻋﻠﻰ ﺳﺒﻴﻞ اﻟﻤﺜﺎل إذا ﻛﺎﻧﺖ اﻟﻠﻮﺣﺔ ﺟﺎﻓﺔ ﺗﻤﺎﻣﺎ ﺳﻴﺴﺒﺐ ذﻟﻚ إﻟﻰ وﺻﻮل وﺣﺪة اﻹﺧﺮاج إﻟﻰ 5 ﻓﻮﻟﺖ. ﺗﻮﺻﻴﻞ اﻟﻤﺴﺘﺸﻌﺮ ﺑﺎﻷردوﻳﻨﻮ : ﻗﻢ ﺑﺎﻟﺘﻮﺻﻴﻞ ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺼﻮرة اﻟﺘﺎﻟﻴﺔ :
اﻟﺒﺮﻣﺠﺔ : ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺳﻴﺘﻢ اﻟﺘﺤﻘﻖ ﻣﺎ إذا ﻛﺎن ﻫﻨﺎﻟﻚ أﻣﻄﺎر وﻋﺮض ﻛﻤﻴﺔ اﻷﻣﻄﺎر اﻟﻤﺘﺴﺎﻗﺔ. ﻗﻢ ﺑﺮﻓﻊ اﻟﻜﻮد اﻟﺘﺎﻟﻲ إﻟﻰ ﻟﻮﺣﺔ اﻷردوﻳﻨﻮ : ] [/crayon-5d0bcf4e13f57690647622 ﻟﻤﺤﺔ ﻋﻦ اﻟﻜﻮد : أوﻻ ﻧﻘﻮم ﺑﺘﻌﺮﻳﻒ ﻣﺘﻐﻴﺮات إﻋﺘﻤﺎدا ﻋﻠﻰ ﻣﺎ ﺗﻢ ﺗﻮﺻﻴﻠﻪ ﺑﻴﻦ اﻟﻤﺴﺘﺸﻌﺮ واﻷردوﻳﻨﻮ. وﺗﻌﺮﻳﻒ ﻋﺪد ﻣﻦ اﻟﻤﺘﻐﻴﺮات اﻟﺘﻲ ﺳﻨﺤﺘﺎج اﺳﺘﺨﺪاﻣﻬﺎ ﻻﺣﻘﺎ ﺑﺎﻟﻜﻮد : ] [/crayon-5d0bcf4e13f5e011443315 ﻓﻲ دﻟﻪ )( setup ﻧﻘﻮم ﺑﺘﻬﻴﺌﺔ ﺷﺎﺷﺔ اﻹﺗﺼﺎل اﻟﺘﺴﻠﺴﻠﻲ وﺗﻌﺮﻳﻒ اﻟﻤﻨﻔﺬ رﻗﻢ 2 ﻛﻤﺪﺧﻞ : ] [/crayon-5d0bcf4e13f61125616361
ﻓﻲ دﻟﺔ )( loop ﻧﻘﻮم ﺑﻘﺮاءة اﻟﻘﻴﻤﺔ اﻟﺘﻨﺎﻇﺮﻳﺔ واﻟﺮﻗﻤﻴﺔ ] [/crayon-5d0bcf4e13f63637753383 واﻟﺘﺤﻘﻖ ﻣﺎ إذا ﻛﺎن ﻫﻨﺎك ﺳﻘﻮط أﻣﻄﺎر أم ﻻ. ] [/crayon-5d0bcf4e13f65683994327 ﺑﻌﺪ ذﻟﻚ ﺗﺘﻢ ﻃﺒﺎﻋﺔ اﻟﻨﺘﺎﺋﺞ ﻋﻠﻰ ﺷﺎﺷﺔ اﻹﺗﺼﺎل اﻟﺘﺴﻠﺴﻠﻲ. ] [/crayon-5d0bcf4e13f67420956273 ﻧﻈـﺎم اﻟـﺪﺧﻮل اﻵﻣـﻦ ﺑﺈﺳـﺘﺨﺪام RFID ﻓﻲ اﻟﺴﻨﻮات اﻷﺧﻴﺮة أﺻﺒﺤﺖ إﺟﺮاءات اﻟﺘﻌﺮف اﻵﻟﻲ ) (Auto-ID ﻣﻨﺘﺸﺮة ﻓﻰ اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﻘﻄﺎﻋﺎت ﻣﺜﻞ اﻟﺼﻨﺎﻋﺎت اﻟﺨﺪﻣﺎت وﻣﺠﺎل اﻟﺸﺮاء واﻟﺘﻮزﻳﻊ وأﻧﻈﻤﺔ اﻟﺤﻤﺎﻳﺔ. ﺣﻴﺚ ﺗﺴﺘﺨﺪم ﻫﺬه اﻟﺘﻘﻨﻴﺔ ﻟﺘﺄﻣﻴﻦ ﻣﻌﻠﻮﻣﺎت ﻛﺎﻓﻴﺔ وﻣﺴﺘﻤﺮة ﻋﻦ اﻟﻤﻨﺘﺠﺎت اﻟﺼﻨﺎﻋﻴﺔ أو ﻫﻮﻳﺔ اﻷﺷﺨﺎص. ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺳﻴﺘﻢ اﻟﺘﻌﺮف ﻋﻠﻰ ﻫﺬه اﻟﺘﻜﻨﻮﻟﻮﺟﻴﺎ واﻟﺘﻲ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﺗﻘﻨﻴﺔ ﺑﺪأت ﺑﺎﻹﻧﺘﺸﺎر ﺗﺴﻤﻰ.RFID ﻓﻤﺎ ﻫﺬه اﻟﺘﻘﻨﻴﺔ وﻣﺎﻫﻮ ﻣﺒﺪأ ﻋﻤﻠﻬﺎ وﻛﻴﻒ ﻳﺘﻢ اﺳﺘﺨﺪاﻣﻬﺎ
اﻟﻘﻄﻊ اﻟﻤﻄﻠﻮﺑﺔ اﻷدوات اﻟﺘﻲ ﺳﻴﺘﻢ اﺳﺘﺨﺪاﻣﻬﺎ ﻟﻬﺬا اﻟﻤﺸﺮوع : MFID-RC522 module
( Half size breadboard) ﻟﻮح ﺗﺠﺎرب ﺣﺠﻢ ﻣﺘﻮﺳﻂ Arduino Uno R3
اﺳﻼك ﺗﻮﺻﻴﻞ ذﻛﺮ / ذﻛﺮ ) (Jumper Wires Male Male ﺗﻘﻨﻴﺔ : RFID ﻫﻲ إﺧﺘﺼﺎر ﻟﻤﺼﻄﻠﺢ radio frequency identification وﻫﻮ ﺗﻌﺒﻴﺮﻋﺎم ﻟﻠﺘﻘﻨﻴﺎت اﻟﺘﻲ ﺗﺴﺘﺨﺪام ﺗﺮددات اﻟﺮادﻳﻮ ﻷﻏﺮاض ﺗﺤﺪﻳﺪ وﺗﺘﺒﻊ اﻟﻬﻮﻳﺔ. ﺣﻴﺚ أﻧﻬﺎ ﺗﺴﺘﺨﺪم اﻟﻤﺠﺎﻻت اﻟﻜﻬﺮوﻣﻐﻨﺎﻃﻴﺴﻴﺔ ﻟﺘﺤﺪﻳﺪ وﺗﺘﺒﻊ اﻟﻌﻼﻣﺎت ) (tags اﻟﻤﺮﻓﻘﺔ ﺑﺎﻷﺷﻴﺎء ﺗﻠﻘﺎﺋﻴﺎ. ﺣﻴﺚ ﺗﺤﺘﻮي ﻫﺬه اﻟﻌﻼﻣﺎت ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﻣﺨﺰﻧﺔ إﻟﻜﺘﺮوﻧﻴﺎ. وﺗﺴﺘﺨﺪم RFID tags ﻓﻲ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﺼﻨﺎﻋﺎت ﻋﻠﻰ ﺳﺒﻴﻞ اﻟﻤﺜﺎل ﻳﺘﻢ ﺗﻌﻠﻴﻖ RFID tag ﻋﻠﻰ اﻟﺴﻴﺎرات أﺛﻨﺎء اﻹﻧﺘﺎج ﻟﻴﺘﻢ اﺳﺘﺨﺪاﻣﻬﺎ ﻓﻲ ﺗﺘﺒﻊ ﺧﻂ اﻻﻧﺘﺎج واﻟﺘﺠﻤﻴﻊ أو ﻓﻲ ﻣﺠﺎل ﻣﺘﺎﺑﻌﺔ اﻻﻣﺘﻌﺔ ﺑﺎﻟﻤﻄﺎر ﻛﻤﺎ ﺗﺴﺘﺨﺪم ﻓﻲ أﺟﻬﺰة اﻟﺤﻤﺎﻳﺔ واﻻﻧﺬار. ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺳﻴﺘﻢ اﺳﺘﺨﺪام ﻧﻈﺎم RFID اﻟﻤﺜﺎل اﻟﺴﻤﺎح ﻷﺷﺨﺎص ﻣﻌﻴﻨﻴﻦ ﺑﺎﻟﺪﺧﻮل. ﻟﻔﺘﺢ اﻟﺒﺎب. ﻋﻠﻰ ﺳﺒﻴﻞ ﻳﺴﺘﺨﺪم ﻧﻈﺎم : RFID اﻟﻌﻼﻣﺎت ) (Tags اﻟﺘﻲ ﻳﺘﻢ ﺗﻌﻠﻴﻘﻬﺎ ﺑﺎﻟﻜﺎﺋﻨﺎت أو اﻷﺷﻴﺎء. ﻓﻲ ﻫﺬا اﻟﻤﺜﺎل ﻟﺪﻳﻨﺎ ﺳﻠﺴﻠﺔ اﻟﻤﻔﺎﺗﻴﺢ واﻟﺒﻄﺎﻗﺔ اﻟﻜﻬﺮوﻣﻐﻨﺎﻃﻴﺴﻴﺔ. ﻛﻞ ﻋﻼﻣﺔ
tag ﻟﻪ ﻫﻮﻳﺔ ﺧﺎﺻﻪ ﺑﻪ ).(UID اﻟﻘﺎرئ ﺟﻬﺎز ارﺳﺎل وإﺳﺘﻘﺒﺎل ﻓﻬﻮ ﻳﻘﻮم ﺑﺈرﺳﺎل إﺷﺎرات إﻟﻰ اﻟـ tag ﺛﻢ ﻳﻘﻮم ﺑﻘﺮاءة ردﻫﺎ. اﻟﻤﻮاﺻﻔﺎت اﻷﺳﺎﺳﻴﺔ ﻟﻠﻘﺎرئ و ﺑﻄﺎﻗﺎت اﻟـ : tag ﻣﺪﺧﻞ اﻟﺠﻬﺪ 3.3v: اﻟﺘﺮدد 13.56MHz : ﺗﺼﻤﻴﻢ ﻟﻮح اﻟﺘﺠﺎرب : ﻗﻢ ﺑﺘﻮﺻﻴﻞ اﻟﺪاﺋﺮة ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺼﻮرة اﻟﺘﺎﻟﻴﺔ :
ﺗﻢ ﺗﻮﺻﻴﻞ اﻟﻘﺎرئ ﺑﺎﻷردوﻳﻨﻮ ﻛﻤﺎ ﻳﻠﻲ : ﻗﺎرئ RFID اﻷردوﻳﻨﻮ SDA ﻣﻨﻔﺬ 10 SCK ﻣﻨﻔﺬ 13 MOSI ﻣﻨﻔﺬ 11 MISO ﻣﻨﻔﺬ 12 IRQ ﻻ ﻳﺘﻢ ﺗﻮﺻﻴﻠﻪ GND GND RST ﻣﻨﻔﺬ 9 3.3v ) 3.3v ﻻﺗﻘﻢ ﺑﺘﻮﺻﻴﻠﻪ إﻟﻰ (5v ﻗﺮاءة اﻟﺒﻴﺎﻧﺎت ﻣﻦ : RFID tag ﻗﺒﻞ ﻛﺘﺎﺑﺔ اﻟﺘﻌﻠﻴﻤﺎت اﻟﺒﺮﻣﺠﻴﺔ اﻟﻼزﻣﺔ ﺗﺤﺘﺎج إﻟﻰ ﺗﺤﻤﻴﻞ اﻟﻤﻜﺘﺒﺔ اﻻزﻣﺔ ﻟﻬﺬا اﻟﻤﺴﺘﺸﻌﺮ ﻣﻦ ﻫﻨـﺎ. ﺛﻢ ﻗﻢ ﺑﻔﻚ اﻟﻀﻐﻂ ﻋﻦ اﻟﻤﺠﻠﺪ اﻟﻤﻀﻐﻮط rfid-master وإﺿﺎﻓﺔ ﻫﺬه اﻟﻤﻜﺘﺒﺔ إﻟﻰ اﻟﻤﻜﺘﺒﺎت اﻟﻤﻮﺟﻮدة ﺑﺒﺮﻧﺎﻣﺞ اﻻردوﻳﻨﻮ. ﺑﻌﺪ اﻟﻘﻴﺎم
ﺑﺬﻟﻚ ﻗﻢ ﺑﺈﻋﺎدة ﺗﺸﻐﻴﻞ ﺑﺮﻧﺎﻣﺞ اﻻردوﻳﻨﻮ اﻟﺨﺎص ﺑﻚ. ﺑﻌﺪ أن ﺗﻢ ﺗﻮﺻﻴﻞ اﻟﺪاﺋﺮة اﻧﺘﻘﻞ إﻟﻰ ﻣﻠﻒ ) < (File أﻣﺜﻠﺔ ) DumpInfo < MFRC522 < (Examples ﺛﻢ ﻗﻢ ﺑﺘﺤﻤﻴﻞ اﻟﺘﻌﻠﻴﻤﺎت اﻟﺒﺮﻣﺠﻴﺔ. ﻫﺬا اﻟﻜﻮد ﺳﻮف ﻳﻜﻮن ﻣﺘﺎح ﻓﻲ واﺟﻬﺔ اﻻردوﻳﻨﻮ )ﺑﻌﺪ ﺗﺜﺒﻴﺖ ﻣﻜﺘﺒﺔ.(RFID ﺛﻢ ﻗﻢ ﺑﻔﺘﺢ اﻟﺸﺎﺷﺔ اﻟﺘﺴﻠﺴﻠﻴﺔ ﻳﺠﺐ أن ﺗﺮى ﺷﻴﺌﺎ ﻣﺜﻞ اﻟﺸﻜﻞ أدﻧﺎه : ﻗﻢ ﺑﺘﻘﺮﻳﺐ ﺑﻄﺎﻗﺔ أو ﺳﻠﺴﻠﺔ اﻟﻤﻔﺎﺗﻴﺢ RFID إﻟﻰ اﻟﻘﺎرئ. ﻗﻢ ﺑﺠﻌﻠﻬﺎ أﻗﺮب ﺣﺘﻰ ﻳﺘﻢ ﻋﺮض ﻛﺎﻓﺔ اﻟﻤﻌﻠﻮﻣﺎت.
ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺼﻮرة اﻟﺴﺎﺑﻘﺔ ﻫﺬه اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ﻳﻤﻜﻨﻚ ﻗﺮاءﺗﻬﺎ ﻣﻦ اﻟﺒﻄﺎﻗﺔ ﺑﻤﺎ ﻓﻲ ذﻟﻚ UID اﻟﺨﺎص ﺑﺎﻟﺒﻄﺎﻗﺔ واﻟﺬي ﺗﻢ ﺗﻤﻴﻴﺰه ﺑﺎﻟﻠﻮن اﻷﺻﻔﺮ. ﺣﻴﺚ ﻳﺘﻢ ﺗﺨﺰﻳﻦ اﻟﻤﻌﻠﻮﻣﺎت ﻓﻲ اﻟﺬاﻛﺮة اﻟﺘﻲ ﻳﺘﻢ ﺗﻘﺴﻴﻤﻬﺎ إﻟﻰ segments و. blocks ﻟﺪﻳﻚ 1024 ﺑﺎﻳﺖ ﻣﻦ ﺗﺨﺰﻳﻦ اﻟﺒﻴﺎﻧﺎت ﻣﻘﺴﻤﺔ إﻟﻰ.16sectors ﻗﻢ ﺑﻜﺘﺎﺑﺔ UID اﻟﺨﺎص ﺑﺒﻄﺎﻗﺘﻚ ﻷﻧﻚ ﺳﺘﺤﺘﺎج إﻟﻴﻪ ﻻﺣﻘﺎ. اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺳﻨﻘﻮم ﺑﻘﺮاءة ﺑﻄﺎﻗﺘﻴﻦ ﻣﺨﺘﻠﻔﺘﻴﻦ ﻓﺈذا ﻛﺎﻧﺖ اﻟﺒﻄﺎﻗﺔ ﺗﺤﻤﻞ UID اﻟﻤﺴﻤﻮح ﻟﻪ ﺑﺎﻟﺪﺧﻮل ﺳﻴﺘﻢ ﻗﺒﻮﻟﻬﺎ وإﻻ ﺳﻴﺘﻢ رﻓﻀﻬﺎ. ﻗﻢ ﺑﺘﺤﻤﻴﻞ اﻟﻜﻮد اﻟﺘﺎﻟﻲ إﻟﻰ اﻷردوﻳﻨﻮ :
] [/crayon-5d0bcf4e146ea128333229 ﻟﻤﺤﺔ ﻋﻦ اﻟﻜﻮد : اوﻻ ﻳﺘﻢ ﺗﻌﺮﻳﻒ ﻣﻨﺎﻓﺬ اﻷردوﻳﻨﻮ اﻋﺘﻤﺎدا ﻋﻠﻰ ﻣﺎ ﺗﻢ ﺗﻮﺻﻴﻠﻪ ﺑﺎﻟﻘﺎرئ ﺛﻢ ﻳﺘﻢ إﻧﺸﺎء ﻛﺎﺋﻦ : MFRC522 ] [/crayon-5d0bcf4e146ef118302697 ﻓﻲ داﻟﺔ )( setup ﻳﺘﻢ ﺗﻬﻴﺌﺔ ﺷﺎﺷﺔ اﻹﺗﺼﺎل اﻟﺘﺴﻠﺴﻠﻲ واﻟﺒﺮوﺗﻮﻛﻮل SPI اﻟﻤﺴﺘﺨﺪم ﻟﻨﻘﻞ اﻟﺒﻴﺎﻧﺎت وﺗﺒﺎدﻟﻬﺎ ﻣﻊ اﻟﻤﺘﺤﻜﻤﺎت. ] [/crayon-5d0bcf4e146f1487630640 ﻓﻲ داﻟﺔ )( loop ﻧﻘﻮم ﺑﻘﺮاءة ﻗﻴﻤﺔ اﻟـ UID ﺗﺪرﻳﺠﻴﺎ ﺑﺈﺳﺘﺨﺪام For loop وﻃﺒﺎﻋﺔ اﻟﻘﻴﻤﺔ ﺑﻨﻈﺎم اﻟﺴﺖ ﻋﺸﺮ ) (Hex وﻳﺘﻢ ﻓﻲ ﻛﻞ ﻣﺮة ﺗﺤﻮﻳﻞ ﻫﺬه اﻟﻘﻴﻤﺔ إﻟﻰ string وﺗﺨﺰﻳﻨﻬﺎ ﻓﻲ ﻣﺘﻐﻴﺮ concat ﻹﺳﺘﺨﺪاﻣﻪ ﻻﺣﻘﺎ ﻓﻲ ﻋﻤﻠﻴﺔ اﻟﻤﻘﺎرﻧﺔ. ] [/crayon-5d0bcf4e146f3101094734 ﺛﻢ ﻧﻘﻮم ﺑﻌﻤﻠﻴﺔ اﻟﺘﺤﻘﻖ ﻣﺎ إذا ﻛﺎﻧﺖ ﻗﻴﻤﺔ اﻟـ UDI اﻟﺘﻲ ﺗﻢ ﻗﺮاءﺗﻬﺎ ﺗﺴﺎوي ﻗﻴﻤﺔ اﻟـ UID اﻟﻤﺴﻤﻮح ﻟﻬﺎ ﺑﺎﻟﺪﺧﻮل أو ﻻ. ﻳﺠﺐ ﺗﻐﻴﻴﺮ اﻟـ UID ﻓﻲ اﻟﺸﺮط ) if (content.substring(1) == Your UID ﺣﺴﺐ ﻣﺎ ﺗﻢ ﻛﺘﺎﺑﺘﻪ ﺳﺎﺑﻘﺎ ﻓﻲ ﻣﺮﺣﻠﺔ ﻗﺮاءة اﻟﺒﻴﺎﻧﺎت. ] [/crayon-5d0bcf4e146f6150003003 وأﺧﻴﺮا ﺗﻢ إﻧﺸﺎء ﻧﻈﺎم ﻳﺘﺤﻜﻢ ﺑﻨﻈﺎم اﻟﺪﺧﻮل ﻣﻦ اﻟﺒﻮاﺑﺔ اﻹﻟﻜﺘﺮوﻧﻴﺔ ﺣﺴﺐ ﺻﻼﺣﻴﺎت اﻟﺒﻄﺎﻗﺔ اﻟﻤﻤﻨﻮﺣﺔ ﻟﻠﻤﺴﺘﺨﺪم ﺑﺈﺳﺘﺨﺪام ﺗﻘﻨﻴﺔ اﻟـ. RFID اﻟﺘﺤﻜﻢ ﻓﻲ ﻣﺤﺮك اﻟﺘﻴﺎر اﻟﻤﺴﺘﻤﺮ
ﺑﺈﺳﺘﺨﺪام L298 ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺳﻨﺘﻌﻠﻢ ﻓﻜﺮة ﻋﻤﻞ اﻟﺪارة اﻟﻤﺘﻜﺎﻣﻠﺔ.L298 وﻧﺘﻌﺮف ﻋﻠﻰ ﻛﻴﻔﻴﺔ اﺳﺘﻌﻤﺎﻟﻬﺎ ﻟﻠﺘﺤﻜﻢ ﻓﻲ ﺗﺸﻐﻴﻞ وإﻳﻘﺎف ﻣﺤﺮك اﻟﺘﻴﺎر اﻟﻤﺴﺘﻤﺮ وﻋﻜﺲ اﺗﺠﺎه ﺣﺮﻛﺘﻪ. ﺗﺴﺘﺨﺪم ﻫﺬه ﻓﻲ ﻣﺸﺎرﻳﻊ اﻟﺮوﺑﻮت ﻣﺜﻞ ﻣﺘﺘﺒﻊ اﻟﻤﺴﺎر. اﻟﻤﻜﻮﻧﺎت اﻟﻤﻄﻠﻮﺑﺔ Arduino Uno
L298 Motor Driver DC Motor DC Power Supply
Breadboard Wires : H-Bridge ﻫﻮ ﻋﺒﺎرة ﻋﻦ أرﺑﻌﺔ ﺗﺮاﻧﺰﺳﺘﻮر ﻣﻮﺻﻠﻴﻦ ﻣﻌﺎ ﺑﺸﻜﻞ ﻣﻌﻴﻦ ﻟﺘﻤﻜﻴﻦ اﻟﻤﺤﺮك ﻣﻦ اﻟﺪوران ﻓﻲ إﺗﺠﺎﻫﻴﻦ ﻣﺨﺘﻠﻔﻴﻦ.
ﻓﻜﺮة ﻋﻤﻠﻪ : اﻟﺼﻮرة اﻟﺘﺎﻟﻴﺔ ﺗﻮﺿﺢ ﻛﻴﻒ ﻳﺘﺮﻛﺐ اﻟـ :H-Bridge ﻋﻨﺪ ﺗﺸﻐﻴﻞ ﻛﻼ اﻟﺘﺮاﻧﺰﺳﺘﻮر 1 و 4 ﻳﻌﻤﻞ اﻟﻤﺤﺮك ﻧﺤﻮ اﻹﺗﺠﺎه اﻷول وﻋﻨﺪ ﺗﺸﻐﻴﻞ اﻟﺘﺮاﻧﺰﺳﺘﻮر 2 و 3 ﻳﻌﻤﻞ اﻟﻤﺤﺮك ﻓﻲ اﻹﺗﺠﺎه اﻟﻤﻌﺎﻛﺲ ﻟﻺﺗﺠﺎه اﻟﺴﺎﺑﻖ. وﺑﺬﻟﻚ ﻳﺘﻢ ﻋﻜﺲ اﻟﺪوران اﺗﻮﻣﺎﺗﻴﻜﻴﺎ دون اﻟﺤﺎﺟﺔ إﻟﻰ ﺗﻐﻴﻴﺮ اﻟﺘﻮﺻﻴﻞ ﻳﺪوﻳﺎ. ﻋﻠﻰ ﻋﻜﺲ ﻣﺤﺮك اﻟﺘﻴﺎر اﻟﻤﺴﺘﻤﺮ اﻟﺬي ﻳﺘﻢ ﺗﻌﻜﺲ اﺗﺠﺎﻫﻪ ﻋﻦ ﻃﺮﻳﻖ ﻋﻜﺲ اﻃﺮاف اﻟﻤﺤﺮك ﻣﻊ ﻣﺼﺪر اﻟﺘﻴﺎر اﻟﻜﻬﺮﺑﺎﺋﻲ. ﻓﻲ اﻟﺤﺎﻟﺔ اﻷوﻟﻰ ﺳﻴﺪور اﻟﻤﺤﺮك ﻣﻊ إﺗﺠﺎه ﻋﻘﺎرب اﻟﺴﺎﻋﺔ. وﺑﻌﻜﺲ ﺗﻮﺻﻴﻞ اﻷﻃﺮاف )ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺤﺎﻟﺔ اﻟﺜﺎﻧﻴﺔ( ﺳﻴﻨﻌﻜﺲ إﺗﺠﺎه اﻟﺪوران ﻟﻴﺼﺒﺢ ﻋﻜﺲ ﻋﻘﺎرب اﻟﺴﺎﻋﺔ.
L298 Motor Driver ﻫﻮ ﻋﺒﺎرة ﻋﻦ H-Bridge ﺗﻢ ﺗﺠﻤﻴﻌﻬﺎ ووﺿﻌﻬﺎ ﻣﻌﺎ ﻓﻲ IC ﻟﻴﺘﻢ اﺳﺘﺨﺪاﻣﻬﺎ ﺑﺴﻬﻮﻟﺔ. ﻳﻤﻜﻦ إﺳﺘﺨﺪام واﺣﺪ ﻣﻦ IC ﻟﻠﺘﺤﻜﻢ ﻓﻲ ﻣﺤﺮﻛﻴﻦ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ. ﻟﻜﻞ ﻣﺤﺮك ﻣﺨﺮج ﺧﺎص ﺑﻪ وأﻃﺮاف ﺗﺤﻜﻢ ﺧﺎﺻﺔ. اﻻﻃﺮاف اﻟﻤﺴﺘﺨﺪﻣﺔ Output A ﻃﺮﻓﻰ اﻟﻤﺤﺮك VCC ﻃﺮف اﻟﺒﻄﺎرﻳﺔ اﻟﻤﻮﺟﺐ 5v 5v ﻓﻰ اﻻردوﻳﻨﻮ GND gnd ﻓﻰ اﻻردوﻳﻨﻮ IN1 12 ﻓﻰ اﻻردوﻳﻨﻮ IN2 13 ﻓﻰ اﻻردوﻳﻨﻮ ﺷﺮح اﻟﺪارة ﻻ ﻳﻤﻜﻦ ﺗﻮﺻﻴﻞ ﻣﺤﺮك اﻟﺘﻴﺎر اﻟﻤﺴﺘﻤﺮ ﻣﺒﺎﺷﺮة ﻣﻊ اﻷردوﻳﻨﻮ. وذﻟﻚ ﻷن اﻟﻤﺤﺮك ﻳﺤﺘﺎج إﻟﻰ ﺗﻴﺎر ﻋﺎﻟﻲ ﻻ ﻳﺴﺘﻄﻴﻊ اﻷردوﻳﻨﻮ إﻋﻄﺎءه ﻟﻪ. ﻟﺬﻟﻚ ﺳﻨﻘﻮم ﺑﺈﺳﺘﺨﺪام اﻟـ L298 ﻛﺪاﺋﺮة ﺑﻴﻦ اﻻردوﻳﻨﻮ اﻟﺬي ﻳﻌﻤﻞ ﻣﻊ ﺗﻴﺎر
ﺻﻐﻴﺮة وﺑﻴﻦ اﻟﻤﺤﺮك اﻟﺬي ﻳﺤﺘﺎج إﻟﻰ ﺗﻴﺎر ﻋﺎﻟﻲ. ﻗﻢ ﺑﺘﻮﺻﻴﻞ اﻟﺪارة ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺼﻮرة : وﻟﻨﺘﻤﻜﻦ ﻣﻦ ﺗﺸﻐﻴﻞ اﻟﻤﺤﺮك ﻓﻲ إﺗﺠﺎﻫﻴﻦ ﻳﺘﻢ ﺗﺸﻐﻴﻞ اﻟﻄﺮف اﻷول ﻣﻦ اﻟـ L298 ﻟﻸردوﻳﻨﻮ ﻓﻲ اﻟﻤﺤﺮك ﻓﻴﺪور اﻟﻤﺤﺮك ﻓﻲ اﻹﺗﺠﺎه اﻷول. وﻋﻨﺪ ﺗﺸﻐﻴﻞ اﻟﻄﺮف اﻟﺜﺎﻧﻲ ﺳﻴﺪور ﺑﺎﻹﺗﺠﺎه اﻟﻤﻌﺎﻛﺲ.
اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ : ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺳﻴﺪور اﻟﻤﺤﺮك ﻓﻲ اﻹﺗﺠﺎه اﻷول ﻟﻤﺪة ﺛﻼث ﺛﻮان ﺛﻢ ﻳﺘﻮﻗﻒ ﻟﻤﺪة ﺛﻼث ﺛﻮان. ﺛﻢ ﻳﺪور اﻟﻤﺤﺮك ﺑﺎﻹﺗﺠﺎه اﻟﻤﻌﺎﻛﺲ ﻟﻤﺪرة ﺛﻼث ﺛﻮان ﺛﻢ ﻳﺘﻮﻗﻒ ﻟﻤﺪة ﺛﻼث ﺛﻮان أﺧﺮى. وﻫﻜﺬا ﺣﺘﻰ ﻳﺘﻢ ﻓﺼﻞ اﻟﺘﻴﺎر اﻟﻜﻬﺮﺑﺎﺋﻲ. ﻗﻢ ﺑﺘﺤﻤﻴﻞ اﻟﻜﻮد اﻟﺘﺎﻟﻲ إﻟﻰ اﻷردوﻳﻨﻮ : ] [/crayon-5d0bcf4e149a9114140030 ﺷﺮح اﻟﻜﻮد : ﻗﻤﻨﺎ ﺳﺎﺑﻘﺎ ﺑﺘﻮﺻﻴﻞ ﻃﺮﻓﻰ ﻛﻼ ﻣﻦ اﻟﺘﺮاﻧﺰﺳﺘﻮر ) (IN1,IN2 ﺑﻤﻨﻔﺬ 12 و 13 ﻟﻸردوﻳﻨﻮ. ﻟﺬﻟﻚ ﻗﻤﻨﺎ ﺑﺘﺴﻤﻴﺔ ﻛﻼ اﻟﻤﻨﻔﺬﻳﻦ ﻟﻸردوﻧﻮ ﺗﺒﻌﺎ ﻟﻤﺎ ﺗﻢ ﺗﻮﺻﻴﻠﻪ ﺑﺎﻟﺪارة. ﻧﻘﻮم ﺑﺘﻌﺮف اﻟﻤﺘﻐﻴﺮات IN1 و ) IN2 أﻃﺮاف اﻟـ H-bridge اﻟﻤﻮﺻﻠﻪ ﺑﺎﻻردوﻳﻨﻮ( ﻛﻤﺨﺮج. ] [/crayon-5d0bcf4e149ae827394796
ﻓﻲ داﻟﺔ )( loop ﻧﻘﻮم أوﻻ ﺑﺈﺳﺘﺪﻋﺎء اﻟﺪاﻟﺔ )(. motor_forward ﺗﻘﻮم ﻫﺬه اﻟﺪاﻟﺔ ﺑﺘﺸﻐﻴﻞ اﻟﻤﺤﺮك ﻣﻊ اﺗﺠﺎه ﻋﻘﺎرب اﻟﺴﺎﻋﺔ ﻟﻤﺪة 3 ﺛﻮان )). (delay(3000 ﺛﻢ ﻧﻘﻮم ﺑﺎﺳﺘﺨﺪام اﻟﺪاﻟﺔ )( motor_stop ﻹﻳﻘﺎف اﻟﻤﺤﺮك ﻋﻦ اﻟﻌﻤﻞ ﻟﻤﺪة 3 ﺛﻮان. ﺛﻢ ﻳﺘﻢ ﻋﻜﺲ اﺗﺠﺎه ﺣﺮﻛﺔ اﻟﻤﺤﺮك ﺑﺎﺳﺘﺨﺪام اﻟﺪاﻟﺔ )( motor_reverse ﻟﻤﺪة 3 ﺛﻮان. وﻣﻦ ﺛﻢ ﻳﻌﻮد ﻟﻴﻜﺮر ﻧﻔﺲ ﻫﺬه اﻟﻤﻬﻤﺔ ﻣﻦ اﻟﺒﺪاﻳﺔ ﻣﺮة أﺧﺮى. ] [/crayon-5d0bcf4e149b0935716431 اﻟﺪﻟﺔ )( motor_forward ﺗﻘﻮم ﺑﺘﺤﺮﻳﻚ اﻟﻤﺤﺮك ﺑﺈﺗﺠﺎه ﻋﻘﺎرب اﻟﺴﺎﻋﺔ. ﺗﺘﻢ ﻫﺬه اﻟﻌﻤﻠﻴﺔ ﻋﻦ ﻃﺮﻳﻖ ﺟﻌﻞ ﻗﻴﻤﺔ IN1 ﻟﻠﻤﺮﺣﻞ HIGH واﻟﻄﺮف اﻵﺧﺮ. LOW ] [/crayon-5d0bcf4e149b2775956575 ﺗﻌﻤﻞ ﻫﺬه اﻟﺪاﻟﺔ )( motor_reverse ﺑﺸﻜﻞ ﻣﺸﺎﺑﻪ ﻟﻠﺪاﻟﺔ اﻟﺴﺎﺑﻘﺔ إﻻ أﻧﻬﺎ ﺗﻌﻜﺲ اﺗﺠﺎه دوران اﻟﻤﺤﺮك. ﺗﺘﻢ ﻫﺬه اﻟﻌﻤﻠﻴﺔ ﻋﻦ ﻃﺮﻳﻖ ﺟﻌﻞ ﻗﻴﻤﺔ IN2 ﻟﻠﻤﺮﺣﻞ HIGH و IN1 ﻗﻴﻤﺔ. LOW ] [/crayon-5d0bcf4e149b4800660253 داﻟﺔ )( motor_stop ﺗﻘﻮم ﺑﺈﻳﻘﺎف اﻟﻤﺤﺮك ﺗﻤﺎﻣﺎ ﻋﻦ اﻟﺤﺮﻛﺔ ﻋﻦ ﻃﺮﻳﻖ ﺟﻌﻞ ﻗﻴﻤﺔ ﻛﻼ اﻟﻄﺮﻓﻴﻦ LOW ﻓﻼ ﻳﺼﻞ اﻟﺘﻴﺎر ﻟﻠﻤﺤﺮك ﻓﻴﺘﻮﻗﻒ. ] [/crayon-5d0bcf4e149b6134526758 ﻟﻌﺒﺔ Whac-A-Mole ﺳﻨﻘﻮم ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺑﺒﺮﻣﺠﺔ ﻟﻌﺒﺔ Whac-A-mole اﻟﻤﺴﻠﻴﺔ ﻣﻦ ﺧﻼل اﺳﺘﺨﺪام ﻋﺼﺎ اﻟﺘﺤﻜﻢ و RGB وﺣﺴﺎب اﻟﻨﻘﺎط وﻋﺮﺿﻬﺎ ﻋﻠﻰ وﺣﺪة ﻋﺮض -7 segment
اﻷدوات اﻟﻤﻄﻠﻮﺑﺔ Inventor Kit
اﻟﻘﻄﻊ اﻟﻤﺴﺘﺨﺪﻣﺔ ﺳﻨﺴﺘﺨﺪم ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع اﻟﻘﻄﻊ اﻟﺘﺎﻟﻴﺔ : ﻃﺮﻳﻘﺔ اﻟﺘﻮﺻﻴﻞ
اﻟﻤﻨﻔﺬ اﻟﻘﻄﻌﺔ اﻻﻟﻜﺘﺮوﻧﻴﺔ ﻣﻨﻔﺬ 3 RGB LED ﻣﻨﻔﺬ 4 segment-7 ﻣﻨﻔﺬ 6 ﻋﺼﺎ اﻟﺘﺤﻜﻢ joystick اﻟﻔﻜﺮة اﻟﺒﺮﻣﺠﻴﺔ LED 4 ﺳﻨﻘﻮم ﺑﺒﺮﻣﺠﺘﻬﺎ ﻟﺘﺘﻢ إﺿﺎءﺗﻬﺎ ﺗﺤﺘﻮي وﺣﺪة RGB ﻋﻠﻰ ﻋﺸﻮاﺋﻴﺎ وﺑﺸﻜﻞ ﺳﺮﻳﻊ وﻧﻼﺣﻖ ﻫﺬه اﻹﺿﺎءة ﻋﺒﺮ ﻋﺼﺎ اﻟﺘﺤﻜﻢ ﻋﻨﺪ ﺗﻮاﻓﻖ ﺗﻮﺟﻴﻪ اﻟﻌﺼﺎ ﺑﺎﺗﺠﺎه LED اﻟﻤﻀﺎءة ﻳﺘﺤﻮل ﻟﻮﻧﻬﺎ ﻣﻦ اﻷزرق إﻟﻰ اﻷﺣﻤﺮ وﺗﺴﺠﻴﻞ ﻧﻘﻄﺔ ﺗﻈﻬﺮ ﻋﻠﻰ وﺣﺪة ﻋﺮض segment-7 ﺗﺘﺤﺮك ﻋﺼﺎ اﻟﺘﺤﻜﻢ ﻓﻲ اﺗﺠﺎﻫﺎت ﻣﺨﺘﻠﻔﺔ ﻧﺤﺘﺎج ﻻﺧﺘﺒﺎرﻫﺎ وﺗﺤﺪﻳﺪ اﻟﻘﻴﻤﺔ اﻟﺘﻲ ﺗﻌﻄﻴﻬﺎ ﻓﻲ ﻛﻞ اﺗﺠﺎه. ﻧﻘﻮم ﺑﺘﻮﺻﻴﻞ ﻋﺼﺎ اﻟﺘﺤﻜﻢ ﺑﺎﻟﻠﻮﺣﺔ Orion ﻓﻲ اﻟﻤﻨﻔﺬ 6 واﺳﺘﺨﺪام اﻟﻜﻮد اﻟﺘﺎﻟﻲ ﻟﻌﺮض اﻟﻘﺮاءة ﻋﻠﻰ اﻟﺸﺎﺷﺔ
ﻗﻢ ﺑﺘﺤﺮﻳﻚ ﻋﺼﺎ اﻟﺘﺤﻜﻢ ﻓﻲ اﺗﺠﺎه Y أﻋﻠﻰ وأﺳﻔﻞ وﻓﻲ اﺗﺠﺎه X ﻳﻤﻴﻨﺎ وﻳﺴﺎر ا وﺗﺴﺠﻴﻞ اﻟﻘﻴﻤﺔ اﻟﺘﻲ ﺗﻌﻄﻴﻬﺎ ﻓﻲ ﻛﻞ اﺗﺠﺎه ﻟﻨﺴﺘﺨﺪم ﻫﺬه اﻟﻘﻴﻢ ﻓﻲ ﺑﺮﻣﺠﺔ اﻟﻠﻌﺒﺔ ﺑﺮﻣﺠﺔ اﻟﻤﺸﺮوع ﺳﻨﺤﺘﺎج ﺑﺪاﻳﺔ ﻻﻧﺸﺎء 4 ﻣﺘﻐﻴﺮات اﻟﻤﺘﻐﻴﺮ اﻟﻮﻇﻴﻔﺔ LED ﻳﺸﻴﺮ إﻟﻰ رﻗﻢ LED ﻓﻲ وﺣﺪة RGB ﻟﺘﺴﺠﻴﻞ اﻟﻨﻘﺎط ﻋﻨﺪ Score اﻟﺘﺼﻮﻳﺐ X ﻟﺘﺨﺰﻳﻦ ﻗﻴﻤﺔ ﺣﺮﻛﺔ ﻋﺼﺎ اﻟﺘﺤﻜﻢ ﻓﻲ اﺗﺠﺎه X
Y ﻟﺘﺨﺰﻳﻦ ﻗﻴﻤﺔ ﺣﺮﻛﺔ ﻋﺼﺎ اﻟﺘﺤﻜﻢ ﻓﻲ اﺗﺠﺎه y ﻧﺒﺪأ اﻟﻜﻮد ﺑﺘﻌﻴﻴﻦ ﻗﻴﻤﺔ RGB LED وﺣﺪة segment-7 ﻋﻠﻰ ﻗﻴﻤﺔ 0 وﺗﻌﻴﻴﻦ اﻟﻌﺪاد ﻋﻠﻰ 0 داﺧﻞ ﺣﻠﻘﺔ Forever ﻧﻘﻮم ﺑﺘﻌﻴﻴﻦ اﻟﻤﺘﻐﻴﺮ LED ﺑﺤﻴﺚ ﺗﺘﻐﻴﺮ اﻟﻘﻴﻤﺔ ﺑﺼﻮرة ﻋﺸﻮاﺋﻴﺔ ﻣﻦ 0 4 وﻓﻖ ﻋﺪد LED أو ﻣﻦ 8-0 ﻟﺘﻘﻠﻴﻞ ﺳﺮﻋﺔ اﻟﺘﻐﻴﺮ ﻓﻲ اﻹﺿﺎءة ﺛﻢ ﻧﻀﻊ أﻣﺮ إﺿﺎءة LED ﺑﺤﻴﺚ ﺗﻀﺎء ﺣﺴﺐ اﻟﺮﻗﻢ اﻟﻌﺸﻮاﺋﻲ ﻛﻞ ﻣﺮة ﻧﻘﻮم ﺑﺘﻌﻴﻴﻦ اﻟﻤﺘﻐﻴﺮﻳﻦ X و Y ﻋﻠﻰ ﺣﺮﻛﺔ ﻋﺼﺎ اﻟﺘﺤﻜﻢ Joystick
ﻧﺴﺘﺨﺪم ﺟﻤﻠﺘﻴﻦ ﺷﺮﻃﻴﺘﻴﻦ if..then ﺑﺤﻴﺚ إذا ﻛﺎﻧﺖ ﻗﻴﻤﺔ LED ﺗﺴﺎوي ) 1 أي LED1 ﻣﻀﺎءة( وﺗﻢ ﺗﺼﻮﻳﺐ ﻋﺼﺎ اﻟﺘﺤﻜﻢ ﻓﻲ اﺗﺠﺎه ) LED ﻧﻀﻊ ﻗﻴﻤﺔ Y وﻓﻖ اﻟﻘﻴﻤﺔ اﻟﺘﻲ ﺣﺼﻠﻨﺎ ﻋﻠﻴﻬﺎ ﻋﻨﺪ اﺧﺘﺒﺎر ﻋﺼﺎ اﻟﺘﺤﻜﻢ( ﻧﻀﻴﻒ اﻷﻣﺮ ﺑﺤﻴﺚ ﺗﺘﻐﻴﺮ اﻹﺿﺎءة ﻣﻦ أزرق إﻟﻰ أﺣﻤﺮ وﺗﺴﺠﻴﻞ ﻧﻘﻄﺔ ﻓﻲ اﻟﻤﺘﻐﻴﺮ Score وﻋﺮض ﻋﺪد اﻟﻨﻘﺎط ﻋﻠﻰ وﺣﺪة segment-7
ﻳﺘﻢ ﻛﺘﺎﺑﺔ اﻷﻛﻮاد ﻟﻼﺗﺠﺎﻫﺎت و LED اﻷﺧﺮى ﺑﻨﻔﺲ اﻟﻄﺮﻳﻘﺔ ﻣﻊ وﺿﻊ اﻟﻘﻴﻢ اﻟﻤﻨﺎﺳﺒﺔ ﻗﻢ ﺑﺎﻹﻃﻼع ﻋﻠﻰ اﻟﻜﻮد ﻛﺎﻣﻼ :
وﻟﻠﻤﺰﻳﺪ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ﺣﻮل اﻟﻜﻮد ﻳﻤﻜﻨﻚ ﻣﺮاﺟﻌﺔ اﻷواﻣﺮ اﻟﺒﺮﻣﺠﻴﺔ. درس ﺟﻮﻟﺔ ﺣﻮل روﺑﻮت ﺗﺘﺒﻊ اﻟﻤﺴﺎر ﻣﻦ أﺷﻬﺮ اﻟﻤﺴﺎﺑﻘﺎت ﻓﻲ ﻋﺎﻟﻢ اﻟﺮوﺑﻮت ﺑﺮﻣﺠﺔ روﺑﻮت ﻳﺘﺘﺒﻊ اﻟﻤﺴﺎر ﺳﻨﻘﻮم ﻓﻲ ﻫﺬا اﻟﺪرس ﺑﺘﻌﻠﻢ ﻛﻴﻔﻴﺔ ﺑﺮﻣﺠﺔ روﺑﻮت ﻳﺘﺘﺒﻊ اﻟﻤﺴﺎرات اﻟﻤﺨﺘﻠﻔﺔ ﺑﺪﻗﺔ ﻋﺎﻟﻴﺔ. اﻷدوات اﻟﻤﻄﻠﻮﺑﺔ
mbot Kit أو mbot Ranger Kit
ﻣﺴﺘﺸﻌﺮ ﺗﺘﺒﻊ اﻟﻤﺴﺎر Line Follower ﺗﺘﻜﻮن وﺣﺪة ﺗﺘﺒﻊ اﻟﻤﺴﺎر ﻣﻦ ﻣﺴﺘﺸﻌﺮﻳﻦ ﻛﻞ ﻣﺴﺘﺸﻌﺮ ﻳﺘﻜﻮن ﻣﻦ ﻣﺼﺪر ﻟﻸﺷﻌﺔ ﺗﺤﺖ ﺣﻤﺮاء ) (LED وﻣﺴﺘﻘﺒﻞ ﻟﻬﺬه اﻷﺷﻌﺔ ﻓﻜﺮة ﻋﻤﻞ ﻣﺴﺘﺸﻌﺮ ﺗﺘﺒﻊ اﻟﻤﺴﺎر ﺗﻘﻮم ﻋﻠﻰ إﻃﻼق أﺷﻌﺔ ﺗﺤﺖ ﺣﻤﺮاء ورﺻﺪ اﻧﻌﻜﺎﺳﻬﺎ ﻋﻨﺪ ﺳﻴﺮ اﻟﺮوﺑﻮت ﻋﻠﻰ اﻷﺳﻄﺢ اﻟﺒﻴﻀﺎء ﻓﺈن ﻣﻌﻈﻢ اﻷﺷﻌﺔ ﺗﻨﻌﻜﺲ ﻣﻦ ﻋﻠﻰ اﻟﺴﻄﺢ وﻳﺘﻢ رﺻﺪﻫﺎ أﻣﺎ ﻋﻨﺪ ﺳﻴﺮ اﻟﺮوﺑﻮت ﻋﻠﻰ اﻷﺳﻄﺢ اﻟﺴﻮداء ﻓﺈن اﻟﻠﻮن اﻷﺳﻮد ﻳﻤﺘﺺ ﻣﻌﻈﻢ اﻷﺷﻌﺔ ﻓﻼ ﻳﻨﻌﻜﺲ إﻻ ﻣﻘﺪار ﺑﺴﻴﻂ ﻣﻨﻬﺎ إﻟﻰ اﻟﻤﺴﺘﺸﻌﺮ اﻷﻣﺮ اﻟﺒﺮﻣﺠﻲ ﻟﻘﺮاءة وﺣﺪة ﺗﺘﺒﻊ اﻟﻤﺴﺎر ﻳﻌﻄﻲ ﻗﻴﻢ ﺑﻴﻦ 3 0 ﺑﻨﺎء ﻋﻠﻰ اﻟﺤﺎﻻت اﻟﺘﺎﻟﻴﺔ اﻟﺤﺎﻻت ﻛﻼ اﻟﻤﺴﺘﺸﻌﺮﻳﻦ ﻋﻠﻰ اﻟﻠﻮن اﻷﺳﻮد ﻗﻴﻤﺔ اﻟﻘﺮاءة 0 اﻟﻤﺴﺘﺸﻌﺮ اﻷﻳﺴﺮ ﻓﻘﻂ ﻋﻠﻰ اﻟﻠﻮن اﻷﺳﻮد 1 اﻟﻤﺴﺘﺸﻌﺮ اﻷﻳﻤﻦ ﻓﻘﻂ ﻋﻠﻰ اﻟﻠﻮن اﻷﺳﻮد 2 ﻛﻼ اﻟﻤﺴﺘﺸﻌﺮﻳﻦ ﻋﻠﻰ اﻟﻠﻮن اﻷﺑﻴﺾ 3 اﻟﻤﺴﺘﺸﻌﺮ اﻷﻳﻤﻦ اﻟﻤﺴﺘﺸﻌﺮ اﻷﻳﺴﺮ
اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ ﻟﺒﺮﻣﺠﺔ روﺑﻮت mbot ﻧﺴﺘﺨﺪم اﻷﻣﺮ اﻟﺒﺮﻣﺠﻲ ﻟﻜﺘﺎﺑﺔ اﻟﻜﻮد ﻋﻠﻰ ﻟﻮﺣﺔ mcore ﻧﺴﺘﺨﺪم اﻟﺠﻤﻠﺔ اﻟﺸﺮﻃﻴﺔ if.. then.. else ﺑﺤﻴﺚ إذا ﻛﺎن ﻣﺴﺘﺸﻌﺮ ﺗﺘﺒﻊ اﻟﻤﺴﺎر ﻋﻠﻰ اﻟﻠﻮن اﻷﺳﻮد )أي اﻟﻘﻴﻤﺔ ﺗﺴﺎوي ( 0 ﻳﺘﺤﺮك اﻟﺮوﺑﻮت ﻟﻸﻣﺎم ﺑﺴﺮﻋﺔ ﺗﺴﺎوي 100 وإذا ﻛﺎﻧﺖ اﻟﻤﺴﺘﺸﻌﺮ اﻷﻳﻤﻦ ﻋﻠﻰ اﻟﺨﻂ اﻷﺳﻮد واﻟﻤﺴﺘﺸﻌﺮ اﻷﻳﺴﺮ ﻋﻠﻰ اﻟﺨﻂ اﻷﺑﻴﺾ ﻳﺘﺤﺮك اﻟﺮوﺑﻮت إﻟﻰ اﻟﻴﻤﻴﻦ واﻟﻌﻜﺲ. ﻟﻠﻤﺰﻳﺪ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ﺣﻮل اﻟﻜﻮد ﻳﻤﻜﻨﻚ ﻣﺮاﺟﻌﺔ درس ﺟﻮﻟﺔ ﺣﻮل اﻷواﻣﺮ اﻟﺒﺮﻣﺠﻴﺔ.
اﺳﺘﺨﺪام اﻟﺘﻄﺒﻴﻖ ﻳﻤﻜﻦ ﻛﺬﻟﻚ اﺳﺘﺨﺪام روﺑﻮت Ranger ﻛﺮوﺑﻮت ﻣﺘﺘﺒﻊ ﻟﻠﻤﺴﺎر ﻋﺒﺮ ﺗﻄﺒﻴﻖ MakeBlock ﺑﻌﺪ ﻓﺘﺢ اﻟﺘﺘﻄﺒﻴﻖ ورﺑﻄﻪ ﺑﺎﻟﺮوﺑﻮت ﻗﻢ ﺑﺎﺧﺘﻴﺎر Ranger ﺛﻢ Line following اﻟﺘﺤﻜـﻢ ﻓـﻲ ﻣﺤـﺮك ﺗﻴـﺎر ﻣﺴـﺘﻤﺮ ﺑﺎﺳﺘﺨﺪام H-Bridge ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺳﻨﺘﻌﻠﻢ ﻓﻜﺮة ﻋﻤﻞ ال H-Bridge وﻛﻴﻔﻴﺔ اﺳﺘﻌﻤﺎﻟﻪ ﻟﻠﺘﺤﻜﻢ ﻓﻲ ﺗﺸﻐﻴﻞ واﻳﻘﺎف ﻣﺤﺮك ﺗﻴﺎر ﻣﺴﺘﻤﺮ واﻳﻀﺎ ﻋﻜﺲ اﺗﺠﺎه ﺣﺮﻛﺘﻪ. ﻗﺪ ﻳﺴﺘﺨﺪم ﻓﻲ روﺑﻮت ﻣﺘﺘﺒﻊ اﻟﺨﻂ او اي روﺑﻮت ﻧﺤﺘﺎج ﻟﻠﺘﺤﻜﻢ ﻓﻲ اﺗﺠﺎه ﺣﺮﻛﺘﻪ
اﻟﻤﻜﻮﻧﺎت اﻟﻤﻄﻠﻮﺑﺔ Arduino Uno 1K Resistor
2n2222 NPN Transistor DC Motor DC Power Supply
Breadboard Wires اﻟﺘﺮاﻧﺰﺳﺘﻮر : Transistor ﻫﻮ ﻋﺒﺎرة ﻋﻦ ﻣﻔﺘﺎح إﻟﻜﺘﺮوﻧﻲ ﻳﺘﻢ اﻟﺘﺤﻜﻢ ﻓﻲ ﻓﺘﺤﻪ وإﻏﻼﻗﻪ إﻟﻜﺘﺮوﻧﻴﺎ. وﻳﺘﺮﻛﺐ اﻟﺘﺮاﻧﺰﺳﺘﻮر ﻣﻦ ﻣﻮاد ﺷﺒﻪ ﻣﻮﺻﻠﺔ وﻟﻪ ﺛﻼث أﻃﺮاف اﻟﻄﺮف اﻷول ﻳﺴﻤﺔ ﻣﺸﻊ ) (emitter واﻟﺜﺎﻧﻲ ﻳﺴﻤﻰ اﻟﻘﺎﻋﺪة ) (base
واﻟﺜﺎﻟﺚ ﻳﻤﺴﻰ اﻟﻤﺠﻤﻊ ). (collector ﻓﻜﺮة ﻋﻤﻠﻪ : ﻋﻨﺪ ﻣﺮور اﻟﺘﻴﺎر إﻟﻰ ﻃﺮف اﻟﻘﺎﻋﺪة ﻳﺼﺒﺢ اﻟﺘﺮاﻧﺰﺳﺘﻮر ﻓﻲ ﺣﺎﻟﺔ ﺗﻮﺻﻴﻞ وﺳﻴﺘﻢ ﻣﺮور اﻟﺘﻴﺎر ﺑﻴﻦ اﻟﻤﺸﻊ واﻟﻤﺠﻤﻊ. وﻋﻨﺪ ﻗﻄﻊ اﻟﺘﻴﺎر ﻳﺼﺒﺢ ﻓﻲ ﺣﺎﻟﺔ اﻟﻘﻄﻊ أي ﻻ ﻳﺘﻢ ﻣﺮور أي ﺗﻴﺎر ﺑﻴﻦ اﻟﻤﺸﻊ واﻟﻤﺠﻤﻊ. : H-Bridge ﻫﻮ ﻋﺒﺎرة ﻋﻦ أرﺑﻌﺔ ﺗﺮاﻧﺰﺳﺘﻮر ﻣﻮﺻﻠﻴﻦ ﻣﻌﺎ ﺑﺸﻜﻞ ﻣﻌﻴﻦ ﻟﺘﻤﻜﻴﻦ اﻟﻤﺤﺮك ﻣﻦ اﻟﺪوران ﻓﻲ إﺗﺠﺎﻫﻴﻦ ﻣﺨﺘﻠﻔﻴﻦ. ﻓﻜﺮة ﻋﻤﻠﻪ : اﻟﺼﻮرة اﻟﺘﺎﻟﻴﺔ ﺗﻮﺿﺢ ﻛﻴﻒ ﻳﺘﺮﻛﺐ اﻟـ :H-Bridge
ﻋﻨﺪ ﺗﺸﻐﻴﻞ ﻛﻼ اﻟﺘﺮاﻧﺰﺳﺘﻮر 1 و 4 ﻳﻌﻤﻞ اﻟﻤﺤﺮك ﻧﺤﻮ اﻹﺗﺠﺎه اﻷول وﻋﻨﺪ ﺗﺸﻐﻴﻞ اﻟﺘﺮاﻧﺰﺳﺘﻮر 2 و 3 ﻳﻌﻤﻞ اﻟﻤﺤﺮك ﻓﻲ اﻹﺗﺠﺎه اﻟﻤﻌﺎﻛﺲ ﻟﻺﺗﺠﺎه اﻟﺴﺎﺑﻖ. وﺑﺬﻟﻚ ﻳﺘﻢ ﻋﻜﺲ اﻟﺪوران اﺗﻮﻣﺎﺗﻴﻜﻴﺎ دون اﻟﺤﺎﺟﺔ إﻟﻰ ﺗﻐﻴﻴﺮ اﻟﺘﻮﺻﻴﻞ ﻳﺪوﻳﺎ. ﻋﻠﻰ ﻋﻜﺲ ﻣﺤﺮك اﻟﺘﻴﺎر اﻟﻤﺴﺘﻤﺮ اﻟﺬي ﻳﺘﻢ ﺗﻌﻜﺲ اﺗﺠﺎﻫﻪ ﻋﻦ ﻃﺮﻳﻖ ﻋﻜﺲ اﻃﺮاف اﻟﻤﺤﺮك ﻣﻊ ﻣﺼﺪر اﻟﺘﻴﺎر اﻟﻜﻬﺮﺑﺎﺋﻲ. ﻓﻲ اﻟﺤﺎﻟﺔ اﻷوﻟﻰ ﺳﻴﺪور اﻟﻤﺤﺮك ﻣﻊ إﺗﺠﺎه ﻋﻘﺎرب اﻟﺴﺎﻋﺔ. وﺑﻌﻜﺲ ﺗﻮﺻﻴﻞ اﻷﻃﺮاف )ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺤﺎﻟﺔ اﻟﺜﺎﻧﻴﺔ( ﺳﻴﻨﻌﻜﺲ إﺗﺠﺎه اﻟﺪوران ﻟﻴﺼﺒﺢ ﻋﻜﺲ ﻋﻘﺎرب اﻟﺴﺎﻋﺔ.
ﺗﻮﺻﻴﻞ اﻟﺪارة : ﻻ ﻳﻤﻜﻦ ﺗﻮﺻﻴﻞ ﻣﺤﺮك اﻟﺘﻴﺎر اﻟﻤﺴﺘﻤﺮ ﻣﺒﺎﺷﺮة ﻣﻊ اﻷردوﻳﻨﻮ. وذﻟﻚ ﻷن اﻟﻤﺤﺮك ﻳﺤﺘﺎج إﻟﻰ ﺗﻴﺎر ﻋﺎﻟﻲ ﻻ ﻳﺴﺘﻄﻴﻊ اﻷردوﻳﻨﻮ إﻋﻄﺎءه ﻟﻪ. ﻟﺬﻟﻚ ﺳﻨﻘﻮم ﺑﺈﺳﺘﺨﺪام اﻟﺘﺮاﻧﺰﺳﺘﻮر ﻛﺪاﺋﺮة ﺑﻴﻦ اﻻردوﻳﻨﻮ اﻟﺬي ﻳﻌﻤﻞ ﻣﻊ ﺗﻴﺎر ﺻﻐﻴﺮة وﺑﻴﻦ اﻟﻤﺤﺮك اﻟﺬي ﻳﺤﺘﺎج إﻟﻰ ﺗﻴﺎر ﻋﺎﻟﻲ. ﻗﻢ ﺑﺘﻮﺻﻴﻞ اﻟﺪارة ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺼﻮرة : وﻟﻨﺘﻤﻜﻦ ﻣﻦ ﺗﺸﻐﻴﻞ اﻟﻤﺤﺮك ﻓﻲ إﺗﺠﺎﻫﻴﻦ ﻳﺘﻢ ﺗﺸﻐﻴﻞ اﻟﻄﺮف اﻷول ﻣﻦ اﻟـ H-Bridge ﻟﻸردوﻳﻨﻮ ﻓﻲ اﻟﻤﺤﺮك ﻓﻴﺪور اﻟﻤﺤﺮك ﻓﻲ اﻹﺗﺠﺎه اﻷول. وﻋﻨﺪ ﺗﺸﻐﻴﻞ اﻟﻄﺮف اﻟﺜﺎﻧﻲ ﺳﻴﺪور ﺑﺎﻹﺗﺠﺎه اﻟﻤﻌﺎﻛﺲ.
اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺳﻴﺪور اﻟﻤﺤﺮك ﻓﻲ اﻹﺗﺠﺎه اﻷول ﻟﻤﺪة ﺛﻼث ﺛﻮان ﺛﻢ ﻳﺘﻮﻗﻒ ﻟﻤﺪة ﺛﻼث ﺛﻮان. ﺛﻢ ﻳﺪور اﻟﻤﺤﺮك ﺑﺎﻹﺗﺠﺎه اﻟﻤﻌﺎﻛﺲ ﻟﻤﺪرة ﺛﻼث ﺛﻮان ﺛﻢ ﻳﺘﻮﻗﻒ ﻟﻤﺪة ﺛﻼث ﺛﻮان أﺧﺮى. وﻫﻜﺬا ﺣﺘﻰ ﻳﺘﻢ ﻓﺼﻞ اﻟﺘﻴﺎر اﻟﻜﻬﺮﺑﺎﺋﻲ. ﻗﻢ ﺑﺘﺤﻤﻴﻞ اﻟﻜﻮد اﻟﺘﺎﻟﻲ إﻟﻰ اﻷردوﻳﻨﻮ : ] [/crayon-5d0bcf4e14cba358169142 ﺷﺮح اﻟﻜﻮد : ﻗﻤﻨﺎ ﺳﺎﺑﻘﺎ ﺑﺘﻮﺻﻴﻞ ﻃﺮﻓﻰ ﻛﻼ ﻣﻦ اﻟﺘﺮاﻧﺰﺳﺘﻮر ) (IN1,IN2 ﺑﻤﻨﻔﺬ 12 و 13 ﻟﻸردوﻳﻨﻮ. ﻟﺬﻟﻚ ﻗﻤﻨﺎ ﺑﺘﺴﻤﻴﺔ ﻛﻼ اﻟﻤﻨﻔﺬﻳﻦ ﻟﻸردوﻧﻮ ﺗﺒﻌﺎ ﻟﻤﺎ ﺗﻢ ﺗﻮﺻﻴﻠﻪ ﺑﺎﻟﺪارة. ] [/crayon-5d0bcf4e14cbf050356957 ﻧﻘﻮم ﺑﺘﻌﺮف اﻟﻤﺘﻐﻴﺮات IN1 و ) IN2 أﻃﺮاف اﻟـ H-bridge اﻟﻤﻮﺻﻠﻪ
ﺑﺎﻻردوﻳﻨﻮ( ﻛﻤﺨﺮج. ] [/crayon-5d0bcf4e14cc1412125494 ﻓﻲ داﻟﺔ )( loop ﻧﻘﻮم أوﻻ ﺑﺈﺳﺘﺪﻋﺎء اﻟﺪاﻟﺔ )(. motor_forward ﺗﻘﻮم ﻫﺬه اﻟﺪاﻟﺔ ﺑﺘﺸﻐﻴﻞ اﻟﻤﺤﺮك ﻣﻊ اﺗﺠﺎه ﻋﻘﺎرب اﻟﺴﺎﻋﺔ ﻟﻤﺪة 3 ﺛﻮان )). (delay(3000 ﺛﻢ ﻧﻘﻮم ﺑﺎﺳﺘﺨﺪام اﻟﺪاﻟﺔ )( motor_stop ﻹﻳﻘﺎف اﻟﻤﺤﺮك ﻋﻦ اﻟﻌﻤﻞ ﻟﻤﺪة 3 ﺛﻮان. ﺛﻢ ﻳﺘﻢ ﻋﻜﺲ اﺗﺠﺎه ﺣﺮﻛﺔ اﻟﻤﺤﺮك ﺑﺎﺳﺘﺨﺪام اﻟﺪاﻟﺔ )( motor_reverse ﻟﻤﺪة 3 ﺛﻮان. وﻣﻦ ﺛﻢ ﻳﻌﻮد ﻟﻴﻜﺮر ﻧﻔﺲ ﻫﺬه اﻟﻤﻬﻤﺔ ﻣﻦ اﻟﺒﺪاﻳﺔ ﻣﺮة أﺧﺮى. ] [/crayon-5d0bcf4e14cc3867217685 اﻟﺪﻟﺔ )( motor_forward ﺗﻘﻮم ﺑﺘﺤﺮﻳﻚ اﻟﻤﺤﺮك ﺑﺈﺗﺠﺎه ﻋﻘﺎرب اﻟﺴﺎﻋﺔ. ﺗﺘﻢ ﻫﺬه اﻟﻌﻤﻠﻴﺔ ﻋﻦ ﻃﺮﻳﻖ ﺟﻌﻞ ﻗﻴﻤﺔ IN1 ﻟﻠﻤﺮﺣﻞ HIGH واﻟﻄﺮف اﻵﺧﺮ. LOW ] [/crayon-5d0bcf4e14cc6681739648 ﺗﻌﻤﻞ ﻫﺬه اﻟﺪاﻟﺔ )( motor_reverse ﺑﺸﻜﻞ ﻣﺸﺎﺑﻪ ﻟﻠﺪاﻟﺔ اﻟﺴﺎﺑﻘﺔ إﻻ أﻧﻬﺎ ﺗﻌﻜﺲ اﺗﺠﺎه دوران اﻟﻤﺤﺮك. ﺗﺘﻢ ﻫﺬه اﻟﻌﻤﻠﻴﺔ ﻋﻦ ﻃﺮﻳﻖ ﺟﻌﻞ ﻗﻴﻤﺔ IN2 ﻟﻠﻤﺮﺣﻞ HIGH و IN1 ﻗﻴﻤﺔ. LOW ] [/crayon-5d0bcf4e14cc8901329182 داﻟﺔ )( motor_stop ﺗﻘﻮم ﺑﺈﻳﻘﺎف اﻟﻤﺤﺮك ﺗﻤﺎﻣﺎ ﻋﻦ اﻟﺤﺮﻛﺔ ﻋﻦ ﻃﺮﻳﻖ ﺟﻌﻞ ﻗﻴﻤﺔ ﻛﻼ اﻟﻄﺮﻓﻴﻦ LOW ﻓﻼ ﻳﺼﻞ اﻟﺘﻴﺎر ﻟﻠﻤﺤﺮك ﻓﻴﺘﻮﻗﻒ. ] [/crayon-5d0bcf4e14cc9023557893 اﻟﺮوﺑﻮت ﻣﺘﺘﺒﻊ اﻟﻀﻮء ﺗﻮﺟﺪ اﻟﻜﺜﻴﺮ ﻣﻦ اﻟﻨﺒﺎﺗﺎت اﻟﺘﻲ ﺗﺘﺤﺮك ﺗﺒﻌﺎ ﻟﻠﺸﻤﺲ ﻣﺜﻞ زﻫﻮر ﺗﺒﺎع اﻟﺸﻤﺲ وﻗﺪ اﺳﺘﻔﺎد اﻟﻌﻠﻤﺎء ﻣﻦ ﻣﺤﺎﻛﺎة اﻟﻄﺒﻴﻌﺔ ﻓﻲ اﻟﻜﺜﻴﺮ ﻣﻦ اﻻﺧﺘﺮاﻋﺎت ﻣﺜﻞ اﻷﻟﻮاح اﻟﺸﻤﺴﻴﺔ اﻟﺘﻲ ﺗﺘﺒﻊ اﻟﺸﻤﺲ ﻟﺘﺤﻘﻴﻖ أﻗﺼﻰ اﺳﺘﻔﺎدة ﻣﻤﻜﻨﺔ ﻣﻦ اﻟﻄﺎﻗﺔ اﻟﺸﻤﺴﻴﺔ.
ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺳﻨﺴﺘﺨﺪم روﺑﻮت Ranger اﻟﺬي ﻳﺤﺘﻮي ﻋﻠﻰ ﻣﺴﺘﺸﻌﺮﻳﻦ ﻟﻠﻀﻮء ﻟﺒﺮﻣﺠﺔ روﺑﻮت ﻳﺘﺘﺒﻊ ﻣﺼﺪر اﻟﻀﻮء. اﻷدوات اﻟﻤﻄﻠﻮﺑﺔ mbot Ranger Kit
ﻓﻜﺮة اﻟﻤﺸﺮوع ﺗﺤﺘﻮي اﻟﻠﻮﺣﺔ اﻟﺮﺋﻴﺴﻴﺔ Auriga ﻋﻠﻰ ﻣﺴﺘﺸﻌﺮﻳﻦ ﻟﻠﻀﻮء وﻣﺴﺘﺸﻌﺮ اﻟﻀﻮء ﻋﺒﺎرة ﻋﻦ ﻗﻄﻌﺔ اﻟﻜﺘﺮوﻧﻴﺔ ﺗﺼﻨﻊ ﻣﻦ ﻣﺎدة ﺷﺒﻪ ﻣﻮﺻﻠﺔ ﻟﻠﻜﻬﺮﺑﺎء ﻋﻨﺪﻣﺎ ﻳﺘﻌﺮض اﻟﻤﺴﺘﺸﻌﺮ ﻟﻠﻀﻮء ﻓﺈن ﻗﺪرﺗﻪ ﻋﻠﻰ ﺗﻮﺻﻴﻞ اﻟﻜﻬﺮﺑﺎء ﺗﺼﺒﺢ أﻋﻠﻰ ﻓﻴﻌﻄﻰ إﺷﺎرة ﻛﻬﺮﺑﺎﺋﻴﺔ أﻛﺒﺮ ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺳﻨﻘﻮم ﺑﻜﺘﺎﺑﺔ ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﻤﻘﺎرﻧﺔ ﻛﻤﻴﺔ اﻟﻀﻮء اﻟﺴﺎﻗﻄﺔ ﻋﻠﻰ اﻟﻤﺴﺘﺸﻌﺮﻳﻦ إذا ﻛﺎن اﻟﻤﺴﺘﺸﻌﺮ اﻷول )اﻷﻳﻤﻦ( ﻳﺘﻌﺮض ﻟﻠﻀﻮء أﻛﺜﺮ ﻣﻦ اﻟﻤﺴﺘﺸﻌﺮ اﻟﺜﺎﻧﻲ )اﻷﻳﺴﺮ( ﻓﺈن اﻟﺮوﺑﻮت ﻳﻨﻌﻄﻒ ﺑﺎﺗﺠﺎه ﺷﺪة اﻹﺿﺎءة اﻷﻋﻠﻰ )اﻟﻴﻤﻴﻦ. ﻓﻲ ﻫﺬه اﻟﺤﺎﻟﺔ( وإذا ﺗﻌﺮض اﻟﻤﺴﺘﺸﻌﺮﻳﻦ ﻟﻨﻔﺲ اﻟﻜﻤﻴﺔ ﻣﻦ اﻟﻀﻮء ﻳﺘﺤﺮك اﻟﺮوﺑﻮت ﻟﻸﻣﺎم اﺧﺘﺒﺎر اﻟﻤﺴﺘﺸﻌﺮ ﻗﺪ ﺗﺨﺘﻠﻒ دﻗﺔ اﻟﻤﺴﺘﺸﻌﺮات اﻻﻟﻜﺘﺮوﻧﻴﺔ ﺑﻨﺴﺐ ﺑﺴﻴﻄﺔ ﺗﻌﻮد إﻟﻰ ﻋﻮاﻣﻞ ﻓﻲ اﻟﺘﺼﻨﻴﻊ ﺳﻨﻘﻮم ﺑﻌﻤﻞ اﺧﺘﺒﺎر ﻟﻤﺴﺘﺸﻌﺮي اﻟﻀﻮء اﻟﻤﻮﺟﻮدﻳﻦ ﻓﻲ ﻟﻮﺣﺔ Auriga ﻟﻤﻌﺮﻓﺔ اﻟﻔﺮق ﻓﻲ دﻗﺔ اﻟﻘﻴﺎس ﺑﻴﻦ اﻟﻤﺴﺘﺸﻌﺮﻳﻦ أوﻻ ﻗﻢ ﺑﺈﻧﺸﺎء ﻣﺘﻐﻴﺮﻳﻦ Light1 و Light2 ﻣﺜﻼ
ﻗﻢ ﺑﺘﻌﻴﻴﻦ اﻟﻤﺘﻐﻴﺮ اﻷول ﻟﻘﺮاءة اﻟﻤﺴﺘﺸﻌﺮ اﻷول on board 1 واﻟﻤﺘﻐﻴﺮ اﻟﺜﺎﻧﻲ ﻟﻘﺮاءة اﻟﻤﺴﺘﺸﻌﺮ اﻟﺜﺎﻧﻲ on board 2 ﻧﻼﺣﻆ ﻗﻴﻢ اﻟﻘﺮاءات ﻋﻠﻰ اﻟﺸﺎﺷﺔ ﻗﻢ ﺑﺘﺴﻠﻴﻂ ﺿﻮء ﻋﻠﻰ اﻟﻤﺴﺘﺸﻌﺮﻳﻦ أو ﺣﺠﺒﻬﻤﺎ ﻋﻦ اﻟﻀﻮء ﺑﻴﺪك ﻟﻤﻼﺣﻈﺔ اﻟﻔﺮق ﻣﻦ ﺧﻼل اﻟﻤﻼﺣﻈﺔ ﻳﻤﻜﻦ أن ﻧﺠﺪ ﻧﺴﺒﺔ اﻻﺧﺘﻼف ﺑﻴﻦ ﻗﺮاءة اﻟﻤﺴﺘﺸﻌﺮﻳﻦ ﻓﻲ ﻫﺬا اﻻﺧﺘﺒﺎر وﺟﺪﻧﺎ أﻧﻬﺎ ﻳﻤﻜﻦ أن ﺗﺼﻞ إﻟﻰ 5 أرﻗﺎم ﻋﻨﺪ ﺗﻌﺮﺿﻬﻤﺎ ﻟﻨﻔﺲ ﺷﺪة اﻹﺿﺎءة )ﻗﺪ ﺗﺨﺘﻠﻒ ﻣﻦ ﻟﻮﺣﺔ إﻟﻰ ﻟﻮﺣﺔ أﺧﺮى(. ﺳﻨﺴﺘﻔﻴﺪ ﻣﻦ ﻫﺬه اﻟﻘﻴﻤﺔ ﻋﻨﺪ ﻛﺘﺎﺑﺔ اﻟﻜﻮد ﻓﻲ اﻟﺨﻄﻮة اﻟﺘﺎﻟﻴﺔ. ﺑﺮﻣﺠﺔ اﻟﺮوﺑﻮت ﺳﻨﻘﻮم ﻓﻲ اﻟﺒﺪاﻳﺔ ﺑﺈﻧﺸﺎء ﻣﺘﻐﻴﺮﻳﻦ Light 1 وﺗﻌﻴﻴﻨﻪ ﻟﻘﺮاءة اﻟﻤﺴﺘﺸﻌﺮ اﻷﻳﺴﺮ )ﻛﻤﺎ ﻫﻮ ﻣﻜﺘﻮب ﻋﻠﻰ اﻟﻠﻮﺣﺔ اﻟﺮﺋﻴﺴﻴﺔ( وﻣﺘﻐﻴﺮ Light2 وﺗﻌﻴﻴﻨﻪ ﻟﻘﺮاءة اﻟﻤﺴﺘﺸﻌﺮ اﻷﻳﻤﻦ ﻓﻲ اﻟﻠﻮﺣﺔ
داﺧﻞ ﺣﻠﻘﺔ Forever ﺳﻨﺴﺘﺨﺪم ﺛﻼث ﺟﻤﻞ ﺷﺮﻃﻴﺔ if ﻟﺘﻤﺜﻞ ﻟﻨﺎ ﺛﻼث ﺣﺎﻻت ﻣﺨﺘﻠﻔﺔ اﻷوﻟﻰ إذا ﺗﻌﺮض اﻟﻤﺴﺘﺸﻌﺮﻳﻦ ﻟﻨﻔﺲ ﺷﺪة اﻟﻀﻮء واﻟﺤﺎﻟﺘﻴﻦ اﻷﺧﺮى إذا ﻛﺎﻧﺖ ﺷﺪة اﻟﻀﻮء ﻋﻠﻰ أﺣﺪﻫﻤﺎ أﻛﺒﺮ ﻣﻦ اﻵﺧﺮ اﻟﺸﺮط اﻟﺬي ﻳﻤﺜﻞ ﺣﺎﻟﺔ أن ﺗﻜﻮن ﻗﺮاءة اﻟﻤﺴﺘﺸﻌﺮ اﻷول = اﻟﺜﺎﻧﻲ ﻟﻜﻦ ﺑﻤﺎ أﻧﻨﺎ وﺟﺪﻧﺎ اﺧﺘﻼﻓﺎ ﻓﻲ ﻗﺮاءة اﻟﻤﺴﺘﺸﻌﺮﻳﻦ ﺗﺼﻞ إﻟﻰ 5 أرﻗﺎم ﻋﻦ اﺧﺘﺒﺎرﻫﻤﺎ ﻓﻲ اﻟﺨﻄﻮة اﻟﺴﺎﺑﻘﺔ ﺳﻨﻌﻴﺪ ﻛﺘﺎﺑﺔ اﻟﺸﺮط ﻛﺎﻟﺘﺎﻟﻲ وﻫﺬا ﻳﻌﻨﻲ أﻧﻪ إذا ﻛﺎن اﻟﻔﺮق ﺑﻴﻦ ﻗﻴﻤﺔ اﻟﻤﺴﺘﺸﻌﺮ اﻷول واﻟﺜﺎﻧﻲ أﻗﻞ ﻣﻦ 6 ﻓﺴﻴﺘﻢ اﻋﺘﺒﺎر أﻧﻬﻤﺎ ﻣﺘﺴﺎوﻳﺎن وﻳﺘﺤﺮك اﻟﺮوﺑﻮت ﻟﻸﻣﺎم أﺿﻔﻨﺎ abs اﻟﻘﻴﻤﺔ اﻟﻤﻄﻠﻘﺔ ﻟﺘﻌﻄﻲ ﻧﺎﺗﺞ اﻟﻄﺮح ﻗﻴﻤﺔ ﻣﻮﺟﺒﺔ داﺋﻤ ﺎ ﺳﻮاء ﻛﺎﻧﺖ ﻗﻴﻤﺔ Light1 أﻛﺒﺮ ﻣﻦ Light2 أو اﻟﻌﻜﺲ. إذا ﻟﻢ ﻳﺘﺤﻘﻖ اﻟﺸﺮط اﻷول أي إذا ﻛﺎن اﻟﻔﺮق ﺑﻴﻦ اﻟﻘﺮاءﺗﻴﻦ 6 أو أﻛﺒﺮ ﻳﺘﻢ ﺗﻨﻔﻴﺬ اﻷواﻣﺮ ﺑﻌﺪ else
ﺣﻴﺚ ﺳﻨﻀﻴﻒ اﻟﺸﺮوط اﻟﻤﺘﻌﻠﻘﺔ ﺑﺎﻟﺤﺎﻟﺘﻴﻦ اﻷﺧﺮى اﻟﺤﺎﻟﺔ اﻟﺜﺎﻧﻴﺔ إذا ﻛﺎﻧﺖ ﻗﺮاءة اﻟﻤﺴﺘﺸﻌﺮ اﻷﻳﺴﺮ Light1 أﻛﺒﺮ ﻣﻦ ﻗﺮاءة اﻟﻤﺴﺘﺸﻌﺮ اﻷﻳﻤﻦ Light2 ﻳﻨﻌﻄﻒ اﻟﺮوﺑﻮت ﺑﺎﺗﺠﺎه اﻟﻴﺴﺎر أي ﺑﺎﺗﺠﺎه ﺷﺪة اﻹﺿﺎءة اﻷﻋﻠﻰ اﻟﺤﺎﻟﺔ اﻟﺜﺎﻟﺜﺔ إذا ﻛﺎﻧﺖ ﻗﺮاءة اﻟﻤﺴﺘﺸﻌﺮ اﻷﻳﺴﺮ Light2 أﻗﻞ ﻣﻦ ﻗﻴﻤﺔ اﻟﻤﺴﺘﺸﻌﺮ اﻷﻳﻤﻦ Light1 ﻳﻨﻌﻄﻒ اﻟﺮوﺑﻮت ﻟﻠﻴﻤﻴﻦ أي ﺑﺎﺗﺠﺎه ﺷﺪة اﻹﺿﺎءة اﻷﻋﻠﻰ. اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ
ﻟﻤﺰﻳﺪ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ﺣﻮل اﻷواﻣﺮ اﻟﺒﺮﻣﺠﻴﺔ اﻷﺧﺮى ﻗﻢ ﺑﺎﻟﺮﺟﻮع ﻟﺪرس ﺟﻮﻟﺔ ﺣﻮﻟﺔ اﻷواﻣﺮ اﻟﺒﺮﻣﺠﻴﺔ ﻧﻈﺎم إﻧﺬار ﺑﺎﺳﺘﺨﺪام اﻷﺷﻌﺔ ﺗﺤﺖ اﻟﺤﻤﺮاء ﻓﻲ ﻫﺬا اﻟﺪرس ﺳﻮف ﻧﺘﻌﻠﻢ ﻛﻴﻔﻴﺔ ﻋﻤﻞ ﻧﻈﺎم إﻧﺬار ﺑﺴﻴﻂ ﺟﺪ ا ﺑﺎﺳﺘﻌﻤﺎل Infrared LED و ﺑﺮﻣﺠﺔ ﻛﻮد اﻷدروﻳﻨﻮ اﻟﺨﺎص ﺑﻬﺎ. ﻫﺬا اﻟﺪرس راﺋﻊ ﺟﺪا ﻟﻠﺘﺪرﻳﺐ ﻋﻠﻰ اﺳﺘﻌﻤﺎل اﻷدروﻳﻨﻮ ﻟﻠﻤﺒﺘﺪﺋﻴﻦ.
اﻟﻤﻜﻮﻧﺎت Arduino Uno IR LED Emitter
(Photo Diode (Receiver K Ohm Resistor 100 Ohm Resistor 220
Breadboard Wires
Piezo Sounder ﻣﻠﺤﻮﻇﺔ : ﻓﻲ ﻫﺬا اﻟﺪرس ﻗﻤﻨﺎ ﺑﺈﺳﺘﻌﻤﺎل TCRT5000 module واﻟﺬي ﻳﺤﺘﻮي ﻋﻠﻰ ﺗﺮاﻧﺰﻳﺴﺘﻮر ﻟﻸﺷﻌﺔ اﻟﺤﻤﺮاء ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ.Infrared LED وﻗﻤﻨﺎ ﺑﺈﺿﺎﻓﺔ Infrared LED ﺧﺎرﺟﻴﺔ ﻟﺘﻘﻮﻳﺔ اﻧﺒﻌﺎث اﻷﺷﻌﺔ ﺗﺤﺖ اﻟﺤﻤﺮاء. ﻛﻤﺎ ﻳﻤﻜﻨﻚ أن ﺗﺴﺘﻌﻤﻞ داﻳﻮد أﺷﻌﺔ ﺗﺤﺖ اﻟﺤﻤﺮاء / ﺗﺮاﻧﺰﻳﺴﺘﻮر و ﻟﻜﻦ ﺗﺄﻛﺪ ﻣﻦ وﺿﻊ ﻻﺻﻖ )أﺳﻮد( ﺣﻮل اﻟﺪاﻳﻮد أو اﻟﺘﺮاﻧﺰﻳﺴﺘﻮر ﺣﺘﻰ ﻻ ﻳﺘﺄﺛﺮ ﺑﺎﻟﺠﻮاﻧﺐ ﻛﻤﺎ ﺑﺎﻟﺼﻮرة.
ﺗﺼﻤﻴﻢ ﻟﻮح اﻟﺘﺠﺎرب ﻗﻢ ﺑﺘﻮﺻﻴﻞ اﻟﺪاﺋﺮة ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺼﻮرة اﻟﺘﺎﻟﻴﺔ :
ﺷﺮح اﻟﺪارة ﺗﻘﻮم اﻟﺪارة ﺑﺒﻌﺚ ﺿﻮء IR ﻣﻦ ﺧﻼل اﻟـ LEDs اﻟﻤﻮﺿﻮﻋﻪ وﻋﻨﺪﻣﺎ ﻳﺘﻮاﺟﺪ ﺳﻄﺢ ﻋﺎﻛﺲ )ﺗﻘﺮﻳﺒﺎ أي ﺳﻄﺢ ﻋﺪا اﻻﺳﻄﺢ اﻟﺴﻮداء ﻓﻬﻲ ﺗﻤﺘﺺ اﻟﻀﻮء و ﻻ ﺗﻨﻌﻜﺲ اﻻ ﺑﺠﺰء ﺻﻐﻴﺮ( ﺗﻨﻌﻜﺲ اﻷﺷﻌﺔ ﺗﺤﺖ اﻟﺤﻤﺮاء ﻟﺘﻘﻮم ﺑﺎﻟﺘﺄﺛﻴﺮ ﻋﻠﻰ اﻟﺪاﻳﻮد أو اﻟﺘﺮاﻧﻴﺴﺘﻮر وﻋﻨﺪﻣﺎ ﻳﻌﻤﻞ اﻟﺪاﻳﻮد ﻳﻘﻮم ﺑﺨﻔﺾ اﻟﺠﻬﺪ ﻧﺘﻴﺠﺔ أن اﻧﺨﻔﺎض ﻣﻘﺎوﻣﺘﻪ ﺑﺸﻜﻞ ﻣﻠﺤﻮظ و ﻳﻤﻜﻦ ﻣﻦ ﺧﻼل اﻷردوﻳﻨﻮ ﻗﻴﺎس ﻗﻴﻤﺔ اﻟﻔﻮﻟﺖ ﻋﻦ ﻃﺮﻳﻖ اﺳﺘﻌﻤﺎل. Analog Read
ﺑﺮﻣﺠﺔ اﻻردوﻳﻨﻮ : ﻗﻢ ﺑﻜﺘﺎﺑﺔ اﻟﻜﻮد ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ أدﻧﺎه : ] [/crayon-5d0bcf4e14f9b223729180 ﺷﺮح اﻟﻜﻮد : ﻓﻲ اﻟﺒﺪاﻳﺔ ﻧﻘﻮم ﺑﺘﺴﻤﻴﺔ اﻟﻤﺪﺧﻞ A0 ﺑﺈﺳﻢ SENSOR واﻟﻤﻨﻔﺬ رﻗﻢ 12 ﺑﺈﺳﻢ. BUZZER وﻫﻜﺬا ﻳﺼﺒﺢ اﻟﻜﻮد أﺳﻬﻞ وأﻓﻀﻞ ﻓﻲ اﻟﻔﻬﻢ واﻟﺘﻌﺎﻣﻞ. داﺧﻞ اﻟﺪاﻟﺔ )( setup ﻧﻘﻮم ﺑﺘﻌﺮﻳﻒ اﻟـ SENSOR ﻛﻤﺪﺧﻞ واﻟـ BUZZER ﻛﻤﺨﺮج. ] [/crayon-5d0bcf4e14fa0949157912 ﻓﻲ داﻟﺔ )( loop ﻧﻘﻮم ﺑﺎﻟﺘﺤﻘﻖ ﻣﺎ إذا ﻛﺎﻧﺖ اﻟﻘﺮاءة أﻗﻞ ﻣﻦ 600
ﻓﺈذا ﺗﺤﻘﻖ اﻟﺸﺮط ﻧﻘﻮم ﺑﺈﺻﺪار إﻧﺬار. ] [/crayon-5d0bcf4e14fa2186893677 ﻧﻘﻮم ﺑﺈﻧﺸﺎء اﻟﺪاﻟﺔ )( beep ﻟﺘﻮﻟﻴﺪ اﻹﻧﺬار. ﺣﻴﺚ ﺗﻘﻮم اﻟﺪاﻟﺔ ﺑﺈﺻﺪار ﻧﻐﻤﺔ ذو ﺗﺮدد 1000 ﻫﻴﺮﺗﺰ وﺗﺘﻮﻗﻒ ﻟﻤﺪة 200 ﻣﻴﻠﻲ ﺛﺎﻧﻴﺔ ﺑﻴﻦ اﻟﻨﻐﻤﺎت. ] [/crayon-5d0bcf4e14fa4466038972 ﻧﻘﻮم ﺑﺈﻧﺸﺎء اﻟﺪاﻟﺔ readir واﻟﺘﻲ ﺗﻘﻮم ﺑﻘﺮاءة ﻗﻴﻤﺔ اﻟﺤﺴﺎس وإذا ﻛﺎﻧﺖ اﻟﻘﻴﻤﺔ أﺻﻐﺮ ﻣﻦ اﻟﻘﻴﻤﺔ refernce value ﻓﺈن اﻟﺪاﻟﺔ ﺗﻘﻮم ﺑﺈرﺟﺎع ﻗﻴﻤﺔ ﺻﺤﻴﺤﺔ true وإﻻ ﺗﻘﻮم ﺑﺈرﺟﺎع ﻗﻴﻤﺔ ﺧﺎﻃﺊ. false ] [/crayon-5d0bcf4e14fa6479851487 روﺑﻮت اﻻﻧﻘﺎذ ﻳﺼﺒﺢ اﻟﺮوﺑﻮت ﻓﻲ ﺑﻌﺾ اﻟﻈﺮوف ﻣﻨﺎﺳﺒ ﺎ ﻟﺘﺄدﻳﺔ اﻟﻤﻬﺎم أﻛﺜﺮ ﻣﻦ اﻻﻧﺴﺎن ﻣﺜﻞ ﺣﺎﻻت اﻟﺤﺮاﺋﻖ واﻷﻣﺎﻛﻦ اﻟﻐﻴﺮ آﻣﻨﺔ وذﻟﻚ ﻟﺤﻤﺎﻳﺔ اﻻﻧﺴﺎن ﻣﻦ اﻟﺨﻄﺮ. ﺳﻨﻘﻮم ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺑﺒﺮﻣﺠﺔ اﻟﺮوﺑﻮت ﻹرﺳﺎﻟﻪ ﻓﻲ ﻋﻤﻠﻴﺔ إﻧﻘﺎذ واﻟﺘﺤﻜﻢ ﺑﻪ ﺑﻮاﺳﻄﺔ ﺣﺮﻛﺔ اﻟﻬﺎﺗﻒ اﻟﺬﻛﻲ أو اﻟﺠﻬﺎز اﻟﻠﻮﺣﻲ اﻟﺬي ﻳﺤﺘﻮي ﻋﻠﻰ ﻣﺴﺘﺸﻌﺮ اﻟﺘﺴﺎرع Accelerometer وﺑﺎﺳﺘﺨﺪام ﺗﻄﺒﻴﻖ.Makeblock
اﻷدوات اﻟﻤﻄﻠﻮﺑﺔ : Ultimate 2.0 Kit
ﻣﺴﺘﺸﻌﺮ اﻟﺘﺴﺎرع Accelerometer ﻣﺴﺘﺸﻌﺮ اﻟﺘﺴﺎرع ﻋﺒﺎرة ﻋﻦ ﺟﻬﺎز ﻛﻬﺮوﻣﻴﻜﺎﻧﻴﻜﻲ ﺻﻐﻴﺮ ﻳﻘﻮم ﺑﻘﻴﺎس اﻟﻘﻮة اﻟﻨﺎﺗﺠﺔ ﻋﻦ ﺗﺴﺎرع اﻟﺠﺴﻢ ﻧﺘﻴﺠﺔ اﻟﺤﺮﻛﺔ أو اﻻﻫﺘﺰاز وﻳﻤﻜﻦ ﻟﻤﻘﻴﺎس اﻟﺘﺴﺎرع ﺗﺤﻠﻴﻞ ﺣﺮﻛﺔ اﻟﺠﻬﺎز وﺗﺤﺪﻳﺪ اﻻﺗﺠﺎه اﻟﺬي ﻳﻤﻴﻞ ﻓﻴﻪ ﻣﻦ ﺧﻼل ﻣﻘﺎرﻧﺔ ﺗﺴﺎرع اﻟﺠﻬﺎز ﺑﺎﻟﻨﺴﺒﺔ ﻟﻸرض. ﻟﻤﺴﺘﺸﻌﺮ اﻟﺘﺴﺎرع اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﺘﻄﺒﻴﻘﺎت ﻣﺜﻞ اﻟﺴﻴﺎرات ﻹﻃﻼق اﻷﻛﻴﺎس اﻟﻬﻮاﺋﻴﺔ ﻋﻨﺪ اﻟﺘﻮﻗﻒ ﺑﺸﻜﻞ ﻣﻔﺎﺟﻲء )ﻳﻘﻞ اﻟﺘﺴﺎرع ﺳﺮﻳﻌﺎ( وﻓﻲ ﻣﻌﻈﻢ اﻷﺟﻬﺰة اﻟﻤﺤﻤﻮﻟﺔ واﻟﺬﻛﻴﺔ ﻻﺳﺘﺸﻌﺎر وﺿﻌﻴﺔ اﻟﺠﻬﺎز وﺗﻌﺪﻳﻞ اﻟﺸﺎﺷﺔ وﻛﺬﻟﻚ ﻓﻲ اﻟﺘﻄﺒﻴﻘﺎت اﻟﺘﺮﻓﻴﻬﻴﺔ واﻷﻟﻌﺎب. ﺳﻨﻘﻮم ﺑﺎﺳﺘﺨﺪام ﺟﻬﺎز ﻣﺤﻤﻮل أو ﻟﻮﺣﻲ ﻳﺤﺘﻮي ﻋﻠﻰ ﻣﺴﺘﺸﻌﺮ اﻟﺘﺴﺎرع ﻟﻠﺘﺤﻜﻢ ﺑﺎﻟﺮوﺑﻮت ﻋﺒﺮ اﻟﺒﻠﻮﺗﻮث ﺑﺤﻴﺚ ﻳﺘﺤﺮك اﻟﺮوﺑﻮت ﺗﺒﻌﺎ ﻟﺤﺮﻛﺔ اﻟﻬﺎﺗﻒ أو اﻟﺠﻬﺎز اﻟﻠﻮﺣﻲ. اﻟﺒﺮﻣﺠﺔ ﺑﺎﺳﺘﺨﺪام اﻟﺘﻄﺒﻴﻖ ﺳﻨﻘﻮم ﺑﺒﺮﻣﺠﺔ اﻟﺮوﺑﻮت ﺑﺎﺳﺘﺨﺪام ﺗﻄﺒﻴﻖ MakeBlock إذا ﻛﺎﻧﺖ ﻫﺬه اﻟﻤﺮة اﻷوﻟﻰ اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻓﻴﻬﺎ اﻟﺘﻄﺒﻴﻖ ﻗﻢ ﺑﻤﺮاﺟﻌﺔ درس ﺗﻄﺒﻴﻖ MakeBlock ﻗﻢ ﺑﺘﻨﺰﻳﻞ اﻟﺘﻄﺒﻴﻖ ﻋﻠﻰ ﻫﺎﺗﻒ ذﻛﻲ أو ﺟﻬﺎز ﻟﻮﺣﻲ وﺗﺄﻛﺪ ﺑﺄﻧﻪ ﻳﺤﺘﻮي ﻋﻠﻰ ﻣﺴﺘﺸﻌﺮ اﻟﺘﺴﺎرع ﻣﻦ ﺧﻼل ﻣﺮاﺟﻌﺔ ﻣﻮاﺻﻔﺎت اﻟﺠﻬﺎز.
ﺑﺮﻣﺠﺔ ﺣﺮﻛﺔ اﻟﺮوﺑﻮت ﻟﻠﺘﺤﻜﻢ ﻓﻲ ﺣﺮﻛﺔ اﻟﺮوﺑﻮت ﺳﻨﻘﻮم ﺑﺒﺮﻣﺠﺘﻪ ﺑﺤﻴﺚ ﻳﺘﺤﺮك ﻓﻲ ﻧﻔﺲ اﻻﺗﺠﺎه اﻟﺬي ﻳﻤﻴﻞ ﻓﻴﻪ اﻟﻬﺎﺗﻒ اﻟﻤﺤﻤﻮل ﻣﻦ ﺧﻼل واﺟﻬﺔ اﻟﺘﻄﺒﻴﻖ ﺳﻨﻘﻮم ﺑﺎﺧﺘﻴﺎر اﻟﺮوﺑﻮت Ultimate واﺧﺘﻴﺎر إﺿﺎﻓﺔ ﻣﺸﺮوع ﺟﺪﻳﺪ New Project ﺳﻨﻘﻮم ﺑﺈﺿﺎﻓﺔ ﻣﻔﺘﺎح Switch وﻧﺴﻤﻴﻪ Tilt
ﺗﺤﺖ أﻣﺮ ﺗﺸﻐﻴﻞ اﻟﻤﻔﺘﺎح ﺳﻨﻀﻴﻒ ﻛﻮد ﺗﺤﻜﻢ اﻟﺤﺮﻛﺔ ﺑﺈﺿﺎﻓﺔ أواﻣﺮ ﺷﺮﻃﻴﺔ ﺑﺤﻴﺚ إذا ﺗﻢ ﺗﻮﺟﻴﻪ اﻟﻬﺎﺗﻒ ﻟﻸﻣﺎم ﻳﺘﺤﺮك اﻟﺮوﺑﻮت ﻟﻸﻣﺎم وﻛﺬﻟﻚ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺨﻠﻒ واﻟﻴﻤﻴﻦ واﻟﻴﺴﺎر ﺗﺤﺖ أﻣﺮ إﻏﻼق اﻟﻤﻔﺘﺎح ﻧﻀﻊ أﻣﺮ ﺗﻮﻗﻒ اﻟﺤﺮﻛﺔ
ﻳﺘﻢ وﺿﻊ اﻷواﻣﺮ اﻟﺒﺮﻣﺠﻴﺔ داﺧﻞ أﻣﺮ Repeat Forever اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ ﻟﻠﺤﺮﻛﺔ ﺑﺮﻣﺠﺔ ذراع اﻟﺮوﺑﻮت ﻳﻨﻘﺴﻢ اﻟﺘﺤﻜﻢ ﺑﺬراع اﻟﺮوﺑﻮت إﻟﻰ ﻗﺴﻤﻴﻦ : ﺣﺮﻛﺔ اﻟﺬراع ﻟﻸﻋﻠﻰ واﻷﺳﻔﻞ وﺣﺮﻛﺔ اﻟﻤﻘﺒﺾ ﻟﻺﻣﺴﺎك ﺑﺎﻷﺷﻴﺎء وإﻓﻼﺗﻬﺎ ﺳﻨﻘﻮم ﺑﺈﺿﺎﻓﺔ 4 أزرار ﺗﺤﻜﻢ
ﻟﺘﺤﺮك اﻟﺬراع ﻟﻸﻋﻠﻰ ﺳﻮف ﻧﺴﻤﻲ اﻟﺰر اﻷول Up ﺑﺎﻟﻨﻘﺮ ﻋﻠﻴﻪ واﺧﺘﻴﺎر ﻋﻼﻣﺔ ﺗﻌﺪﻳﻞ اﻻﺳﻢ ﻋﻨﺪ ﺿﻐﻂ اﻟﺰر ﺳﻨﻀﻴﻒ اﻷﻣﺮ اﻟﺒﺮﻣﺠﻲ اﻟﻤﺘﻌﻠﻖ ﺑﺘﺤﺮﻳﻚ ﻣﺤﺮك اﻟﺘﺸﻔﻴﺮ encoder motor اﻟﻤﺴﺆول ﻋﻦ ﺗﺤﺮﻳﻚ اﻟﺬراع واﺧﺘﻴﺎر رﻗﻢ اﻟﻤﻨﻔﺬ اﻟﺬي ﺗﻢ ﺗﻮﺻﻴﻠﻪ ﺑﻪ وﻋﻨﺪ ﺗﺮك اﻟﺰر ﻧﻀﻊ اﻟﺴﺮﻋﺔ ﺻﻔﺮ ﻟﻠﺘﻮﻗﻒ ﻟﺘﺤﺮﻳﻚ اﻟﺬراع ﻟﻸﺳﻔﻞ ﺳﻮف ﻧﺴﻤﻲ اﻟﺰر اﻵﺧﺮ Down وﻧﻀﻴﻒ ﻧﻔﺲ اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ ﻟﻤﺤﺮك اﻟﺘﺸﻔﻴﺮ ﻟﻜﻦ ﺑﻮﺿﻊ ﻗﻴﻤﺔ اﻟﺴﺮﻋﺔ ﺳﺎﻟﺒﺔ ) ( ﻟﻌﻜﺲ اﺗﺠﺎه اﻟﺤﺮﻛﺔ ﺑﺮﻣﺠﺔ اﻟﻘﺎﺑﺾ Gripper ﻟﺘﺤﺮﻳﻚ اﻟﻘﺎﺑﺾ ﻟﻺﻣﺴﺎك ﺑﺎﻷﺷﻴﺎء ﺳﻮف ﻧﺴﻤﻲ اﻟﺰر اﻟﺜﺎﻟﺚ Grip ﻋﻨﺪ ﺿﻐﻂ اﻟﺰر ﺳﻨﻀﻴﻒ اﻷﻣﺮ اﻟﻤﺘﻌﻠﻖ ﺑﺤﺮﻛﺔ ﻣﺤﺮك DC اﻟﻤﺴﺆول ﻋﻦ ﺣﺮﻛﺔ اﻟﻘﺎﺑﺾ وﺗﺤﺪﻳﺪ ﻣﻨﻔﺬ اﻟﺘﻮﺻﻴﻞ
اﻟﺰر اﻟﺮاﺑﻊ ﺳﻮف ﻧﺴﻤﻴﻪ Un-Grip ﻟﺘﺤﺮﻳﻚ اﻟﻘﺎﺑﺾ ﻹﻓﻼت اﻷﺷﻴﺎء ﺳﻨﻀﻴﻒ ﻧﻔﺲ اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ ﻟﻜﻦ ﺑﻮﺿﻊ اﻟﺴﺮﻋﺔ ﺑﻌﻼﻣﺔ ﺳﺎﻟﺒﺔ ) ( ﻟﻌﻜﺲ اﺗﺠﺎه ﺣﺮﻛﺔ اﻟﻤﺤﺮك وﺑﺎﻟﺘﺎﻟﻲ ﻋﻜﺲ ﺣﺮﻛﺔ اﻟﻘﺎﺑﺾ اﻟﻮاﺟﻬﺔ اﻟﻨﻬﺎﺋﻴﺔ ﻟﻠﺘﻄﺒﻴﻖ
ﻟﻤﺰﻳﺪ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ﻋﻦ اﻷواﻣﺮ اﻟﺒﺮﻣﺠﻴﺔ اﻷﺧﺮى ﻳﻤﻜﻨﻚ اﻟﺮﺟﻮع ﻟﺪرس ﺟﻮﻟﺔ ﺣﻮل اﻷواﻣﺮ اﻟﺒﺮﻣﺠﻴﺔ ﻧﻘﻮم ﺑﻌﺪ ذﻟﻚ ﺑﺤﻔﻆ اﻟﻤﺸﺮوع Save وﺗﺤﺪﻳﺚ اﻟﺒﺮاﻣﺞ اﻟﺜﺎﺑﺘﺔ ﻣﻦ واﺟﻬﺔ اﻟﺘﻄﺒﻴﻖ Firmware ﻟﺘﺘﻤﻜﻦ ﻣﻦ ﺗﺠﺮﺑﺔ اﻟﻤﺸﺮوع. ﺑﺚ اﻟﻔﻴﺪﻳﻮ ﻋﻠﻰ اﻟﺤﺎﺳﻮب ﻋﻨﺪ إرﺳﺎل اﻟﺮوﺑﻮت ﻓﻲ ﻣﻬﺎم ﻣﺨﺘﻠﻔﺔ ﻗﺪ ﻧﺤﺘﺎج ﻟﻤﺘﺎﺑﻌﺔ اﻟﻤﺤﻴﻂ اﻟﺬي ﻳﺘﺤﺮك ﻓﻴﻪ اﻟﺮوﺑﻮت ﺳﺘﻘﻮم ﻓﻲ ﻫﺬه اﻟﺨﻄﻮة ﺑﺎﻻﺳﺘﻔﺎدة ﻣﻦ ﻛﺎﻣﻴﺮاة اﻟﻬﺎﺗﻒ اﻟﺬﻛﻲ ﻟﺒﺚ اﻟﻔﻴﺪﻳﻮ ﻋﻠﻰ اﻟﺤﺎﺳﻮب ﺑﺎﺳﺘﺨﺪام اﻟﻘﻄﻊ اﻟﻤﻠﺤﻘﺔ ﺑﺮوﺑﻮت Ultimate ﻳﻤﻜﻦ ﺑﻨﺎء ﻣﺴﻨﺪ ﻟﻬﺎﺗﻒ ﻣﺤﻤﻮل ﺑﺎﻟﻤﻘﻴﺎس اﻟﻤﻨﺎﺳﺐ ﻟﺤﺠﻢ اﻟﻬﺎﺗﻒ
ﻗﻢ ﺑﺘﻨﺰﻳﻞ ﺗﻄﺒﻴﻖ Droidcam أﻧﺪروﻳﺪ ﻣﻦ Google Play ﻋﻠﻰ ﻫﺎﺗﻒ ﻣﺤﻤﻮل ﺳﻴﻈﻬﺮ ﻋﻨﺪ ﻓﺘﺢ اﻟﺘﻄﺒﻴﻖ ﻋﻨﻮان IP اﻟﺨﺎص ﺑﻬﺎﺗﻔﻚ ورﻗﻢ اﻟﻤﻨﻔﺬ Port وﻋﻨﻮان اﻟﻤﺘﺼﻔﺢ ﻗﻢ ﺑﻔﺘﺢ اﻟﻜﺎﻣﻴﺮا ﻣﻦ ﺧﻼل اﻟﺘﻄﺒﻴﻖ
ﻋﻠﻰ ﺟﻬﺎز اﻟﺤﺎﺳﻮب ﻗﻢ ﺑﻔﺘﺢ اﻟﻤﺘﺼﻔﺢ وإدﺧﺎل ﻋﻨﻮان اﻟﻤﺘﺼﻔﺢ Browser IP Cam Access ﺑﻬﺬا اﻟﺸﻜﻞ /http://192.168.11.118 :4747 ﻳﻤﻜﻨﻚ اﻵن ﻣﺘﺎﺑﻌﺔ اﻟﺒﺚ ﻟﻤﺒﺎﺷﺮ ﻣﻦ ﻛﺎﻣﻴﺮا اﻟﻬﺎﺗﻒ اﻟﻤﺤﻤﻮل ﻋﻠﻰ ﺻﻔﺤﺔ اﻟﻮﻳﺐ اﻟﺘﺤﻜــﻢ ﺑﻤﺤــﺮك DC ﺑﺎﺳــﺘﺨﺪام اﻟﺘﺮاﻧﺰﺳﺘﻮر ﻳﻬﺪف ﻫﺬا اﻟﻤﺸﺮوع إﻟﻰ ﺗﻌﻠﻢ ﻛﻴﻔﻴﺔ ﺗﺸﻐﻴﻞ وإﻳﻘﺎف ﻣﺤﺮك اﻟﺘﻴﺎر اﻟﻤﺴﺘﻤﺮ ﻋﻦ ﻃﺮﻳﻖ اﻷردوﻳﻨﻮ. ﻓﺴﻮف ﻧﻘﻮم ﺑﺘﻌﻠﻢ ﻛﻴﻔﻴﺔ اﻟﺘﺤﻜﻢ ﺑﻤﺤﺮك اﻟﺘﻴﺎر اﻟﻤﺴﺘﻤﺮ ﻋﻦ ﻃﺮﻳﻖ اﻟﺘﺮاﻧﺰﺳﺘﻮر.
اﻟﻤﻜﻮﻧﺎت اﻟﻤﻄﻠﻮﺑﺔ Arduino Uno 1K Resistor
2n2222 NPN Transistor DC Motor DC Power Supply
Breadboard Wires اﻟﺘﺮاﻧﺴﺘﻮر Transistor ﻫﻮ ﻋﺒﺎرة ﻋﻦ ﻣﻔﺘﺎح اﻟﻜﺘﺮوﻧﻲ ﻳﻤﻜﻦ اﻟﺘﺤﻜﻢ ﻓﻲ ﻓﺘﺤﻪ وإﻏﻼﻗﻪ. ﻳﺘﺮﻛﺐ اﻟﺘﺮاﻧﺰﺳﺘﻮر ﻣﻦ ﻣﻮاد ﺷﺒﺔ ﻣﻮﺻﻠﺔ وﻟﻪ ﺛﻼث أﻃﺮاف. اﻷول ﻳﺴﻤﻰ اﻟﻤﺸﻊ واﻟﺜﺎﻧﻲ ﻳﺴﻤﻰ اﻟﻘﺎﻋﺪة واﻟﺜﺎﻟﺚ ﻳﺴﻤﻰ اﻟﻤﺠﻤﻊ.
ﻓﻜﺮة ﻋﻤﻠﺔ ﻋﻨﺪ ﻣﺮور ﺗﻴﺎر إﻟﻰ ﻃﺮف اﻟﻘﺎﻋﺪة ﻳﺼﺒﺢ اﻟﺘﺮاﻧﺰﺳﺘﻮر ﻓﻲ ﺣﺎﻟﺔ ﺗﻮﺻﻴﻞ وﻫﺬا ﻳﺴﻤﺢ ﺑﻤﺮور اﻟﺘﻴﺎر ﺑﻴﻦ اﻟﻤﺸﻊ واﻟﻤﺠﻤﻊ. وﻋﻨﺪ ﻗﻄﻊ اﻟﺘﻴﺎر ﻋﻦ ﻃﺮف اﻟﻘﺎﻋﺪة ﻳﺼﺒﺢ ﻓﻲ ﺣﺎﻟﺔ ﻗﻄﻊ أي ﻻ ﻳﻤﺮ أي ﺗﻴﺎر ﺑﻴﻦ اﻟﻤﺸﻊ واﻟﻤﺠﻤﻊ. ﻣﺤﺮك اﻟﺘﻴﺎر اﻟﻤﺴﺘﻤﺮ ) (DC Motor ﻫﻮ ﻋﺒﺎرة ﻋﻦ ﺟﻬﺎز ﻳﻘﻮم ﺑﺘﺤﻮﻳﻞ اﻟﻄﺎﻗﺔ ﻣﻦ ﺻﻮرة ﻛﻬﺮﺑﺎﺋﻴﺔ إﻟﻰ ﺻﻮرة ﻣﻴﻜﺎﻧﻴﻜﻴﺔ. ﺑﻤﻌﻨﻰ أﻧﻪ ﻋﻨﺪ ﻣﺮور ﺗﻴﺎر ﻛﻬﺮﺑﺎﺋﻲ ﺳﻮف ﻧﺤﺼﻞ ﻋﻠﻰ ﻋﺰم دوراﻧﻲ ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻪ ﻣﻊ أي ﺟﺴﻢ ﻟﻴﻘﻮم ﺑﺘﺤﺮﻳﻜﻪ. ﻋﻠﻰ ﺳﺒﻴﻞ اﻟﻤﺜﺎل ﻧﺤﺘﺎج ﻓﻲ اﻟﺮوﺑﻮت ﻣﺤﺮك ﺗﻴﺎر ﻣﺴﺘﻤﺮ ﻟﻜﻲ ﻳﺘﻢ ﺗﺤﺮﻳﻚ اﻟﺮوﺑﻮت أو ﻳﻤﻜﻦ اﺳﺘﺨﺪام ﻫﺬا اﻟﻤﺤﺮك ﻓﻲ ﺻﻨﻊ اﻟﻤﺮاوح اﻟﻜﻬﺮﺑﺎﺋﻴﺔ أو ﺣﺘﻰ ﺻﻨﻊ ﻣﻀﺨﺎت اﻟﻤﻴﺎه.
ﺗﻮﺻﻴﻞ اﻟﺪارة : ﻻ ﻳﺠﺐ ﺗﻮﺻﻴﻞ ﻣﺤﺮك اﻟﺘﻴﺎر اﻟﻤﺴﺘﻤﺮ ﻣﺒﺎﺷﺮة ﻣﻊ اﻻردوﻳﻨﻮ. ﻷن اﻟﻤﺤﺮك ﻳﺤﺘﺎج إﻟﻰ ﺗﻴﺎر ﻋﺎﻟﻲ ﻻ ﻳﺴﺘﻄﻴﻊ اﻻردوﻳﻨﻮ اﻋﻄﺎءه ﻟﻪ. ﻟﺬﻟﻚ ﻧﺴﺘﺨﺪم اﻟﺘﺮاﻧﺰﺳﺘﻮر ﻛﺪاﺋﺮة ﺑﻴﻦ اﻻردوﻳﻨﻮ اﻟﺬي ﻳﻌﻤﻞ ﺑﺘﻴﺎر ﺻﻐﻴﺮ وﺑﻴﻦ اﻟﻤﺤﺮك اﻟﺬي ﻳﺤﺘﺎج إﻟﻰ ﺗﻴﺎرات ﻋﺎﻟﻴﺔ. ﻗﻢ ﺑﺘﻮﺻﻴﻞ اﻟﺪاﺋﺮة ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺼﻮرة اﻟﺘﺎﻟﻴﺔ :
ﻋﻨﺪ ﺗﻮﺻﻴﻞ اﻟﺘﻴﺎر إﻟﻰ ﻗﺎﻋﺪة اﻟﺘﺮاﻧﺰﺳﺘﻮر ﺑﻮاﺳﻄﺔ اﻷردوﻳﻨﻮ ﻳﻘﻮم اﻟﻤﺤﺮك ﺑﺎﻟﺪوران وﻋﻨﺪ ﻓﺼﻞ اﻟﺘﻴﺎر ﻋﻦ اﻟﻘﺎﻋﺪة ﻳﺘﻮﻗﻒ.
اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ : ﻗﻢ ﺑﻜﺘﺎﺑﺔ اﻟﻜﻮد اﻟﺘﺎﻟﻲ ﻟﻠﺘﺤﻜﻢ ﺑﺎﻟﻤﺤﺮك ﻋﺒﺮ اﻟﺘﺮاﻧﺰﺳﺘﻮر : ] [/crayon-5d0bcf4e15206289397480 ﺷﺮح اﻟﻜﻮد ﻳﻘﻮم ﻫﺬا اﻟﻜﻮد ﺑﺘﺸﻐﻴﻞ اﻟﻤﺤﺮك و اﻃﻔﺎءة. ﻓﻴﻌﻤﻞ اﻟﻤﺤﺮك ﻣﺪة 7 ﺛﻮان ﺛﻢ ﻳﺘﻮﻗﻒ 7 ﺛﻮان اﺧﺮى ﻟﻴﻌﻮد ﻟﻠﻌﻤﻞ ﺑﻌﺪﻫﻢ و ﻫﻜﺬا ﺣﺘﻰ ﻳﺘﻢ ﻓﺼﻞ اﻟﺘﻴﺎر اﻟﻜﻬﺮﺑﺎﺋﻰ ﻋﻦ اﻟﺪارة. ﻓﻲ اﻟﺒﺪاﻳﺔ ﻧﻘﻮم ﺑﺘﺴﻤﻴﺔ اﻟﻄﺮف 13 ﻓﻰ اﻻردوﻳﻨﻮ MOTOR ﺑﻌﺪ ذﻟﻚ ﻓﻲ اﻟﺪاﻟﺔ )( setup ﻧﻘﻮم ﺑﺘﻌﺮﻳﻒ ﻫﺬا اﻟﻄﺮف ﻛﻤﺨﺮج ] [/crayon-5d0bcf4e1520a870995286 ﻓﻲ اﻟﺠﺰء اﻟﺘﺎﻟﻲ ﻧﻘﻮم ﺑﺘﺸﻐﻴﻞ أو وﺿﻊ ﻗﻴﻤﺔ HIGH ﻋﻠﻰ اﻟﻄﺮف MOTOR ﻓﻴﻌﻤﻞ اﻟﻤﺤﺮك. ﺛﻢ ﺑﺈﺳﺘﺨﺪام اﻟﺪاﻟﺔ ) delay(7000 ﻧﻘﻮم ﺑﻌﻤﻞ ﺗﺄﺧﻴﺮ زﻣﻨﻲ ﻣﺪﺗﻪ 7 ﺛﻮان ﻓﻴﻀﻞ اﻟﻤﺤﺮك ﺳﻴﻌﻤﻞ ﺧﻼﻟﻬﺎ. ﻳﺘﻢ إﻃﻔﺎء اﻟﻤﺤﺮك ﻋﻦ ﻃﺮﻳﻖ وﺿﻊ ﻗﻴﻤﺔ LOW ﻋﻠﻰ اﻟﻄﺮف MOTOR ﻓﻴﺘﻮﻗﻒ
اﻟﻤﺤﺮك ﻋﻦ اﻟﺪوران ﻟﻤﺪة 7 ﺛﻮان. ] [/crayon-5d0bcf4e1520d218307978 ﻣﺸﺮوع آﻟﺔ اﻟﺘﺒﺮﻳﺪ ﺳﻨﻘﻮم ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺑﺼﻨﻊ آﻟﺔ ﺗﺒﺮﻳﺪ ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻬﺎ ﻟﺘﺒﺮﻳﺪ اﻟﻤﺸﺮوﺑﺎت ﺑﺎﺳﺘﺨﺪام ﻣﺴﺘﺸﻌﺮ اﻟﺤﺮارة وﻗﻄﻊ اﻟﻜﺘﺮوﻧﻴﺔ أﺧﺮى. اﻷدوات اﻟﻤﻄﻠﻮﺑﺔ
Inventor Kit اﻟﻘﻄﻊ اﻟﻤﻄﻠﻮﺑﺔ
ﻃﺮﻳﻘﺔ اﻟﺘﻮﺻﻴﻞ ﻧﻘﻮم ﺑﺘﻮﺻﻴﻞ ﻣﺴﺘﺸﻌﺮ اﻟﺤﺮارة إﻟﻰ اﻟﻠﻮﺣﺔ اﻟﺮﺋﻴﺴﻴﺔ ﻋﺒﺮ ﻣﺤﻮل Rj25 اﻟﻤﻨﻔﺬ ﻣﻨﻔﺬ 4 اﻟﻘﻄﻌﺔ اﻻﻟﻜﺘﺮوﻧﻴﺔ وﺣﺪة segment-7 ﻣﻨﻔﺬ 6 ﻣﺤﻮل RJ25 ﻣﻨﻔﺬ 8 اﻟﻤﻘﺎوﻣﺔ اﻟﻤﺘﻐﻴﺮة ﻣﻨﻔﺬ اﻟﻤﺤﺮﻛﺎت M1 اﻟﻤﺮوﺣﺔ Me 130 dc motor
ﺑﺮﻣﺠﺔ اﻟﻤﺸﺮوع ﺳﻨﻘﻮم ﺑﺒﺮﻣﺠﺔ اﻟﻤﺸﺮوع ﺑﺤﻴﺚ ﻳﺘﻴﺢ ﻟﻨﺎ ﺗﻌﻴﻴﻦ درﺟﺔ اﻟﺤﺮارة اﻟﺘﻲ ﻧﺮﻏﺐ ﻓﻲ ﺗﺒﺮﻳﺪ اﻟﻌﺼﻴﺮ إﻟﻴﻬﺎ ﻋﺒﺮ اﻟﻤﻘﺎوﻣﺔ اﻟﻤﺘﻐﻴﺮة وﻳﺘﻢ ﻋﺮﺿﻬﺎ ﻋﻠﻰ وﺣﺪة segment-7 ﻧﻘﻮم ﺑﻮﺿﻊ ﻣﺴﺘﺸﻌﺮ اﻟﺤﺮارة داﺧﻞ اﻟﻜﻮب ﻓﻴﻘﻮم اﻟﺒﺮﻧﺎﻣﺞ ﺑﻤﻘﺎرﻧﺔ درﺟﺔ ﺣﺮارة اﻟﻌﺼﻴﺮ ﺑﺪرﺟﺔ اﻟﺤﺮارة اﻟﺘﻲ ﻗﻤﻨﺎ ﺑﺎﺧﺘﻴﺎرﻫﺎ إذا ﻛﺎﻧﺖ أﻋﻠﻰ )أي أﺳﺨﻦ( ﻳﺘﻢ ﺗﺸﻐﻴﻞ اﻟﻤﺮوﺣﺔ ﻟﻠﺘﺒﺮﻳﺪ إﻟﻰ أن ﺗﺼﻞ ﻟﺪرﺟﺔ اﻟﺤﺮارة اﻟﻤﻄﻠﻮﺑﺔ. ﻓﻲ اﻟﺒﺪاﻳﺔ ﺳﻨﻘﻮم ﺑﺘﺤﺪﻳﺪ ﻣﺪى ﻗﺮاءة اﻟﻤﻘﺎوﻣﺔ اﻟﻤﺘﻐﻴﺮة ﺣﻴﺚ ﺳﻨﺴﺘﺨﺪﻣﻬﺎ ﻓﻲ ﺗﺤﺪﻳﺪ درﺟﺔ اﻟﺤﺮارة ﻧﻨﺸﺊ ﻣﺘﻐﻴﺮ ا ﺑﺎﺳﻢ temperature وﻧﻘﻮم ﺑﺘﻌﻴﻴﻨﻪ ﻟﻘﺮاءة ﻗﻴﻤﺔ اﻟﻤﻘﺎوﻣﺔ اﻟﻤﺘﻐﻴﺮة ﻧﻘﻮم ﺑﺘﻌﻴﻴﻦ وﺣﺪة segment-7 ﻟﻌﺮض درﺟﺔ اﻟﺤﺮارة temperature ﻧﺴﺘﺨﺪم اﻷﻣﺮ اﻟﺘﺎﻟﻲ ﻟﻘﺮاءة ﻣﺴﺘﺸﻌﺮ درﺟﺔ اﻟﺤﺮارة ﺑﺎﺳﺘﺨﺪام ﺣﻠﻘﺔ Repeat until ﻧﻀﻊ أﻣﺮ اﻟﻤﺤﺮك M1 اﻟﻤﺘﻌﻠﻖ ﺑﺎﻟﻤﺮوﺣﺔ ﻟﻴﺘﺤﺮك ﺑﺴﺮﻋﺔ 100 إﻟﻰ أن ﺗﺼﺒﺢ درﺟﺔ اﻟﺤﺮارة اﻟﺘﻲ اﺧﺘﺮﻧﺎﻫﺎ أﻛﺒﺮ ﻣﻦ اﻟﺤﺮارة اﻟﺘﻲ ﻳﻘﺮأﻫﺎ اﻟﻤﺴﺘﺸﻌﺮ
ﻋﻨﺪ ﺗﺒﺮﻳﺪ اﻟﻜﻮب إﻟﻰ درﺟﺔ اﻟﺤﺮارة اﻟﻤﻄﻠﻮﺑﺔ ﺗﺘﻮﻗﻒ اﻟﻤﺮوﺣﺔ اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ ﻟﻠﻤﺰﻳﺪ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ﺣﻮل اﻟﻜﻮد ﻳﻤﻜﻨﻚ ﻣﺮاﺟﻌﺔ درس ﺟﻮﻟﺔ ﺣﻮل اﻷواﻣﺮ اﻟﺒﺮﻣﺠﻴﺔ.
اﻟﺘﺤﻜــﻢ اﻻردوﻳﻨﻮ ﺑﺎﻟﻤﺮوﺣــﺔ ﺑﺎﺳــﺘﺨﺪام ﻓﻲ ﻫﺬا اﻟﻤﺸﺮوع ﺳﻨﺘﻌﻠﻢ ﻓﻜﺮة ﻋﻤﻞ اﻟﻤﺮﺣﻞ وﻛﻴﻔﻴﺔ اﺳﺘﻌﻤﺎﻟﻪ ﻟﻠﺘﺤﻜﻢ ﻓﻲ ﺗﺸﻐﻴﻞ ﻣﺮوﺣﺔ ﺗﻌﻤﻞ ﻋﻠﻰ ﻣﺤﺮك ﺗﻴﺎر ﻣﺴﺘﻤﺮ و اﻳﻀﺎ ﻋﻜﺲ اﺗﺠﺎه ﺣﺮﻛﺘﻬﺎ. اﻟﻤﻜﻮﻧﺎت اﻟﻤﻄﻠﻮﺑﺔ
Arduino Uno Relay Module 5v DC Fan
DC Power Supply Breadboard
Wires اﻟﻤﺮﺣﻞ Relay اﻟﻤﺮﺣﻞ ﻫﻮ ﻋﺒﺎرة ﻋﻦ ﻣﻔﺘﺎح ﻛﻬﺮوﻣﻴﻜﺎﻧﻴﻜﻲ. وﻫﺬا ﻳﻌﻨﻲ أﻧﻪ ﻳﺘﻜﻮن ﻣﻦ ﻧﻘﺎط ﺗﻼﻣﺲ وﻟﻜﻨﻪ ﻳﺤﺘﻮي ﻋﻠﻰ ﻣﻠﻒ ﻛﻬﺮﺑﺎﺋﻲ. ﻓﺎﺋﺪة ﻫﺬا اﻟﻤﻠﻒ ﻫﻮ اﻟﺘﺤﻜﻢ ﻓﻲ ﺗﻮﺻﻴﻞ وﻓﺼﻞ ﻧﻘﺎط اﻟﺘﻼﻣﺲ ﻟﻠﺘﺤﻜﻢ ﻓﻲ اﻟﻔﺼﻞ واﻟﺘﺸﻐﻴﻞ ﻓﻲ اﻟﻤﺮﺣﻞ. ﻣﻜﻮﻧﺎت اﻟﻤﺮﺣﻞ.1 ﻣﻠﻒ ﻛﻬﺮﺑﺎﺋﻲ ﻧﻘﺎط ﺗﻮﺻﻴﻞ ﻣﻐﻠﻘﺔ وﻣﻔﺘﻮﺣﺔ.2
ﻟﻤﺎذا ﻳﺘﻢ اﺳﺘﺨﺪام اﻟﻤﺮﺣﻞ ﻻ ﻳﻤﻜﻦ ﺗﻮﺻﻴﻞ ﻣﺮوﺣﺔ اﻟﺘﻴﺎر اﻟﻤﺴﺘﻤﺮ ﺑﺸﻜﻞ ﻣﺒﺎﺷﺮ ﻣﻊ اﻻردوﻳﻨﻮ. وذﻟﻚ ﺑﺴﺒﺐ اﺣﺘﻴﺎج اﻟﻤﺮوﺣﺔ إﻟﻰ ﺗﻴﺎر ﻋﺎﻟﻲ ﻻ ﻳﺴﺘﻄﻴﻊ اﻻردوﻳﻨﻮ اﻋﻄﺎءه ﻟﻬﺎ. ﻟﺬﻟﻚ ﻧﺴﺘﺨﺪم اﻟﻤﺮﺣﻞ ) (Relay ﻛﺪاﺋﺮة ﺑﻴﻦ اﻻردوﻳﻨﻮ اﻟﺬي ﻳﻌﻤﻞ ﺑﺘﻴﺎر ﺻﻐﻴﺮ وﺑﻴﻦ اﻟﻤﺮوﺣﺔ اﻟﺘﻲ ﺗﺨﺘﺎج إﻟﻰ ﺗﻴﺎرات ﻋﺎﻟﻴﺔ. ﻣﺮوﺣﺔ اﻟﺘﻴﺎر اﻟﻤﺴﺘﻤﺮ ) : (DC Fan ﻫﻲ ﻋﺒﺎرة ﻋﻦ ﻣﺤﺮك ﺗﻴﺎر اﻟﺘﺤﻜﻢ ﺑﻬﺎ ﺑﺸﻜﻞ ﻣﺸﺎﺑﻪ ﻋﻦ ﻃﺮﻳﻖ اﻣﺪادﻫﺎ ﺑﺘﻴﺎر اﻃﺮاﻓﻬﺎ أي ﻋﻜﺲ اﻻﻗﻄﺎب ﻣﺴﺘﻤﺮ ﻣﺜﺒﺖ ﻋﻠﻴﻪ رﻳﺶ ﻟﻴﻌﻤﻞ ﻛﻤﺮوﺣﺔ. ﻳﺘﻢ ﻟﻠﺘﺤﻜﻢ ﺑﻤﺤﺮك اﻟﺘﻴﺎر اﻟﻤﺴﺘﻤﺮ. ﻳﺘﻢ ﺗﺸﻐﻴﻠﻬﺎ ﻣﺴﺘﻤﺮ وﻟﻌﻜﺲ ﺣﺮﻛﺘﻬﺎ ﺳﻨﻘﻮم ﺑﻌﻜﺲ ﺗﻮﺻﻴﻞ ﻟﺘﺪور ﻓﻲ اﻻﺗﺠﺎه اﻟﻤﻌﺎﻛﺲ.
ﺗﻮﺻﻴﻞ اﻟﺪارة : ﻳﺘﻢ ﺗﻮﺻﻴﻞ اﻟﺪارة ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺼﻮرة اﻟﺘﺎﻟﻴﺔ : اﻟﺘﻮﺻﻴﻼت :
ﻃﺮﻓﻰ اﻟﻤﺤﺮك ﻃﺮﻓﻰ COM ﻟﻞ Relay Module ﻃﺮف اﻟﺒﻄﺎرﻳﺔ اﻟﻤﻮﺟﺐ ﻃﺮﻓﻰ NO ﻟﻞ Relay Module ﻃﺮف اﻟﺒﻄﺎرﻳﺔ اﻟﺴﺎﻟﺐ ﻃﺮﻓﻰ NC ﻟﻞ Relay Module ﻃﺮف Vcc ﻟﻞ Arduino ﻃﺮف Vcc ﻟﻞ Relay Module ﻃﺮف Gnd ﻟﻞ Arduino ﻃﺮف GND ﻟﻞ Relay Module ﻃﺮف 12 ﻟﻞ Arduino ﻃﺮف IN1 ﻟﻞ Relay Module ﻃﺮف 13 ﻟﻞ Arduino ﻃﺮف IN2 ﻟﻞ Relay Module ﻛﻴﻔﻴﺔ ﻋﻤﻞ اﻟﺪارة ﺳﻴﺘﻢ وﺻﻞ ﻃﺮﻓﻰ اﻟﻤﺮﺣﻞ ) (Relay ﻋﻠﻰ ﻣﻨﺎﻓﺬ ﻣﻦ اﻟﻨﻮع اﻟﺮﻗﻤﻲ. ﻟﺠﻌﻞ اﻟﻤﺮوﺣﺔ ﺗﺪور ﻣﻊ اﺗﺠﺎه ﻋﻘﺎرب اﻟﺴﺎﻋﺔ ﻧﻘﻮم ﺑﺠﻌﻞ ﻗﻴﻤﺔ اﻟﻤﺨﺮج اﻷول HIGH واﻟﺜﺎﻧﻲ. LOW وﻟﺪوراﻧﻬﺎ ﻋﻜﺲ ﻋﻘﺎرب اﻟﺴﺎﻋﺔ ﻧﻘﻮم ﺑﻌﻜﺲ اﻟﻌﻤﻠﻴﺔ اﻟﺴﺎﺑﻘﺔ. اﻣﺎ ﻟﺠﻌﻠﻬﺎ ﺗﺘﻮﻗﻒ ﻧﻘﻮم ﺑﺠﻌﻞ ﻛﻼ اﻟﻄﺮﻓﺎن. LOW اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ : ﻗﻢ ﺑﻜﺘﺎﺑﺔ اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ ﻛﻤﺎ ﻳﻠﻲ :
] [/crayon-5d0bcf4e15467063037632 ﺷﺮح اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ : ﺗﺪور اﻟﻤﺮوﺣﺔ ﻓﻲ اﻹﺗﺠﺎه اﻷول ﻟﻤﺪة 3 ﺛﻮان ﺛﻢ ﺗﺘﻮﻗﻒ ﻟﻤﺪة 3 ﺛﻮان. وﺑﻌﺪ ذﻟﻚ ﺗﺪور ﻓﻲ اﻻﺗﺠﺎه اﻟﻤﻌﺎﻛﺲ ﻟﻤﺪة 3 ﺛﻮان ﺛﻢ ﺗﺘﻮﻗﻒ ﻟﻤﺪة 3 ﺛﻮان اﺧﺮى وﻫﻜﺬا ﺣﺘﻰ ﻳﺘﻢ ﻓﺼﻞ اﻟﺘﻴﺎر. اﻟﺸﺮح ﻣﻔﺼﻼ : ﻳﺘﻢ ﺿﺒﻂ اﻟﻤﻨﺎﻓﺬ اﻟﻤﻮﺻﻠﻪ ﻣﻊ اﻟﻤﺮﺣﻞ IN1 IN2 ﻛﻤﺨﺮج : ] [/crayon-5d0bcf4e1546c070522556 ﻓﻲ داﻟﺔ اﻟـ )( loop ﻧﻘﻮم ﺑﺎﺳﺘﺪﻋﺎء اﻟﺪاﻟﺔ )( motor_forward ﻟﺘﺸﻐﻴﻞ اﻟﻤﺮوﺣﺔ ﻣﻊ اﺗﺠﺎه ﻋﻘﺎرب اﻟﺴﺎﻋﺔ. ﺛﻢ ﻧﻘﻮم ﺑﺎﺳﺘﺨﺪام اﻟﺪاﻟﺔ ) delay(3000 ﻹﺿﺎﻓﺔ ﺗﺄﺧﻴﺮ زﻣﻨﻲ ﻣﺪﺗﻪ 3 ﺛﻮان ﺗﻈﻞ اﻟﻤﺮوﺣﺔ ﺧﻼﻟﻪ ﺗﺪور ﻓﻲ ﻧﻔﺲ اﻻﺗﺠﺎه. ﺛﻢ ﻳﺘﻢ اﺳﺘﺨﺪام اﻟﺪاﻟﺔ )( motor_stop ﻹﻳﻘﺎف اﻟﻤﺮوﺣﺔ ﻋﻦ اﻟﻌﻤﻞ ﻟﻤﺪة 3 ﺛﻮان. ﺛﻢ ﺑﺈﺳﺘﺪﻋﺎء اﻟﺪاﻟﺔ )( motor_reverse ﻧﻘﻮم ﺑﻌﻜﺲ اﺗﺠﺎه اﻟﺤﺮﻛﺔ ﻟﻠﻤﺮوﺣﺔ. ﻳﺘﻢ ﺗﻜﺮار ﻫﺬه اﻟﻌﻤﻠﻴﺔ ﺣﺘﻰ ﻳﺘﻢ ﻓﺼﻞ اﻟﺘﻴﺎر. ] [/crayon-5d0bcf4e1546e142027992 داﻟﺔ )( motor_forward ﺗﻘﻮم ﺑﺘﺸﻐﻴﻞ اﻟﻤﺮوﺣﺔ ﻣﻊ اﺗﺠﺎه ﻋﻘﺎرب اﻟﺴﺎﻋﺔ. ﻓﻬﻲ ﺗﻘﻮم ﺑﺠﻌﻞ أﺣﺪ اﻷﻃﺮاف HIGH واﻟﻄﺮف اﻷﺧﺮ LOW ﻓﺘﺪور اﻟﻤﺮوﺣﺔ ﻓﻲ ﻫﺬا اﻹﺗﺠﺎه. ] [/crayon-5d0bcf4e15471729894189 ﺗﻌﻤﻞ اﻟﺪاﻟﺔ )( motor_reverse ﺑﺸﻜﻞ ﻣﺸﺎﺑﻪ ﻟﻠﺪاﻟﺔ اﻟﺴﺎﺑﻘﺔ motor_forward وﻟﻜﻦ ﺗﻌﻜﺲ اﻟﻤﺨﺮﺟﺎت ﻋﻠﻰ اﻷﻃﺮاف ﻓﺎﻟﻄﺮف اﻟﺬي ﺗﻢ إﺧﺮاج ﻗﻴﻤﺔ HIGH ﻋﻠﻴﻪ ﻳﺘﻢ ﺟﻌﻠﻪ LOW واﻟﻄﺮف اﻷﺧﺮ. HIGH ﻓﻴﻨﺘﺞ دوران ﺑﺎﺗﺠﺎه ﻣﻌﺎﻛﺲ ﻹﺗﺠﺎه ﻋﻘﺎرب اﻟﺴﺎﻋﺔ. ] [/crayon-5d0bcf4e15473587972709 ﺗﻘﻮم اﻟﺪاﻟﺔ ()motor_stop ﺑﺈﻳﻘﺎف اﻟﻤﺮوﺣﺔ ﺗﻤﺎﻣﺎ ﻋﻦ اﻟﺤﺮﻛﺔ ﻋﻦ ﻃﺮﻳﻖ ﺟﻌﻞ ﻛﻼ اﻟﻄﺮﻓﺎن LOW ﻓﻼ ﻳﺼﻞ ﺗﻴﺎر إﻟﻰ اﻟﻤﺮوﺣﺔ ﻓﺘﺘﻮﻗﻒ.
[/crayon-5d0bcf4e15475784817666]