- ضروری اجزاء
- 3D پرنٹ شدہ روبوٹک آرم کو تیار کرنا
- سرکٹ ڈایاگرام
- روبوٹک بازو کے لئے پروگرامنگ LPC2148 میں شامل اقدامات
- کوڈنگ وضاحت
- پش بٹنوں کا استعمال کرکے گھومنے کیلئے सर्वो موٹر کا انتخاب کرنا
- روبوٹک بازو کو چنیں اور رکھیں
روبوٹک اسلحہ ، انجنیئرنگ کی ایک دلچسپ تخلیق ہے اور یہ ان چیزوں کو جھکاؤ دیکھنا اور انسان کے بازو کی طرح پیچیدہ چیزوں کو انجام دینے میں ہمیشہ دلچسپ ہوتا ہے۔ یہ روبوٹک ہتھیار عمومی طور پر اسمبلی لائن میں صنعتوں میں پایا جاسکتا ہے جیسے شدید میکانی کام انجام دیتے ہیں جیسے ویلڈنگ ، سوراخ کرنے والی ، پینٹنگ وغیرہ ، پیچیدہ سرجیکل آپریشن انجام دینے کے لئے حال ہی میں اعلی صحت سے متعلق جدید روبوٹک ہتھیار بھی تیار کیے جارہے ہیں۔ لہذا اس ٹیوٹوریل میں آئی آر ایم 7-ایل پی سی 2148 مائکروقابو کنٹرولر کا استعمال کرتے ہوئے ایک سادہ روبوٹک بازو بنائیں جس کے ذریعہ کچھ پوٹاومیومیٹروں کو کنٹرول کرکے کسی چیز کو دستی طور پر کنٹرول کرنے کے لcing رکھ سکتے ہیں۔
اس ٹیوٹوریل میں ہم میں طریقہ کار پر عمل کرتے ہوئے بنایا گیا تھا کہ ایک 3D طباعت robotic بازو استعمال کریں گے Thingiverse کے. اے آر ایم روبوٹک اے آر ایم کی نقل و حرکت کیلئے 4 سرو موٹر استعمال کرتا ہے۔ اگر آپ کے پاس پرنٹر نہیں ہے تو ، آپ اپنا بازو سادہ کارڈ بورڈ سے بھی بنا سکتے ہیں جیسے ہم نے اپنے اردوینو روبوٹک آرم پراجیکٹ کے لئے بنایا تھا۔ پریرتا کے ل you آپ ریکارڈ اور پلے روبوٹک بازو کا بھی حوالہ دے سکتے ہیں جو ہم نے ارڈینو کے استعمال سے پہلے بنایا تھا۔
تو اب آئیے اپنے منصوبے کے ل the چیزیں تیار کریں
ضروری اجزاء
- 3D پرنٹر روبوٹک آرم
- ARM7-LPC2148
- ایس جی -90 امدادی موٹر (4)
- 10 ک پوٹینومیٹر (4)
- پش بٹن (4)
- ایل ای ڈی (4)
- 5V (1A) ڈی سی پاور اڈاپٹر
- مزاحم (10 ک (4) ، 2.2 ک (4))
- بریڈ بورڈ
- مربوط تاروں
3D پرنٹ شدہ روبوٹک آرم کو تیار کرنا
اس ٹیوٹوریل میں 3D پرنٹ شدہ روبوٹک بازو EEZYbotARM کے ذریعہ دیئے گئے ڈیزائن پر عمل کرکے تیار کیا گیا تھا جو Thingiverse میں دستیاب ہے۔ تھری ڈی پرنٹ شدہ روبوٹک بازو بنانے کا مکمل طریقہ کار اور ویڈیو کے ساتھ جمع کرنے کی تفصیل چیزوں کے مختلف لنک پر موجود ہے ، جس کا اوپر والا حصہ ہے۔
یہ 4 سروو موٹرز کے ساتھ جمع ہونے کے بعد میرے تھری ڈی چھپی ہوئی روبوٹک بازو کی تصویر ہے۔
سرکٹ ڈایاگرام
درج ذیل تصویر میں ARM پر مبنی روبوٹک بازو کے سرکٹ کنکشن دکھائے گئے ہیں ۔
منصوبے کے لئے سرکٹ کنکشن آسان ہے۔ اس بات کو یقینی بنائیں کہ امدادی موٹرز کو علیحدہ 5V DC پاور اڈاپٹر سے طاقت بنائے۔ پوٹینومیٹرس اور پش بٹنوں کے ل we ہم LPC2148 مائکروکونٹرولر سے دستیاب 3.3V استعمال کرسکتے ہیں۔
ہم LPC2148 کے 4 ADC پنوں کو 4 پوٹینومیٹر کے ساتھ استعمال کر رہے ہیں۔ اور امدادی موٹر کے پی ڈبلیو ایم پنوں کے ساتھ منسلک ایل پی سی 2148 کے 4 پی ڈبلیو ایم پنوں۔ ہم نے یہ فیصلہ کرنے کے لئے 4 پش بٹنوں سے بھی رابطہ قائم کیا ہے کہ کون سی موٹر چلائی جائے۔ لہذا ، بٹن دبانے کے بعد احترام پوٹینومیٹر مختلف ہوتا ہے تاکہ सर्वो موٹر کی پوزیشن کو تبدیل کیا جاسکے۔
ایل پی سی 2148 کے جی پی آئی او کے ساتھ منسلک ایک پش بٹن 10K کے ریزسٹر کے ذریعہ پل ڈاؤن ہیں اور دوسرا اختتام 3.3V کے ساتھ جڑا ہوا ہے۔ نیز 4 ایل ای ڈی کو مربوط کیا گیا ہے جس سے یہ معلوم ہوتا ہے کہ پوزیشن کو تبدیل کرنے کے لئے کون سے سروو موٹر کا انتخاب کیا گیا ہے۔
4 سروو موٹر اور ایل پی سی 2148 کے مابین سرکٹ رابطے:
ایل پی سی 2148 | امدادی موٹر |
P0.1 | SERVO1 (PWM اورنج) |
P0.7 | SERVO2 (PWM اورنج) |
P0.8 | SERVO3 (PWM اورنج) |
P0.21 | SERVO4 (PWM اورنج) |
4 پوٹینومیٹر اور ایل پی سی 2148 کے درمیان سرکٹ رابطے:
ایل پی سی 2148 | پوٹینٹومیٹر سینٹر پن بائیں بائیں - LPC2148 کا 0V GND دائیں پن - LPC2148 کا 3.3V |
پی0.25 | پوٹینومیٹر 1 |
پی0.28 | پوٹینومیٹر 2 |
P0.29 | پوٹینومیٹر 3 |
P0.30 | پوٹینومیٹر 4 |
ایل پی سی 2148 کے ساتھ 4 ایل ای ڈی کے سرکٹ کنکشن:
ایل پی سی 2148 | ایل ای ڈی انوڈ (تمام ایل ای ڈی کا کیتھوڈ GND ہے) |
P1.28 | ایل ای ڈی 1 (انوڈ) |
P1.29 | ایل ای ڈی 2 (انوڈ) |
P1.30 | ایل ای ڈی 3 (انوڈ) |
P1.31 | ایل ای ڈی 4 (انوڈ) |
ایل پی سی 2148 کے ساتھ 4 پش بٹنوں کے سرکٹ کنکشن:
ایل پی سی 2148 | پش بٹن (پل-ڈاؤن ریزسٹر 10 ک کے ساتھ) |
P1.17 | پش بٹن 1 |
P1.18 | پش بٹن 2 |
P1.19 | پش بٹن 3 |
P1.20 | پش بٹن 4 |
روبوٹک بازو کے لئے پروگرامنگ LPC2148 میں شامل اقدامات
اس روبوٹک بازو کے لئے پروگرام کرنے سے پہلے ، ہمیں ایل پی سی 2148 میں پی ڈبلیو ایم تیار کرنے اور اے آر ایم 7-ایل پی سی 2148 میں اے ڈی سی کے استعمال کے بارے میں جاننے کی ضرورت ہے۔ اس کے لئے ، ایل پی سی 2148 کے ساتھ انٹرفیسنگ سروو موٹر اور ایل پی سی 2148 میں اے ڈی سی کو کیسے استعمال کریں اس کے بارے میں ہمارے پچھلے منصوبوں کو دیکھیں۔
ایل پی سی 2148 کا استعمال کرتے ہوئے اے ڈی سی تبادلوں
جیسا کہ امدادی موٹر پوزیشن کو کنٹرول کرنے کیلئے پی ڈبلیو ایم آؤٹ پٹ پیدا کرنے کے لئے ڈیوٹی سائیکل ویلیو طے کرنے کے لئے ہمیں اے ڈی سی اقدار فراہم کرنے کی ضرورت ہے۔ ہمیں پوٹینومیٹر کی اے ڈی سی قدریں تلاش کرنے کی ضرورت ہے۔ چونکہ ہمارے پاس چار سروو موٹر پر قابو پانے کے لئے چار استعداد کار ہیں ، ہمیں ایل پی سی 2148 کے 4 اے ڈی سی چینل کی ضرورت ہے۔ یہاں اس ٹیوٹوریل میں ہم ایل پی سی 2148 میں موجود بالترتیب 4،1،2،3 کے اے ڈی سی چینلز کے اے ڈی سی پن (P0.25، P0.28، P0.29، P0.30) استعمال کر رہے ہیں۔
ایل پی سی 2148 کا استعمال کرتے ہوئے سروو موٹر کیلئے پی ڈبلیو ایم سگنل تیار کرنا
جیسا کہ ہمیں سرو موٹر پوزیشن کو کنٹرول کرنے کے لئے پی ڈبلیو ایم سگنل تیار کرنے کی ضرورت ہے۔ ہمیں پی ڈبلیو ایم کا ڈیوٹی سائیکل طے کرنے کی ضرورت ہے۔ ہمارے پاس چار سرو موٹرز روبوٹک بازو سے منسلک ہیں لہذا ہمیں ایل پی سی 2148 کے 4 پی ڈبلیو ایم چینل کی ضرورت ہے۔ یہاں اس ٹیوٹوریل میں ہم ایل پی سی 2148 میں موجود بالترتیب 3،2،4،5 کے پی ڈبلیو ایم چینلز کے پی ڈبلیو ایم پن (P0.1، P0.7، P0.8، P0.21) استعمال کر رہے ہیں ۔
LPC2148 پر ہیکس فائل کو پروگرامنگ اور فلیشنگ
اے آر ایم 7-ایل پی سی 2148 پروگرام کرنے کے لئے ہمیں کیل یوویژن کی ضرورت ہے اور ایل ای پی 2121 پر فلیش ہیک کوڈ فلیش کرنے کے لئے فلیش میجک ٹول کی ضرورت ہے۔ مائکرو USB پورٹ کے ذریعے اے آر ایم 7 اسٹک پروگرام کرنے کے لئے یہاں ایک USB کیبل استعمال کیا جاتا ہے ۔ ہم کیل کا استعمال کرتے ہوئے کوڈ لکھتے ہیں اور ایک ہیکس فائل بناتے ہیں اور پھر HEX فائل فلیش جادو کا استعمال کرتے ہوئے ARM7 اسٹیک پر چمک جاتی ہے ۔ کیل یوویژن اور فلیش جادو انسٹال کرنے کے بارے میں اور ان کا استعمال کرنے کے طریقہ کے بارے میں مزید جاننے کے ل AR اے آر ایم 7 ایل پی سی 2148 مائکروکانٹرلر کے ساتھ شروعات کرنا اور کییل یوویژن کا استعمال کرکے اس کو پروگرام کریں۔
کوڈنگ وضاحت
اس روبوٹک آرم پروجیکٹ کے لئے مکمل پروگرام سبق کے آخر میں دیا گیا ہے۔ آئیے اب پروگرامنگ کو تفصیل سے دیکھتے ہیں۔
جی پی آئی او ، پی ڈبلیو ایم اور اے ڈی سی کے استعمال کیلئے ایل پی سی 2148 کے پورٹ کی تشکیل:
پنوں کے لئے اے ڈی سی چینلز- ADC0.4 ، ADC0.1 ، ADC0.2 ، ADC0.3 P0.25 ، P0.28 ، P0.29 ، P0.30 کو اہل بنانے کیلئے PINSEL1 رجسٹر کا استعمال کریں۔ اور یہ بھی ، PWM5 کے لئے پن P0.21 (1 << 10) کیلئے۔
# تعریف AD04 (1 << 18) // P0.25 کے لئے AD0.4 فنکشن منتخب کریں # ADD1 AD01 (1 << 24) // P0.28 کے لئے AD0.1 فنکشن منتخب کریں # تعریف AD02 (1 << 26) / / منتخب کریں AD0.2 فنکشن P0.29 کے لئے # ADD3 AD03 (1 << 28) // منتخب کریں AD0.3 فنکشن P0.30 PINSEL1 کے لئے - = AD04 - AD01 - AD02 - AD03 - (1 << 10)؛
LPC2148 کے پنوں P0.1 ، P0.7 ، P0.8 کیلئے PWM چینلز PWM3 ، PWM2 ، PWM4 کو اہل بنانے کیلئے PINSEL0 رجسٹر کا استعمال کریں۔
PINSEL0 = 0x000A800A؛
ایل ای ڈی اور پش بٹن کے کنکشن کے لئے استعمال ہونے والے PORT1 میں موجود تمام پنوں کے لئے GPIO پن فنکشن کو چالو کرنے کے لئے PINSEL2 رجسٹر کا استعمال کریں۔
PINSEL2 = 0x00000000؛
آؤٹ پٹ کے طور پر ایل ای ڈی پنوں اور پش بٹن پنوں کو بطور ان پٹ بنانے کے ل the IODIR1 رجسٹر استعمال ہوتا ہے۔ (0 INPUT کے لئے اور 1 آؤٹ پٹ کے لئے)
IODIR1 = ((0 << 17) - (0 << 18) - (0 << 19) - (0 << 20) - (1 << 28) - (1 << 29) - (1 << 30)) - (1 << 31 فیصد)؛
جبکہ پن نمبر کی وضاحت کی گئی ہے
# ڈیفائن سوئچ پننمبر 1 17 // (P1.17 کے ساتھ منسلک) # تعریف شدہ سوئچ پننمبر 2 // // (P1.18 سے منسلک) # ڈیفائن سوئچ پننمبر 3 // // (P1.19 سے جڑا ہوا) # ڈیفائن سوئچ پننمبر 4 // // (P1 کے ساتھ مربوط ) 20) # ڈیفائن لیڈپننمبر 1 28 // (پی 1.28 کے ساتھ منسلک) # ڈیفائن لیڈپنمبر 2 29 // (پی 1.29 سے منسلک) # ڈیفائن لیڈپین نمبر 3 // // (پی 1.30 سے منسلک) # ڈیفائن لیڈپنمبربر 31 // (کے ساتھ مربوط P1.31)
اے ڈی سی تبادلوں کی ترتیب کی تشکیل
اگلا ADC تبادلوں کے موڈ اور ADC کے لئے گھڑی AD0CR_setup رجسٹر کا استعمال کرتے ہوئے طے کی گئی ہے۔
بغیر دستخط شدہ AD0CR_setup = (CLKDIV << 8) - BURST_MODE_OFF - پاور اپ؛ // اے ڈی سی وضع وضع کرنا
جبکہ CLCKDIV ، برسٹ موڈ اور پاور اپ کی تعریف کی گئی ہے
# ڈیفائن سی ایل کی آر ایل (15-1) # تعیineن BURST_MODE_OFF (0 << 16) // 1 برائے اور 0 آف # ڈیفائن پاور اپ (1 << 21)
ADC تبادلوں کے لئے گھڑی طے کرنا (CLKDIV)
یہ ADC کے لئے گھڑی تیار کرنے کے لئے استعمال کیا جاتا ہے۔ 4 میگاہرٹز ADC گھڑی (ADC_CLOCK = PCLK / CLKDIV) جہاں واقعی "CLKDIV-1" استعمال ہوتا ہے ، ہمارے معاملے میں PCLK = 60mhz
برسٹ موڈ (بٹ ۔16): یہ تھوڑا سا برلن تبادلوں کے لئے استعمال ہوتا ہے۔ اگر یہ تھوڑا سا سیٹ کیا گیا ہے تو ADC ماڈیول ان سبھی چینلز کا تبادلہ کرے گا جو منتخب کردہ (SET) SEL بٹس میں ہیں۔ اس قدرے میں 0 مرتب کرنے سے BURST کے تبادلوں کو غیر فعال کردیا جائے گا۔
پاور ڈاون موڈ (بٹ 21): اس کا استعمال اے ڈی سی کو آن یا آف کرنے کے لئے کیا جاتا ہے۔ اس (بٹ) میں (1) ترتیب دینے سے ADC کو پاور ڈاون موڈ سے باہر نکال دیا جاتا ہے اور اسے آپریشنل ہوجاتا ہے۔ اس بٹ کو صاف کرنے سے ADC کا اقتدار ختم ہوجائے گا۔
PWM تبادلوں کی ترتیب کی تشکیل
پی ڈبلیو ایم ٹی سی آر رجسٹر کا استعمال کرکے پی ڈبلیو ایم کے لئے سب سے پہلے ری سیٹ اور نااہل کاؤنٹر اور پی ڈبلیو ایم ٹائمر پری اسکیل رجسٹر کو نسخہ والی قدر کے ساتھ مرتب کریں۔
PWMTCR = 0x02؛ پی ڈبلیو ایم پی آر = 0 ایکس 1 ڈی؛
اگلے ایک ہی چکر میں گنتی کی زیادہ سے زیادہ تعداد طے کریں۔ یہ میچ رجسٹر 0 (PWMMR0) میں کیا جاتا ہے ۔ جیسا کہ ہمارے پاس 20000 ہے کیونکہ یہ 20msecs کی ایک PWM لہر ہے
PWMMR0 = 20000؛
اس کے بعد میچ رجسٹر میں ڈیوٹی سائیکل کی قیمت مقرر ہوجائے ، ہم PWMMR4 ، PWMMR2 ، PWMMR3 ، PWMMR5 استعمال کر رہے ہیں۔ یہاں ہم 0 میس کی ابتدائی اقدار طے کررہے ہیں (ٹف)
PWMMR4 = 0؛ PWMMR2 = 0؛ PWMMR3 = 0؛ PWMMR5 = 0؛
اس کے بعد میچ رجسٹر ہونے پر کاؤنٹر ری سیٹ کرنے کیلئے پی ڈبلیو ایم میچ کنٹرول رجسٹر مرتب کریں۔
PWMMCR = 0x00000002؛ // ایم آر0 میچ پر ری سیٹ کریں
اس کے بعد ، پی ڈبلیو ایم لیچ میچ ویلیو (PWMLER) کے استعمال کو چالو کرنے کے ل Reg رجسٹر کو فعال کریں
PWMLER = 0x7C؛ // PWM2 ، PWM4 ، PWM4 اور PWM5 کے لئے میچ قابل بنائیں
PWM ٹائمر کنٹرول رجسٹر (PWMTCR) میں تھوڑا سا استعمال کرتے ہوئے ٹائمر کاؤنٹر کو دوبارہ ترتیب دیں اور یہ PWM کو بھی اہل بناتا ہے۔
پی ڈبلیو ایم ٹی سی آر = 0x09؛ // PWM اور کاؤنٹر کو فعال کریں
اگلا PWM آؤٹ پٹس کو قابل بنائے اور PWM کنٹرول رجسٹر (PWMPCR) میں PWM کو واحد کنارے-کنٹرول وضع میں وضع کریں ۔
PWMPCR = 0x7C00؛ // PWM2 ، PWM4 ، PWM4 اور PWM5 ، واحد کنارے پر کنٹرول PWM کو فعال کریں
پش بٹنوں کا استعمال کرکے گھومنے کیلئے सर्वो موٹر کا انتخاب کرنا
ہمارے پاس چار پش بٹن ہیں جو چار مختلف امدادی موٹریں گھومنے کے لئے استعمال ہوتے ہیں۔ ایک پش بٹن کو منتخب کرکے اور اسی طرح کے پوٹینومیٹر کو مختلف کرکے ، اے ڈی سی ویلیو ڈیوٹی سائیکل طے کرتی ہے اور اس سے وابستہ سرو موٹر اپنی پوزیشن تبدیل کرتی ہے۔ پش بٹن سوئچ کی حیثیت حاصل کرنے کے لئے
SwitchStatus1 = (IOPIN1 >> SwitchPinNumber1) & 0x01؛
لہذا ، اس پر انحصار کرتے ہوئے کہ کس سوئچ کی قیمت اعلی ہے ADC تبادلوں کی جگہ لیتا ہے اور پھر ADC (0 سے 1023) ویلیو کے کامیاب تبادلوں کے بعد ، اس کو (0 سے 2045) کے لحاظ سے نقشہ بنایا جاتا ہے اور اس کے بعد ڈیوٹی سائیکل ویلیو کو لکھا جاتا ہے (PWMMRx) PWM پن سرو موٹر سے منسلک ہے۔ اور یہ بھی بتاتے ہیں کہ کون سا سوئچ دبایا جاتا ہے اس کی نشاندہی کرنے کے لئے ایل ای ڈی کو ہائی موڑ دیا جاتا ہے۔ پہلے پش بٹن کیلئے ذیل میں ایک مثال ہے
اگر (SwitchStatus1 == 1) { IOPIN1 = (1 <
روبوٹک بازو کو چنیں اور رکھیں
ایل پی سی 2148 پر کوڈ اپ لوڈ کرنے کے بعد ، کسی بھی سوئچ کو دبائیں اور روبوٹک بازو کی پوزیشن کو تبدیل کرنے کے ل pot اسی پوٹنٹومیٹر کو مختلف کریں۔
ہر سوئچ اور پوٹینومیٹر ہر سرووموٹر تحریک کو کنٹرول کرتا ہے جو کہ بائیں یا دائیں تحریک ، اوپر یا نیچے کی نقل و حرکت ، آگے یا پیچھے اور پھر گرفت کو روکنے اور رہائی کے لri گرفت رکھتا ہے۔ تفصیلی ورکنگ ویڈیو کے ساتھ مکمل کوڈ ذیل میں دیا گیا ہے۔