मैं एक स्वचालित भूलभुलैया भूलभुलैया सॉल्वर का निर्माण कर रहा हूं, और अपने भूलभुलैया को नियंत्रित करने के लिए एक वेबकैम का उपयोग कर रहा हूं।
अन्य मंचों में सुझावों के आधार पर, मैं कम से कम एक दिशा में भूलभुलैया की गेंद की गति को नियंत्रित करने की कोशिश कर रहा हूं। इसलिए, मैं दो निर्देशांक 466,288 और 466,152 के बीच अपने बॉल मूवमेंट को नियंत्रित करने की कोशिश कर रहा हूं। स्टेपर मोटर कंट्रोलर बोर्ड का इनपुट समय है, प्रत्येक एक्सिस यानी x और y को घुमाने के लिए कोई भी कदम नहीं।
स्टेपर मोटर कंट्रोलर बोर्ड जो मैं उपयोग कर रहा हूं वह एग बॉट स्टीपर मोटर कंट्रोलर बोर्ड है: http://www.sparkfun.com/products/10025
तो दो बिंदुओं के बीच स्थानांतरित करने के लिए, क्या मुझे दो बिंदुओं के बीच 288 और 152 (जैसे 260 240 230 ... 150) के बीच कई तरह के बिंदु बनाने चाहिए और अपनी गेंद की गति को सही करना चाहिए?
मेरी छवि प्रसंस्करण एल्गोरिथ्म गेंद को ट्रैक करने के लिए पर्याप्त तेज़ नहीं है कि गेंद बस स्पिन होगी और एक छेद में गिर जाएगी।
कुछ ने सुझाव दिया कि मैं निम्न वीडियो में दिखाए गए मानक टेम्पलेट का उपयोग करता हूं और मार्ग में विचलन के लिए अपनी गेंद के आंदोलनों को सही करता हूं:
http://www.youtube.com/watch?v=Prq78ctJ2Rk&feature=player_embedded
मुझे एक इमेज प्रोसेसिंग टूल भी आया, जहाँ उन्होंने बॉल मूवमेंट के लिए पॉइंट्स का उपयोग करके उसी समस्या को हल किया। एक ही समस्या के बहुत सारे समाधान देखकर, मैं समस्या को हल करने में पूरी तरह से भ्रमित हूं। मुझे पता है कि मुझे पीआईडी नियंत्रक लागू करना चाहिए। लेकिन मुझे चरणों में समस्याओं को हल करने के बारे में कैसे जाना चाहिए? मैं अटक गया हूं और समस्या को हल करने में एक हेडस्टार्ट खोजने में निराश हूं।
मेरा सेटअप इस तरह दिखता है:
... और यहां मेरे सॉफ़्टवेयर का स्क्रीनशॉट है:
संशोधन 2: मैं भी अब एक नई समस्या का सामना कर रहा हूं: पहले मैंने Arduino सीरियल पोर्ट जावा एप्लेट के माध्यम से स्टेपर मोटर्स को नियंत्रित किया था। मैं एप्लेट का उपयोग करके स्टेपर को ड्राइव करने में सक्षम हूं।
मुझे हर बार सीरियल पोर्ट के माध्यम से संवाद करने की कोशिश करते हुए बोर्ड को रीसेट करना होगा। इसके अलावा, जब कोई कमांड नहीं भेजी जाती है, तो स्टेपर मोटर अपने आप ही छोटे अंतराल में सक्रिय हो जाती है। जब स्टेपर मोटर इस मोड में प्रवेश करती है, तो मैं बोर्ड को रीसेट किए बिना अपने बोर्ड को नियंत्रित नहीं कर सकता। किसी भी तरह की सहायता की सराहना की जाएगी।
संशोधन 3:
मैंने कुछ प्रगति की जहां मुझे पीआईडी एल्गोरिदम लागू किया गया। कृपया नीचे वीडियो देखें: http://www.youtube.com/watch?v=MEfp7RqPmqY
अब मुझे उस गति के साथ एक समस्या है जिस पर पीआईडी एल्गोरिदम लागू किया गया है। वास्तव में मेरी इमेज प्रोसेसिंग 200 ms में एक चक्र पूरा करती है, एक गेंद की पहचान करती है और कमांड को स्टेपर मोटर कंट्रोलर बोर्ड को भेजती है। भले ही मेरे सीरियल पोर्ट को निर्देश स्विच करने के लिए भेजे जाते हैं, फिर भी मेरा स्टेपर उसी दिशा में घूमता रहता है। आप ऊपर दिए गए वीडियो में अजीब व्यवहार पा सकते हैं।
मेरा विचार है कि मुझे पीआईडी मूल्यों को एक छत के साथ प्रतिबंधित करना चाहिए जहां यदि गणना की गई पीआईडी मूल्य 100 से अधिक है, तो मुझे बस एक 100 भेजना चाहिए। मैं इस पर आपके विचार सुनने के लिए उत्सुक हूं।
जिस तरह से मैंने पीआईडी नियंत्रक को लागू किया है वह यह है कि मैंने टेम्पलेट मिलान एल्गोरिथ्म का उपयोग करके टेम्पलेट के शुरुआती बिंदु की पहचान की और एक अन्य टेम्पलेट मिलान एल्गोरिथ्म का उपयोग करके गेंद की पहचान की। अब, मैंने शुरुआती बिंदु टेम्पलेट के केंद्रक में गेंद को स्थानांतरित कर दिया। मैं इसे पीआईडी एल्गोरिथ्म के साथ सीधी रेखा का पालन कैसे करूं?
संशोधन 4:
मैंने प्रक्षेपवक्र को अलग कर दिया है, लेकिन मैं शुरुआती बिंदु से सही पिक्सेल निर्देशांक प्रिंट करने के लिए सही फ़ंक्शन नहीं ढूंढ पा रहा हूं। कोई विचार?