avatar_ArtDen

Переделка курка на менее резкий старт

Автор ArtDen, 19 Июль 2019 в 18:34

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

ArtDen

Это какой-то неполноценный компилятор, т.к. он ничего не знает про attiny85 судя по тексту ошибки. Надо скачать тот, который по ссылке в описании как скомпилировать

Artemkos007

Цитата: ArtDen от 01 Сен. 2021 в 13:10
Это какой-то неполноценный компилятор, т.к. он ничего не знает про attiny85 судя по тексту ошибки. Надо скачать тот, который по ссылке в описании как скомпилировать

я скачал ИМЕННО ТОТ , который по ссылке в описании,

что я не так делаю?

ArtDen

Только что скачал, распаковал, запустил build-and-flash.bat. Ошибки нету, прошивка создаётся. Может просто не всё распаковано из архива с компилятором?

Artemkos007

#129
Цитата: ArtDen от 01 Сен. 2021 в 13:35
Только что скачал, распаковал, запустил build-and-flash.bat. Ошибки нету, прошивка создаётся. Может просто не всё распаковано из архива с компилятором?

1. я скачал прошивку,,  в папке firmware - два файла build-and-flash.bat и speed_corrector.cpp  их я положил в  C:\Program Files (x86)\Arduino\hardware\tools\avr\bin  (старую папку avr удалил)
2. скачал компилятор, распаковал на Диск C:\Program Files (x86)\Arduino\hardware\tools\avr\
3. прописал Path до папки bin
4. build-and-flash.bat ЗАПУСКАЮ и вот такие ошибки пишет.

может я что-то не правильно делаю? или может быть надо еще что-то скачать и установить?

в ошибке четко пишет: что не найден файл speed_corrector.bin , но как он может быть найден ? если он еще не создан?

ArtDen

1. Не надо класть исходники прошивку в C:\Program Files (x86)\Arduino\hardware\tools\avr\bin
2. Зачем компилятор распаковывать в C:\Program Files (x86)\Arduino\hardware\tools\avr\ ?
3. Почему на скриншоте ещё какой-то путь c:\AVR?
4. Ошибка - это то, что подсвечено красным цветом

Сделайте всё нормально безо всяких C:\Program Files (x86)\Arduino\hardware\tools\avr\bin и должно заработать. Возможно что в пути PATH есть ещё старый компилятор для AVR и поэтом не работает. Можно его оттуда временно удалить

Добавлено 01 Сен 2021 в 18:24

Кстати, судя по тексту ошибки нужно скомпилировать для ATTiny13. Там оно не будет работать, т.к. не хватает нужной периферии
Нужно минимум ATTiny25 или ATTiny45

Artemkos007

#131
Цитата: ArtDen от 01 Сен. 2021 в 18:20
1. Не надо класть исходники прошивку в C:\Program Files (x86)\Arduino\hardware\tools\avr\bin
2. Зачем компилятор распаковывать в C:\Program Files (x86)\Arduino\hardware\tools\avr\ ?
3. Почему на скриншоте ещё какой-то путь c:\AVR?
4. Ошибка - это то, что подсвечено красным цветом

Сделайте всё нормально безо всяких C:\Program Files (x86)\Arduino\hardware\tools\avr\bin и должно заработать. Возможно что в пути PATH есть ещё старый компилятор для AVR и поэтом не работает. Можно его оттуда временно удалить

Добавлено 01 Сен 2021 в 18:24

Кстати, судя по тексту ошибки нужно скомпилировать для ATTiny13. Там оно не будет работать, т.к. не хватает нужной периферии
Нужно минимум ATTiny25 или ATTiny45



Спасибо! получилось!  :bravo: Удалил лишнее пути и прописал atiny85 и перенес в папку C:/avr

ArtDen

Чтобы узнать в каких местах ещё может лежать компилятор AVR, надо в командной строке набрать
where avr-g++.exe
У меня сильное подозрение, что он ещё где-то лежит и оттуда используется

Artemkos007

Самокат 3 колеса (2 сзади) каждое колесо 1200W
контроллеры 60V по 30А (40А max)

Самокат подвесил на стенд:
с завода - при минимальном напряжении на датчике холла ручки газа - колесо сразу начинает крутиться 4 км в час, и даже если потом отпускать ручку газа медленно (или резистором уменьшать вольтаж) - скорость меньше не становится - СКОРОСТЬ СРАЗУ 4 км в час - это очень не комфортно, а стоя на самокате конечно же он пытается уйти из под ног - очень РЕЗКИЙ СТАРТ.

собрал данное устройство https://github.com/art-den/ScooterSpeedCorrector подключил - работает, НО МИНИМАЛЬНАЯ СКОРОСТЬ СТАРТОВАЯ осталась 4 км в час - это очень неудобно.

я так понимаю дело в контроллере?

ВОПРОС 1 - можно ли как то уменьшить СТАРТОВУЮ скорость ближе к нулю ?  (когда колесо сразу стартует с 4 км в час - это очень некомфортно)
ВОПРОС 2 - по этому устройству - при случайном отключении минусового провода - колеса резко разгоняются до максимума(а максимум 77 км в час) это очень опасно - как это исправить путем допрограммирования?

ArtDen

1. Чтобы выяснить, с какой скорости начинает крутить контроллер, надо вместо ручки газа подключить к нему обычный переменный резистор, покрутить его и посмотреть на какой скорости он начинает работать. Это устройство при этом подключать не надо. Если контроллер даже с резистором не позволяет крутить колесо медленно, тот проблему можно решить только сменой контроллера.
2. Все контроллеры, если на вход подать напряжение выше выходного напряжения курка газа должны отключаться ради безопасности. У меня по крайней мере оно так работало. Если это не так, я бы не рискнул ездить на таком контроллере.

PS: а что с компиляцией прошивки оказалось? В чём была проблема?

Киса

[user]Artemkos007[/user], а что у вас за самик?
6Квт для самоката? да ну, должно быть минимум 10!

https://disk.yandex.ru/i/bTPhBTCZr2O8GA

Artemkos007

Цитата: ArtDen от 03 Сен. 2021 в 16:33
1. Чтобы выяснить, с какой скорости начинает крутить контроллер, надо вместо ручки газа подключить к нему обычный переменный резистор, покрутить его и посмотреть на какой скорости он начинает работать. Это устройство при этом подключать не надо. Если контроллер даже с резистором не позволяет крутить колесо медленно, тот проблему можно решить только сменой контроллера.

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

PS: а что с компиляцией прошивки оказалось? В чём была проблема?

1. я так и делал - резистором.  минимум 4 км в час - наверно у меня НЕ СИНУСНЫЙ контроллер? или от чего зависит этот такой резкий старт с 4 км в час - при чем у меня 3 контроллера и все разные на 3 колеса (они чуть чуть отличаются количеством проводов, а по вольтажу и амперам одинаковые) - но все три так работают - может быть дело не в контроллерах а в КОЛЕСАХ? (они одинаковые)
нужен синусный контроллер? или какой лучше чтобы  скорость была с нуля?

2. Без этого устройства при отключении черного провода - колеса отключаются, а с этим устройством - резко разгоняются

3. компиляция - удалил лишние пути: PATH и atiny13 сменил на atiny85

Добавлено 03 Сен 2021 в 16:57

Цитата: Киса от 03 Сен. 2021 в 16:52
[user]Artemkos007[/user], а что у вас за самик?

по разному называется:
X-Rider или LANGFEITE или Coolride

3 колеса, каждое по 1200w номинал (1800max)
3 контроллера 60 вольт по 40 А

ArtDen

По первому вопросу лучше в другой теме обсуждать. Сомневаюсь, что тут кто-то подскажет.
По поводу отключения общего провода: устройство при этом обесточивается, а так-как питание не оборвано, оно выдаёт напряжение питания на выходе и никакими доработками прошивки делу не поможешь (если я правильно конечно понял проблему). Надо чтобы всё было подключено качественно, без соплей. На кону собственное (а возможно и чужое) здоровье. Но и повторюсь, что контроллер при подаче высокого напряжения на вход должен отключаться. Странно что он этого не делает.

Artemkos007

еще присутствует ЗАДЕРЖКА  1 сек - между: покрутил ручку газа и началом движения колеса - но в настройке нельзя указать 0 секунд - компиляция выдает ошибку на этот 0.
как убрать задержку?

вольтаж MinV указывал точно и корректировку прописал, пробовал MinV делать и меньше и больше - все равно задержка

ArtDen

я же вот тут писал, как убрать задержку: https://electrotransport.ru/index.php?topic=59354.msg2095556#msg2095556
Если после этого задержка осталась, возможно что МК работает не на частоте 8МГц и надо его переключить на 8МГц

Artemkos007

Цитата: ArtDen от 03 Сен. 2021 в 18:27
я же вот тут писал, как убрать задержку: https://electrotransport.ru/index.php?topic=59354.msg2095556#msg2095556
Если после этого задержка осталась, возможно что МК работает не на частоте 8МГц и надо его переключить на 8МГц

выдает ошибку при компиляции

ArtDen

Всё, дошло. Тогда надо по-другому:

// Если напряжение меньше MinV, то просто выдаём его на выход
if (out_voltage < MinV)
{
smooth_voltage = out_voltage;
}

// ... иначе плавно приближаем smooth_voltage к out_voltage
else
{
int16_t diff = out_voltage - smooth_voltage;
#if (MaxGainTime != 0)
constexpr int16_t MaxGainDiff = (int32_t)(MaxVk - MinV) / ((int32_t)MaxGainTime * WorkFreq);
if (diff > MaxGainDiff) diff = MaxGainDiff;
#endif
#if (MaxDropTime != 0)
constexpr int16_t MaxDropDiff = (int32_t)(MaxVk - MinV) / ((int32_t)MaxDropTime * WorkFreq);
if (diff < -MaxDropDiff) diff = -MaxDropDiff;
#endif
smooth_voltage += diff;
}

// При необходимости ограничиваем напряженение сверху

Чуть позже обновлю на https://github.com/art-den/ScooterSpeedCorrector

Но я бы убедился на всякий случай, что МК на 8 МГц работает, иначе он сильно тормозить будет

Artemkos007

#142
Цитата: ArtDen от 03 Сен. 2021 в 18:58
Всё, дошло. Тогда надо по-другому:

// Если напряжение меньше MinV, то просто выдаём его на выход
if (out_voltage < MinV)
{
smooth_voltage = out_voltage;
}

// ... иначе плавно приближаем smooth_voltage к out_voltage
else
{
int16_t diff = out_voltage - smooth_voltage;
#if (MaxGainTime != 0)
constexpr int16_t MaxGainDiff = (int32_t)(MaxVk - MinV) / ((int32_t)MaxGainTime * WorkFreq);
if (diff > MaxGainDiff) diff = MaxGainDiff;
#endif
#if (MaxDropTime != 0)
constexpr int16_t MaxDropDiff = (int32_t)(MaxVk - MinV) / ((int32_t)MaxDropTime * WorkFreq);
if (diff < -MaxDropDiff) diff = -MaxDropDiff;
#endif
smooth_voltage += diff;
}

// При необходимости ограничиваем напряженение сверху

Чуть позже обновлю на https://github.com/art-den/ScooterSpeedCorrector

Но я бы убедился на всякий случай, что МК на 8 МГц работает, иначе он сильно тормозить будет



задержка ушла (так же выставил MaxGainTime 0), но и ушла НЕЛИНЕЙНОСТЬ - т.е. колесо стало разгоняться как было с завода. получилось вот что:

т.е. Степень нелинейности для основного колеса СТАЛА равна 0, хотя указана 5
но если MaxGainTime установить 1
то нелинейность снова работает

ArtDen

Очень странно. Нелинейность зависит только от строк

// Преобразуем входное напряжение в выходное по таблице
auto out_voltage = table ? translate_volatge(in_voltage, table, table_size) : in_voltage;

А они не зависят от MaxGainTime.
Вообще нелинейность влияет только на то, что курком газа становится намного проще управлять низкими скоростями, чтобы лавировать в толпе. Фактически диапазон низких скоростей растягиваться примерно до половины диапазона курка газа