ควบคุมมอเตอร์เลโก้แบบไร้สายด้วย Steam Controller

ควบคุมมอเตอร์เลโก้แบบไร้สายด้วย Steam Controller

เมื่อตอนที่ฉันยังเด็ก ฉันอยากมีช่างเลโก้มาประดิษฐ์ของเจ๋งๆ อยู่เสมอ รถถังอัตโนมัติพร้อมป้อมปืนหมุนที่ยิงอิฐเลโก้ แต่แล้วฉันก็ไม่มีชุดดังกล่าว

และไม่มีแม้แต่ตัวต่อเลโก้ธรรมดาด้วยซ้ำ ฉันมีเพียงเพื่อนคนหนึ่งที่น้องชายของเขามีของเล่นราคาแพงพวกนี้

และตอนนี้ฉันมีลูกชายวัยนั้นแล้ว และเขาสร้างรถถังที่ ... ไปข้างหน้าอย่างโง่เขลาจนชนเข้ากับกำแพง 🙂

และตอนนี้ก็ถึงเวลาสำหรับ ESP32 และความมหัศจรรย์ของหัวแร้ง - มาประกอบรีโมทคอนโทรลที่เหมาะสมสำหรับพวกเขากันเถอะ!

ไม่ แน่นอน ฉันรู้เกี่ยวกับการมีอยู่ของรีโมทดังกล่าว แต่ไม่มีสิ่งใดที่เหมาะกับฉันอย่างสมบูรณ์แบบ เป็นอินฟราเรดที่มีเทคโนโลยียุค 80 หรือมีขนาดใหญ่เกินไป หรือของแพงๆ และที่สำคัญที่สุด ฉันไม่สามารถบอกลูกชายเกี่ยวกับเรื่องเหล่านี้ได้: “ฉันทำเพื่อคุณโดยเฉพาะ!”

ดังนั้นมาสร้างรีโมตคอนโทรลที่ได้รับการปรับปรุงใหม่เพื่อควบคุมทุกคนกันเถอะ!

ควบคุมมอเตอร์เลโก้แบบไร้สายด้วย Steam Controller

ส่วนผสม:

  • ESP32-WROOM-32D | WiFi, BLE และโปรเซสเซอร์พร้อม I/O - เพียงพอที่จะควบคุมสองตัว มอเตอร์ и นำ.
  • DRV8833 | สะพาน H สองเท่าที่มีกำลังเพียงพอสำหรับมอเตอร์
  • TPS62162 | ลดแรงดันไฟฟ้าลงเหลือ 17V เพื่อความสนุกสนานเมื่อบัดกรีเคส WSON-8 2x2 มม
  • CP2104 | สำหรับการเขียนโปรแกรม ESP32
  • การเชื่อมต่อ สำหรับเชื่อมต่อมอเตอร์และไดโอด ตัดสายไฟและบัดกรีที่ด้านล่างแล้วกาวขั้วต่อเลโก้ที่ด้านบน

ทั้งหมดนี้จะถูกวางไว้บนกระดานที่ค่อนข้างเล็ก - นี่คือลักษณะที่ปรากฏในตัวแก้ไข EasyEDA:

ควบคุมมอเตอร์เลโก้แบบไร้สายด้วย Steam Controller

สายไฟซึ่งมองเห็นได้ในภาพชื่อเรื่องนั้นไม่จำเป็นสำหรับการแก้ไขข้อผิดพลาดบางอย่าง แต่เพื่อจ่ายไฟจาก USB อาจจะไม่เพียงพอสำหรับมอเตอร์ แต่น่าเสียดายที่การติดต่อจากจีนยังไม่มาหาฉัน ดังนั้นฉันจึงตรวจสอบการทำงานของ LED ก่อน เพื่อความสวยงามของภาพ ผมแค่ติดคอนเนคเตอร์จากมอเตอร์ไว้บนบอร์ดครับ

บอร์ดของฉันเวอร์ชัน 1.1 (ต่างจากเวอร์ชัน 1.2 ที่มีอยู่แล้วใน EasyEDA) ไม่มี LED ดังนั้นฉันจึงบัดกรีไดโอดต่อต้านขนานสองตัวเข้ากับเอาต์พุตเพื่อที่ฉันจะได้เห็นว่าเกิดอะไรขึ้น หากมองอย่างใกล้ชิด วิดีโอจะแสดงสวิตช์เปิดของไดโอด 0603 คู่หนึ่ง ซึ่งระบุการเคลื่อนที่ไปข้างหน้า/ข้างหลัง

สำหรับรีโมทคอนโทรลในตอนแรกฉันแค่อยากประกอบบอร์ดเพิ่มเติมพร้อมปุ่มและ ESP32 อีกอันซึ่งเป็นรีโมทคอนโทรลแบบคลาสสิก

อย่างไรก็ตาม ฉันจำได้ว่า Steam Controller มีโหมดการทำงานของ Bluetooth Low Energy (BLE) ฉันตัดสินใจที่จะจัดการกับปัญหานี้ และหลังจากนั้นไม่กี่ชั่วโมง ฉันก็เรียนรู้วิธีรับแพ็กเก็ตจากคอนโทรลเลอร์

ในการดำเนินการนี้ คุณเพียงแค่ต้องค้นหาอุปกรณ์ HID ที่เรียกตัวเองว่า SteamController และเชื่อมต่อกับอุปกรณ์นั้น จากนั้นใช้บริการที่ไม่มีเอกสารจาก Valve และอีกสองสามราย คำสั่งที่ไม่มีเอกสารเพื่อให้สามารถส่งแพ็กเก็ตได้

ควบคุมมอเตอร์เลโก้แบบไร้สายด้วย Steam Controller

ฉันยังพบรูปแบบรายงานที่ไม่มีเอกสารซึ่งฉันแยกวิเคราะห์ด้วยตนเอง

ควบคุมมอเตอร์เลโก้แบบไร้สายด้วย Steam Controller

หลังจากผ่านไปประมาณหนึ่งชั่วโมง ความหมายของแฟล็กและค่าต่างๆ ก็ชัดเจนสำหรับฉัน และฉันก็จัดการให้ไฟ LED กะพริบโดยใช้ Steam controller และ ESP32 ลาก_(ツ)_/¯

ไฟล์

v1.0: "แนวทางการทดลอง"
- ตัวเลือกแรกที่ฉันเลือกตัวควบคุมแรงดันไฟฟ้าผิด TPS62291 รับแรงดันไฟฟ้าสูงสุดที่ 6V เท่านั้น ฉันกำลังพัฒนาหลายโครงการแบบขนานและฉันลืมไปว่าอุปกรณ์ต้องทำงานกับ 9V

v1.1: "ดีพอแล้ว"
- ตัวเลือกนี้มองเห็นได้ในวิดีโอและทุกอย่างใช้งานได้

v1.2: "สุดท้าย"
- เพิ่มไฟ LED แสดงสถานะที่เอาต์พุตและปรับขนาดและเค้าโครงของบอร์ดให้เหมาะสม

วิดีโอสั้นต่อไปนี้แสดงเฟสการเชื่อมต่อ (1-3 วินาทีหลังจากเปิดเครื่อง) และการควบคุมเอาท์พุตของมอเตอร์ ขั้วต่อจาก Lego ยังไม่ได้เชื่อมต่อ มันจะไปที่พื้นที่ว่างข้างขั้วต่ออื่นๆ โดยมีสี่เหลี่ยมสีขาวกำกับไว้

ตอนนี้ลูกชายของฉันใช้คอนโทรลเลอร์นี้เป็นประจำเพื่อควบคุมเครื่องจักรที่เขาประกอบไว้

ในระหว่างการทดสอบความเครียด ฉันพบปัญหาเดียว: ฉันคิดว่าโหมด "สลายเร็ว" (สลายอย่างรวดเร็ว) ของตัวขับมอเตอร์จะทำงานได้ดีที่สุด แต่ด้วยเหตุนี้ หลังจากทำงานไม่กี่วินาที ความเร็วของมอเตอร์จึงลดลงอย่างมาก . เลยเปลี่ยนโค้ดมาใช้คำว่า "สลายช้า" [สลายช้า]

ควบคุมมอเตอร์เลโก้แบบไร้สายด้วย Steam Controller

ขณะที่ฉันไม่แน่ใจว่า DRV ทำงานอย่างไร และเหตุใดมอเตอร์จึงหมุนเร็วในตอนแรก และหลังจากนั้น 10 วินาทีก็เริ่มค่อยๆ ช้าลง บางที MOSFET อาจร้อนขึ้นและความต้านทานของพวกมันก็เพิ่มขึ้นมากเกินไป

ฉันหวังว่าตัวอย่างวิธีใช้ Arduino นี้จะสร้างแรงบันดาลใจให้ผู้อื่นได้อย่างง่ายดาย และช่วยให้พวกเขาแนะนำอุปกรณ์อิเล็กทรอนิกส์ให้บุตรหลานได้

ที่มา: will.com

เพิ่มความคิดเห็น