سٹیم کنٹرولر کے ساتھ لیگو موٹرز کا وائرلیس کنٹرول

سٹیم کنٹرولر کے ساتھ لیگو موٹرز کا وائرلیس کنٹرول

جب میں جوان تھا، میں ہمیشہ سے چاہتا تھا کہ لیگو ٹیکیز ہوں تاکہ وہ اچھی چیزیں تیار کر سکیں۔ گھومنے والے برجوں کے ساتھ خود مختار ٹینک جو لیگو اینٹوں کو آگ لگاتے ہیں۔ لیکن تب میرے پاس ایسا سیٹ نہیں تھا۔

اور یہاں تک کہ باقاعدہ لیگو اینٹیں بھی نہیں تھیں۔ میرا صرف ایک دوست تھا جس کے بھائی کے پاس یہ سارے مہنگے کھلونے تھے۔

اور اب میرا اس عمر کا بیٹا ہے۔ اور وہ ٹینک بناتا ہے جو... احمقانہ طور پر آگے بڑھتا ہے جب تک کہ وہ دیوار سے ٹکرا نہ جائیں 🙂

اور اب، یہ ESP32 اور سولڈرنگ آئرن کے جادو کا وقت ہے - آئیے ان کے لیے صحیح ریموٹ کنٹرول جمع کریں!

نہیں، یقیناً میں ایسے ریموٹ کے وجود کے بارے میں جانتا ہوں۔ لیکن ان میں سے کوئی بھی میرے لیے بالکل مناسب نہیں ہے۔ وہ یا تو انفراریڈ ہیں، 80 کی دہائی کی ٹیکنالوجی کے ساتھ، یا بہت بڑے ہیں۔ یا مہنگے ہیں۔ اور سب سے اہم بات، میں اپنے بیٹے کو ان میں سے کسی کے بارے میں نہیں بتا سکوں گا: "میں نے یہ خاص طور پر آپ کے لیے کیا!"

تو آئیے سب پر حکمرانی کے لیے ایک نیا، بہتر ریموٹ کنٹرول بنائیں!

سٹیم کنٹرولر کے ساتھ لیگو موٹرز کا وائرلیس کنٹرول

اجزاء:

  • ESP32-WROOM-32D | وائی ​​فائی، BLE اور I/O کے ساتھ پروسیسر - دو کو کنٹرول کرنے کے لیے کافی ہے۔ موٹرز и ایل. ای. ڈی.
  • DRV8833 | موٹرز کے لیے کافی طاقت کے ساتھ ڈبل ایچ پل۔
  • TPS62162 | WSON-17 8x2mm کیس کو سولڈرنگ کرتے وقت بھی تفریح ​​کے لیے، وولٹیج کو 2V پر نیچے رکھیں
  • CP2104 | ESP32 پروگرامنگ کے لیے
  • رابط کرنے والے موٹرز اور ڈایڈس کو جوڑنے کے لیے۔ تاروں کو کاٹ کر نیچے سے ٹانکا لگائیں، اور اوپر لیگو کنیکٹر کو چپکائیں۔

یہ سب کچھ ایک چھوٹے بورڈ پر رکھا جائے گا - EasyEDA ایڈیٹر میں اس کی ظاہری شکل یہ ہے:

سٹیم کنٹرولر کے ساتھ لیگو موٹرز کا وائرلیس کنٹرول

تار، جو ٹائٹل فوٹو میں نظر آ رہا ہے، کچھ خرابیوں کو درست کرنے کے لیے نہیں، بلکہ USB سے پاور سپلائی کرنے کے لیے درکار ہے۔ ہو سکتا ہے کہ یہ موٹر کے لیے کافی نہ ہو، لیکن، بدقسمتی سے، چین سے ابھی تک میرے پاس رابطے نہیں آئے۔ لہذا، میں سب سے پہلے ایل ای ڈی کے آپریشن کو چیک کرتا ہوں. تصویر میں خوبصورتی کے لیے میں نے صرف موٹر سے کنیکٹر بورڈ پر لگایا ہے۔

میرے بورڈ کے ورژن 1.1 (ورژن 1.2 کے برعکس EasyEDA پر پہلے سے ہی موجود ہے) میں کوئی LEDs نہیں تھا، اس لیے میں نے آؤٹ پٹ پر دو متوازی مخالف ڈائیڈز سولڈر کیے تاکہ میں دیکھ سکوں کہ کیا ہو رہا ہے۔ اگر آپ قریب سے دیکھیں تو ویڈیو میں ڈایڈس 0603 کے ایک جوڑے کا متبادل سوئچ آن ہوتا ہے، جو آگے/پیچھے حرکت کی نشاندہی کرتا ہے۔

جہاں تک ریموٹ کنٹرول کا تعلق ہے، پہلے تو میں صرف بٹنوں کے ساتھ ایک اضافی بورڈ اور دوسرا ESP32 - ایک کلاسک ریموٹ کنٹرول جوڑنا چاہتا تھا۔

تاہم، پھر مجھے یاد آیا کہ سٹیم کنٹرولرز میں بلوٹوتھ لو انرجی (BLE) موڈ آف آپریشن ہوتا ہے۔ میں نے اس مسئلے سے نمٹنے کا فیصلہ کیا، اور چند گھنٹوں کے بعد میں نے کنٹرولر سے پیکٹ وصول کرنے کا طریقہ سیکھا۔

ایسا کرنے کے لیے، آپ کو صرف ایک HID ڈیوائس تلاش کرنے کی ضرورت ہے جو خود کو SteamController کہتا ہے اور اس سے جڑتا ہے۔ اور پھر والو اور کچھ سے غیر دستاویزی سروس استعمال کریں۔ غیر دستاویزی احکامات، پیکٹوں کی ترسیل کی اجازت دیتا ہے۔

سٹیم کنٹرولر کے ساتھ لیگو موٹرز کا وائرلیس کنٹرول

مجھے ایک غیر دستاویزی رپورٹ فارمیٹ بھی ملا جس کا میں نے دستی طور پر تجزیہ کیا۔

سٹیم کنٹرولر کے ساتھ لیگو موٹرز کا وائرلیس کنٹرول

تقریباً ایک گھنٹے کے بعد، جھنڈوں اور اقدار کا مطلب مجھ پر واضح ہو گیا، اور میں سٹیم کنٹرولر اور ESP32 کا استعمال کرتے ہوئے ایل ای ڈی کو جھپکنے میں کامیاب ہو گیا۔ ¯_(ツ)_/¯

فائلیں

V1.0: "آزمائشی نقطہ نظر"
- پہلا آپشن جس کے لیے میں نے غلط وولٹیج ریگولیٹر کا انتخاب کیا۔ TPS62291 صرف 6V تک وولٹیج لیتا ہے۔ میں متوازی طور پر کئی پروجیکٹ بنا رہا تھا، اور میں بھول گیا کہ ڈیوائس کو 9V کے ساتھ کام کرنے کی ضرورت ہے۔

V1.1: "کافی اچھا"
- یہ آپشن ویڈیوز میں نظر آتا ہے، اور سب کچھ کام کرتا ہے۔

V1.2: "حتمی"
- آؤٹ پٹ میں اشارے ایل ای ڈی کو شامل کیا اور بورڈ کے سائز اور ترتیب کو بہتر بنایا

مندرجہ ذیل مختصر ویڈیو کنکشن کے مرحلے (پاور اپ کے بعد 1-3 سیکنڈ) اور موٹر آؤٹ پٹس کا کنٹرول دکھاتی ہے۔ Lego سے کنیکٹر ابھی تک منسلک نہیں ہے۔ یہ دوسرے کنیکٹر کے ساتھ والی خالی جگہ پر جائے گا، جسے سفید مستطیل سے نشان زد کیا گیا ہے۔

میرا بیٹا اب باقاعدگی سے اس کنٹرولر کا استعمال اس مشینوں کو کنٹرول کرنے کے لیے کرتا ہے جو اس نے جمع کی ہیں۔

تناؤ کے امتحان کے دوران، مجھے صرف ایک مسئلہ کا سامنا کرنا پڑا: میں نے سوچا کہ موٹر ڈرائیور کا "تیز کشی" موڈ بہترین کام کرے گا، لیکن اس کی وجہ سے، چند سیکنڈ کے آپریشن کے بعد، موٹر کی رفتار بہت کم ہو گئی۔ . لہذا میں نے کوڈ کو تبدیل کیا تاکہ اس میں "سست کشی" [سست کشی] استعمال ہو۔

سٹیم کنٹرولر کے ساتھ لیگو موٹرز کا وائرلیس کنٹرول

جب کہ مجھے یقین نہیں ہے کہ DRV کیسے کام کرتا ہے اور موٹر پہلے کیوں تیز گھومتی ہے، اور پھر 10 سیکنڈ کے بعد یہ آہستہ آہستہ سست ہونا شروع ہو جاتی ہے۔ شاید MOSFETs گرم ہو رہے ہیں اور ان کی مزاحمت بہت زیادہ بڑھ رہی ہے۔

مجھے امید ہے کہ Arduino کو آسانی سے استعمال کرنے کے طریقے کی یہ مثال دوسرے لوگوں کو متاثر کرتی ہے اور انہیں اپنے بچوں کو الیکٹرانکس سے متعارف کرانے کی اجازت دیتی ہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں