สารบัญ:
- ขั้นตอนที่ 1: การเตรียมการ
- ขั้นตอนที่ 2: ออกแบบเค้าโครงกล่อง
- ขั้นตอนที่ 3: วัดและเจาะ
- ขั้นตอนที่ 4: ติดตั้งปุ่ม โรตารี่ และสวิตช์
- ขั้นตอนที่ 5: ออกแบบเค้าโครงสายไฟ
- ขั้นตอนที่ 6: การบัดกรี
- ขั้นตอนที่ 7: การเขียนโค้ด
- ขั้นตอนที่ 8: เพิ่มลงในแท่นขุดเจาะของคุณ
วีดีโอ: กล่องปุ่ม Sim Racing: 8 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ยินดีต้อนรับผู้เสพติดซิมเรซซิ่ง!
คุณไม่มีปุ่มลัดเพื่อทำแผนที่การควบคุมรถทั้งหมดของคุณหรือไม่? คุณอาจต้องการกล่องปุ่ม! ในคำแนะนำนี้เราจะสร้างใหม่ตั้งแต่ต้น กล่องปุ่มจะมีสถานะปุ่มที่พร้อมใช้งาน 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); }; } }
- เชื่อมต่อ Arduino Pro Micro เข้ากับคอมพิวเตอร์โดยเสียบสาย USB
- ในการอัปโหลดโค้ด ให้เลือกประเภท Arduino โดยไปที่ Tools > Board:… > Arduino/Genuino Micro
- ในการเลือกพอร์ต USB ที่ถูกต้อง ให้ไปที่ Tools > Port: > COM x (Arduino/Genuino Micro)
- ตรวจสอบร่างโดยคลิกที่ ✓ ที่มุมซ้ายบน (ใต้ไฟล์)
- กด → ข้างๆ เพื่ออัพโหลดไปยัง Arduino
ขั้นตอนที่ 8: เพิ่มลงในแท่นขุดเจาะของคุณ
ยินดีด้วย! คุณมาไกลมากแล้ว ตอนนี้ได้เวลาแข่งแล้ว!
แนะนำ:
2d Rocket Landing Sim: 3 ขั้นตอน
2d Rocket Landing Sim: คุณจะต้องสร้างฉากหลัง วาดจรวด และตัวบ่งชี้เพื่อเริ่มต้น (แน่นอนว่าคุณต้องมีการเชื่อมต่ออินเทอร์เน็ตเพื่อใช้ scratch) หากคุณต้องการเล่นเกมจำลอง คลิกที่นี่ หรือ ไปที่ https://scratch.mit.edu/projects/432509470
DIY Flight Sim Switch Panel: 7 ขั้นตอน (พร้อมรูปภาพ)
แผงสวิตช์ซิมเครื่องบิน DIY: หลังจากใช้เวลาหลายปีในชุมชนซิมบินและมีส่วนร่วมในเครื่องบินที่ซับซ้อนมากขึ้นเรื่อย ๆ ฉันพบว่าตัวเองโหยหาความสามารถในการจับสวิตช์ทางกายภาพแทนที่จะพยายามบินด้วยมือขวาในขณะที่ใช้ NS
DIY RACING GAME SIMULATOR BUILD ตอนที่ 1: 6 ขั้นตอน
DIY RACING GAME SIMULATOR BUILD ตอนที่ 1: สวัสดีทุกคน ยินดีต้อนรับ วันนี้ฉันจะแสดงให้คุณเห็น วิธีสร้าง "Racing Game Simulator" ด้วยความช่วยเหลือของ Arduino UNO ช่อง YouTube " ตรวจสอบให้แน่ใจว่าคุณสมัครรับข้อมูลจากช่องของฉัน A Builds(คลิกที่นี่)" นี่คือบล็อกของบิวด์ ดังนั้น เล
DIY Sim Racing Display Arduino: 3 ขั้นตอน
DIY Sim Racing Display Arduino: นี่คือวิธีสร้างจอแสดงผล Sim Racing USB ที่ง่ายและราคาถูกด้วย Arduino UNO และ 3,5" จอแสดงผล TFT มันมี API สำหรับ Assetto Corsa ที่นำข้อมูลจาก Shared Memory ของเกมที่โปรแกรมใน C # ใน Visual Studio จากนั้นส่ง
กล่องปุ่ม Sim Racing: 7 ขั้นตอน (พร้อมรูปภาพ)
กล่องปุ่ม Sim Racing: กล่องปุ่มเป็นอุปกรณ์ที่ใช้ใน Sim Racing ที่ให้คุณกำหนดปุ่ม สวิตช์ และปุ่มต่างๆ ให้กับการควบคุมรถต่างๆ การกำหนดปุ่มทั่วไปเช่นปุ่มเริ่มต้น, PTT, หลุมคำขอ ฯลฯ สวิตช์สลับใช้งานได้ดีกับที่ปัดน้ำฝน, headl