Isi kandungan:
- Bekalan
- Langkah 1: Beberapa Matematik
- Langkah 2: Dapatkan Beberapa Data
- Langkah 3: Perkakasan 1 Penggerak Linear
- Langkah 4: Perkakasan 2 - Jambatan H
- Langkah 5: Perkakasan 3 Elektronik Kawalan (Arduino)
- Langkah 6: 'Penurunan Belakang'
Video: Open (Bicycle) Grade Simulator - OpenGradeSIM: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Pengenalan
Syarikat kecergasan (Wahoo) yang terkenal di AS baru-baru ini mengeluarkan alat latihan dalaman yang hebat yang menaikkan dan menurunkan bahagian depan basikal pada pelatih turbo mengikut tahap bukit yang disimulasikan oleh pengguna (Kickr Climb).
Nampak sangat mengagumkan tetapi sayangnya ini tidak tersedia untuk kita semua kerana anda memerlukan 1) pelatih Wahoo teratas dan 2) wang tunai £ 500 untuk menjadikannya milik anda.
Saya memecahkan klavikula (tidak pernah meletakkan penunggang basikal di basikal gunung) jadi saya mempunyai lebih banyak batu di pelatih dan lebih banyak masa untuk bermain-main dan menganggap ini boleh menjadi projek yang menyeronokkan.
Unit komersil mensimulasikan -5% hingga + 20% jadi saya ingin menghampirinya tetapi pada 10% anggaran!
Ini dirancang di sekitar Tacx Neo saya tetapi mana-mana pelatih yang menyiarkan data kuasa dan kelajuannya melalui ANT + atau BLE boleh dibuat berfungsi (saya rasa!).
Oleh kerana asas roda pada basikal jalan raya saya berukuran tepat 1000mm, saya perlu mengangkat garpu sebanyak 200mm untuk mensimulasikan 20% (lihat gambar) sehingga penggerak linear 200mm dapat dilakukan. Berat penunggang basikal + tidak mungkin melebihi 100kg dan kerana ini diagihkan di antara gandar dan kebanyakan di bahagian belakang 750N akan mengangkat 75kg dan semestinya baik. Penggerak yang lebih cepat tersedia untuk lebih banyak wang tetapi yang ini berharga sekitar £ 20 dan berjaya 10mm / saat. Penggerak dengan potensiometer yang boleh digunakan sebagai servo sederhana juga 2 hingga 3 kali lebih mahal.
Bekalan
Cetakan 3D (PLA atau ABSetc) bahagian penyesuai gandar:
100mm stok tiub aluminium 10/3 inci 3/4 inci (untuk bingkai gandar melalui)
Stok bar keluli tahan karat 80mm 6mm
Cetakan 3D (PLA atau ABSetc) kasut untuk bahagian penggerak linear:
Cetakan 3D Casing Jambatan H
Cetakan 3D Casing untuk Arduino (Versi 1 dengan papan kekunci) https://www.thingiverse.com/thing:3984911 (Versi 2 seperti yang ditunjukkan (https://www.thingiverse.com/thing:3995976)
Potongan laser dengan akrilik 3mm yang jelas 32 x 38mm untuk mengelakkan anda berpeluh di seluruh elektronik (adakah itu, tidak sesuai).
Beberapa blok pendarahan (disesuaikan untuk membiarkan pembalut masuk) untuk mengelakkan anda menolak piston kaliper dari brek cakera Shimano secara tidak sengaja kerana semangat anda
Linear Actuator 750N 200mm travel mis. Al03 Mini Linear Actuators dari
Jambatan L298N H (seperti:
Arduino Nano IoT 33 www.rapidonline.com pesanan 73-4863
2 papan kekunci membran utama contohnya
Modul Dwi-Arah Penukar Tahap Logik IIC I2C 5V hingga 3.3V Untuk Arduino contohnya
Bekalan kuasa 12V 3A DC - yang terbaik untuk pencahayaan LED!
Jambatan NPE CABLE Ant + to BLE
Klip cetak 3D untuk jambatan CABLE
Modul Paparan LCD OLED 1.3 dengan Antaramuka IIC I2C 128x32 3.3V
Langkah 1: Beberapa Matematik
Kita perlu mengira kecondongan yang disimulasikan. Saya berharap pelatih akan mengiklankan data ini bersama dengan kelajuan, daya, irama dll. Namun pelatih hanya menetapkan ketahanan untuk mengekalkan output daya mengikut perisian di tablet, komputer dll yang digunakan untuk mengendalikannya. Saya tidak mempunyai cara untuk menangkap 'simulasi gred' dari perisian dengan mudah jadi saya harus berusaha ke belakang …
Kekuatan yang bertindak pada basikal dan penunggang adalah gabungan kehilangan daya tahan dan kekuatan yang diperlukan untuk mendaki bukit. Pelatih melaporkan kelajuan dan kuasa. Sekiranya kita dapat menemui kerugian resistif pada kelajuan tertentu maka daya yang tersisa digunakan untuk mendaki bukit. Kekuatan pendakian bergantung pada berat basikal dan penunggang dan kadar pendakian sehingga kita dapat kembali ke lereng.
Mula-mula saya menggunakan https://bikecalculator.com yang menakjubkan untuk mencari beberapa titik data untuk kehilangan daya resistif pada kelajuan biasa. Kemudian saya mengubah domain kelajuan untuk menghasilkan hubungan linear dan menemui garis yang paling sesuai. Dengan mengambil persamaan garis, kita sekarang dapat mengira daya (W) dari rintangan = (0.0102 * (Speedkmh ^ 2.8)) + 9.428.
Ambil daya dari rintangan dari daya yang diukur untuk memberi kekuatan 'pendakian'.
Kami mengetahui kelajuan pendakian dalam km / jam dan mengubahnya menjadi unit SI m / s (bahagikan dengan 3.6).
Kecondongan dijumpai dari: Incline (%) = ((PowerClimbing / (WeightKg * g)) / Speed) * 100
di mana pecutan kejatuhan bebas g = 9.8m / s / s atau 9.8 N / kg
Langkah 2: Dapatkan Beberapa Data
Pengiraan condong memerlukan kelajuan dan daya. Saya menggunakan Arduino Nano 33 IoT untuk berhubung dengan pelatih melalui BLE untuk menerimanya. Pada mulanya saya buntu kerana versi v.1.1.2 terkini dari perpustakaan ArduinoBLE asli untuk modul ini tidak mengendalikan pengesahan dalam bentuk apa pun yang bermaksud kebanyakan (?) Sensor BLE komersial tidak akan berpasangan dengannya.
Penyelesaiannya adalah dengan menggunakan jambatan NPE Cable ANT + ke BLE (https://npe-inc.com/cableinfo/) yang menjadikan BLE pelatih yang terpasang bebas untuk aplikasi latihan berkomunikasi dan tidak memerlukan pengesahan pada BLE sisi.
Ciri daya BLE cukup mudah kerana kuasa dalam watt terkandung dalam bait kedua dan ketiga dari data yang dihantar sebagai bilangan bulat 16 bit (sedikit endian iaitu oktet paling kurang pertama). Saya menggunakan penapis purata bergerak untuk memberi kuasa purata 3s - seperti yang ditunjukkan oleh komputer basikal saya - kerana ini kurang menentu.
jika (powerCharacteristic.valueUpdated ()) {
// Tentukan array untuk nilai uint8_t holdpowervalues [6] = {0, 0, 0, 0, 0, 0}; // Baca nilai menjadi array powerCharacteristic.readValue (holdpowervalues, 6); // Kuasa dikembalikan sebagai watt di lokasi 2 dan 3 (loc 0 dan 1 adalah bendera 8 bit) byte rawpowerValue2 = holdpowervalues [2]; // power byte paling sedikit dalam byte HEX rawpowerValue3 = nilai holdpower [3]; // power paling sig byte dalam HEX rawpowerTotal panjang = (rawpowerValue2 + (rawpowerValue3 * 256)); // Gunakan penapis purata bergerak untuk memberikan powerTrainer = movingAverageFilter_power.process 'powers 3s' (rawpowerTotal);
Ciri kelajuan BLE (Cycling Speed and Cadence) adalah salah satu perkara yang membuat anda tertanya-tanya apa yang SIG merokok ketika mereka menulis spesifikasi.
The Characteristic mengembalikan array 16 bait yang tidak mengandungi kelajuan atau irama. Sebaliknya anda mendapat putaran roda dan putaran engkol (jumlah) dan masa sejak data peristiwa terakhir pada 1024 saat. Oleh itu, lebih banyak matematik. Oh, dan bait tidak selalu ada sehingga ada bait bendera pada awalnya. Oh, dan baitnya sedikit HEX endian jadi anda perlu membaca ke belakang mengalikan bait kedua dengan 256, ketiga dengan 65536 dll, kemudian menambahkannya bersama. Untuk mencari kelajuan, anda perlu menganggap lilitan roda basikal standard untuk mengetahui jarak….
jika (speedCharacteristic.valueUpdated ()) {
// Nilai ini memerlukan susunan 16 bait uint8_t holdvalues [16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // Tetapi saya hanya akan membaca 7 speedCharacteristic.readValue pertama (nilai tahan, 7); byte rawValue0 = nilai penahanan [0]; // bendera perduaan 8 bit int bait rawValue1 = nilai penahanan [1]; // revolusi bait paling rendah dalam bait HEX rawValue2 = nilai penahanan [2]; // revolusi bait terpenting seterusnya dalam bait HEX rawValue3 = nilai penahanan [3]; // revolusi byte terpenting seterusnya dalam bait HEX rawValue4 = nilai penahanan [4]; // revolusi bait paling signifikan dalam bait HEX rawValue5 = nilai penahanan [5]; // masa sejak acara roda terakhir sekurang-kurangnya sig byte byte rawValue6 = holdvalues [6]; // masa sejak peristiwa roda terakhir paling banyak sig byte jika (firstData) {// Dapatkan putaran roda kumulatif sebagai hex endian kecil di lok 2, 3 dan 4 (oktet paling rendah pertama) WheelRevs1 = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); // Dapatkan masa sejak acara roda terakhir pada 1024th of Time_1 = (rawValue5 + (rawValue6 * 256)); firstData = palsu; } lain {// Dapatkan sekumpulan data panjang WheelRevsTemp = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); TimeTemp panjang = (rawValue5 + (rawValue6 * 256)); jika (WheelRevsTemp> WheelRevs1) {// pastikan basikal bergerak WheelRevs2 = WheelRevsTemp; Time_2 = TimeTemp; firstData = benar;}
// Cari perbezaan jarak dalam cm dan ubah menjadi jarak pelampung kmTravelled = ((WheelRevs2 - WheelRevs1) * wheelCircCM);
apungan kmTravelled = jarakTravelled / 1000000;
// Cari masa dalam 1024 saat dan tukar menjadi jam
float timeDifference = (Masa_2 - Masa_1); masa apunganSecs = timeDifference / 1024; masa apunganHrs = timeSecs / 3600;
// Cari kelajuan kmh
speedKMH = (kmTravelled / timeHrs);
Sketsa Arduino dihoskan di GitHub (https://github.com/mockendon/opengradesim).
Langkah 3: Perkakasan 1 Penggerak Linear
Gandar melalui pada cakera jalan brek cakera saya menentukan gandar 19.2mm untuk membersihkan gandar 12mm hingga 100mm di antara garpu.
Stok tiub aluminium 10swg berukuran 3/4 inci sangat sesuai dan pelawat yang bagus bernama Dave on ebay (https://www.ebay.co.uk/str/aluminiumonline) dibekalkan dan dipotong untuk saya selama beberapa paun.
Penggerak mempunyai bar 20mm dengan lubang 6mm sehingga bahagian bercetak 3D menghubungkan tiub aluminium ke bar keluli 6mm dan kerana daya adalah pemampatan 90%, beberapa PLA / ABS sesuai dengan cabarannya.
Sekiranya anda menjalankan persediaan pelepasan cepat standard, maka seperti ini (https://www.amazon.co.uk/Sharplace-Quick-Release-Conversion-Adapter/dp/B079DCY344) akan mengelakkan daripada merancang semula komponen ini.
Boot direka untuk masuk ke blok raiser yang disertakan dengan pelatih Tacx saya tetapi mungkin sesuai dengan banyak raiser yang serupa atau anda boleh mengedit fail TinkerCad untuk memenuhi keperluan anda.
Langkah 4: Perkakasan 2 - Jambatan H
Papan jambatan L298N H yang sangat biasa dalam talian mempunyai pengatur 5V bawaan yang bagus untuk menghidupkan Arduino dari bekalan kuasa 12V yang diperlukan untuk penggerak linear. Malangnya papan Arduino Nano IoT mempunyai isyarat 3.3V maka perlunya penukar tahap logik (atau optoisolator kerana isyaratnya hanya searah).
Sarung ini dirancang untuk menerima penyambung kuasa yang biasa digunakan dalam aplikasi pencahayaan LED. Saya telah membunuh sambungan sambungan USB untuk memungkinkan untuk menyambung / memutuskan unit kepala Arduino dengan mudah dan sementara saya pasti menggunakan talian kuasa untuk kuasa dan garis data untuk isyarat 3.3V, saya akan secara jujur menasihati LAGI seperti ini benci seseorang untuk menggoreng port USB atau periferalnya dengan memasukkannya secara tidak sengaja!
Langkah 5: Perkakasan 3 Elektronik Kawalan (Arduino)
Casing untuk Arduino OLED dan logic level converter mempunyai pemasangan gaya Garmin 1/2 putaran standard di bahagian belakang untuk membolehkannya dipasang dengan selamat ke basikal. Pemasangan 'depan depan' akan memungkinkan unit dimiringkan ke atas atau ke bawah menjadi 'sifar' kedudukan pecutan atau garis kod hanya ke sifar automatik pada permulaan akan mudah ditambahkan.
Sarung ini mempunyai tempat untuk papan kekunci membran - ini digunakan untuk menetapkan berat penunggang dan basikal gabungan. Anda boleh menetapkan ini secara teratur terutamanya jika anda tidak berkongsi pelatih dengan sesiapa pun.
Mungkin bagus untuk menerapkan mod 'manual'. Mungkin menekan kedua-dua butang dapat memulakan modus manual dan kemudian butang dapat meningkatkan / menurunkan condong. Saya akan menambahkannya ke senarai yang mesti dilakukan!
Fail STL kes ini, sekali lagi, tersedia di Thingiverse (lihat bahagian persediaan untuk pautan).
Sketsa Arduino dihoskan di GitHub (https://github.com/mockendon/opengradesim).
Anda boleh mencetak klip kecil yang kemas untuk jambatan CABLE anda dari sini
Langkah 6: 'Penurunan Belakang'
Ramai orang membangkitkan masalah gegaran belakang ketika basikal bergerak. Beberapa pelatih mempunyai gandar yang bergerak (seperti Kickr) tetapi banyak yang tidak.
Pada masa ini, penyelesaian terbaik bagi saya ialah memasang beberapa galas alur dalam 61800-2RS standard (kira-kira £ 2 setiap satu) pada adaptor pelepas cepat dan kemudian pasangkan putaran putaran axel pada ini (lihat gambar) dengan lidi QR yang terlalu besar
Galas memerlukan mesin basuh nipis seperti M12 16mm 0.3mm antara penyesuai dan galas.
Mereka sesuai dengan sempurna dan berpusing dengan basikal dan lidi bebas daripada pelatih.
Pada masa ini ini mengubah pengimbangan pada sisi pemacu oleh beberapa mm sehingga anda perlu mengindeks semula
Saya merancang bahagian khusus (lihat rancangan pdf) untuk mesin (pada mesin bubut kakak ipar saya ketika dia mempunyai satu jam untuk membantu!). Ini belum diuji !!! Tetapi mengisar 1mm dari permukaan dalaman penyesuai QR sisi pemacu stok adalah penyelesaian cepat tanpa alat khas;)
Disyorkan:
SIMULATOR PERMAINAN RACING DIY -- SIMULATOR F1: 5 Langkah
SIMULATOR PERMAINAN RACING DIY || F1 SIMULATOR: Halo semua Selamat datang di saluran Saya, Hari ini saya akan menunjukkan kepada anda, bagaimana saya membina " Racing Game Simulator " dengan bantuan Arduino UNO. ini bukan blog binaan, ini hanya gambaran keseluruhan dan ujian simulator. Blog binaan lengkap akan datang
Cara Menghubungkan Pemancar FlySky ke Mana-mana Simulator PC (ClearView RC Simulator) -- Tanpa Kabel: 6 Langkah
Cara Menghubungkan Pemancar FlySky ke Mana-mana Simulator PC (ClearView RC Simulator) || Tanpa Kabel: Panduan untuk menghubungkan FlySky I6 dengan komputer untuk mensimulasikan penerbangan untuk pemula pesawat sayap. Sambungan simulasi penerbangan menggunakan Flysky I6 dan Arduino tidak memerlukan penggunaan kabel simulasi
INDIKATOR PENCAHAYAAN BICYCLE: LUX: 7 Steps (with Pictures)
INDIKATOR PENCAHAYAAN BICYCLE: LUX: LUX adalah produk yang direka khas untuk basikal. Ia adalah alat yang boleh digantung di kedudukan belakang tempat duduk. Ini menunjukkan jika penunggang basikal melambat, belok kiri atau belok kanan dengan menggunakan matriks LED (output). Ia mudah dan
Steadicam Mounted Bicycle yang dikemas kini: 10 Langkah
Steadicam Mounted Bicycle yang dikemas kini: Projek instruksional ini memperincikan versi terkini lengan steadicam yang dipasang basikal (dibina dari bahagian perkakasan dan bahagian kedai hobi) untuk kamera miniDV. Saya telah menggunakan video yang saya rakam untuk membuat DVD untuk: kedai basikal dan untuk
Simulator Kelajuan untuk Permainan Perlumbaan atau Simulator Coaster: 5 Langkah (dengan Gambar)
Speed Simulator untuk Racing Games atau Coaster Simulator: projek mudah, kipas akan meniup udara ke wajah anda mengikut kelajuan dalam permainan. Mudah dilakukan dan lucu