สารบัญ:

DIY Bluetooth Macro Keypad: 10 ขั้นตอน (พร้อมรูปภาพ)
DIY Bluetooth Macro Keypad: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: DIY Bluetooth Macro Keypad: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: DIY Bluetooth Macro Keypad: 10 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: A Cheap Programmable Macro Pad Keyboard from Aliexpress 2024, กรกฎาคม
Anonim
DIY Bluetooth Macro Keypad
DIY Bluetooth Macro Keypad

ในคำแนะนำนี้ เราจะมาดูการใช้บลูทูธในตัวของ ESP32 เพื่อจำลองแป้นพิมพ์บลูทูธ

Bluetooth HID (Human Interface Device) เป็นโปรโตคอลที่ใช้โดยคีย์บอร์ดและเมาส์ Bluetooth ทั่วไป และเป็นไปได้ที่จะจำลองสิ่งนี้ด้วย ESP32 ซึ่งยอดเยี่ยมมาก!

ด้วยบอร์ดพัฒนา ESP32 บางรุ่นที่มีราคาต่ำกว่า $5* ที่จ่ายไป นี่เป็นวิธีที่ไม่แพงและง่ายมากในการสร้างคีย์บอร์ดแบบกำหนดเองแบบไร้สาย เช่น คีย์แพดมาโคร แป้นพิมพ์มาโครสามารถใช้สำหรับควบคุมแอปพลิเคชันต่างๆ เช่น โปรแกรมตัดต่อวิดีโอหรือ Photoshop โดยส่วนตัวแล้วฉันใช้ของฉันเพื่อควบคุมฉากใน OBS เมื่อฉันสร้างวิดีโอหรือสตรีม

ก่อนอื่นเราจะมาดูวิธีใช้ไลบรารีแป้นพิมพ์ ESP32 HID ก่อน จากนั้นฉันจะแสดงให้คุณเห็นว่าฉันใช้สิ่งนี้เพื่อสร้างแป้นพิมพ์มาโคร Bluetooth ที่ใช้พลังงานจากแบตเตอรี่ได้อย่างไร

เสบียง

  • บอร์ด TinyPICO ESP32 Dev (ESP32 ใด ๆ ก็ทำงานได้)
  • 4*4 เมทริกซ์ คีย์แพด*

คุณจะต้องใช้แบตเตอรี่ lipo ด้วย ฉันเพิ่งใช้แบตเตอรี่แบบสุ่มที่วางอยู่รอบ ๆ ดังนั้นฉันจึงไม่สามารถเชื่อมโยงไปยังมันได้!

หากพีซีของคุณไม่มีบลูทูธ คุณสามารถใช้ดองเกิลแบบนี้ได้:

Amazon.co.uk*:

Amazon.com*:

Amazon.de*:

* = พันธมิตร

ขั้นตอนที่ 1: ดูวิดีโอ

Image
Image

ฉันได้ทำวิดีโอที่ครอบคลุมสิ่งเดียวกับคำแนะนำนี้ ดังนั้นหากคุณสนใจ โปรดตรวจสอบ! ฉันยังสร้างวิดีโอเกี่ยวกับโปรเจ็กต์ ESP8266 และ ESP32 เป็นประจำ ดังนั้นอาจมีวิดีโออื่นๆ ในช่องของฉันที่คุณอาจสนใจ

ขั้นตอนที่ 2: [ไม่บังคับ] เริ่มต้นใช้งาน ESP32

ESP32s เป็นไมโครคอนโทรลเลอร์ที่เข้ากันได้กับ Arduino IDE และมาพร้อมกับ WiFi และ Bluetooth พวกมันค่อนข้างถูกดังนั้นจึงเป็นชิปที่มีประโยชน์มากสำหรับโครงการของคุณ

คุณจะต้องเพิ่มคำจำกัดความของบอร์ด ESP32 ให้กับ Arduino IDE ของคุณ โดยคุณสามารถทำตามขั้นตอนที่ระบุไว้ในโครงการ ESP32 Arduino Github Page

ขั้นตอนที่ 3: การติดตั้งไลบรารีคีย์บอร์ด ESP32 Ble

การติดตั้งไลบรารีคีย์บอร์ด ESP32 Ble
การติดตั้งไลบรารีคีย์บอร์ด ESP32 Ble
การติดตั้งไลบรารีคีย์บอร์ด ESP32 Ble
การติดตั้งไลบรารีคีย์บอร์ด ESP32 Ble

เป็นไปได้ที่จะใช้ Bluethooth HID บน ESP32 โดยไม่มีไลบรารี่ภายนอก แต่ผู้ใช้ Github T-Vk ได้เขียนไลบรารีชื่อ ESP32-BLE-Keyboard ที่ทำให้เหมือนกับไลบรารีคีย์บอร์ด Arduino มาตรฐานซึ่งทำให้ใช้งานได้ง่ายขึ้นมาก

ไลบรารีนี้ไม่มีอยู่ในตัวจัดการไลบรารี ดังนั้นคุณจะต้องดาวน์โหลดจาก Github

  • ไปที่หน้าเผยแพร่โครงการและดาวน์โหลด ESP32-BLE-Keyboard.zip. ล่าสุด
  • เมื่อดาวน์โหลดแล้ว คุณสามารถเพิ่มลงใน Arduino IDE ได้ แต่ไปที่ Sketch -> Include Library จากนั้นเพิ่ม Zip ลงในไลบรารี แล้วเลือก ESP32-BLE-Keyboard.zip จากขั้นตอนก่อนหน้า

ขั้นตอนที่ 4: การดูตัวอย่าง

ดูตัวอย่าง
ดูตัวอย่าง
ดูตัวอย่าง
ดูตัวอย่าง
ดูตัวอย่าง
ดูตัวอย่าง

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

คุณสามารถเข้าถึงตัวอย่างได้โดยไปที่ไฟล์ -> ตัวอย่าง -> แป้นพิมพ์ ESP32 BLE -> SendKeyStrokes

การตั้งค่าการเชื่อมต่อบลูทูธ

ในการตั้งค่า การเชื่อมต่อบลูทูธจะเริ่มขึ้น ในขั้นตอนนี้ คุณควรจับคู่กับอุปกรณ์ของคุณได้

bleKeyboard.begin();

ภายในลูปยังตรวจสอบด้วยว่าเชื่อมต่อกับอุปกรณ์หรือไม่

bleKeyboard.isConnected()

กำลังพิมพ์

สิ่งแรกที่ตัวอย่างแสดงให้เห็นคือวิธีที่คุณสามารถพิมพ์ข้อความเมื่อเชื่อมต่อแล้วจะพิมพ์ "สวัสดีชาวโลก" ก่อนโดยใช้

bleKeyboard.print("สวัสดีชาวโลก");

กดปุ่มเดียว

จากนั้นจะแสดงให้เห็นว่าคุณสามารถ "เขียน" คีย์ย้อนกลับได้อย่างไร โดยพื้นฐานแล้วเป็นการเลียนแบบการกดปุ่มเดียวของปุ่มนี้

bleKeyboard.write (KEY_RETURN);

คุณสามารถเปิดไฟล์ BleKeyboard.h ของไลบรารีเพื่อดูคีย์ทั้งหมดที่กำหนดไว้เช่นนี้ คุณยังสามารถส่งอักขระ ascii ได้โดยใส่ลงในเครื่องหมายจุลภาคเดียว

bleKeyboard.write('A');

คีย์สื่อ

นอกจากนี้ยังสาธิตวิธีส่งคีย์สื่อ ซึ่งคล้ายกับวิธีควบคุมระดับเสียงหรือข้ามแทร็กด้วยหูฟังบลูทูธ ตัวอย่างแสดงปุ่มเล่น/หยุดชั่วคราว แต่คุณสามารถเปิด BleKeyboard.h อีกครั้งเพื่อดูตัวเลือกอื่นๆ ที่พร้อมใช้งาน

bleKeyboard.write (KEY_MEDIA_PLAY_PAUSE);

การกดและปล่อยปุ่ม

สิ่งสุดท้ายที่ตัวอย่างแสดงให้เห็นคือวิธีที่คุณสามารถกดปุ่มค้างไว้ ซึ่งจะเป็นประโยชน์สำหรับการสร้างแป้นพิมพ์มาโคร ตัวอย่างที่แสดงที่นี่มีไว้สำหรับ Ctrl + Alt + Delete

bleKeyboard.press(KEY_LEFT_CTRL);

bleKeyboard.press(KEY_LEFT_ALT);

bleKeyboard.press (KEY_DELETE);

จากนั้นจะเรียก releaseAll ซึ่งคุณสามารถเดาได้จากชื่อที่จะปล่อยปุ่มที่กดทั้งหมด

bleKeyboard.releaseAll();

คุณยังสามารถปล่อยคีย์เฉพาะได้หากต้องการโดยใช้คำสั่ง release กับคีย์ที่คุณต้องการปล่อย

bleKeyboard.release(KEY_DELETE);

ขั้นตอนที่ 5: เคล็ดลับอื่นๆ สำหรับห้องสมุด

เคล็ดลับอื่นๆ สำหรับห้องสมุด
เคล็ดลับอื่นๆ สำหรับห้องสมุด
เคล็ดลับอื่นๆ สำหรับห้องสมุด
เคล็ดลับอื่นๆ สำหรับห้องสมุด
เคล็ดลับอื่นๆ สำหรับห้องสมุด
เคล็ดลับอื่นๆ สำหรับห้องสมุด

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

ใช้ทริกเกอร์ภายนอก

วิธีที่ดีที่สุดคือการควบคุมอุปกรณ์ HID แบบนี้โดยใช้ทริกเกอร์ภายนอก เช่น การกดปุ่ม หากคุณใช้ตัวจับเวลาและมีบางอย่างผิดปกติ อาจทำให้การตัดการเชื่อมต่อไม่สะดวก ลองนึกภาพว่าคุณต้องลองปิด Bluetooth หากคุณตั้งโปรแกรมให้กด Ctrl+Alt+Del ทุก ๆ 100mS โดยไม่ได้ตั้งใจ!

เปลี่ยนชื่อเครื่อง

ตามค่าเริ่มต้น ชื่ออุปกรณ์จะแสดงเป็น "ESP32 BLE Keyboard" ซึ่งสามารถเปลี่ยนแปลงได้เมื่อคุณสร้างอินสแตนซ์ของไลบรารี คุณสามารถตั้งชื่ออุปกรณ์ ผู้ผลิต และระดับแบตเตอรี่เริ่มต้นได้

BleKeyboard bleKeyboard("ชื่ออุปกรณ์บลูทูธ", "ผู้ผลิตอุปกรณ์บลูทูธ", 100);

การตั้งค่าระดับแบตเตอรี่ (อย่างน้อยก็ใช้งานไม่ได้สำหรับฉัน)

ห้องสมุดอ้างว่าคุณสามารถตั้งค่าระดับแบตเตอรี่ได้ แต่มันใช้ไม่ได้กับฉันบนพีซี Windows ของฉัน (มันอยู่กับค่าเริ่มต้นอะไรก็ตาม) และโทรศัพท์ Android ของฉันไม่แสดงระดับของมันทั้งหมด นี่คือคำสั่งสำหรับมันในกรณีที่มันเหมาะกับคุณ

bleKeyboard.setBatteryLevel(50)

ความเข้ากันได้ของอุปกรณ์

ฉันรันตัวอย่างได้สำเร็จบนพีซี Windows 10 โทรศัพท์ Android และ Mac ของฉัน (แม้ว่าจะยังใช้งาน Sierra อยู่ก็ตาม!)

นอกจากนี้ยังสามารถเชื่อมต่อกับอุปกรณ์ได้ครั้งละหนึ่งเครื่องเท่านั้น

การแก้ไขปัญหาการจับคู่

หากคุณประสบปัญหาในการจับคู่ ให้ลองรีสตาร์ท ESP32 ขณะที่อุปกรณ์ของคุณกำลังค้นหา ครั้งหนึ่งฉันเคยต้องเปิดและปิดบลูทูธบนพีซีเพื่อจับคู่

ขั้นตอนที่ 6: แป้นมาโคร

แป้นมาโคร
แป้นมาโคร
แป้นมาโคร
แป้นมาโคร
แป้นมาโคร
แป้นมาโคร
แป้นมาโคร
แป้นมาโคร

ตอนนี้เรามีพื้นฐานหมดแล้ว มาทำอะไรที่เป็นประโยชน์กับมันกันเถอะ!

ในคู่มือก่อนหน้านี้ ฉันแสดงวิธีสร้างแป้นมาโครที่ง่ายที่สุดจาก Arduino pro Micro และแป้นพิมพ์ราคาถูก สำหรับแต่ละปุ่มบนแป้นพิมพ์ จะส่งปุ่มที่แตกต่างกันออกไป ซึ่งสามารถใช้เพื่อควบคุมแอปพลิเคชัน โดยส่วนตัวแล้วฉันใช้สำหรับ OBS ซอฟต์แวร์ที่ฉันใช้สำหรับการบันทึกวิดีโอ และสำหรับเมื่อฉันสตรีม ดูเหมือนว่าจะเป็นโครงการที่ดีในการพอร์ต ESP32 เพื่อให้เราสามารถสร้างเวอร์ชันไร้สายได้

สำหรับงานสร้างนี้ ฉันจะใช้บอร์ด TinyPICO ESP32 ของ Unexpected Maker เหตุผลหลักในการเลือกบอร์ดนี้คือบอร์ดที่ประหยัดพลังงานมาก และมีวงจรสำหรับวิ่งออกและชาร์จแบตเตอรี่ Lipo ในตัว สิ่งที่ฉันต้องทำคือเสียบแบตเตอรี่เข้าไป

ฉันจะโกหกถ้ามันมีระยะห่างแถวเดียวกับ Pro Micro และฉันสามารถใช้ประโยชน์จากกระดานฝ่าวงล้อมที่ฉันทำไว้ก่อนหน้านี้ก็ไม่น่าสนใจเช่นกัน!

แป้นพิมพ์ต้องใช้พิน GPIO 8 พินจึงจะใช้งานได้ และ TinyPICO มีพิน GPIO 8 อันติดต่อกัน ดังนั้นเราจะใช้พวกมัน คุณสามารถเชื่อมต่อปุ่มกดกับ TinyPICO อย่างง่ายดังที่แสดงในภาพด้านบน

ขั้นตอนที่ 7: รหัสสำหรับ Macro Keypad

รหัสสำหรับแป้นมาโคร
รหัสสำหรับแป้นมาโคร
รหัสสำหรับแป้นมาโคร
รหัสสำหรับแป้นมาโคร

รหัสสำหรับร่าง Macro Keypad สามารถพบได้ใน Github ของฉัน

เช่นเดียวกับไลบรารี BleKeyboard ที่ติดตั้งในขั้นตอนก่อนหน้า คุณจะต้องติดตั้งไลบรารีสำหรับแป้นพิมพ์ด้วย ซึ่งทำได้โดยเปิดตัวจัดการไลบรารีโดยไปที่ Sketch -> Include Library -> Manage Libraries

ภายในตัวจัดการห้องสมุด ค้นหา "ปุ่มกด" และติดตั้งโดย Mark Stanley และ Alexander Brevig

การกำหนดค่าหนึ่งอย่างที่คุณอาจต้องทำหากคุณใช้ ESP32 ที่แตกต่างจาก TinyPICO คือพินของปุ่มกด ซึ่งถูกตั้งค่าในแถว rowPins และ colPins array เมื่อมองที่ด้านหน้าของแป้นกดและเริ่มจากด้านซ้าย หมุด 4 อันแรกคือหมุดแถว และ 4 หมุดที่สองคือหมุดโคล

เมื่อเสร็จแล้ว ให้อัปโหลดโค้ดไปที่บอร์ด และคุณควรทดสอบในขั้นตอนนี้ว่ามันใช้งานได้

ขั้นตอนที่ 8: มาทำให้มันไร้สายกันเถอะ

มาทำให้มันไร้สายกันเถอะ!
มาทำให้มันไร้สายกันเถอะ!
มาทำให้มันไร้สายกันเถอะ!
มาทำให้มันไร้สายกันเถอะ!
มาทำให้มันไร้สายกันเถอะ!
มาทำให้มันไร้สายกันเถอะ!
มาทำให้มันไร้สายกันเถอะ!
มาทำให้มันไร้สายกันเถอะ!

ดังที่ได้กล่าวไว้ก่อนหน้านี้ TinyPICO มีวงจรสำหรับจัดการกับ Lipo ในตัว ดังนั้นสิ่งที่เราต้องทำคือเชื่อมต่อ มันมาพร้อมกับตัวเชื่อมต่อ JST ที่สามารถบัดกรีไปที่ด้านล่าง หรือคุณสามารถใช้หมุด Bat และ GND หากคุณต้องการทำผ่านหมุด

หากคุณกำลังใช้ตัวเชื่อมต่อ JST โปรดตรวจสอบอีกครั้งว่าขั้วของแบตเตอรี่ของคุณตรงกับ TinyPICO ไม่มีมาตรฐานสำหรับวิธีการต่อสายเหล่านี้ มีโอกาสสูงที่แบตเตอรี่ของคุณจะไม่ตรงกัน

ตรวจสอบแรงดันไฟฟ้าของแบตเตอรี่ lipo ของคุณก่อนใช้งาน แป้งที่ดีต่อสุขภาพควรเป็น 3V หรือสูงกว่า แบตเตอรี่ที่ฉันพบด้วยตัวเชื่อมต่อ JST ที่ถูกต้องคือ 0V!

ฉันลงเอยด้วยการใช้เซลล์ 18650 ในที่ยึดและบัดกรีกับขั้วต่อ JST ของแบตเตอรี่ที่ตายแล้ว

TinyPICO ช่วยลดการใช้พลังงานเมื่อแบตเตอรี่หมดโดยไม่ได้เปิดไฟ LED ใดๆ ของมัน ดังนั้นแม้ว่าจะไม่ได้มองแต่ก็หวังว่าจะเป็นเช่นนั้น! การปรับปรุงในอนาคตของโปรเจ็กต์อาจเป็นการพัลส์ LED dotstar ออนบอร์ดเมื่อเริ่มต้นเพื่อให้คุณรู้ว่ามันเปิดอยู่จริง ๆ และอาจจะอีกครั้งเมื่อเชื่อมต่อ สำหรับตอนนี้ คุณสามารถตรวจสอบในระบบของคุณ เมนู Bluetooth ที่เปิดและเชื่อมต่อได้

ขั้นตอนที่ 9: ทดสอบเลย

ทดสอบออก!
ทดสอบออก!

มาทดสอบกัน ถ้าฉันเปิดส่วนฮ็อตคีย์ของ OBS ฉันสามารถคลิกการกระทำต่างๆ เพื่อบันทึกการรวมกันของปุ่มที่จะควบคุมมันได้ สำหรับสิ่งนี้ เราสามารถคลิกที่ปุ่มบนปุ่มกดของเราแล้วมันจะอัปเดต

หลังจากที่คุณคลิกนำไปใช้ คุณจะไม่สามารถใช้ปุ่มกดเพื่อควบคุมฉากใน OBS ได้

ขั้นตอนที่ 10: ขอบคุณสำหรับการอ่าน

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

ฉันยังอยากจะขอบคุณมากสำหรับผู้สนับสนุน Github ของฉันที่ช่วยสนับสนุนสิ่งที่ฉันทำ ฉันรู้สึกซาบซึ้งจริงๆ หากคุณไม่ทราบ Github กำลังจับคู่การสนับสนุนสำหรับปีแรก ดังนั้นหากคุณเป็นผู้สนับสนุน พวกเขาจะจับคู่ 100% ในอีกไม่กี่เดือนข้างหน้า

ขอบคุณที่อ่าน!

แนะนำ: