Мазмуну:

Жөнөкөй Arduino негизделген эргометр дисплейи Дифференциалдуу пикир менен: 7 кадам (сүрөттөр менен)
Жөнөкөй Arduino негизделген эргометр дисплейи Дифференциалдуу пикир менен: 7 кадам (сүрөттөр менен)

Video: Жөнөкөй Arduino негизделген эргометр дисплейи Дифференциалдуу пикир менен: 7 кадам (сүрөттөр менен)

Video: Жөнөкөй Arduino негизделген эргометр дисплейи Дифференциалдуу пикир менен: 7 кадам (сүрөттөр менен)
Video: Робототехника Arduino комплектиси 2024, Ноябрь
Anonim
Жөнөкөй Arduino негизделген Ergometer дисплейи Дифференциалдуу кайтарым байланыш менен
Жөнөкөй Arduino негизделген Ergometer дисплейи Дифференциалдуу кайтарым байланыш менен
Жөнөкөй Arduino негизделген Ergometer Display Дифференциалдуу кайтарым байланыш менен
Жөнөкөй Arduino негизделген Ergometer Display Дифференциалдуу кайтарым байланыш менен
Жөнөкөй Arduino негизделген Ergometer Display Дифференциалдуу кайтарым байланыш менен
Жөнөкөй Arduino негизделген Ergometer Display Дифференциалдуу кайтарым байланыш менен

Кардио-машыгуу кызыксыз, өзгөчө үйдө машыгуу учурунда. Бир нече иштеп жаткан долбоорлор муну жеңилдетүүгө аракет кылышат, мисалы, эргометрди оюн консолуна кошуу, же VRде чыныгы велосипедди тууроо. Кызыктуусу, техникалык жактан алар анча деле жардам бербейт: Машыгуу дагы кызыксыз. Ошентип, анын ордуна, мен машыгуу учурунда жөн эле китеп окуп же телевизор көргүм келет. Бирок андан кийин туруктуу темп менен жүрүү кыйын.

Бул жердеги идея, акыркы көйгөйгө көңүл буруу жана түздөн-түз кайтарым байланышты камсыз кылуу, сиздин учурдагы даярдык деңгээлиңиз жетиштүүбү же дагы бир аз күч жумшашыңыз керекпи. Бирок, "жетишерлик жакшы" деңгээли бир адамга эле эмес, убакыттын өтүшү менен да өзгөрөт (узак мөөнөттүү, жакшырган сайын, бирок машыгуу учурунда да: мисалы, толук ылдамдыкта жүрүү дээрлик мүмкүн эмес жылуу). Ошондуктан, бул долбоордун идеясы жөн гана а) мурунку чуркоо жана б) эң мыкты чуркоо (aka highscore) жазуу, анан ошол жүгүрүүлөргө салыштырмалуу өзүңүздүн кандай экениңиз жөнүндө түздөн -түз пикир берүү.

Эгерде бул бир аз абстрактуу угулса, 7 -кадамга өтүңүз, аяктаган дисплей эмнени көрсөтөрүн билүү үчүн

Бул долбоордун дагы бир максаты - чындыгында жөнөкөй жана арзан нерселерди сактоо. Бөлүктөрүңүздү кайда заказ кылганыңызга жараша, бул долбоорду болжол менен 5 долларга (же премиум ички сатуучулардан заказ кылууда 30 долларга) бүтүрө аласыз, эгер сиз Arduino чөйрөсү менен ойногон болсоңуз, анда буга чейин сизде жакшы мүмкүнчүлүк бар сизге керектүү бөлүктөрдүн көбү же бардыгы бар.

1 -кадам: Бөлүктөрдүн тизмеси

Тетиктер тизмеси
Тетиктер тизмеси

Келгиле, керектүү нерселердин тизмесин карап көрөлү:

Arduino менен шайкеш келген микропроцессор

Акыркы бир нече жыл ичинде сатылган Arduino дээрлик баарын жасайт. Так вариант (Uno / Nano / Pro Mini, 8 же 16 MHz, 3.3. Же 5V) мааниге ээ эмес. Бирок, сизге ATMEGA328 же андан жакшыраак процессор керек болот, анткени биз 2км оперативдүү RAM менен 1кг EEPROM колдонобуз. Эгерде сиз Arduino дүйнөсүнүн майда -чүйдөсүнө чейин тааныш болсоңуз, анда мен Pro Mini 3.3V колдонууну сунуштайм, анткени ал эң арзан жана батарейканы үнөмдүү кылат. Эгерде сиз (салыштырмалуу) Arduino үчүн жаңы болсоңуз, анда мен "Нанону" сунуштайм, анткени ал кичинекей жана арзаныраак пакетте "Uno" менен бирдей мүмкүнчүлүктү камсыз кылат.

Белгилей кетчү нерсе, бул көрсөтмө сизге эң негиздери аркылуу сүйлөбөйт. Сиз жок дегенде Arduino программасын орнотуп алышыңыз керек жана Arduino менен туташууну жана эскизди жүктөөнү билишиңиз керек. Эгерде сизде түшүнүк жок болсо, мен эмнени айтып жатам, бул эки оңой үйрөткүчтү окуңуз: биринчиси, экинчиси.

128*64 пикселдүү SSD1306 OLED дисплейи (I2C варианты, б.а. төрт казык)

Бул бүгүнкү күндө эң арзан жана эң оңой дисплейлердин бири. Макулмун, кичинекей, бирок жетиштүү. Албетте, эгерде сизде буга окшош же жакшыраак чечимдин дисплейи болсо, анын ордуна аны колдонууга болот, бирок бул көрсөтмө SSD1306 үчүн жазылган.

  • Прототипти жасоо үчүн "solderless breadboard" жана кээ бир секирүүчү зымдар
  • 100nF керамикалык конденсатор (мүмкүн же кереги жок; 4 -кадамды караңыз)
  • Же кээ бир крок-клиптер, же магнит, камыш которгуч жана кээ бир кабель (4-кадамды караңыз)
  • Кызыл жана жашыл LED, ар бири (милдеттүү эмес; 5 -кадамды караңыз)
  • 220Ohm эки резистор (эгерде LEDди колдонсоңуз)
  • Баскыч (ошондой эле милдеттүү эмес)
  • Ылайыктуу батарея (6 -кадамды караңыз)

2 -кадам: Дисплейди туташтыруу

Дисплейди туташтыруу
Дисплейди туташтыруу

Биринчи нерсе катары, биз дисплейди Arduino менен байланыштырабыз. Толук көрсөтмөлөр бар. Бирок, SSD1306 туташтыруу чынында оңой:

  1. VCCди көрсөтүү -> Arduino 3.3V же 5V (же жасайт)
  2. Gnd көрсөтүү -> Arduino Gnd
  3. SCL дисплейи -> Arduino A5
  4. SCA дисплейи -> Arduino A4

Андан кийин, Arduino чөйрөңүздө Sketch-> Китепкана кошуу-> Китепканаларды башкаруу бөлүмүнө өтүп, "Adafruit SSD1306" орнотуңуз. Тилекке каршы, китепкананы 128*64 пикселдик вариантка конфигурациялоо үчүн аны түзөтүүгө туура келет: arduino "китепканалар" папкасын таап, "Adafruit_SSD1306/Adafruit_SSD1306.h" түзөтүңүз. "#Define SSD1306_128_32" издеңиз, ошол линияны өчүрүп, ордуна "#define SSD1306_128_64" күйгүзүңүз.

Бул жерде сиз дисплейиңиздин туура, туура туташуусун текшерүү үчүн File-> Examples-> Adafruit SSD1306-> ssd1306_128x64_i2c жүктөшүңүз керек. I2C-дарегин тууралашыңыз керек экенин эске алыңыз. 0x3C эң кеңири таралган мааниге ээ.

Кыйынчылык болсо, кененирээк нускамаларга кайрылыңыз.

3 -кадам: Эскизди жүктөө

Эгерде баары иштесе, азырынча эскизди Arduinoго жүктөө убактысы келди. Сиз төмөндө эскиздин көчүрмөсүн таба аласыз. Потенциалдуу жаңы версия үчүн github долбоорунун баракчасына кайрылыңыз. (Бул бир файлдын эскизи болгондуктан, erogmetrino.ino файлын Arduino терезеңизге көчүрүү жетиштүү).

Эгерде сиз мурунку кадамда I2C дарегин өзгөртүүгө туура келсе, анда дагы эле "display.begin" менен башталган сапта, ошол эле тууралоону жасашыңыз керек болот.

Жүктөп бергенден кийин, дисплейиңизде кээ бир нөлдөрдү көрүшүңүз керек. Калганынын баары илингенден кийин, дисплейдин ар кандай бөлүмдөрүнүн маанисин карайбыз.

Белгилей кетсек, биринчи башталышта дисплей бир аз жайыраак күйөт (болжол менен он секундга чейин созулушу мүмкүн), анткени эскиз EEPROMдо сакталган бардык маалыматтарды нөлгө айландырат.

4 -кадам: Эргометрди туташтыруу

Эргометрди туташтыруу
Эргометрди туташтыруу

Бул кадамды чындыгында универсалдуу түрдө сүрөттөө мүмкүн эмес, анткени бардык эргометрлер бирдей эмес. Бирок, алардын баары бири -биринен айырмаланбайт. Эгерде сиздин эргометрде электрондук ылдамдык дисплейи камтылган болсо, анда педалдардын, же кандайдыр бир (мүмкүн ички) учуучу дөңгөлөктүн айлануусун аныктоочу электрондук сенсорго ээ болушу керек. Көпчүлүк учурларда, бул камыш которгучтун жанынан өтүүчү магниттен турат (ошондой эле төмөндө караңыз). Магнит өткөн сайын, которгуч жабылат, бул ылдамдыкты көрсөтүү үчүн бир революцияны билдирет.

Эң биринчи кылышыңыз керек болгон нерселер үчүн эргометрдеги дисплейди карап чыгуу. Эгер сиз эргометрдин ичинен бир жерден эки зым кабелин тапсаңыз, сенсорго туташууну таптыңыз. Жана бир аз ийгилик менен, сиз аны жөн эле сууруп салсаңыз болот жана аны Arduinoңузга бир нече крок-клиптер менен туташтырсаңыз болот (мен сизге бир мүнөттө кандай түйүндөрдү туташтыруу керек экенин айтам).

Бирок, эгер сиз мындай кабелди таба албасаңыз, туура кабелин тапканыңызга ишенбеңиз, же эч нерсеге зыян келтирбестен ажырата албасаңыз, анда кичинекей магнитти педалдардын бирине скотч менен жабыштырып, камыш өчүргүчтү erogmeter рамаңызга оңдоп койсоңуз болот., магнит анын жанынан өтө жакын өтөт. Коммутаторго эки зымды туташтырып, аларды Arduinoго алып барыңыз.

Эки зымды туташтырыңыз (өзүңүздүкү болобу же учурдагы сенсордонбу) Arduino Gnd жана Arduino pin D2ге кетет. Эгерде сизде колуңузда болсо, анда 100nF конденсаторун D2 жана Gnd pinлеринин ортосуна туташтырып, "дебунинг" үчүн. Бул керек же мүмкүн эмес, бирок көрсөткүчтөрдү турукташтырууга жардам берет.

Бүткөндөн кийин, Arduinoңузду иштетүү убактысы келди жана велосипед менен секирип, биринчи тез тесттен өтүңүз. Сол жактагы сан ылдамдыкты көрсөтө башташы керек. Эгерде бул иштебесе, бардык зымдарды текшериңиз жана магнит камыш которгучка жетишерлик жакын экенин текшериңиз. Эгерде ылдамдык ченеми өтө эле жогору же өтө төмөн көрүнсө, эскиздин үстүнө жакын жайгашкан "CM_PER_CLICK" аныктамасын тууралаңыз (эскертүү: эскизде метрикалык аталыштар колдонулат, бирок эч бирдик эч жерде көрсөтүлбөйт жана сакталбайт, андыктан аны этибарга албаңыз жана бир чыкылдатууга 100,000ths миля жеткирүү).

5 -кадам: Кошумча Ыкчам Статус LED

Кошумча Quick Status LED'лери
Кошумча Quick Status LED'лери

Бул кадамда сүрөттөлгөн диоддор милдеттүү эмес, бирок тыкан: Эгерде сиз машыгуу учурунда китеп окууга / сыналгы көрүүгө олуттуу карасаңыз, дисплейди көп карап турганыңыз келбейт. Бирок ар кандай түстөгү эки светодиод перифериялык көрүнүштө оңой эле байкалат жана сизге кандай кылып жатканыңыз жөнүндө орой түшүнүк берүү үчүн жетиштүү болот.

  • Биринчи (кызыл) LEDди D6 пинге туташтырыңыз (LEDдин узун буту Arduinoго кетет). LEDдин кыска бутун 220Ohms резистору аркылуу Gndге туташтырыңыз. Бул светодиод күйүп кетет, эгер сиз тренингдин учурдагы баскычында эң жакшы ылдамдыгыңыздан 10% же андан көп болсоңуз. Дагы аракет кылуу убактысы келди!
  • Экинчи (жашыл) светодиодду D5 пинге кайра Gnd резистору менен туташтырыңыз. Бул светодиод күйөт, качан сиз 1%чегинде, же эң жогору чуркаганыңыздан жогору. Сен жакшы кылып жатасың!

Сиз мурдагы чуркооңузга же орточо ылдамдыкка салыштырмалуу кандай болгонуна жараша светодиоддордун күйүшүн каалайсызбы? Ооба, жөн эле пин D4 менен Gndдин ортосундагы баскычты туташтырыңыз. Бул баскычты колдонуу менен сиз "эң мыкты чуркоо", "мурунку чуркоо" же "учурдагы ылдамдыгыңыз" ортосундагы шилтемени алмаштыра аласыз. Кичи тамга "P", же "C" төмөнкү сол бурчунда акыркы эки режимди билдирет.

6 -кадам: Эргометр дисплейиңизди иштетүү

Эргометр дисплейиңизди иштетүү
Эргометр дисплейиңизди иштетүү

Дисплейиңизди иштетүүнүн көптөгөн жолдору бар, бирок мен башкаларга караганда кыйла практикалык көрүнгөн экөөнү көрсөтөм:

  1. Arduino Uno же Nano колдонгондо, балким, батарейканын көрсөткүчү аз USB кубаттуулук банкын колдонуп кубаттайсыз.
  2. Arduino Pro Mini @ 3.3V колдонгондо (өнүккөн колдонуучулар үчүн менин сунушум), сиз аны бир LiPo батарейкасынан же үч NiMH уячасынан түз эле иштете аласыз. ATMEGA 5.5В чейин жеткирүү чыңалуусуна чыдай тургандыктан, сиз муну "VCC/ACC" ге туташтырсаңыз болот, борттогу чыңалуу жөндөгүчүн айланып өтүү менен. Бул орнотууда, 3.4V тегерегинде, эч кандай кошумча жабдуулары жок (батареянын аздыгы) эскертүүсү болот (төмөнкү оң бурчта көрсөтүлгөн). ATMEGAнын туура иштешин күтүүгө болот, жок дегенде 3.0Вге чейин, бул сиздин машыгууңузду кайра кубаттоодон мурун бүтүрүүгө жетиштүү убакыт калтырышы керек.

7 -кадам: Эргометр дисплейиңизди колдонуу

Эргометр дисплейиңизди колдонуу
Эргометр дисплейиңизди колдонуу
Эргометр дисплейиңизди колдонуу
Эргометр дисплейиңизди колдонуу

Келгиле, дисплейиңиздеги ар кандай сандарды жакшылап карап көрөлү. Сол жактагы көп сан - бул сиздин учурдагы ылдамдыгыңыз, ал эми оң жактагы чоңураак саны - учурдагы машыгууңуздагы жалпы аралык.

Кийинки сап - машыгуу башталгандан берки орточо ылдамдыгыңыз (солдо) жана машыгуу башталгандан берки убакыт (оңдо). Убакыт велосипед токтоп турганда токтотулганына көңүл буруңуз.

Азырынча анча маанилүү эмес. Оң жагындагы дагы эки сызык кызыктуу жерде: Булар учурдагы убактыңызды мурунку жана эң мыкты тренингиңиз менен салыштырат. Башкача айтканда Бул сызыктардын үстүндөгү "- 0:01:23" сиз учурдагы аралыкка мурунку чуркооңузга караганда 1 мүнөт 23 секунд эрте жеткениңизди билдирет. Жакшы. "+ 0:00:12" төмөн сызыгы учурдагы чекитке чейин эң мыкты чуркооңуздан 12 секунд артта калып жатканыңызды билдирет. (Бул дифференциалдык убакыттар 100% так болбойт. Убакыт чекиттери ар бир.5 км / милде сакталат жана анын ортосунда интерполяцияланат.) Албетте, биринчи чуркаганыңызда, эч кандай убакыт шилтемелери жазыла элек, бирок Ошентип, жогорудагы эки сап тең "-:-:-" көрсөтөт.

Акырында, дисплейдин төмөнкү сол жагында акыркы мүнөттөгү ылдамдыгыңыздын графиги бар. Бул сиз бир калыпта бара жатканыңызды же жайлап бара жатканыңызды көрүүгө мүмкүнчүлүк берет. (Белгилей кетчү нерсе, бул линия чыныгы машыгууда бир кыйла жылмакай болот - бирок сүрөт тартууга аракет кылып жатканда туруктуу темпти кармоо оңой эмес …) Горизонталдык сызыктар мурунку / эң жакшы ылдамдыкты көрсөтүп турат тренингдер.

Чокунун жанына орнотулган LEDлар тренингдин бул баскычында учурдагы ылдамдыгыңызды эң жакшы ылдамдыгыңызга салыштырат. Жашыл шоу сиз эң жакшы көрсөткүчтөрүңүздүн 1% ичинде, кызыл шоулар сизди эң мыкты машыгууңузга караганда 10% жайыраак көрсөтөт. Кызыл чыракты көргөндө, дагы бир күч жумшоого убакыт келди. Көңүл бургула, жогоруда сүрөттөлгөн дифференциалдык убакыттан айырмаланып, булар тренингдин учурдагы бөлүгүнө гана тиешелүү, б.а. сиз абсолюттук убакыттан артта калганыңыз мүмкүн, бирок жашыл шоулар сизди кууп жетет жана тескерисинче.

Эки LED үчүн колдонулган маалымдама ылдамдыгын баскычтын жардамы менен өзгөртүүгө болот. Бир басуу аны эң мыктыдан мурунку жазылган машыгууга которот (кичине "P" тамгасы сол жактын төмөн жагында көрүнөт). Башка басуу жана баскычты басуу учурунда учурдагы ылдамдыгыңыз жаңы маалымдама ылдамдыгына айланат (кичинекей "С" тамгасы көрсөтүлөт). Экинчиси, эч кандай шилтеме жазыла элек кезде, жаңы эргометрдин дисплейи менен биринчи машыгуу учурунда өзгөчө пайдалуу.

Машыгууңуз бүткөндөн кийин, батареяны ажыратыңыз. Сиздин машыгууңуз Arduino ички EEPROMда сакталган.

Көрүнүп тургандай, мен прототипимди ширетип бүттүм. Жыйынтык мага жакты дегендин белгиси. Сизге да пайдалуу болот деп ишенем. Бактылуу машыгуу!

Сунушталууда: