Spisu treści:

Prosty wyświetlacz ergometru oparty na Arduino z różnicowym sprzężeniem zwrotnym: 7 kroków (ze zdjęciami)
Prosty wyświetlacz ergometru oparty na Arduino z różnicowym sprzężeniem zwrotnym: 7 kroków (ze zdjęciami)

Wideo: Prosty wyświetlacz ergometru oparty na Arduino z różnicowym sprzężeniem zwrotnym: 7 kroków (ze zdjęciami)

Wideo: Prosty wyświetlacz ergometru oparty na Arduino z różnicowym sprzężeniem zwrotnym: 7 kroków (ze zdjęciami)
Wideo: Składany ergometr wioślarski #komutopotrzebne 2024, Grudzień
Anonim
Prosty wyświetlacz ergometru oparty na Arduino z różnicowym sprzężeniem zwrotnym
Prosty wyświetlacz ergometru oparty na Arduino z różnicowym sprzężeniem zwrotnym
Prosty wyświetlacz ergometru oparty na Arduino z różnicowym sprzężeniem zwrotnym
Prosty wyświetlacz ergometru oparty na Arduino z różnicowym sprzężeniem zwrotnym
Prosty wyświetlacz ergometru oparty na Arduino z różnicowym sprzężeniem zwrotnym
Prosty wyświetlacz ergometru oparty na Arduino z różnicowym sprzężeniem zwrotnym

Trening kardio jest nudny, szczególnie podczas ćwiczeń w pomieszczeniach. Kilka istniejących projektów próbuje to złagodzić, robiąc fajne rzeczy, takie jak podłączenie ergometru do konsoli do gier, a nawet symulowanie prawdziwej jazdy rowerem w VR. Ekscytujące, ponieważ są one technicznie rzecz biorąc, nie pomagają zbytnio: trening wciąż jest nudny. Więc zamiast tego chciałbym móc po prostu czytać książkę lub oglądać telewizję podczas treningu. Ale wtedy trudno jest utrzymać stałe tempo.

Chodzi o to, aby skupić się na tym drugim problemie i przekazać bezpośrednią informację zwrotną, czy twój obecny poziom treningu jest wystarczająco dobry, czy też powinieneś włożyć trochę więcej wysiłku. Jednak poziom „wystarczająco dobry” będzie się różnić nie tylko w zależności od osoby, ale także w czasie (na dłuższą metę, gdy stajesz się lepszy, ale także w trakcie sesji treningowej: na przykład prawie niemożliwe jest osiągnięcie pełnej prędkości przed osiągnięciem rozgrzana). Dlatego ideą tego projektu jest po prostu nagranie a) poprzedniego biegu ib) najlepszego biegu (czyli najlepszych wyników), a następnie przekazanie bezpośredniej informacji zwrotnej na temat tego, jak obecnie radzisz sobie w porównaniu z tymi biegami.

Jeśli brzmi to nieco abstrakcyjnie, przejdź do kroku 7, aby uzyskać szczegółowe informacje na temat tego, co pokaże gotowy wyświetlacz

Kolejnym celem tego projektu jest utrzymanie rzeczy naprawdę prostych i tanich. W zależności od tego, gdzie zamawiasz części, możesz ukończyć ten projekt za około 5 USD (lub około 30 USD przy zamawianiu u krajowych sprzedawców premium), a jeśli wcześniej bawiłeś się środowiskiem Arduino, jest dość duża szansa, że już mieć większość lub wszystkie potrzebne części.

Krok 1: Lista części

Lista części
Lista części

Przejrzyjmy listę potrzebnych rzeczy:

Mikroprocesor zgodny z Arduino

Prawie każde Arduino sprzedane w ciągu ostatnich kilku lat wystarczy. Dokładny wariant (Uno / Nano / Pro Mini, 8 lub 16 MHz, 3,3. lub 5 V) nie ma znaczenia. Potrzebny będzie jednak procesor ATMEGA328 lub lepszy, ponieważ będziemy używać prawie 2k RAM i 1k EEPROM. Jeśli znasz tajniki świata Arduino, polecam używać Pro Mini z napięciem 3,3 V, ponieważ będzie on najtańszy i najbardziej energooszczędny. Jeśli jesteś (stosunkowo) nowy w Arduino, polecam "Nano", ponieważ zapewnia taką samą funkcjonalność jak "Uno" w mniejszym i tańszym pakiecie.

Zauważ, że ta instrukcja nie omówi podstaw. Powinieneś przynajmniej mieć zainstalowane oprogramowanie Arduino i wiedzieć, jak podłączyć Arduino i przesłać szkic. Jeśli nie masz pojęcia, o czym mówię, przeczytaj te dwa proste tutoriale: pierwszy, drugi.

128*64 pikselowy wyświetlacz OLED SSD1306 (wariant I2C, czyli cztery piny)

Jest to obecnie jeden z najtańszych i najłatwiejszych dostępnych wyświetlaczy. Zgadzam się, jest mały, ale wystarczająco dobry. Oczywiście, jeśli masz już wyświetlacz o podobnej lub lepszej rozdzielczości, możesz go użyć zamiast tego, ale ta instrukcja jest napisana dla dysku SSD1306.

  • „Płytka stykowa bez lutowania” i przewód połączeniowy do budowy prototypu
  • Kondensator ceramiczny 100nF (może być potrzebny lub nie; patrz krok 4)
  • Albo klipsy krokodylkowe, albo magnes, kontaktron i trochę kabla (patrz krok 4)
  • Każda czerwona i zielona dioda LED (opcjonalnie; patrz krok 5)
  • Dwa rezystory 220Ohm (jeśli używane są diody LED)
  • Przycisk (również opcjonalnie)
  • Odpowiednia bateria (patrz krok 6)

Krok 2: Podłączanie wyświetlacza

Podłączanie wyświetlacza
Podłączanie wyświetlacza

W pierwszej kolejności podłączymy wyświetlacz do Arduino. Dostępne są szczegółowe instrukcje. Jednak SSD1306 jest naprawdę łatwy do podłączenia:

  1. Wyświetl VCC -> Arduino 3,3 V lub 5 V (albo tak)
  2. Wyświetlacz Gnd -> Arduino Gnd
  3. Wyświetlacz SCL -> Arduino A5
  4. Wyświetlacz SCA -> Arduino A4

Następnie w środowisku Arduino przejdź do Szkic->Dołącz bibliotekę->Zarządzaj bibliotekami i zainstaluj "Adafruit SSD1306". Niestety, będziesz musiał edytować bibliotekę, aby skonfigurować ją dla wariantu 128*64 pikseli: znajdź folder "biblioteki" arduino i edytuj "Adafruit_SSD1306/Adafruit_SSD1306.h". Wyszukaj „#define SSD1306_128_32”, wyłącz ten wiersz i zamiast tego włącz „#define SSD1306_128_64”.

W tym momencie należy załadować Plik->Przykłady->Adafruit SSD1306->ssd1306_128x64_i2c w celu sprawdzenia, czy wyświetlacz jest prawidłowo podłączony. Pamiętaj, że może być konieczne dostosowanie adresu I2C. Najpopularniejszą wartością wydaje się być 0x3C.

W przypadku problemów zapoznaj się z bardziej szczegółowymi instrukcjami.

Krok 3: Prześlij szkic

Jeśli do tej pory wszystko działało, nadszedł czas, aby przesłać rzeczywisty szkic do Arduino. Poniżej znajdziesz kopię szkicu. Potencjalnie nowszą wersję można znaleźć na stronie projektu github. (Ponieważ jest to szkic pojedynczego pliku, wystarczy skopiować plik erogmetrino.ino do okna Arduino).

Gdybyś musiał zmodyfikować adres I2C w poprzednim kroku, będziesz musiał dokonać tej samej regulacji, ponownie, teraz, w linii zaczynającej się od „display.begin”.

Po przesłaniu na wyświetlaczu powinno pojawić się kilka zer. Przyjrzymy się znaczeniu różnych sekcji wyświetlacza po podłączeniu wszystkich innych elementów.

Zwróć uwagę, że przy pierwszym uruchomieniu wyświetlacz będzie się zapalał dość wolno (może to zająć do około dziesięciu sekund), ponieważ szkic najpierw wyzeruje wszystkie dane przechowywane w EEPROM.

Krok 4: Podłączanie ergometru

Podłączanie ergometru
Podłączanie ergometru

Tego kroku nie da się opisać uniwersalnie, ponieważ nie wszystkie ergometry są takie same. Jednak nie wszystkie się różnią. Jeśli twój ergometr w ogóle zawiera elektroniczny wyświetlacz prędkości, musi mieć czujnik elektroniczny do wykrywania obrotów pedałów lub jakiegoś (prawdopodobnie wewnętrznego) koła zamachowego, gdzieś. W wielu przypadkach składa się to po prostu z magnesu przechodzącego w pobliżu kontaktronu (patrz również poniżej). Za każdym razem, gdy magnes przechodzi, przełącznik zamyka się, sygnalizując jeden obrót na wyświetlaczu prędkości.

Pierwszą rzeczą, którą powinieneś zrobić, to sprawdzić wyświetlacz prędkości na ergometrze pod kątem przychodzących kabli. Jeśli znajdziesz dwużyłowy kabel wychodzący gdzieś z ergometru, prawie na pewno znalazłeś połączenie z czujnikiem. A przy odrobinie szczęścia możesz to po prostu odłączyć i po prostu podłączyć do Arduino za pomocą kilku klipsów typu croc (za chwilę powiem ci, do jakich pinów się podłączyć).

Jeśli jednak nie możesz znaleźć takiego kabla, nie masz pewności, czy znalazłeś właściwy, czy nie możesz go odłączyć bez uszkodzenia czegokolwiek, możesz po prostu przykleić mały magnes do jednego z pedałów i przymocować kontaktron do ramy erogmetru, tak aby magnes przechodził obok niego bardzo blisko. Podłącz dwa przewody do przełącznika i poprowadź je do Arduino.

Podłącz dwa przewody (własne, czy te z istniejącego czujnika) trafią do Arduino Gnd, a Arduino pin D2. Jeśli masz taki pod ręką, podłącz również kondensator 100nF między pin D2 a Gnd, aby uzyskać „odbicie”. Może to być potrzebne lub nie, ale pomaga ustabilizować odczyty.

Po zakończeniu nadszedł czas, aby zasilić Arduino i wskoczyć na rower, aby wykonać pierwszy szybki test. Liczba w lewym górnym rogu powinna zacząć pokazywać miarę prędkości. Jeśli to nie zadziała, sprawdź całe okablowanie i upewnij się, że magnes znajduje się wystarczająco blisko kontaktronu. Jeśli miara prędkości wydaje się stale zbyt wysoka lub zbyt niska, po prostu dostosuj definicję „CM_PER_CLICK” w górnej części szkicu (uwaga: szkic używa nazw metrycznych, ale żadne jednostki nie są nigdzie wyświetlane ani zapisywane, więc po prostu to zignoruj i dostarcza 100 000 tys. mili na kliknięcie).

Krok 5: Opcjonalne diody LED szybkiego stanu

Opcjonalne diody LED szybkiego stanu
Opcjonalne diody LED szybkiego stanu

Diody LED opisane w tym kroku są opcjonalne, ale schludne: jeśli poważnie myślisz o czytaniu książki / oglądaniu telewizji podczas ćwiczeń, nie chcesz zbytnio wpatrywać się w wyświetlacz. Ale dwie diody LED w różnych kolorach będą łatwo zauważalne w widzeniu peryferyjnym i wystarczą, aby dać ci ogólne pojęcie o tym, jak sobie radzisz.

  • Podłącz pierwszą (czerwoną) diodę LED do pinu D6 (dłuższa noga diody trafia do Arduino). Podłącz krótką nogę diody LED do Gnd za pomocą rezystora 220 omów. Ta dioda zaświeci się, gdy będziesz o 10% lub więcej poniżej swojej najlepszej prędkości w bieżącej fazie treningu. Czas włożyć więcej wysiłku!
  • Podłącz drugą (zieloną) diodę LED do pinu D5, ponownie z rezystorem do Gnd. Ta dioda LED zaświeci się, gdy osiągniesz 1% lub więcej swojego najlepszego biegu. Robisz dobrze!

Chcesz, aby diody LED zaświeciły się w zależności od tego, jak sobie radzisz w porównaniu z poprzednim biegiem, lub od jakiejś arbitralnej średniej prędkości? Cóż, wystarczy podłączyć przycisk między pinem D4 i Gnd. Za pomocą tego przycisku możesz przełączać odniesienie między "najlepszym biegiem", "poprzednim biegiem" lub "bieżącą prędkością". Mała litera „P” lub „C” w lewym dolnym rogu będzie oznaczać dwa ostatnie tryby.

Krok 6: Zasilanie wyświetlacza ergometru

Zasilanie wyświetlacza ergometru
Zasilanie wyświetlacza ergometru

Istnieje wiele sposobów zasilania wyświetlacza, ale wskażę dwa, które wydają się bardziej praktyczne niż inne:

  1. Używając Arduino Uno lub Nano, prawdopodobnie chcesz zasilać go za pomocą power-banku USB z wbudowanym wskaźnikiem niskiego poziomu naładowania baterii.
  2. Korzystając z Arduino Pro Mini @ 3,3 V (moja rekomendacja dla zaawansowanych użytkowników), możesz zasilać go bezpośrednio z jednego akumulatora LiPo lub z trzech ogniw NiMH. Ponieważ ATMEGA będzie tolerować napięcia zasilania do 5,5 V, można ją podłączyć bezpośrednio do "VCC/ACC", z pominięciem wbudowanego regulatora napięcia. W tej konfiguracji pojawi się również ostrzeżenie o niskim poziomie naładowania baterii przy około 3,4 V, bez dodatkowego sprzętu (wyświetlane w prawym dolnym rogu). Ponieważ można oczekiwać, że ATMEGA będzie działała poprawnie, przynajmniej do około 3,0 V, powinno to dać ci wystarczająco dużo czasu na ukończenie jednostki treningowej przed ponownym naładowaniem.

Krok 7: Korzystanie z wyświetlacza ergometru

Korzystanie z wyświetlacza ergometru
Korzystanie z wyświetlacza ergometru
Korzystanie z wyświetlacza ergometru
Korzystanie z wyświetlacza ergometru

Przyjrzyjmy się bliżej różnym liczbom na wyświetlaczu. Większa liczba w lewym górnym rogu to po prostu aktualna prędkość, a większa liczba w prawym górnym rogu to całkowity dystans w bieżącym treningu.

Następna linia to Twoja średnia prędkość od początku treningu (po lewej) oraz czas od rozpoczęcia treningu (po prawej). Zwróć uwagę, że pomiar czasu jest zatrzymywany, gdy rower jest zatrzymany.

Do tej pory tak trywialne. Dwie kolejne linie po prawej stronie to miejsce, w którym robi się interesująco: Porównują one Twój aktualny czas odpowiednio z poprzednim i najlepszym treningiem. Tj. „- 0:01:23” w górnej części tych linii oznacza, że pokonałeś aktualny dystans o 1 minutę i 23 sekundy wcześniej niż podczas poprzedniego biegu. Dobry. Niższa linia „+ 0:00:12” będzie oznaczać, że do obecnego punktu pozostajesz 12 sekund w tyle za swoim najlepszym biegiem. (Zauważ, że te czasy różnicowe nie będą w 100% dokładne. Punkty czasowe są przechowywane co 0,5 km/mil i są interpolowane między tymi wartościami.) Oczywiście podczas pierwszego biegu nie zarejestrowano jeszcze żadnych odniesień czasowych i więc obie powyższe linie pokażą po prostu "--:--:--".

Wreszcie lewy dolny obszar wyświetlacza zawiera wykres prędkości z ostatniej minuty. Pozwala to na pierwszy rzut oka zobaczyć, czy idziesz stabilnie, czy zwalniasz. (Zauważ, że ta linia będzie znacznie gładsza w prawdziwym treningu - ale po prostu nie jest łatwo utrzymać stałe tempo podczas robienia zdjęcia…) Poziome linie wskazują poprzednią / najlepszą prędkość, jaką osiągnąłeś w pobliżu bieżącego punktu poprzedniego szkolenia.

Diody LED zamontowane u góry porównują Twoją aktualną prędkość z Twoją najlepszą prędkością podczas tej fazy treningu. Zielony oznacza, że jesteś w 1% swojego najlepszego treningu, a czerwony oznacza, że jesteś o ponad 10% wolniejszy od najlepszego treningu. Kiedy zobaczysz czerwone światło, czas włożyć więcej wysiłku. Zauważ, że w przeciwieństwie do różnic czasowych opisanych powyżej, odnoszą się one tylko do aktualnej części treningu, tzn. możliwe, że jesteś w tyle w czasie bezwzględnym, ale zielony pokazuje, że nadrabiasz zaległości i na odwrót.

Za pomocą przycisku można zmienić prędkość odniesienia używaną dla dwóch diod LED. Jedno naciśnięcie przełączy go z najlepszego na poprzednio zarejestrowany trening (mała litera "P" pojawi się w lewym dolnym rogu). Kolejne naciśnięcie spowoduje, że aktualna prędkość w momencie naciśnięcia przycisku stanie się nową prędkością odniesienia (pokaże się mała litera „C”). Ta ostatnia funkcja jest szczególnie przydatna podczas pierwszego treningu z nowym wyświetlaczem ergometru, gdy nie zarejestrowano jeszcze odniesienia.

Po zakończeniu treningu wystarczy odłączyć akumulator. Twój trening został już zapisany w wewnętrznej pamięci EEPROM Twojego Arduino.

Jak widać, skończyło się lutowaniem prototypu. Pewny znak, że sam wynik mi się podobał. Mam nadzieję, że tobie też się przyda. Miłego ćwiczenia!

Zalecana: