กลับไปหน้ารวมไฟล์
usbcycle-ride-through-your-virtual-world-943cfb.md

USBcycle ... มันคืออะไรวะ?

โลโก้โปรเจค (ใส่ไปเถอะ ไรจะขนาดนั้น)

USBcycle คือการแฮกจักรยานให้กลายเป็นเกมคอนโทรลเลอร์ USB ไอเดียคือให้เราปั่นจักรยานไปพร้อมกับเล่นเกมเปิดโลกสองแบบ:

(A) เกมที่ใช้จอยสติ๊กหลายแกน พวกที่ควบคุมพวงมาลัย คันเร่ง และเบรกได้ (เช่น GTA, Euro Truck Simulator 2 หรือเกมจำลองการบิน) บวกกับอินพุตจากคีย์บอร์ดเพิ่มเติม

(B) เกมแนว FPS ที่เดินด้วย WASD เช่น Portal, Talos Principle, Half Life, Dear Esther เป็นต้น

MINI DEMO ของ USBcycle เวอร์ชั่น EuroBike Simulator

(มีวิดีโอแบบยาวให้ดูด้วยนะ). โปรเจคนี้เน้นไปที่ซอฟต์แวร์มากกว่าฮาร์ดแวร์จ้า พี่ไม่ได้ออกแบบวงจรอิเล็กทรอนิกส์ใหม่ขึ้นมาเลย แค่เอาชิ้นส่วนสำเร็จรูปที่มีขายทั่วไปมาต่อๆ กัน แล้วก็เขียนโค้ด Arduino ให้มันแปลงร่างเป็นเกมคอนโทรลเลอร์ USB ที่ขับเคลื่อนด้วยจักรยาน ความฉลาดทั้งหมดอยู่ที่โค้ดและการดัดแปลงจักรยานนิดหน่อย (ซึ่งก็ดิบๆ หน่อยแหละ)

ในบทความนี้ พี่จะใช้รูปแบบคำพูด (แบบด้านล่างนี่เลย) สำหรับข้อความเสริม, ข้อจำกัดความรับผิดชอบ, และโน๊ตเกี่ยวกับเกมเฉพาะ แทนที่จะใช้สำหรับอ้างอิงคนอื่น เพราะ Project Hub มันให้อิสระในการจัดรูปแบบไม่มาก เลยต้องใช้ให้เต็มที่กับที่มี

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

USBcycle ... ทำไปทำไม?

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

ก็ไม่เห็นจะมีปัญหาอะไรเนอะ? ไปซื้อจักรยานออกกำลังกายมาเลยสิ! ออกกำลังกายในร่ม แรงกระแทกต่ำ ไม่มีฝน ไม่มีโคลน ไม่มีรถติด จะง่ายไปไหน?

ปัญหาของจักรยานออกกำลังกายก็คือมัน *น่าเบื่อ*. คือ น่าเบื่อสุดๆ ไปเลย (สำหรับพี่นะ) มันยากที่จะมีแรงจูงใจมาทำอะไรที่น่าเบื่อขนาดนี้ แม้แค่ 10 นาที ก็ยังยาก แล้วจะให้ทำเป็นชั่วโมงได้ยังไง แต่พี่เล่นเกมคอมพิวเตอร์ที่ดึงดูดความสนใจได้เป็นชั่วโมงๆ โดยไม่เบื่อเลย อืมมม...

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

  • เครื่องจำลองและขาตั้งสำหรับฝึกซ้อมจักรยานระดับสูง (แบบที่นักแข่งมืออาชีพใช้) จะมีระบบจำลองเส้นทางแข่ง (ของสนามจริงที่นักปั่นกำลังเตรียมตัว) พร้อมกับความต้านทานที่ปรับได้ตามความชันผ่านแอป บางขาตั้งเทรนเนอร์ไฮเทคก็มีจุดยึดที่ยืดหยุ่นได้ ทำให้จักรยานเอียงได้นิดหน่อย รู้สึกเป็นธรรมชาติมากขึ้น เท่มากเลย แต่ว่าจำนวนเส้นทางมีจำกัด, ซอฟต์แวร์เป็นแบบลิขสิทธิ์เฉพาะ, และฮาร์ดแวร์ก็แพงหูฉี่.
  • ในโลกของวิชาการและงานต้นแบบ มีคนเก่งๆ เชื่อมจักรยานกับ Google Earth; มีโปรเจคขี่จักรยานเสมือนข้ามประเทศแคนาดาแบบเรียลไทม์ กำลังทำอยู่ โคตรเท่เลย แต่ดูเหมือนจะทำตามที่บ้านยากหน่อย แล้วก็พูดตรงๆ นะ Google Street View (จากที่พี่เคยใช้) มันดูเหมือนสไลด์โชว์มากกว่าการ์ตูนเคลื่อนไหว
  • ในตลาดระดับล่าง โปรเจค "จักรยานเกมคอนโทรลเลอร์ USB"เริ่มปรากฏตัวแล้ว; นักสร้างจอมคิดทั้งหลายได้สร้างโปรเจคจักรยาน/เกมคอนโทรลเลอร์ฟรีหรือเชิงพาณิชย์ ขึ้นมา (ปั่นผ่าน Mario Kart สิ! ปั่นผ่านภูมิประเทศที่สร้างขึ้นมาไม่รู้จบ!). นอกจากนี้ยังมีโปรแกรมจักรยานออกกำลังกายสำหรับ iThing/คอมพิวเตอร์ ที่มีเส้นทาง/สนามเสมือนความซับซ้อนต่างๆ กัน. และมีบริษัทหนึ่งกำลังตลาดเกมคอนโทรลเลอร์รูปทรงจักรยาน USB พร้อมเกมง่ายๆ. แต่มันไม่ใช่ของทั่วไป (มันผูกกับอินเตอร์เฟซฮาร์ดแวร์เฉพาะทางและ/หรือเกมลิขสิทธิ์จากผู้ขาย) และมันก็ราคาแพงมากด้วย

ในขณะเดียวกัน พี่มีจักรยานเสือภูเขาเก่าๆ ดีๆ คันหนึ่งที่ไม่ได้ใช้บ่อยแล้ว (เริ่มแก่แล้ว คิดว่าการขี่จักรยานท่ามกลางฝนและความหนาวของหน้าหนาวที่ BC นั้นไม่สนุกอีกต่อไป) และ พี่ก็มีคอมพิวเตอร์เกมมิ่งที่แรงพอตัว (Hackintosh ตระกูล i7 การ์ดจอ GTX 970 พอใช้ได้ถ้ายังอยู่แค่ระดับ 1080p) และ พี่ก็จ่ายค่าลิขสิทธิ์ให้กับเกมจำลองการขับขี่เปิดโลกที่โคตรดีตัวหนึ่ง -- เกมที่สนุกและน่าเล่นจนพี่ใช้เวลาไปแล้วกว่า 300 ชั่วโมง การนั่งติดเก้าอี้ทั้งหน้าหนาว ขับรถบรรทุกเสมือนทั่วยุโรป มันไม่ช่วยให้พี่เฟิร์มขึ้นเลย... แต่แน่นอนว่าเราน่าจะรวมทรัพยากรสามอย่างนี้เข้าด้วยกันเป็นชุดจำลองการขี่จักรยานได้ โดยใช้งบประมาณที่สมเหตุสมผล?

ดังนั้น ตอนต้นปี 2017 พี่เลยตัดสินใจลองดูว่าจะเปลี่ยนจักรยานธรรมดาทั่วไปให้กลายเป็นเกมคอนโทรลเลอร์ USB ได้มั้ย ซึ่งจะทำให้พี่สามารถ *ขี่จักรยาน* แทนที่จะขับรถ ไปบนถนนเสมือนยาวกว่า 45,000 กม. ทั่วยุโรปในเกมจำลองเปิดโลกโปรดของพี่ มันใช้เวลาประมาณ 4 เดือนเพราะพี่เริ่มจากศูนย์จริงๆ (ไม่เคยสร้างอิเล็กทรอนิกส์ DIY มาก่อนเลย นอกจากการประกอบคอมจากชิ้นส่วน, แค่รู้คร่าวๆ ว่า Arduino คืออะไร) แต่สุดท้ายก็สำเร็จ -- และหวังว่าคนอื่นจะตัดสินใจทำแบบเดียวกันจากประสบการณ์ของพี่บ้าง

ผลลัพธ์สุดท้าย: ตัวควบคุมจากจักรยานไปจอยสติ๊กแบบทั่วไป (USBcycle) พร้อมแผงควบคุมผู้ใช้ที่ติดตั้งบนแฮนด์จักรยาน แผงควบคุมผู้ใช้นี้มีปุ่มให้กดเพียบ (36 ปุ่มตอนนับล่าสุด!) พี่ได้ปรับแต่งคอนโทรลเลอร์ของพี่โดยแมปปุ่มต่างๆ กับคำสั่งเฉพาะสำหรับ ETS2 และผลลัพธ์สุดท้ายคือประสบการณ์การท่องเที่ยวด้วยจักรยานเสมือนที่พี่ชอบมาก ซึ่งน่าจะกระตุ้นให้พี่ออกกำลังกายเป็นประจำมากขึ้นในช่วงหน้าหนาวที่ยาวนานของ BC.... และพี่เรียกมันว่า...

Two Wheels Good! (สองล้อ ดี!)

Euro Bike Simulator: ส่วนผสมและสูตรการทำ

รายการส่วนผสมทั้งหมด

โลกเปิดให้ปั่นผ่าน:

  • เกมจำลองการขับขี่จาก SCS 1 ชุด, Euro Truck Simulator 2 (หรือ American Truck Simulator) เกมนี้มีให้บน OSX, SteamOS และ Linux รวมถึง Windows หาได้ผ่าน Steam เกมหลักราคาแค่ $22 CAD แต่คุณน่าจะอยากได้ DLC ด้วย; ชุด "เต็มอิ่ม" จาก SCS จะราคาประมาณ $60 และคุณสามารถขยายโลกเปิดได้ฟรีด้วยมอดแผนที่จากชุมชน
  • บวกกับ: มอดง่ายๆ เพื่อทำให้มุมมองของผู้เล่นเหมือนมุมมองของคนขี่จักรยานบนถนนมากขึ้น พี่สามารถให้มอดนี้กับคุณได้

ฮาร์ดแวร์สำหรับรันโลกเปิดและปั่นผ่านมัน:

  • คอมพิวเตอร์เกมมิ่ง 1 เครื่อง ที่สามารถรัน ETS2 หรือ ATS ในระดับคุณภาพกราฟิกที่ทำให้คุณพอใจได้
  • จักรยานหรืออุปกรณ์ออกกำลังกาย 1 ชิ้น: จักรยานถนนธรรมดา, จักรยานเสือภูเขา, จักรยานนอน หรืออะไรก็ได้ที่คุณมีอยู่ ซึ่งมีล้อขับเคลื่อนอย่างน้อย 1 ล้อ, อุปกรณ์บังคับเลี้ยว, และคันเบรก ถ้าอุปกรณ์จักรยานของคุณเป็นจักรยานจริง คุณจะต้องมีขาตั้งฝึก (ไม่ต้องหรูมาก พี่ซื้อของถูกจาก Ebay) คุณอาจใช้ขาตั้งแบบโรลเลอร์, แต่พี่คิดว่าคุณจะเสียความสามารถในการบังคับเลี้ยวโดยใช้แฮนด์จักรยานไป -- พี่คิดว่าการบิดแฮนด์ตอนอยู่บนขาตั้งโรลเลอร์น่าจะทำให้ล้มได้ แม้ว่าพี่จะยังไม่ได้ลองด้วยตัวเอง
  • ตัวควบคุม 1 ชุด เพื่อเปลี่ยนจักรยานให้เป็น USBcycle:

ตัวควบคุม USBcycle:

  • Arduino Leo 2 ตัว
  • ฮาร์ดแวร์ที่ประกอบขึ้นมาเพื่อติดตั้งเซ็นเซอร์บนจักรยานให้เหมาะสม; เพราะไม่มีเครื่องพิมพ์ 3D พี่ชอบสร้างของจากโฟมบอร์ด, ไม้อัดบาง, ไม้อัด 1/4 นิ้ว, ไม้เศษ, กาวร้อน, โฟมบรรจุภัณฑ์แบบปิดเซล, ตีนตุ๊กแก, เทปพันสายไฟ ฯลฯ
  • สาย USB ยาวๆ, สาย HDMI ยาว, สายเสียงยาว ฯลฯ สำหรับส่งสัญญาณระหว่างคอมพิวเตอร์กับจักรยาน คุณสามารถใช้อุปกรณ์ที่มีแหล่งจ่ายไฟเพื่อขยายความยาวได้เกิน 100 ฟุตถ้าจำเป็น พี่แค่จอดจักรยานไว้ใกล้คอมฯ :-)
  • ชิ้นส่วนอิเล็กทรอนิกส์เฉพาะทาง (และราคาแพงกว่า) บางชิ้น: เซ็นเซอร์วัดมุมแบบ Hall (ams 5601 Hall rotary encoder) บนบอร์ด breakout I2C 1 ตัว, แป้นกด Adafruit Trellis (I2C เช่นกัน), ตัวแสดงผล 7 segment พร้อม backpack I2C ของ Adafruit, WiiChuck (อันนี้ก็ I2C) สำหรับเวอร์ชั่น WASD
  • ชิ้นส่วนอิเล็กทรอนิกส์ทั่วไป (ราคาถูก) เล็กๆ น้อยๆ หนึ่งถัง -- ตัวต้านทาน (Resistor), ไฟ LED, ตัวเก็บประจุ (Capacitor), ตัวแสดงผล 7 segment, โพเทนชิโอมิเตอร์แบบเส้น (linear pot), ลูกบิด, สวิตช์สไลด์, รีดสวิตช์, เซ็นเซอร์วัดระยะแบบ Hall (linear encoder หรือ proximity sensor), ปุ่มกด, บอร์ดทดลองวงจรแบบไม่ต้องบัดกรี, บอร์ด PCB เล็กสำหรับทำต้นแบบ, สายจัมเปอร์, ขั้วต่อและสาย RJ45 ฯลฯ
  • กล่องโปรเจคที่มีแผงควบคุมผู้ใช้ สำหรับติดตั้งบนแฮนด์จักรยาน สร้างขึ้นมาใหม่หรือดัดแปลงจากกล่อง

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x OSX EL Capitan"
author: "Tazling"
category: "Gadgets, Games & Toys"
components:
  - "4x Protoboards"
  - "1x Rotary potentiometer (generic)"
  - "1x Linear Hall Effect Sensor"
  - "2x Arduino Leonardo"
  - "1x Adafruit 7 segment i2c backpack"
  - "20x Resistor 221 ohm"
  - "50x LED (generic)"
  - "1x Soldering iron (generic)"
  - "2x Adafruit Trellis Keypad"
  - "1x Hot glue gun (generic)"
  - "1x AS5601 breakout by ams"
  - "1x SparkFun 7-Segment Serial Display - Red"
description: "เปลี่ยนจักรยานออกกำลังกายธรรมดาๆ ให้เป็นเกมคอนโทรลเลอร์ตึงๆ! ใช้แค่จักรยานกับขาตั้งฝึกปั่น ต่อกับ Arduino Leonardo 2 ตัว ให้มันจำลองการกดคีย์บอร์ด/เมาส์ และอินพุตแบบจอยสติ๊กได้เลย วัยรุ่นสายฮาร์ดแวร์ต้องจัดไป!"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://github.com/RootlessAgrarian/EuroBikeSimulator"
encryptedPayload: "U2FsdGVkX192ayFqf+aSBiK15v8InEACx7BSx7HDoB5KTgLoV8f6pOM2Kj5vWrgVGmlw2IsDkQVFkuU8JyfZo4Sy8Enc2TGZ/hVM4sxjP9s="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/usbcycle-ride-through-your-virtual-world-943cfb_cover.JPG"
lang: "en"
likes: 18
passwordHash: "8e5c1eab8c4bd61eb07087a3bc8ff850792e0000f9d06a40bc26fb32ee6fd684"
price: 1499
seoDescription: "Turn your bicycle into a game controller using 2 Leonardos to emulate keyboard, mouse, and joystick inputs for virtual cycling."
tags:
  - "health"
  - "games"
title: "USBcycle: ปั่นทะลุจอไปโลด! (งานง่ายแต่หล่อ)"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/DD83fo_yYNA"
  - "https://www.youtube.com/embed/7RE_ueXC48c"
  - "https://www.youtube.com/embed/5Q9Ofx5YHwk"
views: 31183