instructables-logo

Instructables VHDL मोटर स्पीड कंट्रोल डिसाईड डायरेक्शन आणि स्पीड डावा आणि उजवा स्पीड कंट्रोलर

सूचना-VHDL-मोटर-स्पीड-कंट्रोल-निर्णय-दिशा-आणि-गती-डावी-आणि-उजवी-गती-नियंत्रक-उत्पादन

टीप: हे पृष्ठ एका मोठ्या बिल्डचा एक भाग आहे. कृपया तुम्ही येथे सुरू केल्याची खात्री करा, जेणेकरून तुम्हाला समजेल की खालील गोष्टी मोठ्या प्रकल्पात कुठे बसतात

ओव्हरview

मोटर स्पीड आणि डायरेक्शन कंट्रोल हा फोटोडिटेक्टर रोबोटमधील दोन मुख्य विभागांपैकी एक आहे, दुसरा फोटोडिटेक्टर किंवा लाईट डिटेक्टर विभाग आहे. फोटोडिटेक्टर विभाग रोबोटच्या दृष्टीवर लक्ष केंद्रित करतो, तर मोटर गती आणि दिशा नियंत्रण विभाग रोबोटच्या हालचालीवर लक्ष केंद्रित करतो. मोटर गती आणि दिशा नियंत्रण प्रक्रिया डेटा फोटोडिटेक्टर विभागातून दिलेला आहे आणि मोटर हालचालीच्या स्वरूपात भौतिक आउटपुट देतो.

प्रकाश शोधणाऱ्या रोबोटच्या डाव्या आणि उजव्या दोन्ही मोटरचा वेग आणि दिशा नियंत्रित करणे हा या विभागाचा उद्देश आहे. ही मूल्ये ठरवण्यासाठी, तुम्हाला कॅमेराद्वारे कॅप्चर केलेल्या आणि थ्रेशोल्डिंगद्वारे प्रक्रिया केलेल्या प्रकाशाचा आकार आणि स्थान आवश्यक असेल. आपल्याला प्रत्येक मोटर्सवर मोजलेल्या गतीची देखील आवश्यकता असेल. या इनपुट्समधून, तुम्ही प्रत्येक मोटर्ससाठी PWM (पल्स-विड्थ मॉड्युलेशन) मूल्य आउटपुट करण्यास सक्षम असाल.

हे साध्य करण्यासाठी, तुम्हाला हे VHDL मॉड्यूल्स (खाली लिंक देखील) बनवावे लागतील:

  1. नियंत्रण
  2. त्रुटी गणना
  3. बायनरी रूपांतरण
  4.  प्रकाश स्रोताची अनुपस्थिती

तुम्ही या विभागासाठी VHDL कोड येथे पाहू शकता.

पुरवठा
आम्ही ISE डिझाईन सूट 14.7 सह कोड करण्याची शिफारस करतो कारण ते VHDL मध्ये कोड तपासण्यासाठी देखील वापरले जाऊ शकते. तथापि, BASYS 3 मध्ये कोड अपलोड करण्यासाठी, तुम्हाला Vivado (ver. 2015.4 किंवा 2016.4) स्थापित करावे लागेल आणि .xdc विस्तारासह मर्यादा लिहा.सूचना-VHDL-मोटर-स्पीड-नियंत्रण-निर्णय-दिशा-आणि-गती-डावी-आणि-उजवी-गती-नियंत्रक-अंजीर-1

व्हीएचडीएल मोटर स्पीड कंट्रोल: दिशा आणि वेग ठरवणे, डावा आणि उजवा स्पीड कंट्रोलर: पृष्ठ 1

सूचना चरण

पायरी 1: नियंत्रण
प्रकाश शोधणार्‍या रोबोटचे वर्तन कसे नियंत्रित करावे हे समजून घेण्यासाठी, आम्ही रोबो जेव्हा प्रकाश स्रोत पाहतो तेव्हा त्याचे इच्छित वर्तन स्पष्ट करू. हे वर्तन प्रकाश स्रोताच्या स्थिती आणि आकारानुसार नियंत्रित केले जाईल.सूचना-VHDL-मोटर-स्पीड-कंट्रोल-निर्णय-दिशा-आणि-गती-डावी-आणि-उजवी-गती-नियंत्रक-

वापरलेले अल्गोरिदम आरसी रोबोट कंट्रोलरशी सादृश्य आहे, एक लीव्हर डावीकडे किंवा उजवीकडे वळवता येतो आणि दुसरा लीव्हर पुढे किंवा मागे वळवता येतो.

प्रकाश शोधण्यासाठी, प्रकाश स्रोताची स्थिती रोबोटच्या समोर असल्यास, आपल्याला हा रोबोट एका सरळ रेषेत हलवायचा आहे. ते करण्यासाठी, तुम्हाला डाव्या आणि उजव्या दोन्ही मोटर्सवर समान गती हवी आहे. रोबोच्या डाव्या बाजूला प्रकाश असल्यास, उजवीकडील मोटार डाव्या मोटारीपेक्षा अधिक वेगाने जावी, जेणेकरून रोबो प्रकाशाकडे डावीकडे वळू शकेल. याउलट, जर प्रकाश रोबोटच्या उजव्या बाजूला असेल, तर तुम्हाला डावीकडील मोटर उजव्या मोटारीपेक्षा अधिक वेगाने हलवायची आहे जेणेकरून रोबोट उजवीकडे प्रकाशाकडे वळू शकेल. हे आरसी कंट्रोलरच्या डाव्या लीव्हरशी साधर्म्य आहे, जिथे तुम्ही रोबोट डावीकडे, उजवीकडे किंवा सरळ हलवू इच्छिता हे तुम्ही नियंत्रित करू शकता.

त्यानंतर, प्रकाश स्रोत दूर (लहान प्रकाश स्रोत) असल्यास रोबोटने पुढे जावे, किंवा शोधलेला प्रकाश स्रोत खूप जवळ असल्यास (मोठा प्रकाश स्रोत) मागे सरकावे असे तुम्हाला वाटते. तुम्‍हाला हे देखील हवे आहे की रोबो प्रकाश स्रोतापासून जितका दूर असेल तितका रोबो वेगाने फिरतो. हे आरसी कंट्रोलरच्या उजव्या लीव्हरशी साधर्म्य आहे, जिथे तुम्हाला पुढे जायचे आहे की मागे जायचे आहे आणि तुम्हाला ते किती वेगाने हलवायचे आहे हे तुम्ही नियंत्रित करू शकता.

त्यानंतर तुम्ही प्रत्येक मोटरच्या गतीसाठी गणितीय सूत्र काढू शकता आणि आम्ही -255 ते 255 दरम्यान गती श्रेणी निवडतो. नकारात्मक मूल्य म्हणजे मोटर मागे वळते, तर सकारात्मक मूल्य म्हणजे मोटर पुढे वळते.

या रोबोटच्या हालचालीसाठी हाच मूळ अल्गोरिदम आहे. या मॉड्यूलबद्दल अधिक जाणून घेण्यासाठी, येथे क्लिक करा.

पायरी 2: त्रुटी गणना
तुमच्याकडे मोटर्सची ध्येय गती आणि दिशा आधीच असल्याने, तुम्ही मोजलेली गती आणि मोटर्सची दिशा देखील विचारात घेऊ इच्छित आहात. जर ते गतीच्या लक्ष्यापर्यंत पोहोचले असेल, तर आम्हाला मोटरने केवळ त्याच्या गतीवर चालवायचे आहे. तसे नसल्यास, आम्हाला मोटरला आणखी वेग वाढवायचा आहे. नियंत्रण सिद्धांतामध्ये, याला बंद-लूप फीडबॅक नियंत्रण प्रणाली म्हणून ओळखले जाते.

या मॉड्यूलबद्दल अधिक जाणून घेण्यासाठी, येथे क्लिक करा.सूचना-VHDL-मोटर-स्पीड-नियंत्रण-निर्णय-दिशा-आणि-गती-डावी-आणि-उजवी-गती-नियंत्रक-अंजीर-2

पायरी 3: बायनरी रूपांतरण
मागील गणनेवरून, प्रत्येक मोटर्ससाठी आवश्यक असलेली क्रिया तुम्हाला आधीच माहित आहे. तथापि, गणना चिन्हांकित बायनरी वापरून केली जाते. या मॉड्युलचा उद्देश ही स्वाक्षरी केलेली मूल्ये PWM जनरेटरद्वारे वाचता येणार्‍या मूल्यामध्ये रूपांतरित करणे आहे, जी दिशा (एकतर घड्याळाच्या दिशेने किंवा घड्याळाच्या उलट दिशेने) आणि गती (0 ते 255 दरम्यान) आहे. तसेच, मोटारकडून मिळालेला अभिप्राय अस्वाक्षरित बायनरीमध्ये मोजला जात असल्याने, सही न केलेल्या मूल्यांचे (दिशा आणि गती) स्वाक्षरी केलेल्या मूल्यामध्ये रूपांतर करण्यासाठी दुसरे मॉड्यूल आवश्यक आहे जे त्रुटी गणना मॉड्यूलद्वारे मोजले जाऊ शकते. या मॉड्यूलबद्दल अधिक जाणून घेण्यासाठी, येथे क्लिक करा.

पायरी 4: प्रकाश स्रोताची अनुपस्थिती
तुम्ही असा रोबोट बनवला आहे जो रोबोला प्रकाश सापडल्यावर प्रकाश शोधण्यासाठी हलतो. पण जेव्हा रोबोटला प्रकाश सापडत नाही तेव्हा काय होते? अशी स्थिती असताना काय करावे हे ठरवणे हा या मॉड्यूलचा उद्देश आहे.

रोबोटला जागोजागी फिरवण्याचा सर्वात सोपा मार्ग आणि प्रकाश स्रोत शोधणे हा आहे. काही सेकंदांसाठी फिरवल्यानंतर, जर रोबोटला अद्याप प्रकाश स्रोत सापडला नाही, तर उर्जा वाचवण्यासाठी रोबोटने हालचाल थांबवावी अशी तुमची इच्छा आहे. दुसर्‍या सेट केलेल्या सेकंदांनंतर, रोबो प्रकाश शोधण्यासाठी पुन्हा जागी फिरला पाहिजे. या मॉड्यूलबद्दल अधिक जाणून घेण्यासाठी, येथे क्लिक करा.

चरण 5: ते कसे कार्य करते
या स्पष्टीकरणासाठी तुम्ही वरील चित्राचा संदर्भ घेऊ शकता. या निर्देशाच्या सुरुवातीला नमूद केल्याप्रमाणे, तुम्हाला थ्रेशोल्डिंग विभागातील इनपुट "आकार" आणि "स्थिती" आवश्यक असेल. हे इनपुट वैध आहेत याची खात्री करण्यासाठी (उदाampले, जेव्हा तुम्हाला आकार = 0 प्राप्त होतो, तेव्हा आकार खरोखर शून्य असतो कारण कॅमेरा प्रकाश शोधत नाही, आणि कॅमेरा अद्याप सुरू होत नसल्यामुळे) तुम्हाला काही प्रकारच्या निर्देशकाची देखील आवश्यकता असेल, ज्याला आम्ही “रेडी” म्हणतो. या डेटावर नियंत्रणाद्वारे प्रक्रिया केली जाईल (Ctrl. vhd) प्रत्येक मोटरची लक्ष्य गती निर्धारित करण्यासाठी (9 बिट, स्वाक्षरी केलेले).

मोटरवरील अधिक स्थिर आउटपुटसाठी, तुम्हाला बंद-लूप प्रणालीमध्ये फीडबॅक वापरायचा आहे. यासाठी मोटर गती मापन विभागातील प्रत्येक मोटरचे इनपुट "दिशा" आणि "गती" आवश्यक आहे. तुम्‍हाला तुमच्‍या गणनेमध्‍ये हे इनपुट अंतर्भूत करायचे असल्‍याने, तुम्‍हाला या अस्‍वाक्षरित मूल्यांचे 9-बिट स्वाक्षरीत बायनरीमध्‍ये रूपांतर करावे लागेल. हे स्वाक्षरी न केलेल्या बायनरी कनवर्टर (US2S.vhd) द्वारे केले जाते.

एरर कॅल्क्युलेशन (एरर. vhd) काय करते ते प्रत्येक मोटारची क्रिया ठरवण्यासाठी गोल गतीमधून मोजलेली गती वजा केली जाते. याचा अर्थ असा की जेव्हा दोन्हीचे मूल्य समान असते तेव्हा वजाबाकी शून्य होते आणि मोटर केवळ त्याच्या गतीवर फिरते. तुम्ही गुणाकाराचा घटक देखील जोडू शकता जेणेकरुन रोबोट वेगाने लक्ष्यापर्यंत पोहोचू शकेल.

मोटर कंट्रोलरला प्रत्येक मोटरचा वेग आणि दिशा आवश्यक असल्याने, तुम्हाला क्रियेची स्वाक्षरी केलेली मूल्ये दोन स्वतंत्र अस्वाक्षरित मूल्यांमध्ये भाषांतरित करावी लागतील: गती (1 बिट) आणि दिशा (8 बिट). हे स्वाक्षरी-ते-साइन केलेले बायनरी कनवर्टर (S2US.vhd) द्वारे केले जाते, आणि मोटर नियंत्रण विभागासाठी इनपुट बनतील.

प्रकाश आढळला नाही तेव्हा काय करावे हे निर्धारित करण्यासाठी आम्ही एक मॉड्यूल देखील जोडले (प्रकाश काउंटर नाही. Bhd). हे मॉड्यूल मुळात एक काउंटर असल्यामुळे, रोबोटला किती वेळ फिरवायचे किंवा जागेवर राहायचे आहे हे मोजले जाईल. हे यंत्रमानव त्याच्या समोर जे आहे त्यापेक्षा त्याचे वातावरण “पाहते” याची खात्री करेल आणि प्रकाश स्रोत खरोखर उपलब्ध नसताना बॅटरी उर्जा वाचवेल.सूचना-VHDL-मोटर-स्पीड-नियंत्रण-निर्णय-दिशा-आणि-गती-डावी-आणि-उजवी-गती-नियंत्रक-अंजीर-3

चरण 6: एकत्र करा Files
एकत्र करण्यासाठी files, तुम्हाला प्रत्येक मॉड्यूलमधून सिग्नल जोडणे आवश्यक आहे. ते करण्यासाठी, तुम्हाला एक नवीन शीर्ष स्तर मॉड्यूल बनवावे लागेल file. मागील मॉड्यूल्सचे इनपुट आणि आउटपुट घटक म्हणून घाला, कनेक्शनसाठी सिग्नल जोडा आणि प्रत्येक पोर्ट संबंधित जोडीला नियुक्त करा. तुम्ही वरील उदाहरणावरील कनेक्शन्सचा संदर्भ घेऊ शकता आणि येथे कोड पाहू शकता.सूचना-VHDL-मोटर-स्पीड-नियंत्रण-निर्णय-दिशा-आणि-गती-डावी-आणि-उजवी-गती-नियंत्रक-अंजीर-4

पायरी 7: त्याची चाचणी घ्या
तुम्ही संपूर्ण कोड पूर्ण केल्यानंतर, तुमचा कोड बोर्डवर अपलोड करण्यापूर्वी तो कार्य करतो की नाही हे जाणून घेणे आवश्यक आहे, विशेषत: कोडचे काही भाग वेगवेगळ्या लोकांनी बनवलेले असू शकतात. यासाठी टेस्टबेंच आवश्यक आहे, जिथे तुम्ही डमी व्हॅल्यूज इनपुट कराल आणि कोड आम्हाला जसे वागायचे आहे तसे वागते का ते पहा. प्रत्येक मॉड्यूलची चाचणी करून तुम्ही विश्रांती सुरू करू शकता आणि ते सर्व योग्यरित्या कार्य करत असल्यास, तुम्ही उच्च-स्तरीय मॉड्यूलची चाचणी घेऊ शकता.

पायरी 8: हार्डवेअरवर वापरून पहा
तुमच्‍या संगणकावर तुमच्‍या कोडची चाचणी केल्‍यानंतर, तुम्‍ही रिअल हार्डवेअरवर कोडची चाचणी घेऊ शकता. तुम्हाला बंधने घालायची आहेत file Vivado वर (.xdc file BASYS 3) कोणते इनपुट आणि आउटपुट कोणत्या पोर्टवर जातात हे नियंत्रित करण्यासाठी.

महत्त्वपूर्ण टिप: विद्युत घटकांमध्ये विद्युत् प्रवाह किंवा व्हॉल्यूमचे कमाल मूल्य असू शकते हे आम्ही कठीण मार्गाने शिकलोtages मूल्यांसाठी डेटाशीट पहा. PMOD HB5 साठी, व्हॉल्यूम सेट करण्याचे सुनिश्चित कराtage 12 व्होल्ट्सच्या उर्जा स्त्रोतापासून (कारण हे आवश्यक व्हॉल्यूम आहेtage मोटरसाठी), आणि मोटार हलविण्यासाठी आवश्यक तेवढा कमी विद्युतप्रवाह.

पायरी 9: ते इतर भागांसह एकत्र करा
मागील चरण यशस्वी झाल्यास, अंतिम कोड रोबोटमध्ये अपलोड करण्यासाठी इतर गटांसह कोड एकत्र करा. मग, व्हॉइला! तुम्ही यशस्वीरित्या प्रकाश शोधणारा रोबोट बनवला आहे.

पायरी 10: योगदानकर्ते
डावीकडून उजवीकडे:

  • अँटोनियस ग्रेगोरियस डेव्हन रिवाल्डी
  • फेलिक्स विगुना
  • निकोलस संजय
  • रिचर्ड मेडियंटोसूचना-VHDL-मोटर-स्पीड-नियंत्रण-निर्णय-दिशा-आणि-गती-डावी-आणि-उजवी-गती-नियंत्रक-अंजीर-6

खुप छान: व्हीएचडीएल मोटर स्पीड कंट्रोल: दिशा आणि वेग ठरवणे, डावा आणि उजवा स्पीड कंट्रोलर: पृष्ठ 6
पुन्हा केल्याबद्दल धन्यवादviewing हा प्रकल्प प्रत्यक्षात क्लास प्रोजेक्टचा फक्त एक भाग आहे (BASYS 3 बोर्ड आणि OV7670 कॅमेरा असलेला लाइट सीकिंग रोबोट), म्हणून मी लवकरच क्लासच्या सूचना करण्यायोग्य लिंक जोडेन!

अप्रतिम: मी सर्वकाही एकत्रितपणे पाहण्यास उत्सुक आहे.

कागदपत्रे / संसाधने

Instructables VHDL मोटर स्पीड कंट्रोल डिसाईड डायरेक्शन आणि स्पीड डावा आणि उजवा स्पीड कंट्रोलर [pdf] सूचना
व्हीएचडीएल मोटर स्पीड कंट्रोल डिसाईड डायरेक्शन आणि स्पीड डावा आणि उजवा स्पीड कंट्रोलर, व्हीएचडीएल मोटर स्पीड, कंट्रोल डिसाईड डायरेक्शन आणि स्पीड डावा आणि उजवा स्पीड कंट्रोलर

संदर्भ

एक टिप्पणी द्या

तुमचा ईमेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित आहेत *