ہدایات VHDL موٹر سپیڈ کنٹرول سمت اور رفتار بائیں اور دائیں سپیڈ کنٹرولر کا فیصلہ کرتا ہے
نوٹ: یہ صفحہ ایک بڑی تعمیر کا ایک حصہ ہے۔ براہ کرم یقینی بنائیں کہ آپ یہاں سے آغاز کرتے ہیں، تاکہ آپ سمجھ سکیں کہ بڑے پروجیکٹ میں درج ذیل کہاں فٹ بیٹھتے ہیں۔
ختمview
موٹر سپیڈ اور ڈائریکشن کنٹرول فوٹو ڈیٹیکٹر روبوٹ میں دو اہم ڈویژنوں میں سے ایک ہے، دوسرا فوٹو ڈیٹیکٹر یا لائٹ ڈیٹیکٹر ڈویژن ہے۔ جبکہ فوٹو ڈیٹیکٹر ڈویژن روبوٹ کے وژن پر فوکس کرتا ہے، موٹر سپیڈ اور ڈائریکشن کنٹرول ڈویژن روبوٹ کی حرکت پر فوکس کرتا ہے۔ موٹر کی رفتار اور سمت کنٹرول کے عمل کا ڈیٹا فوٹو ڈیٹیکٹر ڈویژن سے دیا جاتا ہے اور موٹر موومنٹ کی شکل میں فزیکل آؤٹ پٹ دیتا ہے۔
اس تقسیم کا مقصد روشنی تلاش کرنے والے روبوٹ کی بائیں اور دائیں دونوں موٹر کی رفتار اور سمت کو کنٹرول کرنا ہے۔ ان اقدار کا فیصلہ کرنے کے لیے، آپ کو روشنی کے سائز اور پوزیشن کی ضرورت ہوگی جو کیمرے کے ذریعے کیپچر کی گئی تھی اور تھریشولڈنگ کے ذریعے پروسیس کی گئی تھی۔ آپ کو ہر ایک موٹر پر ناپے ہوئے رفتار کی بھی ضرورت ہوگی۔ ان ان پٹ سے، آپ PWM (Pulse-width Modulation) کی قدر ہر ایک موٹر کے لیے آؤٹ پٹ کر سکیں گے۔
اس کو حاصل کرنے کے لیے، آپ کو یہ VHDL ماڈیول بنانے کی ضرورت ہوگی (نیچے لنک بھی):
- کنٹرول
- غلطی کا حساب کتاب
- بائنری تبادلوں
- روشنی کے منبع کی عدم موجودگی
آپ یہاں اس تقسیم کے لیے VHDL کوڈ دیکھ سکتے ہیں۔
سامان
ہم ISE ڈیزائن سویٹ 14.7 کے ساتھ کوڈ کرنے کی تجویز کرتے ہیں کیونکہ اسے VHDL میں کوڈ کو جانچنے کے لیے بھی استعمال کیا جا سکتا ہے۔ تاہم، کوڈ کو BASYS 3 میں اپ لوڈ کرنے کے لیے، آپ کو Vivado (ver. 2015.4 یا 2016.4) انسٹال کرنے اور .xdc ایکسٹینشن کے ساتھ رکاوٹ لکھنے کی ضرورت ہوگی۔
VHDL موٹر سپیڈ کنٹرول: سمت اور رفتار کا فیصلہ کریں، بائیں اور دائیں رفتار کنٹرولر: صفحہ 1
ہدایات کا مرحلہ
مرحلہ 1: کنٹرول
یہ سمجھنے کے لیے کہ روشنی کی تلاش کرنے والے روبوٹ کے رویے کو کیسے کنٹرول کیا جائے، ہم روبوٹ کے مطلوبہ رویے کی وضاحت کریں گے جب وہ روشنی کا ذریعہ دیکھتا ہے۔ اس رویے کو روشنی کے منبع کی پوزیشن اور سائز کے مطابق کنٹرول کیا جائے گا۔
استعمال شدہ الگورتھم RC روبوٹ کنٹرولر کے مشابہ ہے، جس میں ایک لیور ہے جسے بائیں یا دائیں موڑا جا سکتا ہے، اور دوسرا لیور جسے آگے یا پیچھے کیا جا سکتا ہے۔
روشنی تلاش کرنے کے لیے، آپ چاہتے ہیں کہ یہ روبوٹ سیدھی لائن میں حرکت کرے اگر روشنی کے منبع کی پوزیشن روبوٹ کے بالکل سامنے ہو۔ ایسا کرنے کے لیے، آپ بائیں اور دائیں دونوں موٹروں پر ایک ہی رفتار چاہتے ہیں۔ اگر روشنی روبوٹ کے بائیں جانب واقع ہے، تو آپ چاہتے ہیں کہ دائیں موٹر بائیں موٹر سے زیادہ تیزی سے حرکت کرے تاکہ روبوٹ بائیں جانب روشنی کی طرف مڑ سکے۔ اس کے برعکس، اگر روشنی روبوٹ کے دائیں جانب واقع ہے، تو آپ چاہتے ہیں کہ بائیں موٹر دائیں موٹر سے زیادہ تیزی سے حرکت کرے تاکہ روبوٹ روشنی کی طرف دائیں جانب مڑ سکے۔ یہ RC کنٹرولر کے بائیں لیور کے مشابہ ہے، جہاں آپ کنٹرول کر سکتے ہیں کہ آیا آپ روبوٹ کو بائیں، دائیں یا سیدھے منتقل کرنا چاہتے ہیں۔
پھر، آپ چاہتے ہیں کہ روبوٹ آگے بڑھے اگر روشنی کا منبع بہت دور ہے (چھوٹا روشنی کا ذریعہ)، یا اگر پتہ چلا روشنی کا منبع بہت قریب ہے (بڑا روشنی کا ذریعہ)۔ آپ یہ بھی چاہتے ہیں کہ روبوٹ روشنی کے منبع سے جتنا دور ہو، روبوٹ اتنی ہی تیزی سے حرکت کرتا ہے۔ یہ RC کنٹرولر کے دائیں لیور کے مشابہ ہے، جہاں آپ کنٹرول کر سکتے ہیں کہ آپ آگے بڑھنا چاہتے ہیں یا پیچھے، اور آپ اسے کتنی تیزی سے منتقل کرنا چاہتے ہیں۔
اس کے بعد آپ ہر ایک موٹر کی رفتار کے لیے ایک ریاضیاتی فارمولہ اخذ کر سکتے ہیں، اور ہم رفتار کی حد -255 سے 255 کے درمیان منتخب کرتے ہیں۔ منفی قدر کا مطلب ہے کہ موٹر پیچھے کی طرف مڑ جائے گی، جبکہ مثبت قدر کا مطلب ہے کہ موٹر آگے کی طرف مڑ جائے گی۔
یہ اس روبوٹ کی نقل و حرکت کا بنیادی الگورتھم ہے۔ اس ماڈیول کے بارے میں مزید جاننے کے لیے، یہاں کلک کریں۔
مرحلہ 2: غلطی کا حساب کتاب
چونکہ آپ کے پاس موٹرز کے لیے ہدف کی رفتار اور سمت پہلے سے ہی موجود ہے، اس لیے آپ موٹرز کی پیمائش شدہ رفتار اور سمت کو بھی مدنظر رکھنا چاہتے ہیں۔ اگر یہ رفتار کے ہدف تک پہنچ گئی ہے، تو ہم چاہتے ہیں کہ موٹر مکمل طور پر اپنی رفتار پر چلے۔ اگر یہ نہیں ہے تو، ہم موٹر میں مزید رفتار شامل کرنا چاہتے ہیں. کنٹرول تھیوری میں، اسے بند لوپ فیڈ بیک کنٹرول سسٹم کے نام سے جانا جاتا ہے۔
اس ماڈیول کے بارے میں مزید جاننے کے لیے، یہاں کلک کریں۔
مرحلہ 3: بائنری تبدیلی
پچھلے حساب سے، آپ پہلے ہی جان چکے ہوں گے کہ ہر ایک موٹر کے لیے ضروری کارروائی۔ تاہم، حساب کتاب دستخط شدہ بائنری کا استعمال کرتے ہوئے کیا جاتا ہے۔ اس ماڈیول کا مقصد ان دستخط شدہ اقدار کو ایک ایسی قدر میں تبدیل کرنا ہے جسے PWM جنریٹر پڑھ سکتا ہے، جو سمت (یا تو گھڑی کی سمت یا مخالف گھڑی کی سمت) اور رفتار (0 سے 255 کے درمیان) ہیں۔ اس کے علاوہ، چونکہ موٹر سے فیڈ بیک غیر دستخط شدہ بائنری میں ماپا جاتا ہے، اس لیے غیر دستخط شدہ اقدار (سمت اور رفتار) کو ایک دستخط شدہ قدر میں تبدیل کرنے کے لیے ایک اور ماڈیول کی ضرورت ہوتی ہے جس کا حساب غلطی کیلکولیشن ماڈیول سے کیا جا سکتا ہے۔ اس ماڈیول کے بارے میں مزید جاننے کے لیے، یہاں کلک کریں۔
مرحلہ 4: روشنی کے منبع کی عدم موجودگی
آپ نے ایک روبوٹ بنایا ہے جو روبوٹ کے ذریعہ روشنی کا پتہ لگانے پر روشنی کی تلاش میں حرکت کرتا ہے۔ لیکن جب روبوٹ روشنی کا پتہ نہیں لگاتا ہے تو کیا ہوتا ہے؟ اس ماڈیول کا مقصد یہ بتانا ہے کہ جب ایسی حالت ہو تو کیا کرنا ہے۔
روبوٹ کے لیے جگہ پر گھومنے کا سب سے آسان طریقہ اور روشنی کا ذریعہ تلاش کرنا ہے۔ سیکنڈوں کی ایک مقررہ تعداد تک گھومنے کے بعد، اگر روبوٹ کو اب بھی روشنی کا ذریعہ نہیں ملا ہے، تو آپ چاہتے ہیں کہ روبوٹ حرکت کرنا بند کردے، تاکہ پاور بچ سکے۔ سیکنڈوں کی ایک اور سیٹ کے بعد، روبوٹ کو روشنی کی تلاش کے لیے دوبارہ جگہ پر گھومنا چاہیے۔ اس ماڈیول کے بارے میں مزید جاننے کے لیے، یہاں کلک کریں۔
مرحلہ 5: یہ کیسے کام کرتا ہے۔
اس وضاحت کے لیے آپ اوپر دی گئی تصویر کا حوالہ دے سکتے ہیں۔ جیسا کہ اس ہدایت کے آغاز میں ذکر کیا گیا ہے، آپ کو تھریشولڈنگ ڈویژن سے ان پٹ "سائز" اور "پوزیشن" کی ضرورت ہوگی۔ یہ یقینی بنانے کے لیے کہ یہ ان پٹ درست تھے (سابق کے لیےample، جب آپ کو سائز = 0 موصول ہوتا ہے، تو سائز واقعی صفر ہوتا ہے کیونکہ کیمرہ روشنی کا پتہ نہیں لگاتا، اور اس لیے نہیں کہ کیمرہ ابھی شروع کر رہا تھا) آپ کو کسی قسم کے اشارے کی بھی ضرورت ہوگی، جسے ہم "READY" کہتے ہیں۔ ان ڈیٹا کو کنٹرول (Ctrl. vhd) کے ذریعے ہر موٹر کی گول رفتار کا تعین کرنے کے لیے عمل کیا جائے گا (9 بٹس، دستخط شدہ)۔
موٹر پر زیادہ مستحکم آؤٹ پٹ کے لیے، آپ فیڈ بیک کو بند لوپ سسٹم میں استعمال کرنا چاہتے ہیں۔ اس کے لیے موٹر کی رفتار کی پیمائش کے ڈویژن سے ہر موٹر کے ان پٹ "سمت" اور "رفتار" کی ضرورت ہوتی ہے۔ چونکہ آپ ان ان پٹس کو اپنے حسابات میں شامل کرنا چاہتے ہیں، اس لیے آپ کو ان غیر دستخط شدہ اقدار کو 9-بٹ دستخط شدہ بائنری میں تبدیل کرنا ہوگا۔ یہ غیر دستخط شدہ بائنری کنورٹر (US2S.vhd) کے ذریعے کیا جاتا ہے۔
غلطی کا حساب کتاب (غلطی vhd) کیا کرتا ہے ہر موٹر کی کارروائی کا تعین کرنے کے لیے گول رفتار سے ماپا رفتار کو گھٹانا ہے۔ اس کا مطلب یہ ہے کہ جب دونوں کی قدر یکساں ہوتی ہے، تو گھٹاؤ صفر ہو جاتا ہے اور موٹر مکمل طور پر اپنی رفتار پر چلے گی۔ آپ ضرب کا ایک عنصر بھی شامل کر سکتے ہیں تاکہ روبوٹ تیزی سے ہدف کی رفتار تک پہنچ سکے۔
چونکہ موٹر کنٹرولر کو ہر موٹر کی رفتار اور سمت کی ضرورت ہوتی ہے، آپ کو عمل کی دستخط شدہ اقدار کو دو الگ الگ غیر دستخط شدہ اقدار میں ترجمہ کرنا ہوگا: رفتار (1 بٹ) اور سمت (8 بٹس)۔ یہ دستخط شدہ سے غیر دستخط شدہ بائنری کنورٹر (S2US.vhd) کے ذریعے کیا جاتا ہے، اور یہ موٹر کنٹرول ڈویژن کے لیے ان پٹ بن جائے گا۔
ہم نے اس بات کا تعین کرنے کے لیے ایک ماڈیول بھی شامل کیا کہ جب روشنی کا پتہ نہ لگے تو کیا کرنا ہے (کوئی لائٹ کاؤنٹر نہیں۔ Bhd)۔ چونکہ یہ ماڈیول بنیادی طور پر ایک کاؤنٹر ہے، یہ شمار کرے گا کہ روبوٹ کو کتنی دیر تک گھومنے یا اپنی جگہ پر رہنے کی ضرورت ہے۔ یہ یقینی بنائے گا کہ روبوٹ اپنے ماحول کو "دیکھتا" ہے بجائے اس کے کہ اس کے سامنے کیا ہے، اور جب کوئی روشنی کا ذریعہ صحیح معنوں میں دستیاب نہ ہو تو بیٹری کی طاقت کو محفوظ رکھے گا۔
مرحلہ 6: یکجا کریں۔ Files
کو یکجا کرنے کے لیے files، آپ کو ہر ماڈیول سے سگنل جوڑنے کی ضرورت ہے۔ ایسا کرنے کے لیے، آپ کو ایک نیا ٹاپ لیول ماڈیول بنانا ہوگا۔ file. پچھلے ماڈیولز کے ان پٹس اور آؤٹ پٹس کو بطور اجزاء داخل کریں، کنکشنز کے لیے سگنلز شامل کریں اور ہر پورٹ کو متعلقہ جوڑے کو تفویض کریں۔ آپ اوپر دی گئی مثال پر کنکشن کا حوالہ دے سکتے ہیں، اور کوڈ کو یہاں دیکھ سکتے ہیں۔
مرحلہ 7: اس کی جانچ کریں۔
پورے کوڈ کے ساتھ مکمل کرنے کے بعد، آپ کو یہ جاننا ہوگا کہ آیا آپ کا کوڈ بورڈ پر اپ لوڈ کرنے سے پہلے کام کرتا ہے، خاص طور پر چونکہ کوڈ کے کچھ حصے مختلف لوگوں کے ذریعہ بنائے جا سکتے ہیں۔ اس کے لیے ایک ٹیسٹ بینچ کی ضرورت ہے، جہاں آپ ڈمی اقدار درج کریں گے اور دیکھیں گے کہ آیا کوڈ اس طرح برتاؤ کرتا ہے جیسا کہ ہم اسے برتاؤ کرنا چاہتے ہیں۔ آپ ہر ماڈیول کی جانچ کرکے آرام کر سکتے ہیں، اور اگر وہ سب صحیح طریقے سے کام کرتے ہیں، تو آپ اعلیٰ سطح کے ماڈیول کی جانچ کر سکتے ہیں۔
مرحلہ 8: اسے ہارڈ ویئر پر آزمائیں۔
آپ کے کمپیوٹر پر آپ کے کوڈ کی جانچ کرنے کے بعد، آپ اصلی ہارڈ ویئر پر کوڈ کی جانچ کر سکتے ہیں۔ آپ کو مجبوری بنانا ہوگی۔ file Vivado پر (.xdc file BASYS 3 کے لیے) یہ کنٹرول کرنے کے لیے کہ کون سے ان پٹ اور آؤٹ پٹ کن بندرگاہوں پر جاتے ہیں۔
اہم اشارہ: ہم نے مشکل طریقے سے سیکھا کہ برقی اجزاء میں کرنٹ یا والیوم کی زیادہ سے زیادہ قدر ہو سکتی ہے۔tages اقدار کے لیے ڈیٹا شیٹ کو ضرور دیکھیں۔ PMOD HB5 کے لیے، والیوم سیٹ کرنا یقینی بنائیںtage 12 وولٹ پر پاور سورس سے (کیونکہ یہ مطلوبہ والیوم ہے۔tage موٹر کے لیے)، اور موٹر کو حرکت دینے کے لیے کرنٹ جتنا ضروری ہو۔
مرحلہ 9: اسے دوسرے حصوں کے ساتھ جوڑیں۔
اگر پچھلے مراحل کامیاب رہے تو، روبوٹ میں حتمی کوڈ اپ لوڈ کرنے کے لیے کوڈ کو دوسرے گروپس کے ساتھ جوڑیں۔ پھر، آواز! آپ نے کامیابی سے روشنی تلاش کرنے والا روبوٹ بنایا ہے۔
مرحلہ 10: شراکت دار
بائیں سے دائیں:
- انتونیئس گریگوریئس ڈیوین ریوالڈی
- فیلکس وگونا
- نکولس سنجیا
- رچرڈ میڈینٹو
بہت عمدہ: VHDL موٹر سپیڈ کنٹرول: سمت اور رفتار کا فیصلہ کریں، بائیں اور دائیں رفتار کنٹرولر: صفحہ 6
دوبارہ کے لئے آپ کا شکریہviewing! یہ منصوبہ اصل میں ایک کلاس پروجیکٹ کا صرف ایک حصہ ہے (BASYS 3 بورڈ اور OV7670 کیمرہ کے ساتھ لائٹ سیکنگ روبوٹ)، لہذا میں جلد ہی کلاس کی ہدایات میں لنک شامل کروں گا!
زبردست: میں سب کچھ ایک ساتھ دیکھنے کا منتظر ہوں۔
دستاویزات / وسائل
![]() |
ہدایات VHDL موٹر سپیڈ کنٹرول سمت اور رفتار بائیں اور دائیں سپیڈ کنٹرولر کا فیصلہ کرتا ہے [پی ڈی ایف] ہدایات VHDL موٹر سپیڈ کنٹرول فیصلہ سمت اور رفتار بائیں اور دائیں رفتار کنٹرولر، VHDL موٹر رفتار، کنٹرول فیصلہ سمت اور رفتار بائیں اور دائیں رفتار کنٹرولر |