filmov
tv
Плавный газ для электровелосипеда на Arduino Pro mini. Актуально для связки Infineon+редукторник

Показать описание
При том, что при росте сигнала действует задержка (0-100% несколько секунд, это настраивается от 0 до 10 сек), при уменьшении газ сбрасывается сразу же, мгновенно до того уровня, до которого вы его уменьшили.
Это позволяет избежать аварийных ситуаций, когда даже 0.5 секунды задержки сброса газа могут привести к аварии.
Минусы: не "пошлифуешь" на светофорах.
Плюсы: значительно (!) дольше жизнь редукторных моторов, дропаутов рамы или вилки, комфортнее езда.
В обновлённой прошивке проявилась функция запоминания предыдущего состояния ручки газа (костыль вместо настоящей обратной связи с реальной скоростью вращения мотора, которую реализовывать лениво, а на редукторнике, так вообще требует дополнительного отдельного датчика оборотов, например, что требует лишних проводов).
Объясняю, что это такое:
От того, стояли вы до нажатия ручки газа ~15 сек и более (функция, дополнительная переменная, плавно угасает от времени) или же в дорожном драйве просто сбросили газ на 1-3 секунды (пропустить машину, перепрыгнуть кочку, войти в поворот), зависит то, медленно ли будет набираться максимальная скорость или же она относительно быстро достигнет того значения, которое было недавно. То есть, если вы на скорости сбросили газ в ноль и вам надо срочно опять набирать скорость, то вам не придётся ждать для этого 10 секунд и более, пока рост газа медленно будет ползти с нуля, пока вы замедляетесь потому что едете по инерции быстрее, чем (пока) крутит мотор.
На ГРАФИКЕ ОСЦИЛЛОГРАФА разгон после стоянки - слева и разгон после кратковременно сброса газа - справа:
Прошивка: заливал через USB-UART посредством Arduino IDE:
Возможно, ввиду особенностей положений д. Холла в каждой ручке, если на максимуме газа вдруг будет обнуляться скорость --- придётся методом проб настраивать параметры мёртвых зон в строках кода № 90-92.
Схему объясню на пальцах:
Пины понятны из скетча:
- Вход с датчика холла напрямую (жёлтый провод на A0)
- Выход на RC фильтр - D3, куда впаян резистор 2:48 (параметры в ролике 2:52)
- Диод индикации включения и нажатий кнопок
- кнопка "плюс", подтянута к минусу 6.2 кОм 3:01 . По достижении максимума диод больше не вспыхивает
- кнопка "минус", подтянута к минусу 6.2 кОм. По достижении минимума диод больше не вспыхивает
Кнопки я сделал так:
Изнутри корпуса (если кнопка вкл. смотрит на вас, то на левой грани) я просверлил два отверстия. Сделал микроплатку из тонкого текстолита для двух SMD-кнопок. На кнопки приклеил суперклеем удлинители из металлической части стержней от шариковых ручек (можно сразу купить длинные кнопки). Этот модуль с кнопками наклеил на суперклей в корпусе изнутри, чтобы кончики кнопок чуть выступали. От модуля вывел 3 тонкие МГТФ (два сигнала и земля) к плате.
На самом деле, теперь я уже понял, что кнопки можно и не выводить и даже убрать из скетча возможность их настроить, чтобы в случае попадания влаги внутрь (если вы не загерметизировали корпус или не покрыли плату лаком) не начали нажиматься кнопки. Ничего страшного не будет, у меня случалось - закоротилась после дождя кнопка "-" и плавность пропала, упорно уменьшалась, если я противодействовал, пока я не высушил. Оптимально настроить параметр "smoothing" на 30-40 попугаев.
Плату Ардуино PRO mini впихнул прямо под отключенную заранее (чтобы не светила и не занимала провода в подходящем к ручке кабеле) родную плату с индикатором уровня батареи. Между этими двумя платами проложил кусок пластиковой бутылки - изолятор: 3:12
На плате Ардуино припаяны пины для прошивки так, что они направлены к центру платы: 2:49 Кнопка RESET отпаяна и перенесена на чип АТМЕГИ (ЭТО ЕСТЬ НА ВИДЕО). Наклеена прямо поверх него и к ней подведены тонкие МГТФ. Там кнопку удобно нажимать прямо надетыми на штырьки разъёмчиками. Надел проводки, прошил, нажимая когда надо на эту кнопку. Всё.
Замут с переносом кнопки потому что у меня на переходнике не было контакта для авторесета. (пошерстив интернет, сделал доработку - вывел со второй ноги PL-2303)
Кто знает, как качественно отфильтровать и сгладить импульсный сигнал с датчика Холла на входе и как фильтром круче медианного, сгладить его на выходе, чтобы не потерять в скорости реакции именно сброса параметра вниз (несимметричный фильтр), пишите ;-)
Есть ещё вариант прошивки, может быть вам он больше подойдёт - попробуйте оба, там немного отличаются коэффициенты:
Конечно можно и на Attiny85 адаптировать, но она дороже 13-й.
2500Вт, Инфинеон, 5 км/ч
Это позволяет избежать аварийных ситуаций, когда даже 0.5 секунды задержки сброса газа могут привести к аварии.
Минусы: не "пошлифуешь" на светофорах.
Плюсы: значительно (!) дольше жизнь редукторных моторов, дропаутов рамы или вилки, комфортнее езда.
В обновлённой прошивке проявилась функция запоминания предыдущего состояния ручки газа (костыль вместо настоящей обратной связи с реальной скоростью вращения мотора, которую реализовывать лениво, а на редукторнике, так вообще требует дополнительного отдельного датчика оборотов, например, что требует лишних проводов).
Объясняю, что это такое:
От того, стояли вы до нажатия ручки газа ~15 сек и более (функция, дополнительная переменная, плавно угасает от времени) или же в дорожном драйве просто сбросили газ на 1-3 секунды (пропустить машину, перепрыгнуть кочку, войти в поворот), зависит то, медленно ли будет набираться максимальная скорость или же она относительно быстро достигнет того значения, которое было недавно. То есть, если вы на скорости сбросили газ в ноль и вам надо срочно опять набирать скорость, то вам не придётся ждать для этого 10 секунд и более, пока рост газа медленно будет ползти с нуля, пока вы замедляетесь потому что едете по инерции быстрее, чем (пока) крутит мотор.
На ГРАФИКЕ ОСЦИЛЛОГРАФА разгон после стоянки - слева и разгон после кратковременно сброса газа - справа:
Прошивка: заливал через USB-UART посредством Arduino IDE:
Возможно, ввиду особенностей положений д. Холла в каждой ручке, если на максимуме газа вдруг будет обнуляться скорость --- придётся методом проб настраивать параметры мёртвых зон в строках кода № 90-92.
Схему объясню на пальцах:
Пины понятны из скетча:
- Вход с датчика холла напрямую (жёлтый провод на A0)
- Выход на RC фильтр - D3, куда впаян резистор 2:48 (параметры в ролике 2:52)
- Диод индикации включения и нажатий кнопок
- кнопка "плюс", подтянута к минусу 6.2 кОм 3:01 . По достижении максимума диод больше не вспыхивает
- кнопка "минус", подтянута к минусу 6.2 кОм. По достижении минимума диод больше не вспыхивает
Кнопки я сделал так:
Изнутри корпуса (если кнопка вкл. смотрит на вас, то на левой грани) я просверлил два отверстия. Сделал микроплатку из тонкого текстолита для двух SMD-кнопок. На кнопки приклеил суперклеем удлинители из металлической части стержней от шариковых ручек (можно сразу купить длинные кнопки). Этот модуль с кнопками наклеил на суперклей в корпусе изнутри, чтобы кончики кнопок чуть выступали. От модуля вывел 3 тонкие МГТФ (два сигнала и земля) к плате.
На самом деле, теперь я уже понял, что кнопки можно и не выводить и даже убрать из скетча возможность их настроить, чтобы в случае попадания влаги внутрь (если вы не загерметизировали корпус или не покрыли плату лаком) не начали нажиматься кнопки. Ничего страшного не будет, у меня случалось - закоротилась после дождя кнопка "-" и плавность пропала, упорно уменьшалась, если я противодействовал, пока я не высушил. Оптимально настроить параметр "smoothing" на 30-40 попугаев.
Плату Ардуино PRO mini впихнул прямо под отключенную заранее (чтобы не светила и не занимала провода в подходящем к ручке кабеле) родную плату с индикатором уровня батареи. Между этими двумя платами проложил кусок пластиковой бутылки - изолятор: 3:12
На плате Ардуино припаяны пины для прошивки так, что они направлены к центру платы: 2:49 Кнопка RESET отпаяна и перенесена на чип АТМЕГИ (ЭТО ЕСТЬ НА ВИДЕО). Наклеена прямо поверх него и к ней подведены тонкие МГТФ. Там кнопку удобно нажимать прямо надетыми на штырьки разъёмчиками. Надел проводки, прошил, нажимая когда надо на эту кнопку. Всё.
Замут с переносом кнопки потому что у меня на переходнике не было контакта для авторесета. (пошерстив интернет, сделал доработку - вывел со второй ноги PL-2303)
Кто знает, как качественно отфильтровать и сгладить импульсный сигнал с датчика Холла на входе и как фильтром круче медианного, сгладить его на выходе, чтобы не потерять в скорости реакции именно сброса параметра вниз (несимметричный фильтр), пишите ;-)
Есть ещё вариант прошивки, может быть вам он больше подойдёт - попробуйте оба, там немного отличаются коэффициенты:
Конечно можно и на Attiny85 адаптировать, но она дороже 13-й.
2500Вт, Инфинеон, 5 км/ч
Комментарии