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

ซอฟต์แวร์คอมพิวเตอร์จักรยานหรือดูที่รองรับ Bluetooth Le และ Ant+ Power Meter และเซ็นเซอร์ Cadence ใด ๆ ควรทำงานรวมถึง:
แนะนำให้ใช้ Raspberry Pi Zero W เพื่อประสบการณ์การใช้งานที่ดีที่สุด ระบบ Linux หรือ MacOS ล่าสุดใด ๆ ควรจะสามารถใช้งาน Gymnasticon ได้
หมายเหตุ: หากใช้ Bluetooth Le Bike (เช่น Flywheel) ต้องใช้อะแดปเตอร์บลูทู ธ LE 4.1+ ที่มีความสามารถแบบหลายบทบาท อุปกรณ์ Raspberry PI ทั้งหมดที่ระบุไว้ข้างต้นมีความสามารถนี้ แต่ไม่ใช่อะแดปเตอร์ BT 4.1+ ทุกตัวรับประกันว่าจะมี อีกทางเลือกหนึ่งอะแดปเตอร์ BT 4.0+ สองตัวสามารถทำงานได้: หนึ่งสำหรับไคลเอนต์ (เพื่อเชื่อมต่อกับจักรยาน) และอีกเครื่องหนึ่งสำหรับเซิร์ฟเวอร์ (เพื่อรับการเชื่อมต่อจาก ZWIFT หรือแอพอื่น)

นี่เป็นวิธีที่ง่ายที่สุดในการตื่นขึ้นมาบนราสเบอร์รี่ Pi
ข้อกำหนดเบื้องต้น:
dd(1)ขั้นตอน:
ddไฟล์กำหนดค่า:
หากใช้จักรยานอื่นที่ไม่ใช่มู่เล่หรือ peloton - สร้างและปรับไฟล์ gymnasticon.json ภายในโฟลเดอร์หลักของการ์ด SD มันควรจะจบลงในโฟลเดอร์เดียวกันกับ bootcode.bin , cmdline.txt , config.txt ฯลฯ
ตัวอย่างต่อไปนี้กำหนดค่า Gymnasticon เพื่อค้นหาจักรยาน Schwinn IC4 และเพื่อลดค่าการวัดพลังงาน 8%:
{
"bike": "ic4",
"power-scale": 0.92
}
ตัวอย่างต่อไปนี้กำหนดค่า Gymnasticon เพื่อค้นหา Keizer M Series Bike:
{
"bike": "keiser"
}
ดูด้านล่างสำหรับตัวเลือกการกำหนดค่าเพิ่มเติม
ในระหว่างการบูตครั้งแรก Gymnasticon เปิดใช้งานระบบไฟล์ซ้อนทับสำหรับระบบไฟล์รูท ("/") และเมาท์ "/boot" เป็นแบบอ่านอย่างเดียว สิ่งนี้จะช่วยลดความเสี่ยงของการทุจริตของระบบไฟล์ที่ร้ายแรงซึ่งเป็นผลมาจากความล้มเหลวของพลังงานเช่น แต่ยังขยายอายุการใช้งานของการ์ด SD โดยลดการสึกหรอ
ดังนั้นการปิดโรงยิมที่สะอาดจึงไม่จำเป็น เพียงแค่ให้ Raspberry Pi ของคุณเสียบและทำงานอยู่
ยังคงเป็นไปได้ที่จะตั้งค่าเครือข่ายและการเข้าถึงระยะไกลเพื่อให้คุณสามารถตรวจสอบบันทึกหรือมีส่วนร่วมในงานพัฒนา แต่โหมดนี้ไม่จำเป็นและไม่แนะนำสำหรับผู้ใช้ทั่วไป
หมายเหตุ: ภาพ Pi OS ที่ได้รับการแก้ไขนี้จะทำหน้าที่เทียบเท่ากับภาพ Pi OS ที่เกี่ยวข้องกับไฟล์
wpa_supplicant.confและsshเท่านั้นในระหว่างการบูตครั้งแรก ซึ่งหมายความว่าการตั้งค่า WiFi และ SSH กลายเป็นส่วนหนึ่งของระบบไฟล์ Underlay และคงอยู่ในการรีบูตครั้งต่อไป การวางไฟล์wpa_supplicant.confหรือsshลงบนพาร์ติชันบูตหลังจากการบูตครั้งแรกจะส่งผลให้การตั้งค่าไม่ยังคงอยู่ในการรีบูต นอกจากนี้โปรดทราบว่าในกรณีนี้ไฟล์wpa_supplicant.confและsshจะถูกลบออกและไม่สามารถใช้งานได้ในระหว่างการรีบูตอื่น
คุณสามารถเปลี่ยนระบบไฟล์รูทระหว่างโหมดอ่านอย่างเดียวและอ่าน-เขียน แต่ยังแสดงโหมดปัจจุบันโดยใช้คำสั่ง overctl
จักรยานมู่เล่
Peloton Bike (พร้อมสายไฟพาสซีฟ)
ลองเริ่มต้นอย่างรวดเร็วก่อน มิฉะนั้นอ่านต่อสำหรับวิธีการติดตั้ง Gymnasticon และการพึ่งพาด้วยตนเอง
การพึ่งพา:
node.js 12.16.1+
บน Linux (รวมถึง Raspberry Pi)
sudo apt-get install libudev-dev (จำเป็นโดย Node-Bluetooth-HCI-Socket)หมายเหตุ: ผู้ใช้ของคุณต้องได้รับอนุญาตให้เข้าถึงอะแดปเตอร์บลูทู ธ และบริการโฆษณา
ติดตั้ง:
npm install -g gymnasticon
gymnasticon
เพื่อทำงานเป็นผู้ใช้ที่ไม่มีสิทธิ์:
# this gives cap_net_raw+eip to all node programs not just gymnasticon
sudo setcap cap_net_raw+eip $(eval readlink -f $(which node))
ในการทำงานในเวลาบูตให้รีสตาร์ททางออกและเพื่อหลีกเลี่ยงการให้ cap_net_raw+eip ไปยังโหนดไบนารีขอแนะนำให้ทำงานภายใต้ SystemD ดู deploy/gymnasticon.service จากที่เก็บนี้สำหรับไฟล์ Systemd Unit
sudo cp gymnasticon.service /etc/systemd/system
sudo systemctl enable gymnasticon
sudo systemctl start gymnasticon
เพื่อดูผลลัพธ์ของ Gymnasticon ที่ทำงานภายใต้ SystemD:
journalctl -u gymnasticon -f
หมายเหตุ: ตัวเลือก CLI ด้านล่างสามารถใช้ในไฟล์กำหนดค่าได้
--bike ic4บนบรรทัดคำสั่งเหมือนกับ{"bike":"ic4"}ในไฟล์กำหนดค่า
$ gymnasticon --help
__o
_ <_
(_)/(_)
Gymnasticon
v1.4.0
usage: gymnasticon [OPTIONS]
Options:
--config <filename> load options from json file [string]
--bike <type>
[string] [choices: "flywheel", "peloton", "ic4", "keiser", "bot",
"autodetect"] [default: "autodetect"]
--bike-connect-timeout <seconds> [number] [default: 0]
--bike-receive-timeout <seconds> [number] [default: 4]
--bike-adapter <name> for bike connection [default: "hci0"]
--flywheel-address <macaddr>
--flywheel-name <name>
--peloton-path <path> usb serial device path
[string] [default: "/dev/ttyUSB0"]
--bot-power <watts> initial bot power [number]
--bot-cadence <rpm> initial bot cadence [number]
--bot-host <host> for power/cadence control over udp [string]
--bot-port <port> for power/cadence control over udp [number]
--server-adapter <name> for app connection [default: "hci0"]
--server-name <name> used for Bluetooth advertisement
[default: "Gymnasticon"]
--server-ping-interval <seconds> ping app when user not pedaling
[number] [default: 1]
--ant-device-id <id> ANT+ device id for bike power broadcast
[number] [default: 11234]
--power-scale <value> scale watts by this multiplier
[number] [default: 1]
--power-offset <value> add this value to watts [number] [default: 0]
--version Show version number [boolean]
-h, --help Show help [boolean]
git clone https://github.com/ptx2/gymnasticon.git
cd gymnasticon
npm run build
npm link
gymnasticon --help
มันควรจะเป็นเรื่องเล็กน้อยที่จะเพิ่มการสนับสนุนสำหรับจักรยานที่เป็นกรรมสิทธิ์อื่น ๆ ตราบใดที่มีวิธีการรับข้อมูลจังหวะ/พลังงานแบบเรียลไทม์-อิชจากพวกเขา
มิกซ์
อ่านบันทึกการพัฒนาที่นี่