Sadržaj:

Jednostavan zaslon ergometra zasnovan na Arduinu s diferencijalnom povratnom spregom: 7 koraka (sa slikama)
Jednostavan zaslon ergometra zasnovan na Arduinu s diferencijalnom povratnom spregom: 7 koraka (sa slikama)

Video: Jednostavan zaslon ergometra zasnovan na Arduinu s diferencijalnom povratnom spregom: 7 koraka (sa slikama)

Video: Jednostavan zaslon ergometra zasnovan na Arduinu s diferencijalnom povratnom spregom: 7 koraka (sa slikama)
Video: Arduino — растровые изображения из I2C EEPROM на OLED-дисплей 128x64 2024, Juli
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, posebno 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 simulacijom prave vožnje bicikla u VR -u. Koliko su ovo uzbudljive, tehnički ne pomažu mnogo: vježbanje je i dalje dosadno. Umjesto toga, volio bih samo čitati knjigu ili gledati TV dok treniram. Ali tada je teško održati stabilan tempo.

Ideja je ovdje fokusirati se na posljednji problem i dati direktne povratne informacije o tome je li vaš trenutni nivo obuke dovoljno dobar ili biste trebali uložiti još napora. Međutim, "dovoljno dobar" nivo će se razlikovati ne samo od osobe do osobe, 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 pružiti direktnu povratnu informaciju o tome kako trenutno napredujete u odnosu na te vožnje.

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 okruženjem Arduino, postoji prilično velika šansa da ste već imate većinu ili sve potrebne dijelove.

Korak 1: Lista dijelova

Lista delova
Lista delova

Prođimo kroz listu stvari koje su vam potrebne:

Arduino kompatibilan mikroprocesor

Skoro svaki Arduino koji se proda u posljednjih nekoliko godina će poslužiti. Tačna varijanta (Uno / Nano / Pro Mini, 8 ili 16 MHz, 3.3. Ili 5V) nije bitna. Međutim, trebat će vam ATMEGA328 procesor 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 paketu.

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

SSD1306 OLED ekran 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 ekran slične ili bolje rezolucije, moći ćete to umjesto toga 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 (opcionalno; pogledajte korak 5)
  • Dva otpornika od 220 Ohma (ako koristite LED diode)
  • Taster (takođe opciono)
  • Odgovarajuća baterija (vidi korak 6)

Korak 2: Povezivanje ekrana

Povezivanje ekrana
Povezivanje ekrana

Kao prvu stvar, prikač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. Prikaz Gnd -> Arduino Gnd
  3. Prikaz SCL -> Arduino A5
  4. Prikaz 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: locirajte svoju arduino mapu "biblioteke" 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 detaljnija uputstva.

Korak 3: Otpremite skicu

Ako je sve dosad funkcioniralo, sada je vrijeme da postavite skicu na svoj Arduino. Ispod ćete pronaći kopiju skice. Za potencijalno noviju verziju pogledajte stranicu 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 učitavanja, trebali biste vidjeti neke nule koje se pojavljuju na vašem ekranu. Pogledaćemo značenje različitih delova ekrana, nakon što se sve ostalo spoji.

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

Korak 4: Povezivanje ergometra

Povezivanje ergometra
Povezivanje ergometra

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

Prva stvar koju trebate učiniti je pregledati dolazne kabele na pokazivaču brzine na vašem ergometru. Ako otkrijete da dvožilni kabel dolazi negdje unutar 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 pomoću nekoliko croc-isječaka (reći ću vam na koje pinove se trebate povezati 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 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 metrika, ali se jedinice ne prikazuju niti spremaju bilo gdje, pa zanemarite to i isporuka 100.000 -ih milja po kliku).

Korak 5: Opcionalne LED diode za brzi status

Opciono LED diode za brzi status
Opciono 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 ekran. No, dvije LED diode u različitim bojama lako će se primijetiti u perifernom vidu i bit će dovoljne da vam daju 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 kratku nogu LED -a 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. Vreme je da uložite još truda!
  • Spojite drugu (zelenu) LED diodu na pin D5, ponovo s otpornikom na Gnd. Ova LED lampica će zasvijetliti kada budete unutar 1%ili iznad vašeg najboljeg rada. Dobro ti ide!

Želite da LED diode zasvijetle ovisno o tome kako ste prošli u odnosu na prethodnu vožnju ili neku proizvoljnu prosječnu brzinu? 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: Napajanje ekrana vašeg ergometra

Napajanje ekrana vašeg ergometra
Napajanje ekrana vašeg ergometra

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

  1. Kada 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 više, to bi vam trebalo ostaviti dovoljno vremena da završite svoju jedinicu za obuku prije punjenja.

Korak 7: Upotreba ekrana ergometra

Upotreba vašeg ekrana ergometra
Upotreba vašeg ekrana ergometra
Upotreba vašeg ekrana ergometra
Upotreba vašeg ekrana ergometra

Pogledajmo pobliže različite brojeve na ekranu. 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 red 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.

Do sada je bilo trivijalno. Dvije daljnje linije s desne strane postaju zanimljive: one uspoređuju vaše trenutno vrijeme sa vašim prethodnim, odnosno najboljim treningom. Tj. "- 0:01:23" u gornjem dijelu ovih redova značit će da ste dosegli trenutnu udaljenost 1 minutu i 23 sekunde ranije nego u prethodnom trčanju. Dobro. Donja linija "+ 0:00:12" značit će da do trenutne tač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 se pohranjuju svakih 0,5 km / milje i interpoliraju između toga.) Naravno, neizbježno, na vašem prvom pokretanju, još uvijek nisu zabilježene reference vremena, a tako da će oba gornja retka prikazati samo "-:-:-".

Konačno, donji lijevi dio ekrana sadrži grafikon vaše brzine u zadnjoj minuti. Ovo vam omogućava da na prvi pogled vidite da li idete 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 upoređuju vašu trenutnu brzinu sa vašom najboljom brzinom tokom ove faze obuke. Zelena pokazuje da ste unutar 1% svog najboljeg, crvena pokazuje da ste više od 10% sporiji od svog najboljeg treninga. Kada vidite crveno svjetlo, vrijeme je da se uložite još malo. Imajte na umu da se, za razliku od gore opisanih razlika, ovo odnosi 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"). Ovo posljednje je posebno korisno tokom vašeg prvog treninga sa vašim novim ekranom ergometra, kada još uvijek nije zabilježena referenca.

Kad završite s treningom, samo odspojite bateriju. Vaša obuka je već spremljena 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čuje se: