Педали в машине
Любой автомобиль сегодня оснащен педалями, не зависимо от применяемой коробки передач. Разница будет лишь в их числе. Существующие сегодня механические коробки, автоматы, роботы и вариаторы, отличаются конструкцией и способом перехода от одной передачи к другой. Но без педалей ни одна из них обойтись пока не может. Педали автомобиля облегчают управление.
Расположение

Располагаются педали в одинаковом порядке. Не зависимо от того механическая трансмиссия или автоматическая. Автоматы, роботы и вариаторы имеют две педали, вместо трех. Потому что, нет нужды в отключении сцепления.
Интересный факт: в автомобилях с правым рулем, которые гоняют по Японии и Великобритании, и иногда встречаются и у нас, положение педалей совпадает с привычными нам леворульными машинами. А не в зеркальном отображении, как некоторые могли представить.
Машина с МКПП
Автомобили, оснащенные механикой имеют три педали. Расположение педалей механика имеет следующее.
- Сцепление. Сцеплением управляет крайняя слева педаль. Выключение сцепления, облегчает переключение между ступенями и снижает нагрузку на детали коробки.
- Тормоз. Педаль в середине, вызывает торможение автомобиля, и называется тормоз. Нажатие на нее, задействует тормозную систему машины, препятствуя вращению колес. При этом скорость снижается, вплоть до остановки.
- Газ. Крайняя педаль с правой стороны, это газ. Нажатие на нее вызывает усиленную работу мотора и разгон машины. Скорость разгона напрямую зависит от усилия нажатия. Рекомендуется давить на нее постепенно, плавно.
Машина с автоматикой

Педали в машине автомат всего две, потому что, отключение сцепления не требуется. Передачи переключаются автоматически.
- Тормоз. Крайняя слева педаль будет тормозом. Она крупнее, чем в машине с механикой.
- Газ. Педаль справа — газ.
Расположение педалей автомат такое же, как у механики.
Работа педалей механики
В автомобиле, имеющем механическую КПП, выключают ручной тормоз. Затем заводят двигатель. Для этого, ключ зажигания поворачивают в замке до упора. После этого нажимают сцепление, и переключаются на первую передачу.
После чего отпускают сцепление, и машина начинает двигаться. Далее, плавно выжимается газ, и по мере разгона переключаются передачи, после нажатия сцепления.
Передачи необходимо переключать как при разгоне, так и при снижении скорости. Переключаются ступени по порядку, чтобы не ломать коробку и не сбивать с ритма двигатель.
Газ, тормоз, сцепление – должны работать как одна команда, иначе появятся рывки, дерганье автомобиля, а мотор будет глохнуть. При неправильном или не последовательном переключении ступеней хрустит коробка.
Работа педалей автоматики
Управление автоматикой намного проще. Постоянно выключать сцепление нет необходимости, передачи сами переключаются в нужной последовательности, специальными муфтами.
Рычаг включает только режим «D», для движения вперед. Либо «R», для заднего хода автомобиля. Еще могут присутствовать режимы «P» — для длительной парковки и «N» — соответствующий нейтральной передаче у механики.
Нажатие газа, после запуска мотора, вызывает движение авто в нужном направлении. Воздействие на тормозную педаль передается тормозной системе и системам, обеспечивающим безопасность, например ABS. Устройство торможения гораздо сложнее, чем на механике.
Какой ногой нажимать
Залог безопасной езды – правильное нажатие педалей, той ногой, которой следует это делать.

Важное правило: Нажимать на педаль сцепления всегда надо левой ногой, а торможения и газа только правой.
Если условно поделить стопу ноги на три сегмента, это позволит точнее объяснить правило:
- передняя часть ступни, как наиболее чувствительная, нажимает газ;
- средняя часть, более твердая и сильная, на тормоз или сцепление;
- пятка не используется, эта часть наименее чувствительная, и работать ей крайне неудобно.
Внимание: важным элементом управления педалями является обувь. Для управления машиной, нужна удобная обувь, в которой вы хорошо «чувствуете» педали. Обувь плотная и свободно сидящая на ноге.
Мягкая подошва некоторых кроссовок, снижает это ощущение, что не позволяет нажимать педали с необходимым усилием и повышает риск попадания в аварию.
Нельзя управлять машиной в туфлях с длинными каблуками (это касается женщин). Причиной аварии может быть попадание каблука под педаль тормоза, что не позволяет выжать ее до конца.
Есть любители поспорить о возможности нажатия тормоза левой ногой в авто, оснащенных автоматикой, ведь педали две. Тут вопрос удобства и привычки водителя. Привыкшему тормозить правой, переучиваться будет сложно, лучше оставить как есть, чтоб педали не перепутать.
Нажатие двух педалей
Случаются такие осечки и у любителей, и у профессиональных шоферов-нажимают одновременно газ и тормоз. Какие при этом возможны последствия:
- при одновременном нажатии газа и тормоза на механике, ломает сначала диски сцепления (накладки сгорают и рассыпаются, металл синеет и теряет прочность), затем шестерни коробки;
- для автомата – вообще смертельно, гидротрансформатор сгорает почти сразу;
- некоторые современные автоматы и роботизированные коробки имеют защиту от подобных нажатий. Реагируют на такую ситуацию, как на тормоз;
- подобная реакция предусмотрена для гоночных машин. Это позволяет гонщикам тормозить, не отпуская педали газ.
Вывод
Залог безопасной езды, это знание расположения педалей и умение их правильно нажимать, в зависимости от ситуации. Важна так же обувь. Перепутанные педали, или нажатые одновременно, могут обойтись потерей не только денег, но и жизни. А от того, какой ногой вам удобнее жать на педали, ничего не зависит, жмите как вам удобнее.
Крути педали правильно (техника педалирования)

Некоторые могут подумать: «Невелика наука! Зачем технике педалирования отводить целую статью? Здесь же нет ничего сложного! Дави на педали, и велосипед поедет».
Однако не все осознают, насколько важна правильная техника вращения педалей. От нее зависит расход энергии велосипедиста и срок службы ваших суставов.
Более того, неправильная техника приносит неудобства водителю, и при далеких велопутешествиях такой пользователь может попросту не доехать до места назначения.
Поэтому давайте рассмотрим, как правильно крутить педали, и какие факторы влияют на нашу технику.
Важность разминки
Перед посадкой в седло, как и перед началом любой тренировки, необходима разминка.
Она важна не только для мышц, но и для суставов и связок. Работу нашего организма можно сравнить с двигателем автомобиля.
Каждый автовладелец знает, что перед поездкой в холодное время мотор необходимо прогреть.
В противном случае Вы рискуете серьезно повредить цилиндро-поршневую группу, что приведет к капитальному и дорогостоящему ремонту.
С суставами человека ситуация аналогична. Поэтому чтобы избежать травм после длительной поездки на велосипеде, важно уделять несколько минут разминке.
Правильная посадка
Вернемся к сравнению с автомобилями: что делает водитель, когда садится за руль чужой машины?
Он регулирует сидение: подстраивает вылет и высоту рулевого колеса, а также двигает кресло.
Это необходимо для удобства и безопасности. При неправильной посадке, через некоторое время спина и руки водителя начнут уставать.
В равной степени велосипедисту необходима регулировка своего водительского сидения. И здесь необходимо обратить внимание на три момента:
- Седло;
- Вылет руля;
- Высота подседельного штыря.
Седло
Для удобства езды седло должно быть расположено горизонтально. Наклоны могут привести к защемлению артерий таза.
Особенное внимание на седло стоит обратить мужчинам. Для них существуют седла со специальной выемкой в центральной части.
Она позволяет обеспечивать полноценный приток крови ко всем частям тела и не прищемлять что-нибудь важное.
Исследования показали, что длительные поездки на неправильных по форме сидениях могут привести даже к импотенции. Так что все довольно серьезно.
Ширина руля должна соответствовать ширине плеч. Вылет необходимо выставлять в соответствии со средним наклоном корпуса велосипедиста.
Это обеспечит комфортную езду на больших и малых скоростях.
Высота седла

Это самый главный фактор, влияющий на технику педалирования.
Штырь необходимо регулировать таким образом, чтобы в нижней точке педали нога была разогнута почти полностью. Допустим сгиб в колене около 10-15⁰.
При этом на педали должен находиться носок, а не середина ступни или пятка. О правильной постановке ноги мы поговорим ниже.
Такая высота сидения позволит снизить нагрузку на коленный сустав и быстрее набирать скорость.
При правильной посадке велосипедист будет затрачивать меньше сил при вращении педалей и сможет комфортно проехать большую дистанцию.
В зависимости от манеры езды посадка может отличаться. При спокойном вождении на небольшой скорости корпус водителя должен располагаться практически вертикально, а во время высокоскоростного передвижения требуется сильный наклон в сторону руля.
Горизонтальное расположение туловища позволяет направить больше сил на вращение педалей и увеличить аэродинамику. Наклон корпуса поможет снизить сопротивление воздуха и увеличить скорость.
Если при наборе скорости тело раскачивается из стороны в сторону вместе с велосипедом, Вы сидите неправильно.
Техника педалирования
Чтобы вращение педалей было эффективным и менее энергозатратным, важно правильно поставить ноги. Мы уже говорили о том, что в крайней точке педалей нога должна быть максимально разогнута.
Кроме того, важно поставить ступню так, чтобы на педали располагалась ее передняя часть, а не центр или, тем более, пятка. Такое положение позволит не просто давить на педаль, а вращать ее.
Существует распространенное и неправильное мнение о том, что на педаль нужно давить. В этом случае усилие направляется вниз. На самом деле движение ног должно быть вращательным.
В этом случае при достижении нижней точки ступня разгибается, а при достижении верхней – выпрямляется. Техника показана на картинке. Такой метод позволит снизить усилия, сохранить суставы и быстрее достичь максимальной скорости.

Научиться правильно педалировать помогут контактные педали, которые имеют необычную форму корпуса.
Они идут в комплекте со специальными кроссовками. Подобно лыжным ботинкам, обувь велосипедиста вставляется в пазы педалей и фиксируется на ней.
Такая конструкция не только обеспечивает отличное сцепление, но и позволяет крутить педали вверх, экономя усилия водителя.

Их использование поможет быстрее освоить правильное вращение. Также в магазинах продаются платформенные педали с металлическими штырями на корпусе.
Они помогут улучшить сцепление с вашей обувью и описывать окружность при вращении.
О том, какие бывают велопедали и как выбрать, читайте в этой статье.
А что можно сказать о езде стоя? Данная техника вождения используется при экстремальной езде или преодолении неровностей, когда не хочется ощущать каждое изменение рельефа всеми частями тела.
Но если Вы переходите на стоячее положение от усталости, значит, скорее всего, ваше седло установлено неправильно.
Кстати, некоторым приходится перепробовать несколько моделей, чтобы найти подходящее сидение.
При езде в горку вставать не нужно. Главное сосредоточиться на дыхании, опустить корпус тела горизонтально и включить пониженную передачу.
Частая езда стоя увеличивает нагрузку на детали велосипеда и приводит к их повреждениям, поэтому по возможности избегайте данной техники.
Каденс для определения правильности техники
Чтобы определить, освоили ли Вы технику педалирования, можно воспользоваться велокомпьютером, который измеряет каденс. Каденс – это частота вращения педалей. У здорового человека этот показатель равен 70-100 оборотам в минуту.
Про выбор велокомпьютера Вы можете узнать в этой статье.
Подводя итог, можно сказать, что правильная техника педалирования очень важна. С ее помощью Вы сможете:
- Сохранить свои силы;
- Снизить нагрузку на суставы;
- Обеспечить удобство поездки;
- Лучше набирать скорость.
Наслаждайтесь комфортным путешествием на велосипеде, осваивая метод правильного вращения педалей. А специальные детали и измерительные приборы Вам в этом помогут.
Управление автомобилем. Часть 3. Педали
В предыдущей статье «Управление автомобилем. Часть 1. Посадка» были рассмотрены положения ног водителя относительно педалей управления.
В этой статье рассмотрим, для чего служат педали газа, тормоза, сцепления, и как правильно нажимать на педали тормоза, газа и сцепления в процессе управления автомобилем.
Сначала небольшое отступление. Современные автомобили могут оснащаться как механической коробкой передач (МКПП), так и автоматической (АКПП). Автоматические, в свою очередь, тоже подразделяются на типы, но суть не в этом. Различия в управлении автомобилями с различными коробками передач в том, что автомобиль с акпп имеет всего две педали (газа и тормоза), а автомобиль с мкпп — три педали: газа, тормоза и сцепления.
С коробкой «автомат» все просто: переключение передач осуществляется одним рычагом без педали сцепления (левая нога водителя постоянно покоится на упоре для ноги). Передачи переключаются автоматически.
На автомобилях с механической коробкой передач все несколько сложнее, но это на первый взгляд. Здесь для переключения передач используется рычаг коробки передач и педаль сцепления, на которую следует нажимать левой ногой. Не будем вдаваться в подробности устройства автомобиля и работы его узлов, для этого лучше изучить соответствующую литературу, а рассмотрим технику нажимания на педали. Что это даст?
В самом начале автомобильной практики новички совершают ряд ошибок, например, неправильно держат руль, неправильно нажимают на педали, неправильно тормозят и пр., и это входит в привычку. В последствии эти привычки доходят до автоматизма и изменить их, порой бывает очень сложно. Поэтому с самого начала следует привыкать правильно.
В следующих публикациях, в которых будут рассмотрены основы как трогаться с места и как останавливаться, придет понимание, почему нужно правильно работать педалями, а впоследствии, на экзаменах, эти знания вам помогут.

Общие рекомендации по работе с педалями управления будут такие:
- Нажимать на педали тормоза и сцепления нужно подушечкой стопы. Не пальцами и не всей ступней, а только подушечкой. Можно потренироваться: поставить и «пристроить» ногу на педаль. Поочередно, левую и правую ногу, чтобы запомнить положение ступни. Пятка при этом отрывается от пола, а нажатие совершается коленным суставом, голень помогает;
- Работать с педалями нужно аккуратно, плавно, даже если необходимо нажать на педаль быстро;
- По педалям нельзя бить ногой (кроме отдельных случаев, когда автомобиль оборудован АБС);
- При отпускании нельзя бросать педаль, нужно сопровождать ее обратный ход ногой.
Теперь о каждой педали в отдельности.
Педаль газа
Педаль газа служит для поддержания и плавного изменения скорости движения. Нажатие на нее приводит к ускорению, а отпускание – к замедлению автомобиля. Если положение педали газа не меняется, то машина будет ехать с постоянной скоростью. Нажимать на педаль газа следует очень плавно. Работает голень, коленный сустав расслаблен.
Педаль тормоза
Педаль тормоза служит для быстрого замедления автомобиля и его остановки. Почти всегда нажимать на педаль тормоза нужно так же плавно, как и на педаль газа. Как только нажатие достигнет необходимого усилия, нужно стараться придерживать это усилие неизменным, т.е. постоянным.
Чем сильнее нажимаем на педаль тормоза, тем быстрее машина будет замедляться. Педаль тормоза предназначена только для правой ноги!
Педаль сцепления
Педаль сцепления служит для соединения коробки передач с двигателем и для их разъединения. Коробка передач, в свою очередь, передает крутящий момент от двигателя к ведущим колесам автомобиля. В то время, когда педаль сцепления отжата (т.е. находится в своем покоящемся положении), двигатель соединен с коробкой передач — сцепление включено. В тот момент, когда педаль сцепления нажата (до пола), двигатель разъединяется с коробкой передач – сцепление выключается.
По логике, для того, чтобы тронуться с места, нужно включить сцепление (отпустить педаль). Если мы резко отпустим педаль, то под воздействием мощной пружины она «вернется» на место (в отжатое положение). Но если мы попытаемся таким образом тронуться с места, то скорее всего ничего не получится. Машина дернется вперед и двигатель заглохнет.
Для того, чтобы тронуться без рывка и не заглохнуть, следует отпускать педаль плавно, технично. А поскольку нам в этом помогает пружина, то фактически, отпускание педали сцепления заключается в техничном сопротивлении этой пружине. Давим на педаль, регулируя растяжение пружины.

Попробуем выполнить это движение на четыре счета (см. рисунок). Левая нога покоится на упоре рядом с педалью сцепления:
- Отрываем пятку левой ноги от пола, ставим левую ногу подушечкой на педаль сцепления и на счет «раз» быстро, в одно движение выжимаем педаль до пола;
- На счет «два» отпускаем педаль примерно до середины хода (положение 2 на рисунке). В этой точке происходит так называемый момент схватывания. Машина еще не едет, но вот-вот тронется.
- Далее – самый ответственный момент. На счет «три» постепенно, миллиметр за миллиметром, плавно поднимаем педаль до положения 3 на рисунке. Расстояние очень маленькое, всего 10 мм, но именно этот участок – зона соединения двигателя и коробки передач. И только плавное отпускание педали позволит вам тронуться без рывка.
- На счет «четыре» отпускаем педаль до конца. Нужно будет в точке 3 просто ослабить давление на педаль и пружина сама уведет ее в точку 4. Расстояние 3-4 еще называют свободным ходом педали сцепления. И не забываем убрать ногу с педали на площадку.
Ну вот и все. Примерно в таком режиме нужно будет работать педалью при переключении передач в движении. Теперь, чтобы начать движение нужно увязать в работу педаль сцепления, педаль газа и коробку передач. Как правильно трогаться с места рассмотрим в следующей статье.
Автор: Сергей Довженко
Последняя редакция: 21.04.2020
Если есть желание поделиться прочитанным, ниже кнопки на выбор. Жмем, не стесняемся.
Педаль в пол: создаём очередной ножной манипулятор для ПК

Буквально месяц назад я натолкнулся на эту статью, где повествуется о педалировании Vim. Чуть позже, после своего длительного трёхминутного исследования, я выяснил, что что тема эта уже не новая и довольно популярная. Сам я Vim использую только в случае крайней необходимости (если уж и приходится работать в консоли, то предпочитаю Nano), но ведь можно сделать подобное и под другие приложения.
Изначально я хотел сделать небольшую статейку, однако у меня получился целый туториал по созданию данного девайса с пошаговым написанием кода и пояснением что да как. Дабы не раздувать статью, под спойлерами будет различная информация, которая показалась мне интересной и достойной внимания новичков в Arduino, продвинутые и особо торопливые же пользователи могут не тратить на то время. Полный исходный код также представлен в конце статьи.
А зачем оно мне?
Если у вас нет сомнений в необходимости и полезности этого устройства, то можете пропустить этот пункт. Для остальных сначала хотелось бы рассказать о предпосылках создания данного устройства.
Во все времена программисты и дизайнеры старались сделать удобный и дружественный интерфейс, чтобы пользователь мог без лишних заморочек работать с приложением используя мышь и клавиатуру, так зачем же нам ещё один манипулятор? Что же, заглянем немного в историю, а точнее, в начало XVIII века, когда был изобретён такой музыкальный инструмент, как фортепиано. Как известно, это слово буквально переводится как «громко-тихо», но мало кто задумывается, что такой инструмент умный итальянский мастер получил, фактически «запедалировав» существовавший тогда клавесин, что и позволило в какой-то степени управлять громкостью звука, при этом не отнимая руки от клавиш.
Примеров можно приводить много. Педали есть у автомобиля, чтобы не бросать руль, если надо добавить газ. Барабанная установка тоже имеет педали, чтобы стучать в бас-бочку и тарелки. А что могут дать педали при использовании компьютера? Ну, например, можно задать какую-нибудь горячую комбинацию клавиш, или вообще добавить клавишу, которой нет, вроде включения и выключения звука. Педали могут помочь, если заняты руки: сам я играю на гитаре, при этом иногда под аккомпанемент, я было бы очень удобно проматывать подложку, не пытаясь постоянно дотянуться до клавиатуры. Ну и, наконец, контроллеры могут давать и совершенно нечеловеческие возможности в играх: было бы круто одним кликом построить себе всю базу в стратегии или крушить врагов со скоростью десятка ударов в секунду в шутерах, не так ли?
В общем, надеюсь, я вас убедил, а значит, пора приступать непосредственно к самой разработке.
Необходимые ресурсы
- Собственно, педали. Тут сразу же возникли некоторые сложности из-за того, что я никак не мог придумать название для такой педали. Я знал лишь то, что подобные вещи используются в швейных машинках. В общем, по запросу electric pedal мне всё же удалось найти то, что нужно, на Aliexpress, и я, недолго думая, заказал 3 штуки.
- Контроллер. Педалборд должен эмулировать работу клавиатуры и, возможно, мыши для возможности подключения к ПК без лишних драйверов. Для этого отлично подойдёт плата Arduino Pro Micro, которая хоть и не имеет некоторых выводов, но зато сделана максимально компактно. Идём на тот же Aliexpress, и покупаем китайскую версию этого чуда.
- Провода. Чтобы поместить 3 педали под стол, нужен как минимум четырёхжильный провод длиной не меньше метра. Тут, думаю, проблем возникнуть не должно.
- RGB-светодиод и кнопка. Первый нужен для индикации режимов, а вторая — для их переключения.
- Ну и, понятное дело, нам нужны Arduino IDE, паяльник и прямые руки.
Схема устройства
Ещё до того, как мне пришли посылки, я приступил к созданию схемы устройства. Хотя это сильно сказано, так как мне надо было всего лишь подключить педали, диод и кнопку. Получилось как-то так:

Для педалей я решил выделить сразу 4 порта PB1-PB4, то есть две для левой, и две для правой ноги, хотя пока педали у меня только 3. К тому же, они все находятся в одной группе и расположены в одном месте. Под светодиод я отвёл выводы PD0, PD1 и PD4, под кнопку — PD7.
При этом нам не понадобятся никакие подтягивающие резисторы, если использовать те, что встроены в контроллер. Правда, тогда, при нажатии кнопки или педали, на входе будет низкий уровень, а при отпускании — высокий, то есть, нажатия будут инвертироваться, и об этом не стоит забывать.
Написание кода
Этот этап был самым трудным: из-за пары ошибок в указателях я несколько раз стёр загрузчик и в итоге чуть не завалил плату на программном уровне. Ниже подробно расписаны все этапы создания прошивки, для тех же, кто просто хочет получить работающий код, он будет в конце статьи.
Подготовка
Для начала нам нужно понять, что вообще такое педаль с точки зрения программы. Я решил сделать возможность задания педали одного из двух режимов — реального времени и триггера. Каждая педаль при этом имеет две программы: первая выполняется при удержании педали в режиме реального времени или при нечётных нажатиях в режиме триггера, вторая — при отпускании педали в режиме реального времени или при чётных нажатиях в режиме триггера. Так же у педали есть порт, состояние, и две переменные — текущие позиции в программах 1 и 2. У меня получилась вот такая структура:
Arduino имеет довольно мало памяти и к тому же 8-разрядная, так что лучше стараться использовать char нежели int там, где это возможно.
Так же нам понадобится стандартная библиотека Keyboard для работы в качестве клавиатуры.
Обработка нажатий
Сейчас нам нужно сделать интерпретатор, который будет читать данные из массива и отправлять их в виде нажатий клавиш на машину, а так же выделить несколько значений под различные внутренние команды. Открываем страницу с кодами клавиш, и смотрим что и как мы можем нажать. Я не стал глубоко копать и изучать всякие стандарты клавиатур, так как информации здесь мне показалось вполне достаточно для такого проекта. Первая половина отведена под стандартные ASCII-символы (хотя некоторые из них и непечатаемы или не используются), вторая же — под различные клавиши-модификаторы. Есть даже отдельные коды для левых и правых клавиш, что очень порадовало, а вот специальных кодов для цифр с нампада я не увидел, хотя, насколько я знаю, они немного по-особому воспринимаются в системе, нежели обычные цифры. Возможно, их коды находятся где-то в «дырах», между диапазонами, но сейчас не об этом. Итак, самый большой код имеет клавиша «вверх» — 218, а значит, диапазон 219-255 можно считать свободным, ну или по крайней мере там нет каких-то важных клавиш.
Думаю, даже у человека с не самым высоким уровнем знания Си не возникнет вопросов о том, что тут происходит. Сначала функция выбирает нужную педаль и определяет в зависимости от режима и состояния педали, какую программу стоит выполнять. При чтении каждого элемента массива, если он не является управляющим символом, вызывается функция Keyboard.write(), которая эмулирует нажатие и отпускание клавиши. Управляющие же символы обрабатывются отдельно и нужны для зажатия комбинаций клавиш и навигации по программе.
Итак, у нас есть интерпретатор и примерное понимание того, как наш педалборд взаимодействует с компьютером. Теперь надо всё это довести до состояния полноценной прошивки и проверить работоспособность на одной педали. Если создать экземпляр педали и циклично вызывать pedalAction(), то по идее у нас будет выполняться заданная в структуре программа.
Кстати, никогда не забывайте про нуль-терминаторы в данных «программах», если их длина меньше размера массива и если они не цикличны, потому что Arduino будет не только пытаться интерпретировать не заданные данные, но и будет отправлять их в машину с огромной скоростью, а это всё равно, что дать клавиатуру обезьяне.
Одна педаль хорошо, а две — лучше
Теперь пришло время разобраться с обработкой сигналов с нескольких педалей, а также добавить переключение режимов. В начале статьи было выделено 4 порта под педали, каждой из которых надо позволить работать в семи режимах. Почему 7? Потому что без использования ШИМ наш светодиод может давать всего 7 цветов, и восьмой — выключенный. Такого количества вполне хватит обычному пользователю, ну а в крайнем случае его легко можно увеличить. Значит педали будем хранить двумерном в массиве 7 х 4. Чтобы не засорять память, общие для нескольких структур значения, такие, как номер порта можно вынести в отдельные массивы. В итоге мы получаем что-то такое:
Для нас важно знать только тип педали и две программы, поэтому только их мы оставим непосредственно в структуре, остальными же вещами пусть занимается автоматика. Методы prepare и loop теперь будет выглядеть следующим образом:
Контроллер буде считать режим неиспользуемым, если в нём не объявлено ни одной педали (mode=255), а значит при попадании на него сразу перейдёт к следующему, но при этом первый режим всегда будет существовать. При переключении режима все значения в массивах зануляются, так как сохранять их для каждого режима нам не требуется (верно?), а затем цикл обходит все педали и вызывает pedalAction для них.
Также в начале метода pedalAction() нужно добавить следующую строчку, чтобы он понимал, с какой из структур надо иметь дело:
Уже существующую структуру pedal1 можно удалить за ненадобностью.
Всё это так же вполне работает, однако я столкнулся с одной проблемой: некоторые программы не успевают принимать нажатия с такой скоростью, с которой их отправляет Arduino. Самое очевидное решение — добавить возможность устанавливать задержки между действиями там, где это необходимо. Вот только когда мы садимся писать программы под микроконтроллеры, все фишки, вроде аппаратной многопоточности, остались где-то там, в высокоуровневых ЭВМ, у нас же при добавлении задержки останавливается вся программа, пока контроллер не отсчитает нужное количество циклов. Раз многопоточности у нас нет, то придётся её создать.
Тяжело сказать, да легко сделать
Я не стал изобретать велосипед, а взял готовую библиотеку ArduinoThread. Здесь можно немного почитать о том как она работает и скачать её. Загрузить библиотеку можно и из самой Arduino IDE. Кратко говоря, она позволяет периодически выполнять функцию с определённым интервалом, при этом не позволяя уйти в бесконечный цикл в случае, если выполнение займёт больше времени, чем интервал. То, что нужно. Создадим ещё один массив с потоками для каждой педали:
Теперь у нас есть 6 одинаковых виртуальных потоков, но при этом являющихся разными объектами.
Немного перепишем цикл обхода педалей для работы с новым функционалом:
Теперь значение 252 в массиве программы, которое соответствует «ничегонеделанию», будет давать задержку в 10 миллисекунд (хотя на самом деле чуть больше, так как выполнение кода тоже занимает время). Добавив несколько строк в интерпретатор, получится сделать возможным установку задержки в несколько таких «квантов», потратив всего 2 байта массива:
Теперь, при возможности установки задержки до 2.55 секунд проблем с определением клавиш программами возникать не должно.
Программирование «на ходу»
В принципе, тут можно было бы закончить с кодом и приступить к сборке устройства, но в этом случае, если кто-то вдруг захочет перепрограммировать педали, то ему придётся открывать Arduino IDE, править код, и заново загружать прошивку. Естественно, такой вариант не самый лучший, поэтому я решил добавить возможность менять программу с последовательного порта Arduino, а сами программы хранить в EEPROM. Для работы с энергонезависимой памятью необходимо подключить стандартную библиотеку EEPROM.h. Код режима программирования выглядит следующим образом:
Что делает этот код поясняет содержащаяся в нём справка: через пробел вводится номер режима, номер педали, и команда, которых существует 3 — чтение, запись и выполнение удаление программы. Все данные о педалях хранятся друг за другом в виде последовательности из 33-х байт, то есть тип педали, и две программы, и того мы занимаем 7*4*33=924 из 1024 байт EEPROM. Вариант использования динамического размера педалей в памяти я отбросил, так как в этом случае при перепрограммировании одной педали придётся перезаписать почти все ячейки, а циклов перезаписи эта память имеет конечное количество, поэтому рекомендуют делать это как можно реже.
Ещё хотелось бы обратить внимание на строки вида:
Благодаря данной библиотеке, с точки зрения программиста, энергонезависимая память является обычным массивом char, но, как «ардуинщикам», нам нужно понимать, что запись в ПЗУ — очень тяжёлая операция, которая занимает у контроллера целых
3 секунды, и желательно не прерывать этот процесс. Данная конструкция заставляет диод светить красным во время таких операций, а затем возвращает обратно «безопасный» зелёный цвет.
В режиме записи программы ввод производится непосредственно значениями байтов в десятичной системе счисления через пробел. Получается довольно сурово, но зато не приходится писать сложный парсер. Тем более, перепрограммирование происходит не так часто, и в этих случаях вполне можно заглянуть в ASCII таблицу.
С сохранением структур разобрались, теперь надо наши данные как-то оттуда вытащить и преобразовать к «педальному» виду:
Здесь так же не происходит ничего сверхъестественного: контроллер считывает данные из памяти и заполняет ими уже существующие структуры.
Преимущество программирования через UART заключается в том, что нам опять же не требуется никаких специальных драйверов, поэтому задавать поведение манипулятора можно даже с телефона.
Демонстрация
Полный исходный код
Послесловие
Хотя изначально я и делал педалборд для возможности проматывания записи во время игры на гитаре, однако лично мне показалось удобным испольщование педалей и в обычных задачах, главное немного привыкнуть к такому необычному манипулятору. А вот тут кроется ещё одна проблема: уже без любимых педалей работать становится наоборот сложнее, так как приходится вспоминать, что, куда и для чего нажимать. Если в офис педали ещё можно носить и подключать, то в институте бегать с ними по кабинетам уже сложнее. Так что использовать этот девайс для чего-то, кроме его изначального предназначения стоит на свой страх и риск.
Источники:
https://autostuk.ru/pedali-v-mashine.html
https://velife.ru/katanie/kak-pravilno-krutit-pedali-texnika-pedalirovaniya.html
https://avtonauka.ru/voghdenie/upravlenie-avtomobilem-chast-3-pedali.html
https://habr.com/ru/post/462263/
