Isi kandungan:

Paparan Ergometer berasaskan Arduino ringkas dengan Maklum balas berbeza: 7 Langkah (dengan Gambar)
Paparan Ergometer berasaskan Arduino ringkas dengan Maklum balas berbeza: 7 Langkah (dengan Gambar)

Video: Paparan Ergometer berasaskan Arduino ringkas dengan Maklum balas berbeza: 7 Langkah (dengan Gambar)

Video: Paparan Ergometer berasaskan Arduino ringkas dengan Maklum balas berbeza: 7 Langkah (dengan Gambar)
Video: Велоспорт проводной водонепроницаемый велосипедный компьютер с ЖК-цифровым дисплеем 2024, November
Anonim
Paparan Ergometer berasaskan Arduino ringkas dengan Maklum balas berbeza
Paparan Ergometer berasaskan Arduino ringkas dengan Maklum balas berbeza
Paparan Ergometer berasaskan Arduino ringkas dengan Maklum balas berbeza
Paparan Ergometer berasaskan Arduino ringkas dengan Maklum balas berbeza
Paparan Ergometer berasaskan Arduino ringkas dengan Maklum balas berbeza
Paparan Ergometer berasaskan Arduino ringkas dengan Maklum balas berbeza

Latihan kardio membosankan, terutamanya ketika bersenam di dalam rumah. Beberapa projek yang ada cuba meredakannya dengan melakukan perkara yang menarik seperti menggabungkan ergometer ke konsol permainan, atau bahkan mensimulasikan perjalanan basikal sebenar di VR. Menyenangkan kerana ini, secara teknikal, mereka tidak banyak membantu: Latihan masih membosankan. Oleh itu, saya ingin membaca buku atau menonton TV semasa latihan. Tetapi kemudian sukar untuk mengikuti rentak yang stabil.

Ideanya, di sini, adalah untuk memberi tumpuan kepada masalah terakhir, dan memberikan maklum balas langsung, mengenai apakah tahap latihan anda sekarang cukup baik, atau anda harus berusaha lebih banyak lagi. Walau bagaimanapun, tahap "cukup baik" akan berbeza bukan sahaja setiap orang, tetapi juga dari masa ke masa (jangka panjang, apabila anda menjadi lebih baik, tetapi juga dalam sesi latihan: misalnya, hampir mustahil untuk pergi dengan kecepatan penuh sebelum anda memanaskan badan). Oleh itu, idea di sebalik projek ini hanyalah untuk merekodkan a) larian sebelumnya dan b) larian terbaik (aka highscore), dan kemudian memberikan maklum balas langsung mengenai bagaimana anda sedang bernasib baik berbanding larian tersebut.

Sekiranya kedengarannya agak abstrak, lompat ke Langkah 7 untuk perincian mengenai paparan lengkap yang akan ditunjukkan

Matlamat selanjutnya dari projek ini adalah untuk memastikan segala sesuatu tetap sederhana dan murah. Bergantung pada tempat anda memesan alat ganti anda, anda boleh menyelesaikan projek ini dengan harga sekitar $ 5 (atau sekitar 30 $ semasa membuat pesanan dari penjual domestik premium), dan jika anda pernah bermain dengan persekitaran Arduino, sebelumnya, ada peluang yang cukup baik bahawa anda sudah mempunyai sebahagian besar atau semua bahagian yang anda perlukan.

Langkah 1: Senarai Bahagian

Senarai bahagian
Senarai bahagian

Mari lihat senarai perkara yang anda perlukan:

Mikropemproses yang serasi dengan Arduino

Sebilangan besar Arduino yang dijual dalam beberapa tahun kebelakangan akan berjaya. Varian tepat (Uno / Nano / Pro Mini, 8 atau 16 MHz, 3.3. Atau 5V) tidak menjadi masalah. Walau bagaimanapun, anda memerlukan pemproses ATMEGA328 atau lebih baik, kerana kami akan menggunakan hampir 2k RAM, dan 1k EEPROM. Sekiranya anda biasa dengan selok-belok dunia Arduino, saya cadangkan anda menggunakan Pro Mini pada 3.3V, kerana ia akan menjadi paling murah, dan paling berkesan bateri. Sekiranya anda (agak) baru menggunakan Arduino, saya cadangkan "Nano" kerana ia memberikan fungsi yang sama dengan "Uno" dalam pakej yang lebih kecil dan lebih murah.

Perhatikan bahawa arahan ini tidak akan membincangkan anda dengan asasnya. Anda sekurang-kurangnya mesti memasang perisian Arduino, dan mengetahui cara menyambungkan Arduino anda dan memuat naik lakaran. Sekiranya anda tidak tahu, apa yang saya bicarakan, baca dua tutorial mudah ini, pertama: Pertama, kedua.

Paparan OLED 128 * 64 piksel SSD1306 (varian I2C, iaitu empat pin)

Ini adalah salah satu paparan termurah dan termudah yang ada, hari ini. Setuju, ia kecil, tetapi cukup bagus. Sudah tentu, jika anda sudah mempunyai paparan resolusi yang serupa atau lebih baik, anda boleh menggunakannya, sebaliknya, arahan ini ditulis untuk SSD1306.

  • "Papan roti tanpa solder" dan beberapa wayar pelompat, untuk membina prototaip anda
  • Kapasitor seramik 100nF (mungkin atau mungkin tidak diperlukan; lihat Langkah 4)
  • Sama ada beberapa klip croc, atau magnet, suis reed dan beberapa kabel (lihat Langkah 4)
  • LED merah dan hijau, masing-masing (pilihan; lihat Langkah 5)
  • Dua perintang 220Ohm (jika menggunakan LED)
  • Butang tekan (juga pilihan)
  • Bateri yang sesuai (lihat Langkah 6)

Langkah 2: Menyambungkan Paparan

Menyambungkan Paparan
Menyambungkan Paparan

Sebagai perkara pertama, kami akan memasang paparan ke Arduino. Arahan terperinci ada. Walau bagaimanapun, SSD1306 sangat mudah dihubungkan:

  1. Paparkan VCC -> Arduino 3.3V atau 5V (sama ada akan berlaku)
  2. Paparkan Gnd -> Arduino Gnd
  3. Paparkan SCL -> Arduino A5
  4. Paparkan SCA -> Arduino A4

Seterusnya, di persekitaran Arduino anda pergi ke Sketch-> Include library-> Uruskan perpustakaan, dan pasang "Adafruit SSD1306". Malangnya, anda perlu mengedit perpustakaan untuk mengkonfigurasinya untuk varian 128 * 64 piksel: cari folder "perpustakaan" arduino anda, dan edit "Adafruit_SSD1306 / Adafruit_SSD1306.h". Cari "#define SSD1306_128_32", matikan baris itu, dan aktifkan "#define SSD1306_128_64".

Pada ketika ini anda harus memuatkan File-> Contoh-> Adafruit SSD1306-> ssd1306_128x64_i2c untuk menguji paparan anda disambungkan dengan betul. Perhatikan bahawa anda mungkin perlu menyesuaikan alamat I2C. 0x3C nampaknya merupakan nilai yang paling biasa.

Sekiranya terdapat masalah, rujuk petunjuk yang lebih terperinci.

Langkah 3: Muat naik Lakaran

Sekiranya semuanya berjaya, setakat ini, sekarang masanya untuk memuat naik lakaran sebenar ke Arduino anda. Anda akan mendapat salinan lakaran di bawah. Untuk versi yang lebih baru, rujuk halaman projek github. (Oleh kerana ini adalah lakaran fail tunggal, cukup untuk menyalin fail erogmetrino.ino ke tetingkap Arduino anda).

Sekiranya anda harus mengubah alamat I2C pada langkah sebelumnya, anda harus membuat penyesuaian yang sama, sekali lagi, sekarang, sesuai dengan "display.begin".

Selepas memuat naik, anda akan melihat beberapa angka nol muncul di paparan anda. Kami akan melihat makna pelbagai bahagian paparan, setelah semua yang lain disambungkan.

Perhatikan bahawa pada permulaan pertama, paparan akan agak lambat untuk menyala (mungkin memakan waktu sekitar sepuluh saat), kerana lakaran akan memusatkan data yang disimpan di EEPROM terlebih dahulu.

Langkah 4: Menyambungkan Ergometer

Menyambungkan Ergometer
Menyambungkan Ergometer

Langkah ini tidak dapat digambarkan secara universal, kerana tidak semua ergometer adalah sama. Walau bagaimanapun, semuanya tidak berbeza. Sekiranya ergometer anda menyertakan paparan kelajuan elektronik sama sekali, ia mesti mempunyai sensor elektronik untuk mengesan putaran pedal, atau beberapa roda terbang (mungkin dalaman), di suatu tempat. Dalam banyak kes, itu hanya terdiri daripada magnet yang menghampiri suis buluh (lihat juga di bawah). Setiap kali magnet berlalu, suis akan ditutup, menandakan satu revolusi ke paparan kelajuan.

Perkara pertama yang harus anda lakukan ialah memeriksa paparan kelajuan pada ergometer anda untuk kabel masuk. Sekiranya anda menjumpai kabel dua wayar yang datang dari suatu tempat di dalam ergometer, anda pasti menjumpai sambungan ke sensor. Dan dengan sedikit keberuntungan anda boleh mencabutnya sahaja, dan sambungkannya ke Arduino anda dengan beberapa klip buaya (saya akan memberitahu anda pin apa yang akan disambungkan dalam satu minit).

Namun, jika anda tidak dapat menjumpai kabel seperti itu, jangan yakin jika anda menjumpai yang betul, atau anda tidak dapat melepaskannya tanpa merosakkan apa-apa, anda hanya boleh mengetuk magnet kecil ke salah satu pedal, dan memasang suis reed ke bingkai erogmeter anda, sehingga magnet akan melaluinya dengan sangat dekat. Sambungkan dua wayar ke suis dan arahkan ke Arduino anda.

Sambungkan dua wayar (sama ada milik anda, atau dari sensor yang ada) akan pergi ke Arduino Gnd, dan Arduino pin D2. Sekiranya anda mempunyai satu tangan, sambungkan juga kapasitor 100nF antara pin D2 dan Gnd untuk beberapa "debouncing". Ini mungkin atau mungkin tidak diperlukan, tetapi membantu menstabilkan bacaan.

Setelah selesai, inilah masanya untuk menghidupkan Arduino anda, dan naik basikal untuk ujian cepat pertama. Nombor kiri atas harus mula menunjukkan ukuran kelajuan. Sekiranya ini tidak berfungsi, periksa semua pendawaian, dan pastikan magnet cukup dekat dengan suis buluh. Sekiranya ukuran kelajuan nampaknya terlalu tinggi atau terlalu rendah secara konsisten, sesuaikan definisi "CM_PER_CLICK" di dekat bahagian atas lakaran (nota: lakaran menggunakan nama metrik, tetapi tidak ada unit yang dipaparkan atau disimpan, di mana sahaja, jadi abaikan sahaja, dan membekalkan 100.000 mil per klik).

Langkah 5: LED Status Pantas Pilihan

LED Status Pantas Pilihan
LED Status Pantas Pilihan

LED yang dijelaskan dalam langkah ini adalah pilihan, tetapi rapi: Jika anda serius membaca buku / menonton TV semasa bersenam, anda tidak perlu terlalu banyak menatap paparan. Tetapi dua LED dalam warna yang berbeza akan mudah dilihat dalam penglihatan periferal, dan cukup untuk memberi anda idea kasar, mengenai bagaimana keadaan anda.

  • Sambungkan LED (merah) pertama ke pin D6 (kaki LED yang lebih panjang menuju ke Arduino). Sambungkan kaki pendek LED ke Gnd melalui perintang 220Ohms. LED ini akan menyala, apabila anda berada 10% atau lebih di bawah kelajuan terbaik anda dalam fasa latihan semasa. Masa untuk melakukan lebih banyak usaha!
  • Sambungkan LED (hijau) kedua ke pin D5, sekali lagi dengan perintang ke Gnd. LED ini akan menyala, apabila anda berada dalam lingkungan 1% atau lebih tinggi dari jangka masa terbaik anda. Anda berbuat baik!

Anda mahu LED menyala bergantung pada bagaimana harga anda berbanding jangkaan sebelumnya, atau beberapa kelajuan rata-rata sewenang-wenangnya? Baiklah, sambungkan butang tekan antara pin D4 dan Gnd. Dengan menggunakan butang itu, anda boleh menukar rujukan antara "larian terbaik anda", "larian sebelumnya", atau "kelajuan anda sekarang". Huruf kecil "P", atau "C" di sudut kiri bawah akan menandakan dua mod terakhir.

Langkah 6: Menghidupkan Paparan Ergometer Anda

Menghidupkan Paparan Ergometer Anda
Menghidupkan Paparan Ergometer Anda

Terdapat banyak cara untuk menghidupkan paparan anda, tetapi saya akan menunjukkan dua cara yang kelihatan lebih praktikal daripada yang lain:

  1. Semasa menggunakan Arduino Uno atau Nano, anda mungkin ingin mengaktifkannya menggunakan bank kuasa USB dengan petunjuk bateri rendah terbina dalam.
  2. Semasa menggunakan Arduino Pro Mini @ 3.3V (cadangan saya untuk pengguna lanjutan), anda boleh menghidupkannya secara langsung dari bateri LiPo tunggal, atau tiga sel NiMH. Oleh kerana ATMEGA akan mentolerir voltan bekalan hingga 5.5V, anda boleh menghubungkannya ke "VCC / ACC" secara langsung, dengan melewati pengatur voltan on-board. Dalam penyediaan ini, akan ada amaran "bateri rendah" sekitar 3.4V, tanpa perkakasan tambahan (dipaparkan di sudut kanan bawah). Oleh kerana ATMEGA diharapkan dapat berfungsi dengan betul, sekurang-kurangnya hingga 3.0V atau lebih, itu akan memberi anda cukup waktu untuk menyelesaikan unit latihan anda sebelum mengisi semula.

Langkah 7: Menggunakan Paparan Ergometer Anda

Menggunakan Paparan Ergometer Anda
Menggunakan Paparan Ergometer Anda
Menggunakan Paparan Ergometer Anda
Menggunakan Paparan Ergometer Anda

Mari kita perhatikan lebih dekat pelbagai nombor di paparan anda. Jumlah yang lebih besar dari kiri atas hanyalah kelajuan semasa anda, dan bilangan yang lebih besar di kanan atas adalah jarak total dalam latihan anda sekarang.

Baris seterusnya adalah kelajuan purata anda sejak permulaan latihan (kiri), dan masa sejak permulaan latihan (kanan). Perhatikan bahawa masa dihentikan semasa basikal dihentikan.

Setakat ini remeh. Dua garis lebih jauh di sebelah kanan menjadi menarik: Ini membandingkan masa anda sekarang dengan latihan sebelumnya dan terbaik anda. I. E. a "- 0:01:23" di bahagian atas baris ini bermaksud bahawa anda telah mencapai jarak semasa anda 1 minit dan 23 saat lebih awal daripada pada larian anda sebelumnya. Baik. Garis bawah "+ 0:00:12" bermaksud bahawa sehingga tahap semasa, anda ketinggalan 12 saat di belakang jangka masa terbaik anda. (Perhatikan bahawa masa pembezaan ini tidak akan tepat 100%. Titik masa disimpan setiap.5 km / batu, dan diinterpolasi di antara itu.) Tidak dapat dielakkan, tentu saja, pada jangka pertama anda, belum ada rujukan masa yang direkodkan, dan jadi kedua-dua baris di atas hanya akan menunjukkan "-: -: -".

Akhirnya, bahagian kiri bawah paparan mengandungi grafik kelajuan anda pada saat-saat terakhir. Ini membolehkan anda melihat sekilas, sama ada anda akan stabil, atau melambatkan. (Perhatikan bahawa garis ini akan lebih lancar dalam latihan sebenar - tetapi tidak mudah untuk mengekalkan rentak semasa cuba mengambil gambar …) Garisan mendatar menunjukkan kelajuan sebelumnya / terbaik yang anda capai berhampiran titik semasa anda sebelumnya latihan.

LED yang dipasang di bahagian atas membandingkan kelajuan semasa anda dengan kelajuan terbaik anda semasa fasa latihan ini. Hijau menunjukkan bahawa anda berada dalam 1% yang terbaik, merah menunjukkan bahawa anda lebih 10% lebih perlahan daripada latihan terbaik anda. Apabila anda melihat lampu merah, sudah tiba masanya untuk melakukan lebih banyak usaha. Perhatikan bahawa bertentangan dengan masa pembezaan yang dijelaskan di atas, ini merujuk kepada bahagian latihan semasa, hanya, mungkin anda ketinggalan dalam masa mutlak, tetapi hijau menunjukkan anda mengejar, dan sebaliknya.

Kecepatan rujukan yang digunakan untuk dua LED dapat diubah menggunakan tombol tekan. Satu tekan akan menukarnya dari latihan yang terbaik ke rakaman sebelumnya (huruf kecil "P" akan muncul di kiri bawah). Tekan lain dan kelajuan semasa anda pada saat menekan butang akan menjadi kelajuan rujukan baru (huruf kecil "C" akan ditunjukkan). Yang terakhir ini sangat berguna semasa latihan pertama anda dengan paparan ergometer baru anda, apabila belum ada rujukan yang direkodkan.

Setelah selesai dengan latihan anda, putuskan bateri sahaja. Latihan anda telah disimpan di EEPROM dalaman Arduino anda.

Seperti yang anda lihat, saya akhirnya memilih prototaip saya. Tanda pasti bahawa saya menyukai hasilnya sendiri. Saya harap anda juga berguna. Selamat bersenam!

Disyorkan: