สารบัญ:

เปิด (จักรยาน) เกรด Simulator - OpenGradeSIM: 6 ขั้นตอน
เปิด (จักรยาน) เกรด Simulator - OpenGradeSIM: 6 ขั้นตอน

วีดีโอ: เปิด (จักรยาน) เกรด Simulator - OpenGradeSIM: 6 ขั้นตอน

วีดีโอ: เปิด (จักรยาน) เกรด Simulator - OpenGradeSIM: 6 ขั้นตอน
วีดีโอ: F7HH0W8K36U3VXJ 2024, พฤศจิกายน
Anonim
Image
Image
เปิด (จักรยาน) เกรด Simulator - OpenGradeSIM
เปิด (จักรยาน) เกรด Simulator - OpenGradeSIM
เปิด (จักรยาน) เกรด Simulator - OpenGradeSIM
เปิด (จักรยาน) เกรด Simulator - OpenGradeSIM

บทนำ

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

ดูน่าทึ่ง แต่น่าเศร้าที่เราไม่สามารถใช้ได้กับทุกคนเนื่องจากคุณจะต้อง 1) ผู้ฝึกสอน Wahoo อันดับต้น ๆ และ 2) เงินสด 500 ปอนด์เพื่อทำให้เป็นของคุณ

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

หน่วยการค้าจำลอง -5% ถึง +20% ดังนั้นฉันจึงอยากเข้าใกล้ แต่ใช้งบประมาณ 10%!

สิ่งนี้ได้รับการออกแบบโดยใช้ Tacx Neo ของฉัน แต่ผู้ฝึกสอนที่เผยแพร่ข้อมูลกำลังและความเร็วผ่าน ANT+ หรือ BLE ก็สามารถทำงานได้ (ฉันคิดว่า!)

เนื่องจากฐานล้อของจักรยานเสือหมอบของฉันมีขนาด 1,000 มม. ฉันจึงต้องยกโช้คขึ้น 200 มม. เพื่อจำลอง 20% (ดูรูป) ดังนั้นตัวกระตุ้นเชิงเส้น 200 มม. จะทำได้ น้ำหนักจักรยาน + คนขี่ไม่น่าจะเกิน 100 กก. และเนื่องจากน้ำหนักนี้กระจายระหว่างเพลาและส่วนใหญ่อยู่ด้านหลัง 750N จะยก 75 กก. และน่าจะโอเค มีตัวกระตุ้นที่เร็วกว่าสำหรับเงินที่มากกว่า แต่ตัวนี้ราคาประมาณ 20 ปอนด์และจัดการได้ 10 มม./วินาที แอคทูเอเตอร์ที่มีโพเทนชิโอมิเตอร์ที่สามารถใช้เป็นเซอร์โวธรรมดาก็มีราคาแพงกว่า 2 ถึง 3 เท่าเช่นกัน

เสบียง

การพิมพ์ 3 มิติ (PLA หรือ ABS เป็นต้น) ของส่วนอะแดปเตอร์เพลาผ่าน:

100 มม. 3/4 นิ้ว 10 swg ท่ออลูมิเนียมสต็อค (สำหรับโครงเพลาทะลุ)

สต็อกแท่งสแตนเลสขนาด 6 มม. 80 มม.

การพิมพ์ 3 มิติ (PLA หรือ ABS เป็นต้น) ของรองเท้าสำหรับส่วนตัวกระตุ้นเชิงเส้น:

พิมพ์ 3 มิติของเคสสำหรับสะพาน H

งานพิมพ์ 3 มิติของเคสสำหรับ Arduino (เวอร์ชั่น 1 พร้อมปุ่มกด) https://www.thingiverse.com/thing:3984911 (เวอร์ชั่น 2 ตามภาพ (https://www.thingiverse.com/thing:3995976)

อะครีลิคใส 3 มม. ตัดด้วยเลเซอร์ 32 x 38 มม. เพื่อไม่ให้เหงื่อออกทั่วอุปกรณ์อิเล็กทรอนิกส์ (นั่นไม่เหมาะ)

บล็อกเลือดไหลบางส่วน (ดัดแปลงให้ปล่อยผ้าไว้) เพื่อป้องกันไม่ให้คุณดันลูกสูบคาลิปเปอร์ออกจากดิสก์เบรก Shimano โดยไม่ตั้งใจด้วยความกระตือรือร้น

Linear Actuator 750N ระยะการเดินทาง 200 มม. เช่น Al03 Mini Linear Actuators จาก

สะพาน L298N H (ชอบ:

Arduino Nano IoT 33 www.rapidonline.com สั่งซื้อ 73-4863

2คีย์เมมเบรนแป้นพิมพ์เช่นhttps://www.aliexpress.com/item/33030999674.html

IIC I2C Logic Level Converter Bi-Directional Module 5V ถึง 3.3V สำหรับ Arduino เช่น

แหล่งจ่ายไฟ DC 12V 3A - ตัวสำหรับไฟ LED ใช้งานได้ดี!

NPE CABLE Ant+ เป็นบริดจ์ BLE

คลิปพิมพ์ 3 มิติสำหรับสะพาน CABLE

โมดูลแสดงผล OLED LCD ขนาด 1.3 นิ้วพร้อมอินเทอร์เฟซ IIC I2C 128x32 3.3V

ขั้นตอนที่ 1: คณิตศาสตร์บางส่วน

คณิตศาสตร์บางส่วน
คณิตศาสตร์บางส่วน

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

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

ก่อนอื่นฉันใช้ https://bikecalculator.com ที่น่าทึ่งเพื่อค้นหาจุดข้อมูลสำหรับการสูญเสียพลังงานต้านทานที่ความเร็วปกติ จากนั้นฉันก็เปลี่ยนโดเมนความเร็วเพื่อสร้างความสัมพันธ์เชิงเส้นและพบเส้นที่พอดีที่สุด จากสมการของเส้นตรง ตอนนี้เราสามารถคำนวณกำลัง (W) จากความต้านทาน = (0.0102*(Speedkmh^2.8))+9.428

นำกำลังจากแรงต้านจากพลังงานที่วัดได้เพื่อให้พลังของ 'การปีนป่าย'

เราทราบความเร็วของการขึ้นเป็นกิโลเมตรต่อชั่วโมง และแปลงเป็นหน่วย SI ของ m/s (หารด้วย 3.6)

พบความเอียงจาก: ความเอียง (%) =((PowerClimbing/(WeightKg*g))/Speed)*100

โดยที่ความเร่งของการตกอย่างอิสระ g = 9.8m/s/s หรือ 9.8 N/kg

ขั้นตอนที่ 2: รับข้อมูลบางส่วน

รับข้อมูล
รับข้อมูล

การคำนวณความชันต้องใช้ความเร็วและกำลัง ฉันใช้ Arduino Nano 33 IoT เพื่อเชื่อมต่อกับผู้ฝึกสอนผ่าน BLE เพื่อรับสิ่งนี้ ฉันติดขัดมากในตอนแรกเนื่องจากไลบรารี ArduinoBLE ดั้งเดิมเวอร์ชัน v.1.1.2 สำหรับโมดูลนี้ไม่ได้จัดการการรับรองความถูกต้องในรูปแบบใด ๆ ซึ่งหมายความว่าเซ็นเซอร์ BLE เชิงพาณิชย์ส่วนใหญ่ (?) จะไม่จับคู่กับมัน

วิธีแก้ไขคือใช้ NPE Cable ANT+ กับ BLE bridge (https://npe-inc.com/cableinfo/) ซึ่งช่วยให้ BLE ในตัวของผู้ฝึกสอนฟรีสำหรับแอปการฝึกอบรมในการสื่อสารและไม่ต้องมีการตรวจสอบสิทธิ์บน BLE ด้านข้าง.

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

ถ้า (powerCharacteristic.valueUpdated ()) {

// กำหนดอาร์เรย์สำหรับค่า uint8_t holdpowervalues[6] = {0, 0, 0, 0, 0, 0}; // อ่านค่าลงในอาร์เรย์ powerCharacteristic.readValue(holdpowervalues, 6); // กำลังส่งกลับเป็นวัตต์ในตำแหน่ง 2 และ 3 (loc 0 และ 1 คือแฟล็ก 8 บิต) ไบต์ rawpowerValue2 = holdpowervalues[2]; // ให้พลังงานอย่างน้อย sig byte ใน HEX byte rawpowerValue3 = holdpowervalues[3]; // เพิ่มพลังให้กับซิกไบต์ส่วนใหญ่ใน HEX แบบยาว rawpowerTotal = (rawpowerValue2 + (rawpowerValue3 * 256)); // ใช้ตัวกรองค่าเฉลี่ยเคลื่อนที่เพื่อให้ powerTrainer 'กำลัง 3' = movingAverageFilter_power.process(rawpowerTotal);

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

ลักษณะเฉพาะจะส่งกลับอาร์เรย์ 16 ไบต์ที่ไม่มีความเร็วหรือจังหวะ แต่คุณจะได้รับการหมุนวงล้อและรอบข้อเหวี่ยง (ผลรวม) และเวลาตั้งแต่ข้อมูลเหตุการณ์ล่าสุดใน 1024 วินาที คณิตศาสตร์มากขึ้นแล้ว โอ้และไบต์ไม่ได้แสดงอยู่เสมอดังนั้นจึงมีแฟล็กไบต์อยู่ที่จุดเริ่มต้น โอ้ และไบต์เป็น endian HEX เพียงเล็กน้อย ดังนั้นคุณต้องอ่านย้อนหลังคูณไบต์ที่สองด้วย 256 ที่สามด้วย 65536 เป็นต้น จากนั้นจึงรวมเข้าด้วยกัน ในการหาความเร็ว คุณต้องใช้เส้นรอบวงล้อจักรยานมาตรฐานเพื่อทราบระยะทาง….

ถ้า (speedCharacteristic.valueUpdated ()) {

// ค่านี้ต้องการอาร์เรย์ 16 ไบต์ uint8_t holdvalues [16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // แต่ฉันจะอ่านเฉพาะ 7 speedCharacteristic.readValue(holdvalues, 7); ไบต์ rawValue0 = ค่าที่เก็บไว้[0]; // ค่าสถานะไบนารี 8 บิต int ไบต์ rawValue1 = holdvalues[1]; // ปฏิวัติไบต์ที่มีนัยสำคัญน้อยที่สุดใน HEX ไบต์ rawValue2 = holdvalues[2]; // ปฏิวัติไบต์ที่สำคัญที่สุดถัดไปใน HEX ไบต์ rawValue3 = holdvalues[3]; // ปฏิวัติไบต์ที่สำคัญที่สุดถัดไปใน HEX ไบต์ rawValue4 = holdvalues[4]; // ปฏิวัติไบต์ที่สำคัญที่สุดใน HEX ไบต์ rawValue5 = holdvalues[5]; // เวลาตั้งแต่เหตุการณ์ล้อสุดท้าย อย่างน้อย sig byte byte rawValue6 = holdvalues[6]; // เวลาตั้งแต่เหตุการณ์ล้อสุดท้าย sig ไบต์ส่วนใหญ่ if (firstData) { // รับการหมุนวงล้อสะสมเป็น endian hex เล็กน้อยใน loc 2, 3 และ 4 (ออกเตตที่มีนัยสำคัญน้อยที่สุดก่อน) WheelRevs1 = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); // รับเวลาตั้งแต่เหตุการณ์ล้อสุดท้ายใน 1024 วินาที Time_1 = (rawValue5 + (rawValue6 * 256)); firstData = เท็จ; } else { // รับข้อมูลชุดที่สองแบบยาว WheelRevsTemp = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); Long TimeTemp = (rawValue5 + (rawValue6 * 256)); if (WheelRevsTemp > WheelRevs1) { // ตรวจสอบให้แน่ใจว่าจักรยานเคลื่อนที่ WheelRevs2 = WheelRevsTemp; Time_2 = TimeTemp; firstData = จริง;}

// ค้นหาความแตกต่างของระยะทางเป็นซม. และแปลงเป็นระยะทางลอยตัวของกม. = ((WheelRevs2 - WheelRevs1) * wheelCircCM);

float kmTravelled = ระยะทางเดินทาง / 1000000;

// ค้นหาเวลาใน 1024 วินาทีและแปลงเป็นชั่วโมง

float timeDifference = (Time_2 - Time_1); float timeSecs = timeDifference / 1024; float timeHrs = timeSecs / 3600;

// ค้นหาความเร็ว kmh

speedKMH = (km Travelled / timeHrs);

ร่าง Arduino โฮสต์ที่ GitHub (https://github.com/mockendon/opengradesim)

ขั้นตอนที่ 3: ฮาร์ดแวร์ 1 ตัวกระตุ้นเชิงเส้น

ฮาร์ดแวร์ 1 ตัวกระตุ้นเชิงเส้น
ฮาร์ดแวร์ 1 ตัวกระตุ้นเชิงเส้น
ฮาร์ดแวร์ 1 ตัวกระตุ้นเชิงเส้น
ฮาร์ดแวร์ 1 ตัวกระตุ้นเชิงเส้น
ฮาร์ดแวร์ 1 ตัวกระตุ้นเชิงเส้น
ฮาร์ดแวร์ 1 ตัวกระตุ้นเชิงเส้น

เพลาทะลุบนจักรยานเสือหมอบดิสก์เบรกของฉันระบุแกน 19.2 มม. เพื่อล้างเพลาผ่าน 12 มม. โดยให้ 100 มม. ระหว่างตะเกียบ

หลอดอลูมิเนียมขนาด 3/4 นิ้ว 10swg ขนาด 3/4 นิ้วมีขนาดพอดีและชิ้นส่วนที่ดีที่เรียกว่า Dave บน ebay (https://www.ebay.co.uk/str/aluminiumonline) จัดหามาและตัดให้ยาวสำหรับฉันเพียงไม่กี่ปอนด์

แอคทูเอเตอร์มีแท่งขนาด 20 มม. ที่มีรูขนาด 6 มม. ดังนั้นชิ้นส่วนที่พิมพ์ 3 มิติจึงเชื่อมโยงท่ออลูมิเนียมกับแท่งเหล็กขนาด 6 มม. และเนื่องจากแรงอัด 90% PLA / ABS บางส่วนจึงขึ้นอยู่กับความท้าทาย

หากคุณเรียกใช้การตั้งค่า Quick Release มาตรฐาน บางสิ่งเช่นนี้ (https://www.amazon.co.uk/Sharplace-Quick-Release-Conversion-Adapter/dp/B079DCY344) จะไม่ต้องออกแบบส่วนประกอบนี้ใหม่

รองเท้าบูทได้รับการออกแบบให้พอดีกับบล็อกผู้เลี้ยงที่มาพร้อมกับผู้ฝึกสอน Tacx ของฉัน แต่อาจจะพอดีกับผู้ระดมที่คล้ายกันจำนวนมาก หรือคุณสามารถแก้ไขไฟล์ TinkerCad เพื่อให้เหมาะกับความต้องการของคุณ

ขั้นตอนที่ 4: ฮาร์ดแวร์ 2 - H-Bridge

ฮาร์ดแวร์ 2 - H-Bridge
ฮาร์ดแวร์ 2 - H-Bridge
ฮาร์ดแวร์ 2 - H-Bridge
ฮาร์ดแวร์ 2 - H-Bridge
ฮาร์ดแวร์ 2 - H-Bridge
ฮาร์ดแวร์ 2 - H-Bridge

บอร์ดบริดจ์ L298N H ที่ใช้กันทั่วไปทางออนไลน์มีตัวควบคุม 5V ในตัวซึ่งเหมาะสำหรับการจ่ายไฟให้กับ Arduino จากแหล่งจ่ายไฟ 12V ที่จำเป็นสำหรับตัวกระตุ้นเชิงเส้น น่าเสียดายที่บอร์ด Arduino Nano IoT นั้นส่งสัญญาณ 3.3V ดังนั้นจึงจำเป็นต้องมีตัวแปลงระดับลอจิคัล (หรือออปโตไอโซเลเตอร์เนื่องจากสัญญาณเป็นแบบทิศทางเดียวเท่านั้น)

ตัวเคสได้รับการออกแบบให้ยอมรับขั้วต่อสายไฟที่ใช้กันทั่วไปในแอพพลิเคชั่นไฟ LED ฉันผ่าสายต่อ USB เพื่อให้สามารถเชื่อมต่อ / ตัดการเชื่อมต่อชุดหัว Arduino ได้อย่างง่ายดาย และในขณะที่ฉันแน่ใจว่าจะใช้สายไฟสำหรับจ่ายไฟและสายข้อมูลสำหรับการส่งสัญญาณ 3.3V ฉันจะแนะนำสิ่งนี้อย่างตรงไปตรงมา เกลียดใครบางคนที่จะทอดพอร์ต USB หรืออุปกรณ์ต่อพ่วงด้วยการเสียบปลั๊กโดยไม่ได้ตั้งใจ!

ขั้นตอนที่ 5: ฮาร์ดแวร์ 3 อุปกรณ์ควบคุมอิเล็กทรอนิกส์ (Arduino)

ฮาร์ดแวร์ 3 อุปกรณ์ควบคุมอิเล็กทรอนิกส์ (Arduino)
ฮาร์ดแวร์ 3 อุปกรณ์ควบคุมอิเล็กทรอนิกส์ (Arduino)
ฮาร์ดแวร์ 3 อุปกรณ์ควบคุมอิเล็กทรอนิกส์ (Arduino)
ฮาร์ดแวร์ 3 อุปกรณ์ควบคุมอิเล็กทรอนิกส์ (Arduino)
ฮาร์ดแวร์ 3 อุปกรณ์ควบคุมอิเล็กทรอนิกส์ (Arduino)
ฮาร์ดแวร์ 3 อุปกรณ์ควบคุมอิเล็กทรอนิกส์ (Arduino)

เคสสำหรับ Arduino OLED และตัวแปลงระดับลอจิกมีตัวยึดแบบมาตรฐาน 1/2 ของ Garmin ที่ด้านหลังเพื่อให้สามารถติดตั้งกับจักรยานได้อย่างปลอดภัย การติดตั้ง 'ด้านหน้า' จะช่วยให้หน่วยเอียงขึ้นหรือลงเป็น 'ศูนย์' ตำแหน่งมาตรความเร่งหรือบรรทัดของรหัสเพียงเพื่อให้เป็นศูนย์อัตโนมัติเมื่อเริ่มต้นจะง่ายต่อการเพิ่ม

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

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

ไฟล์ STL ของคดีนี้มีให้ใน Thingiverse อีกครั้ง (ดูลิงก์ในส่วนอุปกรณ์สิ้นเปลือง)

ร่าง Arduino โฮสต์ที่ GitHub (https://github.com/mockendon/opengradesim)

คุณสามารถพิมพ์คลิปเล็กๆ สำหรับ CABLE bridge ของคุณได้จากที่นี่

ขั้นตอนที่ 6: 'Drop Outs ด้านหลัง'

'Drop Outs ด้านหลัง'
'Drop Outs ด้านหลัง'
'Drop Outs ด้านหลัง'
'Drop Outs ด้านหลัง'
'Drop Outs ด้านหลัง'
'Drop Outs ด้านหลัง'

หลายคนยกประเด็นเรื่องล้อหลังหลุดออกมาขณะรถเคลื่อนที่ ผู้ฝึกสอนบางคนมีเพลาที่เคลื่อนที่ได้ (เช่น Kickr) แต่หลายคนไม่มี

ขณะนี้ทางออกที่ดีที่สุดสำหรับฉันคือการติดตั้งตลับลูกปืนร่องลึก 61800-2RS มาตรฐานบางตัว (ประมาณ 2 ปอนด์ต่อตัว) บนอะแดปเตอร์แบบปลดเร็วแล้วติดตั้งผ่านเพลาหล่นบนสิ่งเหล่านี้ (ดูรูป) ด้วยตัวเสียบ QR ขนาดใหญ่

ตลับลูกปืนต้องมีแผ่นรองชิมแบบบาง เช่น M12 16 มม. 0.3 มม. ระหว่างอะแดปเตอร์กับตลับลูกปืน

โดยพอดีพอดีและหมุนไปกับจักรยานยนต์และไม้เสียบโดยไม่ขึ้นกับเทรนเนอร์

ในขณะนี้ ค่าออฟเซ็ตด้านไดรฟ์จะเปลี่ยนไปสองสามมม. ดังนั้นคุณจะต้องทำดัชนีใหม่

ฉันกำลังออกแบบชิ้นส่วนแบบกำหนดเอง (ดูแผน pdf) ให้เป็นเครื่องจักร (สำหรับเครื่องกลึงของพี่เขยในอนาคตของฉัน เมื่อเขามีเวลาช่วยเหลือหนึ่งชั่วโมง!) เหล่านี้ยังไม่ได้ทดสอบ!!! แต่การเจียร 1 มม. จากพื้นผิวด้านในของอะแดปเตอร์ QR ด้านสต็อกของไดรฟ์นั้นแก้ไขได้อย่างรวดเร็วโดยไม่ต้องใช้เครื่องมือพิเศษ;)

แนะนำ: