متناسب لکیری ایکچوایٹرز کے مابین ہم آہنگی کی تحریک بعض صارفین کی درخواستوں کی کامیابی کے لئے اہم ثابت ہوسکتی ہے ، ایک عام دو ٹریڈوڈر کھولنے والے دو لکیری ایککیئٹرز۔ اس مقصد کے حصول کے لئے ہم سرشار فرجیلی کو استعمال کرنے کی سفارش کرتے ہیں مطابقت پذیر کنٹرول باکس ایف اے - سنائک 2 اور ایف اے سیئنسی 4. تاہم کچھ DIYers اور ہیکر ایک مائکروقابو کنٹرولر کی آزادی کو ترجیح دیتے ہیں جیسے Ardino پیش کرتا ہے اور اس کے بجائے اپنا ہم وقت سازی کنٹرول پروگرام لکھنے کو ترجیح دیتا ہے۔ اس ٹیوٹوریل کا مقصد ایک جائزہ فراہم کرنا ہے تاکہ اس کو استعمال کرکے اس کو کیسے حاصل کیا جاسکے آپٹیکل سیریز لکیری ایکچویٹر.
پیش لفظ
یہ سبق آموزینو کے ساتھ ہم وقت سازی کنٹرول حاصل کرنے کے ل required ضروری اقدامات کا سخت سلوک نہیں ہے ، بلکہ اپنے ذاتی پروگرام کو لکھنے میں مدد کرنے کے لئے ایک وسیع جائزہ ہے۔ یہ ٹیوٹوریل اعلی درجے کی ہے اور فرض کرتا ہے کہ آپ ارڈینوو ہارڈ ویئر ، سافٹ ویئر سے پہلے ہی واقف ہیں اور مثالی طور پر نبض کی چوڑائی ماڈیولیشن (پی ڈبلیو ایم) سگنل ، رکاوٹ والی سروس روٹین (آئی ایس آر) ، سینسروں کا ڈیبوننگ ، اور موٹر انکوڈروں سے تجربہ رکھتے ہیں۔ اس ٹیوٹوریل میں فراہم کردہ مثال ایک آدم تناسب کنٹرولر ہے۔ مندرجہ ذیل مثال پر بہت ساری اصلاحات نافذ کی جاسکتی ہیں جن میں یہ شامل ہیں ، لیکن ان تک محدود نہیں: PID کنٹرول لوپ پر عمل درآمد اور دو سے زیادہ لکیری ایکچیوٹرز کو اسکیلنگ۔ براہ کرم آگاہ رہیں کہ ہمارے پاس ارڈینو ایپلی کیشنز کے لئے تکنیکی معاونت فراہم کرنے کے وسائل نہیں ہیں اور عوامی سطح پر دستیاب ٹیوٹوریلز کے باہر ڈیبگ ، ترمیم ، کوڈ یا وائرنگ ڈایاگرام فراہم نہیں کریں گے۔
جائزہ ہم وقت سازی کنٹرول
ہم وقت سازی کنٹرول دو لکیری ایکچیوٹرز کی لمبائی کا موازنہ کرکے اور رفتار کو متناسب ایڈجسٹ کرکے حاصل کیا جاتا ہے۔ اگر ایک ایکچیوٹر دوسرے سے زیادہ تیزی سے آگے بڑھنے لگتا ہے تو ہم اسے کم کردیں گے۔ ہم inbuilt آپٹیکل انکوڈر کے ذریعے لکیری ایکچویٹر کی پوزیشن پڑھ سکتے ہیں۔ آپٹیکل انکوڈر ایک چھوٹی پلاسٹک ڈسک ہے جس میں 10 سوراخ ہیں جو DC موٹر سے منسلک ہیں جیسے جب موٹر گھومتا ہے تو پلاسٹک کی ڈسک بھی ہوجاتی ہے۔ ایک اورکت ایل ای ڈی پلاسٹک ڈسک کی طرف ہدایت کی جاتی ہے تاکہ جب یہ روشنی گھماتا ہے تو وہ آپٹیکل ڈسک کے سوراخوں کے ذریعہ منتقل ہوتا ہے یا ڈسک کے پلاسٹک کے ذریعہ مسدود ہوجاتا ہے۔ ڈسک کے دوسری طرف ایک اورکت سینسر کا پتہ لگاتا ہے جب روشنی سوراخ کے ذریعہ منتقل ہوتی ہے اور مربع لہر سگنل کی نشاندہی کرتی ہے۔ دالوں کی تعداد گننے سے وصول کنندہ کا پتہ لگاتا ہے کہ ہم موٹر کے آر پی ایم اور لکیری ایکچوایٹر نے جس فاصلے پر سفر کیا ہے اس کا حساب لگاسکتے ہیں۔ 35lb آپٹیکل لکیری ایکچوایٹر میں 50 انچ (+/- 5) آپٹیکل دالیں فی انچ سفر ہے جبکہ 200lb اور 400lb ایکٹیو ایٹرز دونوں میں 100 (+/- 5) دالیں فی انچ ہیں۔ ہر ایک لکیری ایکچوایٹر نے کتنی دور تک توسیع کی اس کا موازنہ کرکے ، ہم دونوں ایکچیوٹرز کی رفتار متناسب طور پر ایڈجسٹ کرنے کے قابل ہیں تاکہ وہ توسیع کرتے وقت ہمیشہ ایک ہی لمبائی پر رہیں۔
مطلوبہ اجزاء
- دو آپٹیکل لکیری ایکچویٹرز
- دو IBT-2 موٹر ڈرائیور
- اردوینو اونو
- 12V طاقت کا منبع
- 3 لمحاتی بٹن (فرجیلی کے ذریعہ فروخت نہیں ہوئے)
- اضافی وائرنگ
وائرنگ ڈایاگرام
مندرجہ بالا وائرنگ کنکشن بنائیں۔ لکیری ایکچوایٹر سے نکلنے والے تار کے رنگوں کو ہمیشہ چیک کریں کیونکہ رنگین کنونشن مذکورہ خاکہ میں دکھائے جانے والے رنگ سے تبدیل ہوسکتا ہے۔
فوری ٹیوٹوریل
اگر آپ صرف اپنے دو لکیری ایکچیوٹرز کو بیک وقت حرکت پذیر کرنا چاہتے ہیں تو صرف ان مراحل پر عمل کریں:
- کنکشن بنائیں جیسا کہ وائرنگ آریگرام میں دکھایا گیا ہے۔
- پہلے پروگرام کو اپ لوڈ اور چلائیں۔
- اس پروگرام کے ذریعہ دو اقدار کی پیداوار کو دوسرے پروگرام کی لائن 23 میں نیچے کاپی کریں۔
- دوسرا پروگرام اپ لوڈ اور چلائیں۔
- متغیر K_p (لائن 37 ، دوسرا پروگرام) کو مختلف کرکے اپنے سسٹم کو بہترین ٹیون کریں۔ یہ سب سے آسانی سے ینالاگ پن A0 پر پوٹینومیٹر سے منسلک کرکے اور پوٹینومیٹر کو پڑھنے کے لئے کوڈ میں ترمیم کرکے اور نقشہ () فنکشن کا استعمال کرتے ہوئے کیا جاتا ہے: K_p = map (ینالاگ پڑھیں (A0)، 0، 1023، 0، 20000)؛
اس ٹیوٹوریل کا باقی حصہ پروگراموں کی کچھ اہم خصوصیات کو مزید تفصیل سے بیان کرے گا۔ ایک بار پھر ہم یہ اعادہ کرتے ہیں کہ یہ ایک مکمل ٹیوٹوریل نہیں ہے ، بلکہ اپنے پروگرام کو بناتے وقت غور کرنے والی چیزوں کا ایک جائزہ ہے۔
انشانکن پروگرام کا جائزہ
اس سے پہلے کہ ہم وقت سازی کنٹرول حاصل کیا جاسکے ، ہمیں پہلے سسٹم کیلیبریٹ کرنا ضروری ہے۔ اس میں فی ایکٹیوچیک سائیکل دالوں کی گنتی شامل ہے کیونکہ جیسا کہ مصنوع کی وضاحت میں بتایا گیا ہے کہ فی انچ سفر میں (+/- 5) دالیں برداشت ہیں۔ ذیل میں پروگرام اپ لوڈ اور چلائیں۔ یہ پروگرام ایککٹویٹرز (لائن 53) کو مکمل طور پر واپس لے لے گا اور آپٹیکل پلس کاؤنٹر کو متغیر صفر پر سیٹ کرے گا اور اس کے بعد یہ مکمل طور پر توسیع اور مکمل طور پر پیچھے ہٹ جائے گا (لائن بالترتیب 63 اور 74) اس عمل کے دوران دالوں کی تعداد میں خلل ڈالنے والے سروس روٹین (ISR) ، لائن 153 اور 166 کے حساب سے شمار کیا جائے گا۔
https://gist.github.com/Will-Firgelli/89978da2585a747ef5ff988b2fa53904
ہم وقت ساز پروگرام کا جائزہ
ہم وقت سازی کنٹرول پروگرام اپ لوڈ کرنے سے پہلے ، آپ کو پہلے انشانکن پروگرام کے ذریعہ اقدار کی پیداوار کو لائن 23 میں کاپی کرنا ہوگا اور موجودہ صف کو تبدیل کرنا ہوگا: own 908، 906 your اپنی اقدار کے ساتھ۔ مزید برآں ، اگر آپ 35lb لکیری ایککیو ایٹر استعمال کر رہے ہیں تو آپ کو لائن 29 میں متغیر کی قدر کو 20 ملی سیکنڈ سے 8 ملی سیکنڈ میں تبدیل کرنے کی ضرورت ہوگی۔
ایک بار مکمل طور پر پیچھے ہٹنے کے بعد (اصل کی شناخت کے ل you) آپ توسیع ، مراجعت اور روکنے کے احکامات سے متعلق تین بٹن دباکر دونوں لکیری ایکچیوٹرز کو ہم وقت سازی میں منتقل کرسکتے ہیں۔ مشغول نال کاؤنٹروں کا موازنہ کرکے اور ہم آہنگی میں رہنے کے ل them ان کے مابین رفتار کو ایڈجسٹ کرکے بھی ناہموار بوجھ کے تحت ہم وقت سازی میں رہیں گے۔ مشورہ دیا جائے کہ موجودہ پروگرام ایک آسان تناسب کنٹرولر ، لائن 93 imple کو نافذ کرتا ہے ، کیونکہ اس توازن کے آس پاس اوور شوٹ اور دوغلا پن کے تابع ہے۔ آپ لائن 37 میں بیان کردہ متغیر K_p کو مختلف کرکے اس کی تیوین کرسکتے ہیں۔ یہ سب سے آسانی سے ینالاگ پن A0 پر پوٹینومیٹر سے منسلک کرکے اور پوٹینومیٹر کو پڑھنے کے لئے کوڈ میں ترمیم کرکے اور نقشہ () فنکشن کا استعمال کرتے ہوئے کیا جاتا ہے: K_p = map (ینالاگ پڑھیں (A0)، 0، 1023، 0، 20000)؛
بہترین نتائج کے ل we ہم تناسب سے کنٹرولر کو ہٹانے اور PID کنٹرول لوپ پر عمل درآمد کی سختی سے تجویز کرتے ہیں۔ تاہم یہ تعارفی ٹیوٹوریل کے دائرہ کار سے باہر ہے اور اسے جان بوجھ کر چھوڑ دیا گیا ہے۔
https://gist.github.com/Will-Firgelli/44a14a4f3cac3209164efe8abe3285b6
ہم وقت سازی میں گولی 36 اور گولی 50 ایکچوایٹرز کا استعمال کرتے ہوئے
ہمارے آپٹیکل سیریز لکیری ایکچوایٹر کے علاوہ ، ہم انبلٹ انکوڈرز کے ساتھ دو پیش کش لکیری ایکچیوٹرز بھی پیش کرتے ہیں: گولی 36 Cal۔ اور بلیٹ 50 Cal ، دونوں میں سے ایک داخلی چوکور ہال اثر اثر انکوڈر ہے۔ ہال اثر انکوڈر اسی اصول پر کام کرتا ہے جیسے آپٹیکل انکوڈر تاہم روشنی استعمال کرنے کے بجائے مقناطیسیت کو استعمال کرتا ہے۔ اس کے علاوہ چوکور انکوڈر ہونے کی وجہ سے اس کے پاس دو سگنل آؤٹ پٹس ہیں ، جن میں سے ہر ایک 90 ڈگری مرحلے سے باہر ہے۔ اس طرح آپ کو 4 یا اس سے زیادہ رکاوٹ پنوں کے ساتھ ایک ارڈینو بورڈ استعمال کرنے کی ضرورت ہے (ارڈینوو یونو کے پاس صرف دو ہی ہیں) اور فی ایکچیوٹر کے دو سگنل سے ان پٹ پر کارروائی کرنے کے لئے کوڈ میں ترمیم کریں۔ مزید یہ کہ ، ڈیبونش ٹائم متغیر ، جھوٹے پلس ڈیلے کو کے پی کے ساتھ ملنے کی ضرورت ہوگی۔
اپنا پروگرام لکھنے کے لئے نکات
دو سے زیادہ لکیری ایکچویٹرز
جب دو یا دو سے زیادہ لکیری ایکچیوٹرز کا استعمال کیا جاتا ہے تو ارودوینو یونو مزید کام نہیں کرے گا کیونکہ اس میں صرف دو رکاوٹ پین دستیاب ہیں۔ آپ کو ایک اور ارڈینو بورڈ استعمال کرنے کی ضرورت ہوگی جس میں مداخلت والے پنوں کی تعداد بہت زیادہ ہے ، مزید معلومات: https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/
دوم یہ کہ کارکردگی کے مفاد میں یہ مشورہ دیا جاتا ہے کہ آپ اپنے پروگرامنگ کو صفوں کا استعمال کرتے ہوئے ویکٹرائز کریں اور ()) ہر ایکچیوٹر سے اعادہ کرنے کے لئے اس کی نمائش کریں۔
ڈیبون کرنا
جیسا کہ بہت سارے سینسروں کی طرح یہ بھی ضروری ہے کہ اچھالنے والے سگنلز کا شعور رکھنا۔ جیسا کہ میکانکی سوئچز کی طرح ، انکوڈر بھی اچھال سے دوچار ہو سکتے ہیں۔ مندرجہ بالا مثال میں ، ڈیبونسی عمل کو ایک سادہ تاخیر (باطل پلس ڈیلی متغیر سے بیان کردہ) کے ذریعہ سنبھال لیا گیا ہے ، یہ ضروری ہے کہ کسی بھی سوفٹویر تبدیلیوں میں یا جسمانی طور پر سرکٹری کے ذریعہ اسے اچھالنے والے شور کو فلٹر کرنے کے ل handle نمٹائیں۔
رول کو ختم کرنا
اگر آپ کوڈ میں ترمیم کرتے ہیں تو ملیس () فنکشن سے نمٹنے کے وقت رول اوور کے بارے میں آگاہ رہیں۔ ملیس () اور آخری ڈیبونس ٹائم سرنی دونوں کو دستخط شدہ طویل متغیر کے طور پر اعلان کیا جاتا ہے جس کا مطلب ہے کہ وہ 4،294،967،295 (32 ^ 2-1) تک کی قیمتوں کو محفوظ کرسکتے ہیں۔ اس کا ترجمہ تقریبا.7 49.7 دن کے ایک رول اوور دور میں ہوتا ہے۔ موجودہ پروگرام ISR (رکاوٹ سروس روٹین) کے افعال میں رول اوور کو ہینڈل کرنے کے لئے ڈیزائن کیا گیا ہے: count_0 & count_1 ، تاہم اگر آپ اس پروگرام میں ترمیم کرتے ہیں تو متغیر رول اوور کو صحیح طریقے سے سنبھالنا یقینی بنائیں ، ورنہ آپ کا یہ پروگرام program 49.7 دن کے مستقل استعمال کے بعد کریش ہوجائے گا۔ مزید معلومات کے لئے ملاحظہ کریں: https://www.norwegiancreations.com/2018/10/arduino-tutorial-avoiding-the-overflow-issue-when-using-millis-and-micros/