Kami menghubungkan simulator olahraga ke komputer dan berhenti bertambah gemuk saat bermain game komputer



Gagasan mendapatkan pemain bungkuk untuk pindah ke permainan komputer bukanlah hal baru, Microsoft telah memiliki Kinect untuk waktu yang lama, semua jenis sensor dari Sony, Nintendo, dan sekarang juga aksesori untuk helm realitas virtual yang mengharuskan Anda untuk menggerakkan tangan dan kaki Anda selama permainan.

Namun, pengalaman pribadi menggunakan perangkat tersebut telah menunjukkan bahwa:

1. Anda hanya dapat memainkan game-game yang secara jelas dipertajam oleh sensor gerak. Dan bagaimana dengan mereka yang permainan favoritnya adalah "Zombies Lucu di Pulau Innosensius", dirilis pada abad terakhir?
2. Gerakan-gerakan dalam permainan tidak sesuai dengan tingkat beban yang nyaman / diperlukan. Entah Anda cepat lelah, atau otot tidak mendapatkan beban yang tepat.

Karena itu, muncul ide di benak saya untuk menghubungkan simulator olahraga kompak sederhana (stepper) dengan komputer dan membuat komputer memungkinkan saya untuk bermain hanya ketika saya mengamati langkah latihan tertentu.

Akibatnya, pada hari pertama menggunakan perangkat yang dihasilkan, saya mengambil lebih banyak langkah daripada dalam satu tahun pendekatan lamban tidak teratur ke simulator serupa selama istirahat makan siang, dan sebulan kemudian saya menghancurkan karet berhenti di tempat sampah. Yah, saya masih tidak membuat lubang di lantai dan tidak gagal mencapai tetangga di bawah.

Siapa yang mau mengulang pengalaman saya - baca terus.

Secara singkat tentang cara kerjanya


Ketika Anda menginjak stepper, sebuah magnet bergerak di dalamnya, menutup dan membuka sensor bawaan (reed switch), yang dengannya jumlah langkah dihitung dan ditampilkan.

Kami akan memasang sensor serupa di sebelahnya, menempelkannya ke papan Arduino, dan bahkan ke komputer dengan kabel USB. Arduino akan memberi tahu program di komputer saat Anda mengambil langkah berikutnya. Jika Anda tidak mengambil terlalu banyak langkah, program akan memerintahkan Arduino untuk terlebih dahulu menarik perhatian Anda ke LED yang berkedip-kedip (merah, lalu biru, lalu keduanya), dan kemudian nyalakan derit yang menjengkelkan. Jika ini tidak membantu, program akan menggelapkan gambar di layar komputer.

Percayalah, ini bekerja dengan baik. Anda segera melanjutkan berjalan.

Awalnya, saya mencoba memblokir mouse / keyboard sebagai hukuman untuk intensitas rendah latihan fisik. Tetapi ini ternyata tidak perlu / menjengkelkan, itu sudah cukup untuk sedikit mengurangi kenyamanan komunikasi dengan komputer, tetapi tidak sampai menghalangi kontrol sama sekali.

Pengalaman dan Prospek


Saya mulai bergerak lebih banyak, dan ini jelas merupakan suatu nilai tambah. Tapi ada kehalusan.

Sayangnya, stepper yang murah mengubah karakteristiknya pada menit pertama penggunaan. Minyak dalam peredam kejut memanas, menjadi lebih tipis, dan menjadi lebih mudah untuk bergerak. Bahkan dikatakan di kotak saya dari stepper bahwa itu dirancang untuk digunakan terus menerus selama 20 menit.

Program saat ini dikonfigurasi untuk satu langkah beban. Idealnya, harus disesuaikan secara manual dan sesuai jadwal. Lebih baik lagi, tergantung pada sensor detak jantung.

Selanjutnya, kaki-kaki berlatih dengan cukup baik. Tapi bagaimana dengan tangan dan yang lainnya? Lagi pula, tangan ditempati oleh keyboard dan mouse?

Saya mencoba untuk membebaskan tangan saya menggunakan kontrol komputer dengan melacak pandangan dan suara saya. Baiklah ... Anda dapat bermain catur seperti ini di komputer, tetapi saya tidak berhasil dalam permainan yang dinamis.

Tonton video tentang mencoba bermain tanpa tangan (menggunakan program yang saya tulis untuk para penyandang cacat)
Kontrol suara dalam game:


Kontrol game dalam game:


Jadi, sementara beban di tangan adalah pertanyaan terbuka. Mungkin saya akan mencoba menempatkan tombol / sensor tekanan / giroskop langsung pada gagang simulator.

Secara umum, saya percaya bahwa pusat-pusat kebugaran, dalam bentuk di mana mereka sekarang, telah hidup lebih lama. Waktunya akan tiba untuk pusat hiburan di mana aktivitas fisik akan dirangsang oleh beberapa jenis hiburan, misalnya, permainan komputer / kompetisi.

Sementara itu, mari kita lakukan di rumah.

Apa yang kita butuhkan


1. Komputer yang ditinggikan. Ini penting. Berdiri di atas stepper, Anda harus memiliki akses yang nyaman ke keyboard dan mouse. Saya membangun rak di dinding Swedia.

2. Simulator "stepper". Saya mengambil "Domyos Mini Stepper Essential" di Decathlon. Tapi dia melihat model yang sangat mirip di Sportmaster. Secara umum, tampaknya semua stepper melakukan sesuai dengan gambar yang sama, membuat sedikit perubahan kosmetik.

3. Kit dengan papan Arduino adalah yang termudah, jika hanya termasuk:
- Papan Arduino (dalam kasus saya - analog bahasa Cina dari Arduino Nano)
- Kabel USB untuk menghubungkan ke komputer
- papan sirkuit dan kabel
- 2 LED, 2 resistor 220 Ohm, 1 resistan 10 kOhm

Anda dapat mengambil semua elemen ini secara individual.

4. Transduser piezoelektrik dengan voltase mulai dari 5 volt. Pada saya ada tertulis - HPM-14A.

5. saklar buluh miniatur, misalnya, MKA-10110A. Saklar buluh yang lebih besar tidak bekerja dengan baik di sini! Diperiksa!

6. kawat dua kawat panjang untuk menghubungkan saklar buluh di simulator dan Arduino

7. tutup dari sebuah pena berujung tua untuk menempatkan saklar buluh di dalamnya

8. Besi solder, bor, pinset, lem, tester / multimeter.

Petunjuk langkah demi langkah


1. Tambahkan sakelar buluh ke stepper


Tekuk salah satu terminal sakelar buluh dengan lembut, pegang dengan pinset di alasnya sehingga wadah kaca tidak retak saat ditekuk! Saya baru saja kehilangan satu saklar buluh.



Kabel solder:



Kami memasukkan buluh ke tutupnya dari ujung pena dan memasangnya, mirip dengan yang standar, tetapi dari sisi yang lain. Segera atur ke tempat yang tepat tidak akan berfungsi. Tempat yang tepat adalah ketika saklar buluh bekerja tepat di tengah langkah, ketika pedal kanan rata dengan kiri. Karena itu, pertama-tama kita merekatkannya dengan selotip dan menggerakkannya ke kiri dan ke kanan sampai kita menemukan posisi yang benar (kita perlu tester untuk melihat kapan kontak ditutup-terbuka):



Kemudian kami akhirnya memperbaiki tutupnya dengan sensor, menuangkan lem dari lem. Sampai lem akhirnya terpasang, Anda masih bisa sedikit menyesuaikan posisi sensor.

Kabel dari sensor, dibawa keluar melalui lubang yang dibor, masuk akal untuk melengkapi dengan konektor yang mudah dilepas (diambil dari satu set dengan Arduino). Kemudian berkali-kali ia menyentuh kawat dengan kakinya, dan ini menyelamatkannya dari tebing.



2. Kami merakit sirkuit dengan papan Arduino




Bagi saya, ini berubah menjadi jalinan kawat seperti itu:



3. Isi program di Arduino


Kode program
//   ,     int brightnessB=LOW, brightnessR=LOW; int blinkingB=0; int blinkingR=0; int speakerPin=8; int BlueLED=10; int RedLED=11; int freq[]={3830,3038,2550,3038}; int cur_freq=0; int buzzer_value=0; volatile int stepper=0, old_stepper=0; //     pin void step() { stepper=!stepper; Serial.print(stepper); Serial.flush(); } void setup() { pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(2,INPUT); Serial.begin(9600); //attachInterrupt(0,step,CHANGE); } void loop() { delay (200); // 1.        while(Serial.available()) { switch(Serial.read()) { case '0': //    ,   brightnessB=HIGH; blinkingB=0; brightnessR=HIGH; blinkingR=0; buzzer_value=1; break; case '1': //    . brightnessB=LOW; blinkingB=1; brightnessR=HIGH; blinkingR=1; buzzer_value=0; break; case '2': //   brightnessB=HIGH; blinkingB=1; brightnessR=LOW; blinkingR=0; buzzer_value=0; break; case '3'://   brightnessB=LOW; blinkingB=0; brightnessR=HIGH; blinkingR=1; buzzer_value=0; break; case '4': //   brightnessB=LOW; blinkingB=0; brightnessR=HIGH; blinkingR=0; buzzer_value=0; break; case '5': // . brightnessB=LOW; blinkingB=0; brightnessR=LOW; blinkingR=0; buzzer_value=0; break; } } //      , ,     if(1==blinkingB) { if(HIGH==brightnessB) brightnessB=LOW; else brightnessB=HIGH; } if(1==blinkingR) { if(HIGH==brightnessR) brightnessR=LOW; else brightnessR=HIGH; } digitalWrite(RedLED,brightnessR); digitalWrite(BlueLED,brightnessB); if(1==buzzer_value) { tone(speakerPin, freq[cur_freq], 200); cur_freq++; if(cur_freq>3) {cur_freq=0;} } stepper=digitalRead(2); if(old_stepper!=stepper) { Serial.print(stepper); Serial.flush(); old_stepper=stepper; } } 


Kami memeriksa apakah ia berfungsi - di Serial Monitor, yang ada di lingkungan pengembangan Arduino, Anda dapat melihat garis nol dan satu yang tumbuh ketika Anda menginjak simulator.



Dan jika Anda mengemudi dalam jumlah dan mengirimnya ke Arduino, maka ia harus bereaksi seperti ini:

5 - LED mati
4 - menyala merah
3 - merah berkedip
2 - berkedip biru
1 - merah, lalu biru berkedip
0 - Pencekik berdecit. Kedua dioda aktif.

4. Jalankan program di komputer


Program DimForce.exe dapat diambil di github (termasuk dalam bentuk kode sumber):
https://github.com/MastaLomaster/DimForce

Saat ini, program ini terhubung dengan kabel sehingga Arduino terhubung melalui port COM9. Jika ini tidak terjadi pada Anda, konfigurasikan port Arduino sebagai COM9. Atau kompilasi ulang program dengan mengoreksi baris dalam file DFSerial.cpp di dalamnya:

 Port = CreateFile(L"\\\\.\\COM9", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL); 

Ketika Anda menginjak simulator, di jendela program, nol akan berubah satu dan sebaliknya:



Jika Anda berhenti mondar-mandir, LED akan berkedip lebih menyebalkan, dan kemudian squeaker akan menyala, dan pada akhirnya layar akan sedikit gelap.

Jangan berhenti! Dapatkan sehat!

Source: https://habr.com/ru/post/id404669/


All Articles