HimeraSearchDB
Carding_EbayThief
triada
CrackerTuch
d-shop

НОВОСТИ DIY Электрическая система переключения скоростей для шоссейного велосипеда

NewsBot
Оффлайн

NewsBot

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

4114438f76da79fec5f93c92113e216d.jpg

Сервопривод и корпус устройства.
Предистория


Меня зовут Вячеслав. В коронокризис было скучно, поэтому я начал бегать. За 3 месяца пробежал 350км и 02.08.2020 пробежал Московский полумарафон.

b044ba6a9180cb2f1e26b30277c66765.jpg


После бега решил попробовать шоссейный велосипед. Я еще контактные педали в глаза не видевший уже слоты на спринты к айронмэну на 2021 присматривал, такое бывает. Велосипед и оборудование выбирал самые бюджетные, поэтому простор для фантазии и доработок открыт.

d7c326d6accd3816a63f3e5e28abadff.png

Электронное переключение скоростей


В моем шоссейном велосипеде скорости переключаются на середине руля, поэтому для постоянного переключения нужно отпускать барана, это очень неудобно. В более дорогих системах переключения на самом баране, но там одна система стоит дороже чем весь мой велосипед.

905cbc1fa06879a7f87adbe6dc6c278d.png


Моей задачей было с минимальными доработками и сохранением существующего варианта переключения сделать удобное и быстрое электрическое переключение параллельно.

Для прототипа использовалось то, что было под рукой. Измерив ход движения тросика(22мм) и необходимое усилие от родной системы выбрал сервопривод ds3115mg.

Конструкция элементарная Батарея+Arduino nano+две кнопки+серво.

64e6c09af4799285be8f0fb249f1f5b1.png


Кнопки подтянул к 5V через внутренний резистор.

Код Arduino


#include
Servo myservo;
int speedg = 1;
int up = 1;
int p = 0;

void setup() {
myservo.attach(9);
pinMode(8, INPUT_PULLUP);
pinMode(7, INPUT_PULLUP);
}

void loop() {

if (digitalRead(7) == 0) {
if (speedg > 1) {
speedg--;
up = 0;
}
p = 1;
}

if (digitalRead(8) == 0) {
if (speedg < 7) {
speedg++;
up = 1;
}
p = 1;
}

if (speedg == 1) {
myservo.write(0);
}

if (speedg == 2) {
if (up == 1) {
myservo.write(75);
} else {
myservo.write(60);
}
}

if (speedg == 3) {
if (up == 1) {
myservo.write(85);
} else {
myservo.write(80);
}
}

if (speedg == 4) {
if (up == 1) {
myservo.write(97);
} else {
myservo.write(90);
}
}

if (speedg == 5) {
if (up == 1) {
myservo.write(110);
} else {
myservo.write(103);
}
}

if (speedg == 6) {
myservo.write(120);
}

if (speedg == 7) {
myservo.write(140);
}
if ( p == 1) {
delay(300);
p = 0;
}
}

Параметры подбирал. причем некоторые скорости для переключения вверх и вниз требовали разного угла поворота сервопривода.

Распечатал на 3D-принтере корпус для Arduino, серво и батареи. Прикрепил корпус к раме, тросик от серво соединил с тросом штатной системы(фото КДПВ, смотри выше).

Первые испытания показали живучесть системы, поэтому решил добавить фичи.


Добавив датчик Холла и магнит на ведущей звезде получил датчик каденса, теперь могу менять передачи автоматически в зависимости от падения каденса.

Добавив 3-осевой гироскоп и акселерометр MPU6050, пришлось повозиться с калибровкой. Зная угол велосипеда можем переключать передачи автоматически в горку и с горки.

В целом эти автоматизация скорее отвлекает, имея две кнопки с моментальным переключением всегда удобнее самому менять скорость.

В планах


  • Поменять микроконтроллер.


  • Добавить датчик скорости вращения колеса.


  • Добавить BTLE для синхронизации и передачи данных в STRAVA.


  • Сделать корпус устройства в виде фонаря с дисплеем отображения текущей скорости и серво-приводом внутри.


  • Заменить сервопривод на актуатор с обратной связью.
Внимание, вопрос


Как Вы считаете стоит ли попробовать это решение для выхода на краудфандинг?
 
Сверху Снизу