
สารบัญ:
- ขั้นตอนที่ 1: ส่วนประกอบที่จำเป็นสำหรับการตั้งค่าปุ่มเพื่อตั้งค่ามอเตอร์สั่นสะเทือน
- ขั้นตอนที่ 2: แผนผังสำหรับการตั้งค่าปุ่มเพื่อตั้งค่ามอเตอร์สั่นสะเทือน
- ขั้นตอนที่ 3: การตั้งค่าปุ่มเพื่อตั้งค่ามอเตอร์สั่นสะเทือน
- ขั้นตอนที่ 4: รหัส
- ขั้นตอนที่ 5: วิดีโอของปุ่มเพื่อตั้งค่ามอเตอร์สั่นสะเทือน
- ขั้นตอนที่ 6: ต้นแบบของถุงมือที่ขยายได้
- ขั้นตอนที่ 7: โค้ดสำหรับปุ่มหลายปุ่มพร้อมเอาต์พุตการสั่นสะเทือนที่ไม่เหมือนใคร
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12


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

- Arduino Uno
- เขียงหั่นขนม
- มอเตอร์สั่นเหรียญสั่น
- Grove Button
- สายจัมเปอร์ตัวผู้-ตัวผู้ (x10)
- สายจัมเปอร์ 4 ขา
- ตัวขับมอเตอร์แบบสัมผัส
- ตัวเชื่อมต่อขอบชายกับหญิง
- หัวแร้ง
ขั้นตอนที่ 2: แผนผังสำหรับการตั้งค่าปุ่มเพื่อตั้งค่ามอเตอร์สั่นสะเทือน

ไดอะแกรมก่อนหน้านี้ถูกสร้างขึ้นด้วย Fritzing.org
ขั้นตอนที่ 3: การตั้งค่าปุ่มเพื่อตั้งค่ามอเตอร์สั่นสะเทือน
ขั้นตอนที่ 1: ประสานขั้วต่อขอบเข้ากับตัวขับมอเตอร์สั่นสะเทือน ประสานสายไฟของเครื่องสั่นแบบเหรียญเข้ากับขั้วของตัวขับมอเตอร์สั่น
ขั้นตอนที่ 2: เชื่อมต่อสายจัมเปอร์ 4 พินเข้ากับปุ่มเบรก
ขั้นตอนที่ 3: ใช้สายจัมเปอร์เส้นใดเส้นหนึ่งเชื่อมต่อพิน GRD บน Arduino กับแถวบนเขียงหั่นขนม
ขั้นตอนที่ 4: ใช้สายจัมเปอร์อื่นเชื่อมต่อพิน Volt 3.3 บน Arduino กับแถวอื่นบนเขียงหั่นขนม
ขั้นตอนที่ 5: ตอนนี้เราจะเชื่อมต่อไดรเวอร์มอเตอร์สั่นสะเทือนกับ Arduino ใช้สายจัมเปอร์ที่สามเชื่อมต่อพิน GND บนไดรเวอร์มอเตอร์สั่นสะเทือนกับแถวเดียวกันบนเขียงหั่นขนมเป็นพิน GRD จาก Arduino ทำเช่นเดียวกันกับสายอื่นสำหรับ VCC (โวลต์) บนตัวขับมอเตอร์แบบสั่น จนถึงแถวโวลต์ของเขียงหั่นขนม
ขั้นตอนที่ 6: ใช้สายอื่นเพื่อเชื่อมต่อพิน SDA บนไดรเวอร์มอเตอร์สั่นสะเทือนกับพิน SDA บน Arduino โดยตรง ทำเช่นเดียวกันกับหมุด SCL ของทั้งสองอีกครั้ง อีกทางหนึ่ง ให้ปฏิบัติตามแนวทางเดียวกันกับขั้นตอนที่ 5 และเชื่อมต่อหมุด SDA และ SCL บน Arduino กับแถวของตัวเองบนเขียงหั่นขนมโดยใช้สายจัมเปอร์ จากนั้นเรียกใช้สายไฟจากแถวที่เชื่อมต่อพิน SDA บนเขียงหั่นขนมกับพิน SDA บนไดรเวอร์มอเตอร์ ทำเช่นเดียวกันสำหรับแถว SCL บนเขียงหั่นขนมกับพิน SCL บนไดรเวอร์มอเตอร์
ขั้นตอนที่ 7: ตอนนี้เราจะเสร็จสิ้นโดยเชื่อมต่อปุ่มกับไดรเวอร์มอเตอร์สั่นสะเทือนและ Arduino ใช้สายจัมเปอร์อื่นเพื่อเชื่อมต่อ GRD จากสายจัมเปอร์ 4 พินที่เชื่อมต่อกับปุ่มฝ่าวงล้อมไปยังแถวเดียวกันกับสาย GRD อื่นๆ บนเขียงหั่นขนม ทำเช่นเดียวกันกับโวลต์อีกครั้ง (VCC)
ขั้นตอนที่ 8: เชื่อมต่อการเขียนขั้นสุดท้ายจาก SIG บนปุ่มลัดไปยังพินบน Arduino (เราใช้พิน 7) เพื่อจุดประสงค์ของโค้ดของเรา
ขั้นตอนที่ 9: เสียบ Arduino และอัปโหลดโค้ด และดูว่ามันใช้งานได้!
ขั้นตอนที่ 4: รหัส
ปุ่ม-การสั่นสะเทือน-Motor.c
/* โค้ดดัดแปลงจาก https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 */ |
#รวม |
#รวม |
SFE_HMD_DRV2605L HMD; //สร้างวัตถุไดรเวอร์มอเตอร์สัมผัส |
ปุ่ม int = 7; // เลือกพินอินพุต 7 สำหรับปุ่มกด |
int button_val = 0; // ตัวแปรสำหรับอ่านสถานะพิน |
voidsetup() |
{ |
/* เริ่มต้นวัตถุไดรเวอร์ Haptic Motor */ |
HMD.begin(); |
Serial.begin(9600); |
HMD. Mode(0); // โหมดอินพุตทริกเกอร์ภายใน -- ต้องใช้ฟังก์ชัน GO() เพื่อทริกเกอร์การเล่น |
HMD. MotorSelect(0x36); // มอเตอร์ ERM, เบรก 4x, เกนกลาง, เกน EMF กลับ 1.365x |
HMD. Library(2); //1-5 & 7 สำหรับมอเตอร์ ERM, 6 สำหรับมอเตอร์ LRA |
} |
โมฆะลูป () |
{ |
/* สตาร์ทมอเตอร์สั่น */ |
HMD.go(); |
button_val = digitalRead (ปุ่ม); |
ถ้า (button_val== สูง) { |
/* เอาต์พุตนี้เพื่อบันทึกการกดปุ่มนั้น ใช้สำหรับ debugginh*/ |
Serial.println("กดปุ่มแล้ว"); |
/* ไลบรารีรูปคลื่นมีคลื่นประเภทต่างๆ 0-122 แบบ */ |
HMD.รูปคลื่น(0, 69);} |
อื่น{ |
/* หากไม่ได้กดปุ่มให้หยุดมอเตอร์สั่น */ |
HMD.หยุด(); |
} |
} |
ดู rawButton-Vibration-Motor.c โฮสต์ด้วย ❤ โดย GitHub
ขั้นตอนที่ 5: วิดีโอของปุ่มเพื่อตั้งค่ามอเตอร์สั่นสะเทือน


ขั้นตอนที่ 6: ต้นแบบของถุงมือที่ขยายได้


การใช้ปุ่มกับมอเตอร์สั่นที่เป็นไปได้อย่างหนึ่งคือถุงมือที่แสดงด้านบน เราได้ปรับเปลี่ยนวัสดุที่เข้าถึงได้ราคาถูก เช่น กระบอกฉีดยา เพื่อทำ "ปลายนิ้ว" ที่ยืดออกได้ เราติดกระดุมที่ปลายกระบอกฉีดยาที่ดัดแปลงโดยใช้เวลโคร ตัดรูที่ปลายนิ้วของถุงมือแล้ววางกระบอกฉีดยาแต่ละอันเข้าไปในรู สายจัมเปอร์ 4 พินของปุ่มต่างๆ ถูกร้อยเป็นเกลียวผ่านกระบอกฉีดยา และยาวเพียงพอที่คุณจะสามารถขยายกระบอกฉีดยาออกจนสุดความยาวได้ Arduino และเขียงหั่นขนมถูกติดด้วยเวลโครที่ด้านบนของถุงมือ ซึ่งช่วยให้ต่อสายไฟของปุ่มต่างๆ ได้อย่างง่ายดายผ่านร่องเล็กๆ ที่ฐานของปลายนิ้วแต่ละข้าง ตัวขับมอเตอร์ติดอยู่ที่ด้านล่างของถุงมือที่ช่องเปิด เพื่อติดมอเตอร์แบบสั่นเข้ากับด้านในของถุงมือ เมื่อผู้สวมใส่สวมถุงมือ มอเตอร์สั่นจะอยู่ที่ด้านล่างข้อมือของผู้สวมใส่ เมื่อผู้สวมใส่สัมผัสพื้นผิวและกดปุ่มใดปุ่มหนึ่ง ระบบจะส่งเสียงสะท้อนกลับผ่านมอเตอร์
กระบวนการคิดที่อยู่เบื้องหลังถุงมือดังกล่าวคือการอนุญาตให้ผู้ที่สวมถุงมือ "สัมผัส" สิ่งของต่างๆ ที่เกินขอบเขตของปลายนิ้วปกติ และรับข้อเสนอแนะว่าพวกเขากำลังสัมผัสพื้นผิวเหล่านี้ การตอบสนองการสั่นจะเปลี่ยนไปตามนิ้วที่สัมผัสพื้นผิว ผู้ใช้จึงบอกได้ว่านิ้วใดกำลังสัมผัสพื้นผิวตามรูปแบบการสั่น
มีหลายวิธีที่จะพัฒนาต้นแบบให้ก้าวหน้ายิ่งขึ้น เช่น ทำให้นิ้วสามารถขยายออกได้มากขึ้น หรือเปลี่ยนผลป้อนกลับโดยพิจารณาจากประเภทของพื้นผิวที่สัมผัส ตามหลักการแล้ว นิ้วที่ขยายได้จะถูกสร้างขึ้นผ่านการพิมพ์ 3 มิติ เพื่อตัวเลือกการเหลื่อมที่ดีขึ้น เซ็นเซอร์อุณหภูมิสามารถใช้แทนปุ่มต่างๆ ได้ เพื่อให้สามารถตอบกลับว่าพื้นผิวที่ผู้ใช้สัมผัสนั้นร้อนเพียงใด หรือเซ็นเซอร์ความชื้นสำหรับวัตถุประสงค์ที่คล้ายคลึงกัน วิธีการรับรู้ว่าสามารถขยาย "นิ้ว" ออกไปได้ไกลแค่ไหน เพื่อให้ผู้ใช้ทราบว่าวัตถุที่พวกเขาสัมผัสอยู่ไกลแค่ไหน นี่เป็นเพียงไม่กี่ตัวเลือกที่เป็นไปได้สำหรับการสร้างต้นแบบนี้ต่อไป
ถุงมือนี้สามารถทำด้วยวัสดุทั่วไปเป็นวิธีที่ง่ายในการขยายความรู้สึกของคุณและสร้างข้อเสนอแนะที่ผู้ใช้สามารถสัมผัสและเข้าใจได้
ขั้นตอนที่ 7: โค้ดสำหรับปุ่มหลายปุ่มพร้อมเอาต์พุตการสั่นสะเทือนที่ไม่เหมือนใคร
mutliple_buttons_to_vibmotor.ino
/* โค้ดดัดแปลงจาก SparkFun https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide */ |
#รวม |
#รวม |
SFE_HMD_DRV2605L HMD; //สร้างวัตถุไดรเวอร์มอเตอร์สัมผัส |
int button_middle = 7; |
int button_index = 5; // เลือกพินอินพุตสำหรับปุ่มกด |
int button_ring = 9; |
int button_pinky = 3; |
voidsetup() |
{ |
HMD.begin(); |
Serial.begin(9600); |
HMD. Mode(0); // โหมดอินพุตทริกเกอร์ภายใน -- ต้องใช้ฟังก์ชัน GO() เพื่อทริกเกอร์การเล่น |
HMD. MotorSelect(0x36); // มอเตอร์ ERM, เบรก 4x, เกนกลาง, เกน EMF กลับ 1.365x |
HMD. Library(2); //1-5 & 7 สำหรับมอเตอร์ ERM, 6 สำหรับมอเตอร์ LRA |
} |
โมฆะลูป () |
{ |
HMD.go(); // สตาร์ทมอเตอร์สั่น |
/* ตรวจสอบว่ากดปุ่มใดและส่งสัญญาณออกรูปคลื่น 0-122 */ |
ถ้า (digitalRead (button_middle) == สูง) { |
Serial.println("กดปุ่มแล้ว"); |
HMD.รูปคลื่น(0, 112);} |
elseif(digitalRead(button_index) == สูง){ |
HMD.รูปคลื่น(0, 20); |
} |
elseif(digitalRead(button_ring) == สูง){ |
HMD.รูปคลื่น(0, 80); |
} |
elseif(digitalRead(button_pinky) == สูง){ |
HMD.รูปคลื่น(0, 100); |
} |
/* ถ้าไม่ได้กดปุ่มใดๆ ให้หยุด */ |
อื่น{ |
HMD.หยุด(); |
} |
} |
view rawmutliple_buttons_to_vibmotor.ino โฮสต์ด้วย ❤ โดย GitHub
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)

DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)

Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)

Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)

4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)

ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-