Перейти к содержанию

Круиз-контроль для Mitsubishi Grandis Atmega8535


Гость еще один max

Рекомендуемые сообщения

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

 

угу....всё ясно...кол-во выводов с рычажка ограничен..

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 218
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Изображения в теме

Привет, ребята! Так точно, Дима прав. Это фирменный рычажок, который ставится в руль, в авто, поставляемых к нам в максимальой комплектации он стоит с завода. На остальные леворульные можно поставить, подключить к проводке рычажок и концевик на педали тормоза и круиз заработает. А на праволульных фигушки... Тут и проводки нет, и круиз в ECU не активирован. Только вот место под рычажок все равно есть. И едет он (рычажок) ко мне то ли из Америки, то ли из Эмиратов, вот-вот должен прибыть. Я месяц назад руль разбирал, все осмотрел, встанет ка родной. Японцы люди практичные, зачем 2 вида рулей делать, даже если на праворульные не планируется круиз? Но и экономные, проводку под рычажок-джойстик не поставили, ибо лишняя :smile: И на приборке надписи "Cruise" просто нет. Потому и буду куда-нить светодиодик тулить...

Жень, а к плюсу зачем тянуть? Можно ведь вход мк подтянуть к плюсу внутренним резюком. Или это плохо в отношении помехозащищенности?

Плата полностью готова, только ЦАП втыкай и вперед, даже D-образный разъем впаял уже:

post-1142-1275845726_thumb.jpgpost-1142-1275845735_thumb.jpg

Странное явление - эту плату лудил сплавом Розе. И скорость чтения и записи контроллера заметно возросла. Я аж не поленился старую плату воткнуть, реально разница на глаз заметна! Видимо там у меня что-то плохо пропаяно было :smile:

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

Яволь! Выполним... Так следовательно если по логике программы на каком-то из входов должен быть "0", то его надо "опускать" на общий провод таким же резистором?

Ссылка на комментарий
Поделиться на другие сайты

MAX, а по какому алгоритму хочешь управлять поддержанием скорости? Или еще об этом не думал? Если думал, распиши плиз :smile:

Ссылка на комментарий
Поделиться на другие сайты

Володя, так и будет. В первоначальном варианте было на + через 10 кОм. Потом подумал - подтягивающие есть, нафига? Но исходя из вышесказанного впаяю, 10 кОм хватит по любому.

Дим, конкретно не думал, хотя принцип один, реализация может быть разной. Опрос входящего интерфейса, проверка граничных условий (диапазон срабатывания и пр.), в зависимости от собранных данных направление алгоритма через "case" на нужную ветку, вывод данных на ЦАП... Ну и заново.

Много разрозненных мыслей, типа не делать отдельно реализацию режима "обгон", просто при выводе данных на ЦАП сделать условие выводить большее значение (или с педали или из ячейки отслеживания), и на время обгона систему слежения замораживать. Так проще будет. Так же опрос датчиков делать не в прерывании (как сначала хотел), а в общем теле, ибо можно попасться на том, что ты определишься по ветке следования, а в процессе выполнения ветки будет прерывание и значения датчиков изменятся, допустим нажмется тормоз. А после прерывания вернешься не в начало case, а в точку прерывания... и будет ж#па :smile:

Заходил в запчасти - рычажок едет еще, ЦАП будет завтра. Сегодня дам мозгам отдохнуть, дочке помогал ЕГЭ по математике сдавать, башка после этого способна только на простые действия. Вот маразм с этими дурацкими экзаменами, точно говорят по телику, такую хню могли только у нас придумать :smile:

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

Не MAX, я не про тот алгоритм. Допустим едем мы по прямой 100км\ч, горка-скорость начала снижаться.

Как будет реагировать круиз в этом случае? Прибавлять постепенно до выравнивания, прибавит много, а потом сбросит и т.д.? Тот же случай но под горку.

Ехал 100км\ч, знак 60, нажал на тормоз сбросил, проехал зону и влючил ACESS, как поведет себя круиз в этой ситуации? Вот я про какой алгоритм.

Ссылка на комментарий
Поделиться на другие сайты

2Женя: А если завести прерывание по нажатию тормоза, а в это время обрабатывается вывод скорости? Выпали в обработку тормоза, все сделали, и возвращаемся в программу. И она преспокойно выводит якобы от лапки не ХХ, как должно быть а, "дорабатывая", выплюнет данные из ячейки? А данные ХХ выдаст только на следующем цикле. Так не проще ли сразу опрос всех датчиков делать? Тем более что если цикл делать допустим 4 раза в секунду, то задержка будет минимальна. Хотя можно сделать из прерывания безусловный переход... А как стек в этом случае модифицировать? Меня приучили, что это запутывание алгоритма и вообще дурной тон, последствия такого выхода из прерывания непредсказуемы. Рад буду, если научите как это правильно делать.

2Дима: По поводу "горки-с горки": не вижу трудностей... Едем в гору, падает скорость, добавляем напряжения на ECU: n вольт за m секунд. Не помогает, скорость все падает. Прибавляем еще столько же за столько же время. Помогло, скорость выровнялась - выводим то же значение. Превысили - уменьшаем выводимое напряжение. Величины n и m подбираются экспериментально, для начала 0,05 вольт за 1 секунду. Тестируется на прямой безлюдной трассе на скорости 70-80 км/ч с напарником и ноутбуком. Проехали, если медленно реагирует, уменьшить интервал реакции или добавить дельту напряжения (изменить константы в программе и перешить контроллер), это 3-4 минуты. Соответственно если слишком быстро или скорость рывками скачет "больше-меньше" - сделать наоборот. Поехали опять тестировать. За час вполне возможно подобрать наиболее комфортные лично для меня значения. Для начала будет только 2 режима - дубликация педали и поддержание скорости. А потом последовательно буду все наращивать функции и размер программы. Задача упрощается еще и тем, что машина тяжелая, двигатель мощный и коробка-автомат, т.е. инерционность системы очень большая.

Будет и остальное - ступенчатое увеличение поддерживаемой скорости (кстати, в фирменном руководстве написано, что увеличение идет в темпе 1,6 км/ч за одно нажатие), такое же уменьшение, плавное увеличение-уменьшение, установление ранее заданной скорости и пр.

Ссылка на комментарий
Поделиться на другие сайты

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

по поводу движения с горки на горку....думаю пропорциональный регулятор справиться с этой проблемой вполне....ибо ..если у машины снизиться..увеличится скорость...то на входе у регулятора появится соответвующее рассоглосование со знаком...едиственно что будет трудностью так это ...найти тот подходящий коэффициент для регулятора..тоесть на скока дать управляющее воздествие + незабываем про постаянную времени объекта тоесть инерцинность машины ...регулятор должен быть соотвествующий его инерции(он не должен быть слишком быстрым но и не должен быть слишком медленным)...но как это макс сказал эти коэффициенты подберуться опытным путем на машине...а эти коэффициенты Макс ия думаю их мона сделать в ЭЭПРОМ ке...и с помощью кнопок ..."менять их" тоесть подстраивать прямо на ходу не прибегая к прошивке мк занова.....

Ссылка на комментарий
Поделиться на другие сайты

Отличная идея, спасибо! Поскольку свободных ног много, прицепить 4 кнопки можно на 1-2-3. На отдельной платке 4 кнопы и подтягивающие резюки, и 6 проводков к плате, припаяю прям к свободным ногам мк.

А как потом данные из ЭЭПРОМа достать? Программатором-то я считаю, но это ж в 16-чном коде будет. Как определить где там какая переменная?

Хотя методом сравнения можно вычислить, допустим определить в переменной 0x00, посмотреть что записалось. Потом 0xFE, опять таки посмотреть. И где нули изменились на FE, то и есть место записи данной переменной, где Е, там младший байт. Так? Или есть более простой способ?

Ссылка на комментарий
Поделиться на другие сайты

Отличная идея, спасибо! Поскольку свободных ног много, прицепить 4 кнопки можно на 1-2-3. На отдельной платке 4 кнопы и подтягивающие резюки, и 6 проводков к плате, припаяю прям к свободным ногам мк.

А как потом данные из ЭЭПРОМа достать? Программатором-то я считаю, но это ж в 16-чном коде будет. Как определить где там какая переменная?

Хотя методом сравнения можно вычислить, допустим определить в переменной 0x00, посмотреть что записалось. Потом 0xFE, опять таки посмотреть. И где нули изменились на FE, то и есть место записи данной переменной, где Е, там младший байт. Так? Или есть более простой способ?

 

Для посмотреть....я думаю нужен буит или LED-индикатор приспособить,разрядность LED-ов будет зависеть от величины переменных , ну тамо сотня, тысяча, десятки, единицы ( простое,чуть додумать ак зделать динамическую индикацию и доработать логику работы проги для записи,изменения и передачи переменных в программу управления.) благо ноги есть свободные.....или воткнуть lcd от сотового телефона(чуть сложнее но в нете куча примеров и даже гатовых хидеров и всевозможных библиотек нарыть мона..кстати тута в соседней ветке обсуждалось такое изделие на лсд он нокии 1110 заделали уровень топлива и еще чтот... но впринципе управлять им не сложнее LEDов...если взять что нить типа от ноки 3310 или падобное)

 

С кнопами...

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

 

"Хотя методом сравнения можно вычислить, допустим определить в переменной 0x00, посмотреть что записалось. Потом 0xFE, опять таки посмотреть. И где нули изменились на FE, то и есть место записи данной переменной, где Е, там младший байт. Так? Или есть более простой способ?"---

--а вот с этим можно определиться када определишься с типом индикатора....в случае если будет лед-индикаторы то во flash-память записываеться код выводимой цифры(от 0-9) в виде массива(код этот будет разным в зависмости от типа индикаторов какой он, с общим катодом или анодом, хотя по сути ани просто буду инвертны по отношению к друг другу ).... само число раскладывают на BCD код(тоесть узнаем сколька тамо будет сотен десятков единиц и т.п).....полученные значения будут указателями в массиве на код этой цифры....с лсд от сотового немного по другому....хотя библиотека цифирь и тамо всяких букавок тоже будет валяться во флеш-памяти в ввиде массива...опять же скажу в нете уже мона найти все гатовое чтоб не париться....особенно на популярные такие как например нока 3310...

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

...от всего этого канечно устройство раздуется на железном уровне ну и програмном...но очь здорова облегчися эксплуатация устройства,станет наглядней и визуабельней...+ когда у тя не будет работать это устройство в режиме круизёра....то можна буит выводить акую нить другую инфу...например(благо свободные каналы от ацп присутвуют) бортовое напряжение.....раз уж стоит у тя мк то пусть трудиться во благо на все 100 свои...

Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...