สารบัญ:

กล่องปุ่ม Sim Racing: 8 ขั้นตอน
กล่องปุ่ม Sim Racing: 8 ขั้นตอน

วีดีโอ: กล่องปุ่ม Sim Racing: 8 ขั้นตอน

วีดีโอ: กล่องปุ่ม Sim Racing: 8 ขั้นตอน
วีดีโอ: ทุบ 💥 บุหรี่ไฟฟ้า 🚬 ต้องทุบแบบนี้ 🎉 ครับท่าน 🤣#บุหรี่ไฟฟ้า 2024, กรกฎาคม
Anonim
กล่องปุ่ม Sim Racing
กล่องปุ่ม Sim Racing

ยินดีต้อนรับผู้เสพติดซิมเรซซิ่ง!

คุณไม่มีปุ่มลัดเพื่อทำแผนที่การควบคุมรถทั้งหมดของคุณหรือไม่? คุณอาจต้องการกล่องปุ่ม! ในคำแนะนำนี้เราจะสร้างใหม่ตั้งแต่ต้น กล่องปุ่มจะมีสถานะปุ่มที่พร้อมใช้งาน 32(!) ไม่จำเป็นต้องใช้ซอฟต์แวร์เพิ่มเติมเพื่อใช้กล่องปุ่มนี้ คุณจะได้เรียนรู้วิธีตั้งค่าเมทริกซ์ปุ่มและเขียน (หรือคัดลอก) โค้ดเพื่ออัปโหลดไปยัง Arduino ของคุณ

สิ่งสำคัญคือต้องรู้ว่ากล่องปุ่มไม่รองรับปุ่มที่กดพร้อมกันจำนวนมาก

มาเริ่มกันเลย!

ขั้นตอนที่ 1: การเตรียมการ

การเตรียมการ
การเตรียมการ

คุณจะต้องมีเครื่องมือ ปุ่ม และรายการอื่นๆ เพื่อสร้างกล่องปุ่ม รู้สึกอิสระที่จะสร้างกล่องปุ่มตามที่คุณต้องการ

อิเล็กทรอนิกส์:

  • ปุ่ม
  • สลับ
  • ตัวเข้ารหัสแบบหมุน
  • Arduino Pro Micro
  • สาย USB ขนาดเล็กเป็น USB
  • สายไฟ

เครื่องมือ:

  • เจาะ
  • ประสาน
  • คาลิปเปอร์
  • ไขควง
  • เครื่องตัด
  • ประแจ

ซอฟต์แวร์:

  • Arduino IDE
  • Photoshop/Paint (ไม่จำเป็น สามารถวาดได้ด้วยมือ)

อื่น:

  • สิ่งที่ส่งมาด้วย (กล่อง สามารถซื้อหรือพิมพ์ 3D แบบกำหนดเองได้)
  • แรปคาร์บอนไวนิล (อุปกรณ์เสริม)
  • ลูกบิดเข้ารหัสแบบโรตารี่
  • ฝาครอบสวิตช์ (อุปกรณ์เสริม)
  • เครื่องพิมพ์ฉลาก (อุปกรณ์เสริม)
  • ปลอกยาง

เมื่อคุณมีรายการทั้งหมด (หรือเพียงพอที่จะเริ่มต้น) เราสามารถเริ่มออกแบบเลย์เอาต์ของกล่องปุ่มได้

ขั้นตอนที่ 2: ออกแบบเค้าโครงกล่อง

เครื่องมือที่จำเป็นสำหรับขั้นตอนนี้:

Photoshop/Paint (ไม่จำเป็น สามารถวาดได้ด้วยมือ)

การออกแบบกล่องกระดุมอาจแตกต่างกันไปสำหรับทุกคน อย่างไรก็ตาม สำหรับคำแนะนำนี้ เราจะใช้เลย์เอาต์ที่ประกอบด้วย:

  • สวิตช์สลับสามทาง 4x
  • สวิตช์สลับทางเดียว 2x
  • 10x ปุ่มกดง่าย ๆ
  • เครื่องเข้ารหัสแบบโรตารี่ 4x พร้อมปุ่มง่าย ๆ

สวิตช์สลับสามทาง:

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

สวิตช์สลับทางเดียว:

สิ่งเหล่านี้ถือได้ว่าเป็นปุ่มธรรมดา (ปิด/เปิด) สิ่งเหล่านี้อาจเป็นชั่วขณะหรือสลับ อีกครั้งขึ้นอยู่กับความชอบส่วนบุคคลที่จะเลือก สิ่งเหล่านี้ทำให้เรามีปุ่มที่ใช้ได้สอง (2) ปุ่ม

ปุ่มกดง่าย ๆ:

สามารถใช้ปุ่มเหล่านี้ได้โดยเพียงแค่กด (ปิด/เปิด) สิ่งเหล่านี้จะให้ปุ่มสิบ (10) ปุ่มแก่เรา

เครื่องเข้ารหัสแบบโรตารี่พร้อมปุ่มกดง่ายๆ:

เครื่องเข้ารหัสแบบโรตารี่ส่วนใหญ่ (ถ้าไม่ใช่ทั้งหมด) สามารถหมุนไปทั้งสองทิศทางได้อย่างไม่จำกัด ทุกครั้งที่คุณหมุนพวกมันไปในทิศทางใด มันจะถูกใช้เป็นการกดปุ่ม ตัวเข้ารหัสแบบหมุนเหล่านี้สามารถกดได้โดยให้ปุ่มอื่น ตัวเข้ารหัสแบบหมุนมีปุ่มสิบสองปุ่ม (12 = 4x3; หมุนซ้าย/หมุนขวา/กด)

32 ปุ่ม:

เมื่อรวมทั้งหมดเข้าด้วยกันทำให้เรากดปุ่ม 32 (8+2+10+12)!

พอใจกับเค้าโครงหรือไม่ ได้เวลาเริ่มสร้างแล้ว!

ขั้นตอนที่ 3: วัดและเจาะ

วัดและเจาะ
วัดและเจาะ
วัดและเจาะ
วัดและเจาะ

เครื่องมือที่จำเป็นสำหรับขั้นตอนนี้:

  • คาลิปเปอร์
  • เจาะ
  • อิเล็กทรอนิกส์ (ปุ่ม สวิตช์ ฯลฯ)

วัดปุ่มทั้งหมดที่คุณต้องการเพิ่มลงในกล่องปุ่มของคุณ หากคุณมีปัญหาในการค้นหาขนาดของอุปกรณ์อิเล็กทรอนิกส์ ให้ใช้คาลิปเปอร์ (ดิจิตอล) เพื่อหาขนาดเส้นผ่านศูนย์กลาง

ทำเครื่องหมายจุดศูนย์กลางของอุปกรณ์อิเล็กทรอนิกส์ที่ด้านหน้าของตัวเครื่องและเจาะรูด้วยขนาดที่ถูกต้อง กำลังมองหาที่จะทำให้ตู้ดูสวยงามขึ้นอีกเล็กน้อยหรือไม่? รอด้วยการติดตั้งปุ่ม!

เมื่อคุณเจาะรูเสร็จแล้ว เราก็สามารถทำให้มันดูเหมือนกล่องกระดุมจริง ๆ ได้!

ขั้นตอนที่ 4: ติดตั้งปุ่ม โรตารี่ และสวิตช์

ติดตั้งปุ่ม โรตารี่ และสวิตช์
ติดตั้งปุ่ม โรตารี่ และสวิตช์
ติดตั้งปุ่ม โรตารี่ และสวิตช์
ติดตั้งปุ่ม โรตารี่ และสวิตช์

เครื่องมือที่จำเป็นสำหรับขั้นตอนนี้:

  • อิเล็กทรอนิกส์ (ปุ่ม สวิตช์ ฯลฯ)
  • ประแจ
  • แรปคาร์บอนไวนิล (อุปกรณ์เสริม)
  • เครื่องตัด (ไม่จำเป็น)

อุปกรณ์อิเล็กทรอนิกส์ทั้งหมดของคุณควรมาพร้อมกับน็อตเพื่อขันให้เข้าที่ ถ้าไม่; วัดพวกเขาและซื้อน็อตขนาดที่ถูกต้อง

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

เมื่อสวมห่อ (หรือไม่) คุณสามารถใส่อุปกรณ์อิเล็กทรอนิกส์เพื่อสร้างกล่องปุ่มด้านหน้าของคุณ ตอนนี้คุณควรมีบางอย่างที่ดูเหมือนมีอยู่แล้ว! น่าเสียดายที่มันยังไม่ได้ผล…

ขั้นตอนที่ 5: ออกแบบเค้าโครงสายไฟ

ออกแบบเค้าโครงสายไฟ
ออกแบบเค้าโครงสายไฟ

เครื่องมือที่จำเป็นสำหรับขั้นตอนนี้:

Photoshop/Paint (ไม่จำเป็น สามารถวาดได้ด้วยมือ)

การสร้างเมทริกซ์:

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

ออกแบบเมทริกซ์ของคุณเองหรือใช้เลย์เอาต์จากคำแนะนำนี้ ในเมทริกซ์เราจะใช้ห้ากลุ่ม กลุ่มเชื่อมต่อกับพินต่อไปนี้บน Arduino:

  • 15: เครื่องเข้ารหัสแบบโรตารี่สี่ตัว
  • A0: ปุ่มกดห้าปุ่ม
  • A1: สวิตช์สามทางสองทางและปุ่มกดหนึ่งปุ่ม
  • A2: สวิตช์สามทางสองทางและปุ่มกดหนึ่งปุ่ม
  • A3: ปุ่มกดห้าปุ่ม

ขั้นตอนที่ 6: การบัดกรี

บัดกรี
บัดกรี
บัดกรี
บัดกรี

เครื่องมือที่จำเป็นสำหรับขั้นตอนนี้:

  • หัวแร้ง
  • ประสาน
  • อิเล็กทรอนิกส์ (ติดตั้งบนตัวเครื่องของคุณ)
  • Arduino Pro Micro
  • สายไฟ

ไม่จำเป็น:

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

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

เคล็ดลับบางประการ:

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

ขั้นตอนที่ 7: การเขียนโค้ด

เครื่องมือที่จำเป็นสำหรับขั้นตอนนี้:

  • Arduino IDE
  • ห้องสมุดจอยสติ๊ก
  • Keypad.h (Arduino IDE > Sketch > Include Library > Manage Libraries… > Search for Keypad และติดตั้งที่สร้างโดย Mark Stanley และ Alexander Brevig)

#รวม #รวม

#define ENABLE_PULLUPS

#กำหนดหมายเลข 4 #กำหนดปุ่มตัวเลข 24 #กำหนดหมายเลข 5 #กำหนดหมายเลข 5

ปุ่มไบต์ [NUMROWS][NUMCOLS] = {

{0, 1, 2, 3, 4}, {5, 6, 7, 8, 9}, {10, 11, 12, 13, 14}, {15, 16, 17, 18, 19}, {20, 21, 22, 23}, };

โครงสร้าง rotariesdef {

ไบต์พิน1; ไบต์พิน2; int ccwchar; int cwchar; สถานะถ่านที่ไม่ได้ลงนามที่ระเหยได้; };

rotariesdef rotaries[NUMROTARIES] {

{0, 1, 24, 25, 0}, {2, 3, 26, 27, 0}, {4, 5, 28, 29, 0}, {6, 7, 30, 31, 0}, };

#define DIR_CCW 0x10

#define DIR_CW 0x20 #define R_START 0x0

#ifdef HALF_STEP

#define R_CCW_BEGIN 0x1 #define R_CW_BEGIN 0x2 #define R_START_M 0x3 #define R_CW_BEGIN_M 0x4 #define R_CCW_BEGIN_M 0x5 const unsigned char ttable[6][4] = { // R_START (00) {R_START_M, R_CW, R_CW, R_CW R_CCW_BEGIN {R_START_M | DIR_CCW, R_START, R_CCW_BEGIN, R_START}, // R_CW_BEGIN {R_START_M | DIR_CW, R_CW_BEGIN, R_START, R_START}, // R_START_M (11) {R_START_M, R_CCW_BEGIN_M, R_CW_BEGIN_M, R_START}, // R_CW_BEGIN_M {R_START_M, R_START_M, R_CW_BEGIN_M, R_START | DIR_CW}, // R_CCW_BEGIN_M {R_START_M, R_CCW_BEGIN_M, R_START_M, R_START | DIR_CCW}, }; #else #define R_CW_FINAL 0x1 #define R_CW_BEGIN 0x2 #define R_CW_NEXT 0x3 #define R_CCW_BEGIN 0x4 #define R_CCW_FINAL 0x5 #define R_CCW_NEXT 0x6

const char ttable ที่ไม่ได้ลงชื่อ[7][4] = {

// R_START {R_START, R_CW_BEGIN, R_CCW_BEGIN, R_START}, // R_CW_FINAL {R_CW_NEXT, R_START, R_CW_FINAL, R_START | DIR_CW}, // R_CW_BEGIN {R_CW_NEXT, R_CW_BEGIN, R_START, R_START}, // R_CW_NEXT {R_CW_NEXT, R_CW_BEGIN, R_CW_FINAL, R_START}, // R_CCW_BEGIN {R_CCW_FINAL_START_START, R_CC_REXT, R_CCW_BEGIN {R_CCW_FINAL_START_RC, R_CC_REXT, R_CC R_START, R_START | DIR_CCW}, // R_CCW_NEXT {R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START}, }; #endif

ไบต์ rowPins[NUMROWS] = {21, 20, 19, 18, 15};

ไบต์ colPins [NUMCOLS] = {14, 16, 10, 9, 8};

ปุ่มกด buttbx = ปุ่มกด (makeKeymap (ปุ่ม), rowPins, colPins, NUMROWS, NUMCOLS);

จอยสติ๊ก_ จอยสติ๊ก (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK, 32, 0, เท็จ, เท็จ, เท็จ, เท็จ, เท็จ, เท็จ, เท็จ, เท็จ, เท็จ, เท็จ, เท็จ);

การตั้งค่าเป็นโมฆะ () {

จอยสติ๊ก.begin(); rotary_init();}

วงเป็นโมฆะ () {

CheckAllEncoder();

CheckAllButtons();

}

เป็นโมฆะ CheckAllButtons (เป็นโมฆะ) {

if (buttbx.getKeys()) { สำหรับ (int i=0; i

เป็นโมฆะ rotary_init () {

สำหรับ (int i=0;i

ถ่านที่ไม่ได้ลงชื่อrotary_process (int _i) {

pinstate ถ่านที่ไม่ได้ลงชื่อ = (digitalRead(rotaries[_i].pin2) << 1) | digitalRead(โรตารี่[_i].pin1); rotaries[_i].state = ttable[โรตารี่[_i].state & 0xf][pinstate]; ผลตอบแทน (rotaries[_i].state & 0x30); }

เป็นโมฆะ CheckAllEncoders (เป็นโมฆะ) { สำหรับ (int i = 0; i < NUMROTARIES; i ++) {

ผลลัพธ์ถ่านที่ไม่ได้ลงนาม = rotary_process(i); ถ้า (ผลลัพธ์ == DIR_CCW) { Joystick.setButton (rotaries .ccwchar, 1); ล่าช้า (50); จอยสติ๊ก.setButton(โรตารี่.ccwchar, 0); }; ถ้า (ผลลัพธ์ == DIR_CW) { Joystick.setButton (rotaries .cwchar, 1); ล่าช้า (50); จอยสติ๊ก.setButton(rotaries.cwchar, 0); }; } }

  1. เชื่อมต่อ Arduino Pro Micro เข้ากับคอมพิวเตอร์โดยเสียบสาย USB
  2. ในการอัปโหลดโค้ด ให้เลือกประเภท Arduino โดยไปที่ Tools > Board:… > Arduino/Genuino Micro
  3. ในการเลือกพอร์ต USB ที่ถูกต้อง ให้ไปที่ Tools > Port: > COM x (Arduino/Genuino Micro)
  4. ตรวจสอบร่างโดยคลิกที่ ✓ ที่มุมซ้ายบน (ใต้ไฟล์)
  5. กด → ข้างๆ เพื่ออัพโหลดไปยัง Arduino

ขั้นตอนที่ 8: เพิ่มลงในแท่นขุดเจาะของคุณ

เพิ่มไปยังแท่นขุดเจาะของคุณ
เพิ่มไปยังแท่นขุดเจาะของคุณ

ยินดีด้วย! คุณมาไกลมากแล้ว ตอนนี้ได้เวลาแข่งแล้ว!

แนะนำ: