تحكم لاسلكي في المحرك من Lego باستخدام Steam Controller



عندما كنت صغيرًا ، كنت أرغب دائمًا في الحصول على مجموعات Lego Technics لتجميع جميع أنواع الأشياء الرائعة منها. دبابات مستقلة مع أبراج دوارة تطلق طوب ليغو. ولكن بعد ذلك لم يكن لدي مثل هذه المجموعة.

وحتى الطوب المعتاد من Lego لم يكن كذلك. لم يكن لدي سوى صديق كان شقيقه يملك كل هذه الألعاب باهظة الثمن.

والآن لدي ابن عمره. وهو يبني الدبابات التي ... تمسك بغباء إلى الأمام حتى تصطدم بالجدار :)

والآن ، حان الوقت لـ ESP32 وسحر مكواة اللحام - سنقوم بتجميع جهاز التحكم عن بعد المناسب لهم!

لا ، بالطبع ، أعلم بوجود أجهزة التحكم عن بعد. لكن لا أحد منهم يناسبني تمامًا. إنها إما بالأشعة تحت الحمراء ، مع تقنية الثمانينيات ، أو كبيرة جدًا. أو باهظة الثمن. والأهم من ذلك - لا يمكنني أن أقول لابني عن أي منهم: "لقد فعلت ذلك خصيصًا من أجلك!"

لذلك دعونا نجعل جهاز تحكم عن بعد جديد ومحسن لحكم الجميع!



مكونات:

  • ESP32-WROOM-32D | WiFi و BLE ومعالج مزود بإدخال / إخراج - يكفي للتحكم في محركين و LED .
  • DRV8833 | جسر H مزدوج بطاقة كافية للمحركات.
  • TPS62162 | خفض الجهد إلى 17 فولت ، وكذلك للترفيه عند لحام العلبة WSON-8 2 × 2 مم
  • CP2104 | لبرمجة ESP32
  • . , Lego .

كل هذا سيكون موجودًا على لوحة صغيرة نوعًا ما - هنا هو مظهره في محرر EasyEDA:



السلك المرئي في صورة الرأس ليس ضروريًا لإصلاح أي أخطاء ، ولكن لتزويد الطاقة من USB. قد لا يكون هذا كافيًا للمحرك ، ولكن لسوء الحظ ، لم تصلني الاتصالات من الصين. لذلك ، أتحقق أولاً من تشغيل مصابيح LED. للحصول على الجمال في الصورة ، قمت فقط بوضع الموصل من المحرك على اللوحة.

في الإصدار 1.1 من لوحتي (على عكس الإصدار 1.2 ، الموجود بالفعل على EasyEDA) ، لم تكن هناك مصابيح LED ، لذلك قمت بحام ثنائي ثنائي مضاد موازٍ للإخراج بحيث يكون ما كان مرئيًا. إذا نظرت عن كثب ، يعرض الفيديو التضمين البديل لزوج من الثنائيات 0603 ، مما يشير إلى الحركة إلى الأمام / الخلف.



بالنسبة إلى لوحة التحكم ، أردت في البداية فقط جمع لوحة إضافية بأزرار و ESP32 أخرى - جهاز تحكم كلاسيكي عن بعد.

ومع ذلك ، تذكرت أن وحدات تحكم Steam لديها وضع Bluetooth منخفض الطاقة (BLE). قررت معالجة هذه المشكلة ، وبعد بضع ساعات تعلمت كيفية تلقي الحزم من وحدة التحكم.

للقيام بذلك ، ما عليك سوى البحث عن جهاز HID الذي يطلق على نفسه اسم SteamController والاتصال به. ثم استخدم خدمة Valve غير الموثقة وعدد قليل من الأوامر غير الموثقة التي تسمح بنقل الحزم.



وقد صادفت أيضًا تنسيق تقرير غير موثق ، قمت بتحليله يدويًا.



بعد حوالي ساعة ، أصبح واضحًا لي معنى الأعلام والقيم ، وتمكنت من وميض LED باستخدام وحدة تحكم Steam و ESP32. ¯ \ _ (ツ) _ / ¯

الملفات



v1.0: "نهج تجريبي"
- الخيار الأول الذي اخترت منظم الجهد الخاطئ. TPS62291 يرفع الجهد فقط إلى 6 V. طورت العديد من المشاريع بالتوازي ، ونسيت أن الجهاز يحتاج للعمل مع 9 V.

v1.1: "جيد بما فيه الكفاية"
- هذا الخيار مرئي في الإعلانات ، وكل شيء يعمل

v1.2: "نهائي"
- أضيفت مؤشرات LED إلى الخرج وحسنت حجم وتخطيط

اللوحة.يظهر الفيديو القصير التالي مرحلة الاتصال (1-3 ثوان بعد تشغيل الطاقة) والتحكم في مخرجات المحرك. موصل Lego غير متصل بعد. ستنتقل إلى مساحة فارغة بجوار الموصلات الأخرى ، مميزة بمستطيل أبيض.



يستخدم ابني الآن وحدة التحكم هذه للتحكم في الأجهزة التي قام بتجميعها.

أثناء اختبار الضغط ، واجهت مشكلة واحدة فقط: اعتقدت أن وضع "الاضمحلال السريع" للسائق المحرك سيعمل بشكل أفضل ، ولكن بسبب ذلك ، بعد بضع ثوانٍ من التشغيل ، ستنخفض سرعة المحرك كثيرًا. لذلك قمت بتغيير الشفرة بحيث تستخدم "الاضمحلال البطيء".



لست متأكدًا حتى الآن من كيفية عمل DRV ولماذا يدور المحرك بسرعة ، ثم بعد 10 ثوانٍ يبدأ في الإبطاء تدريجيًا. ربما ترتفع درجات حرارة MOSFET وترتفع مقاومتها أكثر من اللازم.



آمل أن يلهم هذا المثال من استخدام Arduino الآخرين بسهولة ويسمح لهم بتقديم أطفالهم إلى الإلكترونيات.

All Articles