Съдържание:

Прост дисплей с ергометър, базиран на Arduino, с диференциална обратна връзка: 7 стъпки (със снимки)
Прост дисплей с ергометър, базиран на Arduino, с диференциална обратна връзка: 7 стъпки (със снимки)

Видео: Прост дисплей с ергометър, базиран на Arduino, с диференциална обратна връзка: 7 стъпки (със снимки)

Видео: Прост дисплей с ергометър, базиран на Arduino, с диференциална обратна връзка: 7 стъпки (със снимки)
Видео: Introduction to HT16K33 4 Digit LED Seven Segment Display with Arduino 2024, Юли
Anonim
Прост дисплей с ергометър, базиран на Arduino, с диференциална обратна връзка
Прост дисплей с ергометър, базиран на Arduino, с диференциална обратна връзка
Прост дисплей с ергометър, базиран на Arduino, с диференциална обратна връзка
Прост дисплей с ергометър, базиран на Arduino, с диференциална обратна връзка
Прост дисплей с ергометър, базиран на Arduino, с диференциална обратна връзка
Прост дисплей с ергометър, базиран на Arduino, с диференциална обратна връзка

Кардио тренировките са скучни, особено когато тренирате на закрито. Няколко съществуващи проекта се опитват да облекчат това, като правят готини неща, като например свързване на ергометъра към конзола за игри или дори симулиране на истинско каране на велосипед във VR. Вълнуващи, колкото и технически, те всъщност не помагат много: Тренировката все още е скучна. Така че вместо това бих искал да мога да чета книга или да гледам телевизия, докато тренирам. Но тогава е трудно да се поддържа стабилно темпо.

Идеята тук е да се съсредоточите върху последния проблем и да предоставите пряка обратна връзка за това дали текущото ви ниво на обучение е достатъчно добро или трябва да положите още усилия. Нивото "достатъчно добро" обаче ще варира не само за човек, но и с течение на времето (дългосрочно, когато се подобрявате, но и в рамките на тренировъчна сесия: например е почти невъзможно да се движите с пълна скорост, преди да сте затоплен). Следователно идеята зад този проект е просто да запишете а) предишния цикъл и б) най -добрия пробег (известен още като рекорд) и след това да предоставите директна обратна връзка за това как се справяте в момента с тези тиражи.

Ако това звучи малко абстрактно, преминете към Стъпка 7 за подробности за това какво ще покаже завършеният дисплей

Друга цел на този проект е да поддържа нещата наистина прости и евтини. В зависимост от това къде поръчвате частите си, можете да завършите този проект за около $ 5 (или около 30 $, когато поръчвате от първокласни местни продавачи), а ако преди сте играли със средата Arduino, има доста голям шанс вече да сте разполагате с повечето или всички части, от които се нуждаете.

Стъпка 1: Списък на частите

Списък на частите
Списък на частите

Нека преминем през списъка с неща, от които се нуждаете:

Съвместим с Arduino микропроцесор

Почти всеки Arduino, продаден през последните няколко години, ще свърши работа. Точният вариант (Uno / Nano / Pro Mini, 8 или 16 MHz, 3.3. Или 5V) няма значение. Ще ви е необходим обаче процесор ATMEGA328 или по -добър, защото ще използваме почти 2k RAM и 1k EEPROM. Ако сте запознати с тънкостите на света на Arduino, препоръчвам да използвате Pro Mini при 3.3V, тъй като той ще бъде най -евтиният и с най -висока ефективност на батерията. Ако сте (сравнително) нов в Arduino, препоръчвам "Nano", тъй като осигурява същата функционалност като "Uno" в по -малък и по -евтин пакет.

Имайте предвид, че тази инструкция няма да ви запознае с основните неща. Трябва поне да имате инсталиран софтуера Arduino и да знаете как да свържете вашия Arduino и да качите скица. Ако нямате представа за какво говоря, прочетете тези два лесни урока, първо: Първо, второ.

128*64 пиксела SSD1306 OLED дисплей (I2C вариант, т.е. четири пина)

Това е един от най -евтините и лесни налични дисплеи днес. Съгласете се, това е мъничко, но достатъчно добро. Разбира се, ако вече имате дисплей с подобна или по -добра разделителна способност, вместо това ще бъде възможно да го използвате, но тази инструкция е написана за SSD1306.

  • „План за запояване“и малко джъмперна жица за изграждане на вашия прототип
  • Керамичен кондензатор 100nF (може и да не е необходим; вижте стъпка 4)
  • Или някои croc-клипове, или магнит, тръстиков превключвател и малко кабел (вижте Стъпка 4)
  • Червен и зелен светодиод, всеки (по избор; вижте стъпка 5)
  • Два 220Ohm резистора (ако използвате светодиодите)
  • Бутон (също по избор)
  • Подходяща батерия (вижте Стъпка 6)

Стъпка 2: Свързване на дисплея

Свързване на дисплея
Свързване на дисплея

Като първо нещо, ще свържем дисплея към Arduino. Налични са подробни инструкции. SSD1306 обаче е наистина лесен за свързване:

  1. Дисплей VCC -> Arduino 3.3V или 5V (ще е подходящ)
  2. Display Gnd -> Arduino Gnd
  3. Дисплей SCL -> Arduino A5
  4. Дисплей SCA -> Arduino A4

След това в средата на Arduino отидете на Sketch-> Include library-> Manage libraries и инсталирайте „Adafruit SSD1306“. За съжаление ще трябва да редактирате библиотеката, за да я конфигурирате за варианта 128*64 пиксела: намерете папката си „библиотеки“на arduino и редактирайте „Adafruit_SSD1306/Adafruit_SSD1306.h“. Потърсете „#define SSD1306_128_32“, деактивирайте този ред и вместо това активирайте „#define SSD1306_128_64“.

На този етап трябва да заредите File-> Примери-> Adafruit SSD1306-> ssd1306_128x64_i2c, за да проверите дали дисплеят ви е свързан правилно. Обърнете внимание, че може да се наложи да коригирате I2C адреса. 0x3C изглежда е най -често срещаната стойност.

В случай на проблеми, вижте по -подробните инструкции.

Стъпка 3: Качете скицата

Ако всичко е работило, досега е време да качите действителната скица на вашия Arduino. По -долу ще намерите копие на скицата. За потенциално по -нова версия вижте страницата на проекта github. (Тъй като това е скица на един файл, достатъчно е просто да копирате файла erogmetrino.ino във вашия прозорец на Arduino).

Ако трябваше да промените I2C адреса в предишната стъпка, ще трябва да направите същата настройка, отново, сега, в реда, започващ с "display.begin".

След качването трябва да видите някои нули, показващи се на дисплея ви. Ще разгледаме значението на различните раздели на дисплея, след като всичко останало е свързано.

Обърнете внимание, че при първото стартиране дисплеят ще започне да свети доста бавно (може да отнеме около десет секунди), тъй като скицата първо ще нулира всички данни, съхранени в EEPROM.

Стъпка 4: Свързване на ергометъра

Свързване на ергометъра
Свързване на ергометъра

Тази стъпка не може да бъде описана универсално, тъй като не всички ергометри са еднакви. Всички те обаче не са различни. Ако вашият ергометър изобщо включва електронен дисплей за скорост, той трябва да има електронен сензор за откриване на оборотите на педалите или някакво (вероятно вътрешно) маховило някъде. В много случаи това просто ще се състои от магнит, преминаващ близо до тръстиков превключвател (вижте също по -долу). Всеки път, когато магнитът премине, превключвателят ще се затвори, сигнализирайки един оборот към дисплея на скоростта.

Първото нещо, което трябва да направите, е да проверите дисплея на скоростта на вашия ергометър за входящи кабели. Ако откриете двупроводен кабел, идващ някъде от ергометъра, почти сигурно сте намерили връзката към сензора. И с малко късмет можете просто да изключите това и просто да го свържете към вашия Arduino с няколко croc-клипа (ще ви кажа с какви щифтове да се свържете след минута).

Ако обаче не можете да намерите такъв кабел, не се чувствайте сигурни дали сте намерили правилния или не можете да го изключите, без да повредите нищо, можете просто да залепите малък магнит към един от педалите и да фиксирате тръстиков превключвател към рамката на вашия ерометър, така че магнитът да минава много близо до него. Свържете два проводника към превключвателя и ги заведете към вашия Arduino.

Свържете двата проводника (независимо дали са ваши, или тези от съществуващ сензор) ще отидат към Arduino Gnd и Arduino щифт D2. Ако имате такъв под ръка, свържете и 100nF кондензатора между щифт D2 и Gnd за известно "отстраняване". Това може и да не е необходимо, но помага за стабилизиране на показанията.

Когато приключите, е време да включите вашия Arduino и се качете на мотора за първи бърз тест. Горният ляв номер трябва да започне да показва мярка за скорост. Ако това не работи, проверете всички проводници и се уверете, че магнитът е достатъчно близо до тръстиковия превключвател. Ако измерването на скоростта изглежда постоянно прекалено високо или твърде ниско, просто регулирайте дефиницията „CM_PER_CLICK“близо до горната част на скицата (забележка: скицата използва имена на показатели, но никъде не се показват или запазват единици, така че просто игнорирайте това и доставка на 100 000 -те мили на клик).

Стъпка 5: Допълнителни светодиоди за бързо състояние

Допълнителни светодиоди за бързо състояние
Допълнителни светодиоди за бързо състояние

Светодиодите, описани в тази стъпка, не са задължителни, но са спретнати: Ако сериозно се занимавате с четене на книга / гледане на телевизия, докато тренирате, не искате да се налага да се взирате твърде много в дисплея. Но два светодиода в различни цветове лесно ще бъдат забележими в периферното зрение и ще бъдат достатъчни, за да ви дадат приблизителна представа за това как се справяте.

  • Свържете първия (червен) светодиод към щифт D6 (по -дългият крак на светодиода отива към Arduino). Свържете късия крак на светодиода към Gnd чрез резистор 220Ohms. Този светодиод ще светне, когато сте 10% или повече под най -добрата си скорост в текущата фаза на обучението. Време е да положите още усилия!
  • Свържете втория (зелен) светодиод към щифт D5, отново с резистор към Gnd. Този светодиод ще светне, когато сте в рамките на 1%или повече от най -добрия си пробег. Справяш се добре!

Искате светодиодите да светят в зависимост от това как се справяте в сравнение с предишното ви бягане или някаква произволна средна скорост? Е, просто свържете бутон между щифт D4 и Gnd. С помощта на този бутон можете да превключвате препратката между „най -доброто ти бягане“, „предишното ти бягане“или „текущата ти скорост“. Малка буква "P" или "C" в долния ляв ъгъл ще означава последните два режима.

Стъпка 6: Захранване на дисплея на ергометъра

Захранване на дисплея на вашия ергометър
Захранване на дисплея на вашия ергометър

Има много начини да захранвате дисплея си, но ще посоча два, които изглеждат доста по -практични от други:

  1. Когато използвате Arduino Uno или Nano, вероятно искате да го захранвате с помощта на USB захранваща банка с вградена индикация за изтощена батерия.
  2. Когато използвате Arduino Pro Mini @ 3.3V (моята препоръка за напреднали потребители), можете да го захранвате директно от една -единствена LiPo батерия или от три NiMH клетки. Тъй като ATMEGA ще понася захранващо напрежение до 5.5V, можете да го свържете към "VCC/ACC", директно, заобикаляйки бордовия регулатор на напрежението. При тази настройка ще има и предупреждение за "изтощена батерия" при около 3.4V, без никакъв допълнителен хардуер (показва се в долния десен ъгъл). Тъй като може да се очаква ATMEGA да работи правилно, поне до 3.0V или така, това би трябвало да ви остави достатъчно време да завършите тренировъчния си блок преди презареждане.

Стъпка 7: Използване на дисплея на ергометъра

Използване на дисплея на вашия ергометър
Използване на дисплея на вашия ергометър
Използване на дисплея на вашия ергометър
Използване на дисплея на вашия ергометър

Нека разгледаме по -отблизо различните числа на дисплея. По -големият брой в горния ляв ъгъл е просто текущата ви скорост, а по -големият в горния десен ъгъл е общото разстояние в текущото ви обучение.

Следващият ред е средната ви скорост от началото на обучението (вляво) и времето от началото на обучението (вдясно). Обърнете внимание, че времето е спряно, докато моторът е спрян.

Дотук тривиално. Двата допълнителни реда от дясната страна са интересни: Те сравняват текущото време с предишното и най -доброто обучение съответно. Т.е. "- 0:01:23" в горната част на тези редове ще означава, че сте достигнали текущото си разстояние 1 минута и 23 секунди по-рано, отколкото при предишното си бягане. Добре. По -нисък ред от "+ 0:00:12" ще означава, че до текущата точка изоставате с 12 секунди от най -доброто си бягане. (Обърнете внимание, че тези диференциални времена няма да бъдат 100% точни. Времевите точки се съхраняват на всеки 0,5 км / мили и се интерполират между това.) Неизбежно, разбира се, при първото ти пускане все още не са записани справки за време и така че и двата горни реда ще показват само "-:-:-".

И накрая, долната лява част на дисплея съдържа графика на скоростта ви през последната минута. Това ви позволява да видите с един поглед дали вървите стабилно или забавяте темпото. (Имайте предвид, че тази линия ще бъде много по -гладка при реално обучение - но просто не е лесно да се поддържа равномерно темпо, докато се опитвате да направите снимка …) Хоризонталните линии показват предишната / най -добрата скорост, която сте постигнали близо до текущата точка на предишната си обучения.

Светодиодите, монтирани в горната част, сравняват текущата ви скорост с най -добрата ви скорост през тази фаза на обучението. Зеленото показва, че сте в рамките на 1% от най -доброто си, червеното показва, че сте с повече от 10% по -бавни от най -доброто си обучение. Когато видите червената светлина, е време да положите още усилия. Обърнете внимание, че противно на различните времена, описани по -горе, те се отнасят само до текущата част от обучението, т.е.възможно е да изоставате в абсолютно време, но зеленото показва, че наваксвате и обратно.

Референтната скорост, използвана за двата светодиода, може да се променя с помощта на бутона. Едно натискане ще го превключи от най -доброто към предишно записано обучение (малка буква „P“ще се покаже в долния ляв ъгъл). Още едно натискане и текущата ви скорост по време на натискане на бутона ще се превърне в новата референтна скорост (ще се покаже малка буква "C"). Последното е особено полезно по време на първото ви обучение с новия дисплей на ергометъра, когато все още не е записана справка.

Когато приключите с обучението си, просто изключете батерията. Обучението ви вече е записано във вътрешния EEPROM на вашия Arduino.

Както можете да видите, в крайна сметка запоявах своя прототип. Сигурен знак, че резултатът ми хареса. Надявам се, че и вие ще бъдете полезни. Приятно упражнение!

Препоръчано: