Sadržaj:

Jednostavan zaslon ergometra zasnovan na Arduinu s različitim povratnim informacijama: 7 koraka (sa slikama)
Jednostavan zaslon ergometra zasnovan na Arduinu s različitim povratnim informacijama: 7 koraka (sa slikama)

Video: Jednostavan zaslon ergometra zasnovan na Arduinu s različitim povratnim informacijama: 7 koraka (sa slikama)

Video: Jednostavan zaslon ergometra zasnovan na Arduinu s različitim povratnim informacijama: 7 koraka (sa slikama)
Video: Arduino — растровые изображения из I2C EEPROM на OLED-дисплей 128x64 2024, Studeni
Anonim
Jednostavan zaslon ergometra zasnovan na Arduinu s diferencijalnom povratnom spregom
Jednostavan zaslon ergometra zasnovan na Arduinu s diferencijalnom povratnom spregom
Jednostavan zaslon ergometra zasnovan na Arduinu s diferencijalnom povratnom spregom
Jednostavan zaslon ergometra zasnovan na Arduinu s diferencijalnom povratnom spregom
Jednostavan zaslon ergometra zasnovan na Arduinu s diferencijalnom povratnom spregom
Jednostavan zaslon ergometra zasnovan na Arduinu s diferencijalnom povratnom spregom

Kardio-trening je dosadan, osobito kada vježbate u zatvorenom prostoru. Nekoliko postojećih projekata pokušavaju to ublažiti radeći kul stvari, poput spajanja ergometra s igraćom konzolom, ili čak simulirajući pravu vožnju biciklom u VR -u. Ovako uzbudljivi, tehnički ne pomažu puno: Vježbanje je i dalje dosadno. Umjesto toga, voljela bih moći čitati knjigu ili gledati TV dok treniram. Ali tada je teško održati stabilan tempo.

Ovdje je ideja usredotočiti se na posljednji problem i dati izravne povratne informacije o tome je li vaša trenutna razina obuke dovoljno dobra ili biste se trebali uložiti više napora. Međutim, razina "dovoljno dobro" razlikovat će se ne samo po osobi, već i s vremenom (dugoročno, s poboljšanjem, ali i unutar treninga: na primjer, gotovo je nemoguće ići punom brzinom prije nego što zagrijan). Stoga je ideja ovog projekta jednostavno snimiti a) prethodnu vožnju i b) najbolju vožnju (poznatu i kao rezultat), a zatim dati izravnu povratnu informaciju o tome kako trenutno napredujete u usporedbi s tim vožnjama.

Ako vam to zvuči pomalo apstraktno, prijeđite na korak 7 za detalje o tome što će prikazati dovršeni prikaz

Daljnji cilj ovog projekta je da stvari budu zaista jednostavne i jeftine. Ovisno o tome gdje naručite svoje dijelove, ovaj projekt možete dovršiti za oko 5 USD (ili oko 30 USD pri naručivanju od vrhunskih domaćih prodavača), a ako ste se već igrali s okolinom Arduino, postoji prilično velika šansa da ste već imate većinu ili sve potrebne dijelove.

Korak 1: Popis dijelova

Popis dijelova
Popis dijelova

Idemo kroz popis stvari koje su vam potrebne:

Mikroprocesor kompatibilan s Arduinom

Dosta će poslužiti bilo koji Arduino koji se prodao u posljednjih nekoliko godina. Točna varijanta (Uno / Nano / Pro Mini, 8 ili 16 MHz, 3.3. Ili 5V) nije bitna. Međutim, trebat će vam procesor ATMEGA328 ili bolji, jer ćemo koristiti gotovo 2k RAM -a i 1k EEPROM -a. Ako ste upoznati sa detaljima Arduino svijeta, preporučujem korištenje Pro Mini na 3,3 V jer će biti najjeftiniji i najučinkovitiji za bateriju. Ako ste (relativno) novi u Arduinu, preporučujem "Nano" jer pruža istu funkcionalnost kao i "Uno" u manjem i jeftinijem pakiranju.

Imajte na umu da vam ova instrukcija neće objasniti same osnove. Trebali biste barem instalirati softver Arduino i znati povezati svoj Arduino i učitati skicu. Ako nemate pojma o čemu govorim, prvo pročitajte ova dva jednostavna vodiča: prvo, drugo.

SSD1306 OLED zaslon 128*64 piksela (I2C varijanta, tj. Četiri pina)

Ovo je jedan od najjeftinijih i najlakših dostupnih ekrana danas. Slažem se, sićušan je, ali dovoljno dobar. Naravno, ako već imate zaslon slične ili bolje rezolucije, umjesto toga to će biti moguće koristiti, ali ovo uputstvo je napisano za SSD1306.

  • "Oplata za lemljenje" i nešto kratkospojne žice za izgradnju vašeg prototipa
  • Keramički kondenzator od 100 nF (može i ne mora biti potreban; vidi korak 4)
  • Ili neke croc-kopče, ili magnet, trska i neki kabel (vidi korak 4)
  • Crvena i zelena LED dioda, svaka (izborno; vidi korak 5)
  • Dva otpornika od 220 Ohma (ako koristite LED diode)
  • Tipkalo (također opcionalno)
  • Odgovarajuća baterija (vidi korak 6)

Korak 2: Povezivanje zaslona

Povezivanje zaslona
Povezivanje zaslona

Kao prvo, priključit ćemo zaslon na Arduino. Dostupne su detaljne upute. Međutim, SSD1306 je zaista jednostavno spojiti:

  1. Prikaz VCC -> Arduino 3.3V ili 5V (oba će biti dovoljna)
  2. Zaslon Gnd -> Arduino Gnd
  3. Zaslon SCL -> Arduino A5
  4. Zaslon SCA -> Arduino A4

Zatim u svom Arduino okruženju idite na Sketch-> Include library-> Manage libraries i instalirajte "Adafruit SSD1306". Nažalost, morat ćete urediti biblioteku da biste je konfigurirali za varijantu 128*64 piksela: pronađite svoju mapu "knjižnice" arduino i uredite "Adafruit_SSD1306/Adafruit_SSD1306.h". Potražite "#define SSD1306_128_32", onemogućite tu liniju i umjesto toga omogućite "#define SSD1306_128_64".

Na ovom mjestu trebate učitati Datoteka-> Primjeri-> Adafruit SSD1306-> ssd1306_128x64_i2c kako biste provjerili je li vaš zaslon ispravno povezan. Imajte na umu da ćete možda morati prilagoditi I2C adresu. Čini se da je 0x3C najčešća vrijednost.

U slučaju problema pogledajte detaljnije upute.

Korak 3: Prenesite skicu

Ako je sve dosad funkcioniralo, sada je vrijeme da postavite skicu na svoj Arduino. Ispod ćete pronaći kopiju skice. Potencijalno noviju verziju potražite na stranici projekta github. (Budući da je ovo skica jedne datoteke, dovoljno je samo kopirati datoteku erogmetrino.ino u vaš Arduino prozor).

Ako ste morali promijeniti I2C adresu u prethodnom koraku, morat ćete izvršiti istu prilagodbu, opet, sada, u retku koji počinje s "display.begin".

Nakon prijenosa trebali biste vidjeti neke nule na zaslonu. Pogledat ćemo značenje različitih dijelova zaslona, nakon što se sve ostalo spoji.

Imajte na umu da će se pri prvom pokretanju zaslon prilično sporo osvjetljavati (može potrajati i do deset sekundi), jer će skica prvo poništiti sve podatke pohranjene u EEPROM -u.

Korak 4: Spajanje ergometra

Spajanje ergometra
Spajanje ergometra

Ovaj se korak doista ne može univerzalno opisati jer nisu svi ergometri isti. Međutim, ni oni nisu različiti. Ako vaš ergometar uopće sadrži elektronički pokazivač brzine, mora imati elektronički senzor za otkrivanje okretaja pedala ili nekog (moguće unutarnjeg) zamašnjaka. U mnogim slučajevima to će se jednostavno sastojati od magneta koji prolazi blizu trska (vidi također dolje). Svaki put kad magnet prođe, prekidač će se zatvoriti, signalizirajući jedan okretaj na pokazivaču brzine.

Prva stvar koju trebate učiniti je pregledati dolazne kabele na pokazivaču brzine na vašem ergometru. Ako nađete dvožilni kabel koji negdje dolazi s ergometra, gotovo ste sigurno pronašli vezu sa senzorom. Uz malo sreće, ovo jednostavno možete isključiti iz utičnice i jednostavno ga spojiti na svoj Arduino s nekim croc-isječcima (reći ću vam na koje se pinove treba spojiti za minutu).

Međutim, ako ne možete pronaći takav kabel, niste sigurni jeste li našli pravi ili ga ne možete odspojiti bez ikakvih oštećenja, možete jednostavno zalijepiti mali magnet na jednu od pedala i pričvrstiti trskani prekidač na okvir vašeg erogmetra, tako da će magnet proći kraj njega vrlo blizu. Spojite dvije žice na prekidač i povežite ih sa svojim Arduinom.

Spojite dvije žice (bilo vlastitu, bilo onu s postojećeg senzora) na Arduino Gnd i Arduino pin D2. Ako imate jedan pri ruci, spojite i 100nF kondenzator između pina D2 i Gnd radi "odvajanja". To može, ali i ne mora biti potrebno, ali pomaže u stabilizaciji očitanja.

Kad završite, vrijeme je da uključite svoj Arduino i uskočite u motor za prvi brzi test. Gornji lijevi broj trebao bi početi prikazivati mjeru brzine. Ako to ne uspije, provjerite sve ožičenje i provjerite je li magnet dovoljno blizu trska. Ako vam se mjera brzine dosljedno čini previsokom ili preniskom, jednostavno prilagodite definiciju "CM_PER_CLICK" pri vrhu skice (napomena: skica koristi nazive mjernih podataka, ali se jedinice ne prikazuju niti spremaju bilo gdje, pa to zanemarite i isporuka 100.000 -ih milja po kliku).

Korak 5: Izborne LED diode za brzi status

Dodatne LED diode za brzi status
Dodatne LED diode za brzi status

LED diode opisane u ovom koraku su izborne, ali uredne: Ako mislite ozbiljno čitati knjigu / gledati TV dok vježbate, ne želite previše buljiti u zaslon. No, dvije LED diode u različitim bojama lako će se primijetiti u perifernom vidu i bit će dovoljne za grubu predodžbu o tome kako vam ide.

  • Spojite prvu (crvenu) LED diodu na pin D6 (duži dio LED diode ide na Arduino). Spojite kratki dio LED diode na Gnd preko otpornika od 220 Ohma. Ova LED lampica će zasvijetliti kada budete 10% ili više ispod svoje najbolje brzine u trenutnoj fazi treninga. Vrijeme je da uložite još truda!
  • Spojite drugu (zelenu) LED diodu na pin D5, opet s otpornikom na Gnd. Ova LED lampica će zasvijetliti kada budete unutar 1%ili iznad vašeg najboljeg trčanja. Dobro ti ide!

Želite da LED diode zasvijetle ovisno o tome kako ste prošli u usporedbi s vašim prethodnim trčanjem ili o nekoj proizvoljnoj prosječnoj brzini? Pa, samo spojite gumb između pina D4 i Gnd. Pomoću tog gumba možete prebacivati referencu između "vašeg najboljeg trčanja", "vašeg prethodnog trčanja" ili "vaše trenutne brzine". Malo slovo "P" ili "C" u donjem lijevom kutu značit će posljednja dva načina.

Korak 6: Uključivanje zaslona vašeg ergometra

Napajanje zaslona vašeg ergometra
Napajanje zaslona vašeg ergometra

Postoji mnogo načina za napajanje vašeg zaslona, ali istaknut ću dva koja se čine praktičnijima od drugih:

  1. Kad koristite Arduino Uno ili Nano, vjerojatno ga želite napajati pomoću USB banke za napajanje s ugrađenom indikacijom prazne baterije.
  2. Kada koristite Arduino Pro Mini @ 3.3V (moja preporuka za napredne korisnike), to možete napajati izravno iz jedne LiPo baterije ili tri NiMH ćelije. Budući da će ATMEGA tolerirati opskrbne napone do 5,5 V, ovo možete spojiti izravno na "VCC/ACC", zaobilazeći regulator napona na ploči. U ovom postavljanju bit će i upozorenje o "niskoj bateriji" na oko 3,4 V, bez ikakvog dodatnog hardvera (prikazano u donjem desnom kutu). Budući da se može očekivati da će ATMEGA ispravno raditi, barem do 3.0V ili tako, to bi vam trebalo ostaviti dovoljno vremena da završite svoju jedinicu za vježbanje prije punjenja.

Korak 7: Upotreba zaslona ergometra

Korištenje zaslona vašeg ergometra
Korištenje zaslona vašeg ergometra
Korištenje zaslona vašeg ergometra
Korištenje zaslona vašeg ergometra

Pogledajmo pobliže različite brojeve na vašem zaslonu. Veći broj u gornjem lijevom kutu jednostavno je vaša trenutna brzina, a veći u gornjem desnom kutu je ukupna udaljenost vašeg trenutnog treninga.

Sljedeći redak je vaša prosječna brzina od početka treninga (lijevo) i vrijeme od početka treninga (desno). Imajte na umu da se mjerenje vremena zaustavlja dok je bicikl zaustavljen.

Dosad tako trivijalno. Dvije daljnje linije s desne strane postaju zanimljive: one uspoređuju vaše trenutno vrijeme s vašim prethodnim, odnosno najboljim treningom. Tj. "- 0:01:23" u gornjem dijelu ovih redova značit će da ste dosegli svoju trenutnu udaljenost 1 minutu i 23 sekunde ranije nego u prethodnom trčanju. Dobro. Donji redak "+ 0:00:12" značit će da do trenutne točke zaostajete 12 sekundi za svojim najboljim trčanjem. (Imajte na umu da ova diferencijalna vremena neće biti 100% točna. Vremenske točke pohranjuju se svakih 0,5 km / milje i interpoliraju između toga.) Naravno, neizbježno, na prvom pokretanju, još uvijek nisu zabilježene vremenske reference, a pa će oba gornja retka prikazati samo "-:-:-".

Konačno, donje lijevo područje zaslona sadrži grafikon vaše brzine u zadnjoj minuti. To vam omogućuje da na prvi pogled vidite idete li mirno ili usporavate. (Imajte na umu da će ova linija biti mnogo glatkija u stvarnom treningu - ali jednostavno nije lako održavati stabilan tempo dok pokušavate snimiti sliku …) Vodoravne linije pokazuju prethodnu / najbolju brzinu koju ste postigli blizu trenutne točke vaše prethodne obuke.

LED diode postavljene pri vrhu uspoređuju vašu trenutnu brzinu s najboljom brzinom u ovoj fazi treninga. Zelena pokazuje da ste unutar 1% svog najboljeg, crvena pokazuje da ste više od 10% sporiji od svog najboljeg treninga. Kad vidite crveno svjetlo, vrijeme je da se uložite još malo. Imajte na umu da se, za razliku od gore opisanih diferencijalnih vremena, oni odnose samo na trenutni dio treninga, tj. Moguće je da zaostajete u apsolutnom vremenu, ali zelena pokazuje da sustižete, i obrnuto.

Referentna brzina korištena za dvije LED diode može se promijeniti pritiskom na gumb. Jednim pritiskom prebacit ćete ga s najboljeg na prethodni snimljeni trening (malo slovo "P" pojavit će se u donjem lijevom kutu). Još jedan pritisak i vaša trenutna brzina u trenutku pritiska tipke postat će nova referentna brzina (prikazat će se malo slovo "C"). Potonji je osobito koristan tijekom vašeg prvog treninga s novim zaslonom ergometra, kada još nije zabilježena referenca.

Kad završite s treningom, samo odspojite bateriju. Vaš je trening već spremljen u interni EEPROM vašeg Arduina.

Kao što vidite, na kraju sam lemio svoj prototip. Siguran znak da mi se i sam svidio rezultat. Nadam se da će i vama biti od koristi. Sretno vježbanje!

Preporučeni: