Полезная информация


Контроллеры Vesc с дисплеем LCD-8 и торксенсором.

Автор Mike 372, 12 Авг. 2023 в 00:04

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

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

Mike 372

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

7ambrion

Комплексую лишний раз на лифте с великом гонять )) под домом теплая парковка и в ней для великов есть специальное "хранилеще" ) ну и личные кладовки тоже там где все инструменты хронят и велики при необходимости крутят )

В общем выезды наверное пока лучше отложить до более завершенной кондиции ) и потом уже там внизу, как и все остальные, мелочевкой заниматься )

7ambrion

Цитата: Mike 372 от 09 Апр. 2024 в 22:51Добавь перед строчкой:
ASSIST_LEVEL = 3;
//Обработка сигнала датчика вращения.                              18 импульсов на оборот.

все так же только ассистент на 5 - появляется надпись и крутит тоже ))

7ambrion

сигнал с экрана идет и амплитуда прям четкая 0/5в )

Mike 372

Я на данный момент вижу два варианта для изысканий. Попробовать все таки подключить делитель. Либо попробовать прочитать какой-нибудь другой байт из посылки. Удобно третий. Там весь байт занимает один параметр Р1. Получение настроено в переменную J. Но эта строчка закомментирована. Раскомментируешь
//J = buf[3]*10;
Умножать на 10 тоже не надо. Перед строчкой добавляешь условия:
if J==1 digitalWrite(LED_PIN, HIGH);
if J==2 digitalWrite(LED_PIN, LOW);

//Обработка сигнала датчика вращения.
При установке в дисплее Р1 в 1 светодиод должен включиться, при установке в 2 выключиться.

7ambrion

делитель впаял - не помогло )

J тоже не срабатывает, и в экране p1 теперь каждый раз сам перезаписывается на 87 )))

Mike 372

Что значит теперь? Проделанные манипуляции на дисплей ни как повлиять не должны.

7ambrion

ок, перепроверил и похоже экрану самому просто 1 не нравится ) 10 и 20 уже не переписываются но и диод на 10 не загорается тоже )

7ambrion

10 тоже слишком ему мало, 100/200 уже точно норм заходят, но диод на 100 увы не загорается )

Mike 372

Проверил на своем, действительно сбрасывает. У меня и 10 сбрасывает на 46.  %-)
Что-то уже иссякают варианты. Разве что попробовать перебросить все это на Serial2.

7ambrion


Mike 372

В скетче он уже активирован. Просто в "Получение данных с дисплея" поменять Serial1 на Serial2 в двух строчках. Ну и провод от дисплея подключить на РА3. Обязательно через делитель. Он не толерантный.  ;-D
Мне надо отлучиться часа на 1,5-2.  :pardon:

7ambrion

хех пришлось еще в "передаче данных в веск" одну подмену сделать, но по сути ничего не изменилось ) данные шлем но не принимаем )

Mike 372

Уф. Ну есть у меня еще одна идея. Во первых проверь внимательно вот этот участок кода, вдруг где ошибка образовалась случайно.
//Получение данных с дисплея.
   
//Обработка сигнала датчика вращения.
То, что курсивом, может не соответствовать. Это рабочие данные. А вот остальное должно соответствовать с точностью до знака. Потом после строчки добавь включение светодиода.
A = 0;
digitalWrite(LED_PIN, HIGH);
Если где-то в коде еще есть другие команды включения или выключения светодиода, убери. Если он хоть раз увидит контрольные байты, светодиод должен включиться.

Mike 372

Опять он зараза все искажает. Сейчас картинкой сделаю.
Снимок экрана в 2024-04-10 20-34-16.jpg
То, что в красной рамке, можно не проверять.

7ambrion

все так же и диод не загорается ) кроме переключения ассистента попробовал еще p1 попереключать - все бесполезно )

далее расклад такой ) приговор выносится ардуинке тк она не может принять сигнал который есть ) по этому, если ты заказывал свои на алике, попробуй их найти в истории заказов, и я закажу те же самые у того же самого продавца )

а пока собираю как есть и сделаю первый выезд с терком так ) без обратной связи ) один только вопрос касательно этого имеется ) изменение пока перманентного уровня ассистента в скетче равносильно изменению моторного тока в контроллере или на каких параметрах рекомендуешь остановиться, чтоб норм было ездить в климате с перепадами высот, иногда резкими, и встречным ветром? ))
зы соответственно без газа, который тоже пока будет но исключительно для подстраховки ))
ззы и я не то чтобы спортсмен или любитель вкручивать педальки с напрягом, просто хочу кайфануть с терксенсора ))

Mike 372

Цитата: 7ambrion от 10 Апр. 2024 в 20:27приговор выносится ардуинке тк она не может принять сигнал который есть )
Странно все это. Я конечно не великий спец по микроконтроллерам, но на основании своих знаний пока сомневаюсь в таком диагнозе. Дискретный вход если отличает 0 от 1, значит рабочий. Всякие протоколы и передача данных, это уже софтовые заморочки. Я бы сейчас инициализировал входы RX как простые дискретные. Загрузил бы простейшей скетч - 1 на входе, светодиод включен, 0 - выключен. Если не заработает, тогда да, проблема в железе. А вот если будет работать... Тогда можно напридумывать много чего. Может у тебя в компиляторе не хватает каких-то библиотек, или библиотека работы с этим портом кривая. Или криво встала библиотека, обеспечивающая работу с данным процессором. Я таких плат уже штук восемь купил и запустил, а с одной была проблема. Скетч ни в какую не хотел заливаться по USB. Долго разбирались, потом товарищ догадался взглянуть на маркировку чипа. А там оказалось не С8Т6, а С6Т6. И разглядеть можно только в лупу. Посоветоваться бы с кем поопытнее. Вот еще какое несоответствие нарыл. У классической Blue Pill стоит кварц на 8 Мгц. А у тебя написано частота 72 МГц. Не знаю точно, как получается тактовая из кварца. Но что-то разница уж очень большая. И если у твоей платы частота другая, то скорость обмена может получится неправильная. Поспрашиваю завтра у спецов на работе на эту тему.

Mike 372

Цитата: 7ambrion от 10 Апр. 2024 в 20:27а пока собираю как есть и сделаю первый выезд с терком так ) без обратной связи ) один только вопрос касательно этого имеется ) изменение пока перманентного уровня ассистента в скетче равносильно изменению моторного тока в контроллере или на каких параметрах рекомендуешь остановиться, чтоб норм было ездить в климате с перепадами высот, иногда резкими, и встречным ветром? ))
Тут одна загвоздка видится. У этой системы есть параметры, к которым подгружаются поправки с дисплея. Так было проще отлаживать. Можно было менять параметры в пути без перепрошивки платы. Надо их все вспомнить и задать соответствующие константы. Иначе непонятно, что получится. Фактически надо закомментировать все строки в блоке получения данных с дисплея за пределами красной рамки. А всем параметрам в рамке присвоить константы.
ASSIST_LEVEL = 3;
ASSIST_DELAY = 200;
Pulse_pedal =  3;
G = 500;
F = 500;
E = 100;
C = 1;
Вроде вот так, если ничего не напутал. У меня третий уровень самый универсальный. А дальше надо пробовать и подстраивать по ощущениям. Обрати внимание на момент включения помощника. Этот момент легко чувствуется. А еще есть порог повышения уровня помощи и начальный уровень сигнала торка, от которого он начинает наращивать помощь. С этими параметрами сложнее. Начальный уровень сигнала торка, это когда ты крутишь педали с минимальной и комфортной для тебя нагрузкой. Порог повышения, это уже приличная нагрузка, когда ты достиг максимального, но еще комфортного для тебя предела. Другими словами, он пытается поддерживать нагрузку между этими двумя значениями. Если превышаешь верхний предел, степень помощи повышается, если выходишь за нижний предел, помощь уменьшается. Я это все определял через выведенный на руль светодиод. Устанавливал разные пороги включения, ехал и отмечал, при какой нагрузке он включается. Вот, даже сохранились записи:
500 мВ   Проворот вхолостую
600 мВ   Под горку
700 мВ   По горизонтали
800 мВ   Минимальный подъем
900 мВ   Средний подъем
Это превышения сигнала относительно нуля (1500 мВ). А потом подключал двухцветный светодиод. При повышении уровня помощи он мигал красным, при понижении синим. Я сопоставлял эти мигания с нагрузкой и подстраивал в желаемую сторону.