Круиз-контроль для автомобиля с электронной педалью акселератора: AD7302 + Atmega8535
Содержание / Contents
↑ Выходы:
1. Забить и ездить так. Неинтересно, с круизом удобнее.
2. Купить машину с круизом. Дорого, и мне эта нравится.
3. Найти б/у ECU с круизной прошивкой. Нереально. Кто тебе скажет, есть там что внутри или нет? А стоит 2 штуки зеленых.
4. Перешить имеющийся бортовик с помощью «умных» из гаража. В неудачном случае имеем неисправный ECU и мертвую машину.
5. Купить немецкую универсальную //www.waeco.com/en/4374.php, на многие авто идет. Митцы в списке нет. Опять колхоз? Отдать 15 штук и колхозить?
6. Собрать самому. Недорого, научиться обращаться с микроконтроллерами, разминка для мозгов. И сколько еще японоГрандисов по стране ездит. Плюс Аиртреки, плюс праворульные Аутлендеры, и такие же Галанты. Их тоже немало, опыт круизостроения явно пригодится не мне одному.
↑ Выбрал последний вариант.
Логика работы устройства понятна и прозрачна: при задании определенной скорости запоминается показание датчика скорости, положение педали акселератора и далее при уменьшении скорости эмулируется нажатие на педаль сильнее, при увеличении скорости — слабее. Далее ограничители по скорости (не менее 40 и не более 160 км/ч), ограничители по максимальному и минимальному положению педали и прочие условия нормального функционирования устройства.
Внешне управление устройства не должно было отличаться от фирменного. Было изучено устройство и принцип работы органов управления, приобретены (не без труда) джойстик-рычаг для управления и концевик на педаль тормоза. Без последнего вполне можно было обойтись, но хотелось как можно ближе приблизиться к оригиналу. Кроме того, этот концевик позволяет электрически развязать сигнальные цепи 12 и 5 Вольт , что немаловажно для безопасной работы контроллера.
Скажу честно, опыта работы с микроконтроллерами было ноль. Поэтому приступал к проектированию и изготовлению как к покорению первой горной вершины (сколько их у нас в жизни, верно?) — глаза боятся а руки делают.
Конечно, большую часть информации нарыл сам. Только я бы не знал, куда тыкаться, если бы не форум. Но «спасибы» в конце статьи, а пока о деле.
Для CPU был выбран Atmega8535. Просто по совету. Теперь понимаю, насколько дальновидным был этот совет. Ну да, 40-ножка, большой микропроцессор. Зато в нем предусмотрено все, что мне понадобилось, вернее я не использовал и половины имеющихся на борту устройств и возможностей. И теперь знаю, что они есть! Он доступен, недорог.
Среда написания программы — CodeVisionAVR, язык — Си. И опять помог портал, чудные статьи по первым шагам в освоении микроконтроллеров были распечатаны и замусолены по вечерам до непотребного состояния. После прочтения остались вопросы, захотелось копнуть глубже. Помогли книги Трамперта и Баранова, и несчетное количество страниц в интернете, посвященные контроллерам Atmel. Всю жизнь мечтал изучить Си. Но только взяв какой-нить учебник через 3-4 листа понимал что я=лошара, и это все для избранных. Надо заметить, что также у меня начиналось с консольным сервером на Линуксе. А почитав статьи и просто скопировав некоторые простенькие программы, понял, что все вполне доступно. Си — рулез! Конечно на Ассемблере код короче и программа быстрее, но написание и отладка мне ближе на Си, более «юзабельно».
Очень помогла великолепная программа Proteus, ее часть ISIS, позволяющая «паять без паяльника», логика работы схемы наполовину отработана в ней.
Первым делом определился с входными параметрами. В очередной раз порадовали инженеры MMC — датчик скорости и педаль акселератора сделаны на эффекте Холла. В педали сдвоенный датчик, в «скоростемере» одиночный. Одноклассник помог промерять данные с датчика скорости, оказалось все очень просто — прямая зависимость частоты от скорости движения, вышло F=25*V, F — частота в Гц, V — скорость в км/ч. Т.е. на 40 км/ч 1000 Гц, на 90 км/ч 2250 и так далее. Напряжение меандра 4,96 В вверху и абсолютный ноль внизу. Просто супер для контроллера. Полез в педаль акселератора, тоже победа, диапазон напряжений, выдаваемых с педалей 0,55-4,55 Вольт , отставание одного датчика от другого 0,3 В. Все очень разумно и легко контролируемо и реализуемо! В контроллере есть аж 8 входов АЦП, да какие — можно выбрать разрядность от 8 до 10 бит, и сразу передавать на выход аппаратного ШИМ.
↑ В эйфории сваял первый вариант схемы:
Вывод производится через аппаратный ШИМ контроллера. В Протеусе все было шикарно, небольшие флуктуации напряжения (около 0,01 вольта) не смущали. Пора в железо! Пришлось отвлечься сначала на освоение технологии ЛУТ, потом на изготовление нормального программатора по мотивам PROTTOSSa. Но и тут время не потеряно зря, теперь уж изготовление небольших печатных плат достаточно высокого качества для меня по плечу! Заодно освоил покрытие сплавом Розе, результаты тоже очень понравились.
Источник
Круиз-контроль с электронной педалью акселератора
Круиз-контроль для автомобиля с электронной педалью акселератора: AD7302 + Atmega8535. Система круиз контроля – неотъемлемая часть автомашины, особенно тогда, когда Вы собираетесь на дальние поездки. Если в вашей машине не предусмотрен круиз-контроль, проблему эту обычно решают
1) Ездят без него, не обращая внимания;
2) Покупают новую машину с круиз-контролем;
3) Покупают или находят б/у ECU с круизной прошивкой. Однако, находка данного оборудования достаточно сложна.
4) Делают перепрошивку имеющегося бортового компьютера. В случае неудачи, человек может остаться с мертвой машиной.
5) Делают его самостоятельно.
В данной статье будет описываться 5 пункт . Так как в таком случае, это намного выгодней, дешевле. Сборка самостоятельно подразумевает самостоятельное обучение работы с микроконтроллерами.
Начнем с рассмотрения последовательности работы устройства. При задании некоторой скорости, показания с датчика скорости, положение акселератора запоминается в памяти.
Из-за уменьшения скорости начинается эмуляция нажатия на педаль. Если скорость превышает заданную – эмуляция педали срабатывает слабее. Устройство обладает ограничение по скорости. Скорость не должна быть меньше 40 км/ч и больше 160 км/ч. Внешне управление самодельного устройства не отличается от фирменного круиз-контроля.
В дальнейшем были приобретены концевик и рычаг для управления педалью тормоза. Для безопасной работы данного контроллера выбирался концевик, который имеет возможность развязывать сигнальные цепи 12 и 5В.
В качестве микроконтроллера был выбран микроконтроллер семейства AVR фирмы Atmel Atmega8535. Данный микроконтроллер имеет 40 ножек, обладает всеми необходимыми возможностями. Сама программа управления микроконтроллером была написана на языке “С”. Программа разработана в утилите “CodeVisionAVR”.
Если вы не являетесь обладателем знаний по программированию контроллеров, то на помощь могут придти книги Трамперта и Баранова. Сами микроконтроллеры AVR являются очень распространенными и информации по ним в интернете предостаточно.
Для сборки схемы так же использовалась программа “Proteus”. Она позволила полностью собрать схему и отработать логику работы устройства в самой программе, не используя каких-либо средств: паяльника и т.д.
На рисунке выше представлен первый вариант схемы контроллера.
Вывод происходит через широтно – импульсную модуляцию контроллера. В случае, если автомобильные ЭБУ не видит контроллер, необходимо либо буферизировать широтно-импульсную модуляцию, либо переложить вывод напряжения на внешний ЦАП (цифро-аналоговый преобразователь). Первое решение является более сложным.
При сборке схемы на микроконтроллере осталось множество незадействованных ножек, поэтому был присоединен ЦАП. В качестве ЦАПа выбрана микросхема AD7302.
Окончательный вариант схемы:
Внешний вид устройства:
Ниже представлена схема “вживления” в проводку автомобиля.
В дальнейшем, устройство можно модернизировать. Добавляя различные функции, реализованные программно. Например, можно добавить функцию бустера педали. Код программы выйдет небольшой и хорошо читаемый.
В результате опытной проверки временем, автор признал конструкцию слишком опасной при неумелой модификации и установке. На этом основании прошивка изъята с нашего сайта.
Источник
Arduino.ru
Прошу помощи в написании скетча круиз контроля
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На днях пришла плата ардуино нано, решил начать с написания скетча для реализации круиз контроля, так как давно хотел. Тема в общем-то распространённая, но конкретной реализации скетча чтоб взять и залить не нашёл. Пока величайшим мои достижением было моргание светодиодом, так что ошибки могут быть очень глупые, но мне совершенно не очевидные.
После рысканья по интренету в поисках решений было сотворено такое
Сейчас подключил к генератору, частота порядка килогерца, «нажал» кнопку SET, увеличил период — результата 0, светодиод не загорелся. Сейчас допишу вывод «скорости» на компорт и посмотрю что он выдаёт. Но может у меня тут вообще какая-то очевидная ошибка. Буду благодарен за помощь.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
В 56 строчке в описании опечатка конечно, там проверка кнопки down.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
так а в чём помощь — написать вам программу ?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Э. Нет. Сказать, что в этой неверно.
Попробую сформулировать вопросы конкретнее
Правильно ли расположены элементы, а конкретнее функции void в коде?
Верно ли написана функция кнопки SET?
И всё ли в порядке в функции спидометра.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Так, посмотрел — частоту он меряет, по крайней мере по Serial.print в зависимости от частоты выдаёт разные последовательности.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Хвататься за круиз-контроль после освоения блинка, решение не самое умное. Пособирайте для начала часики, метеостанции, а потом за более серьезные вещи беритесь (тем более, от которых целостность шкуры зависит и не только вашей). ИМХО.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Хвататься за круиз-контроль после освоения блинка, решение не самое умное. Пособирайте для начала часики, метеостанции, а потом за более серьезные вещи беритесь (тем более, от которых целостность шкуры зависит и не только вашей). ИМХО.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вот едете вы по городу, а впереди красный. Ну вы, понятное дело, потихонечку оттормаживаетесь, чтобы остановиться аккурат не доезжая метр до крайней к вам стоящей автомашине. Вы уже почти остановились, но тут ардуино «вспоминает», что три часа назад вы ему велели держать 110, а тут такое упущение. Вот он и поддает газу, а вы собираете всех впереди стоящих. И хорошо, если это случается перед светофором, а не перед оживленным пешеходным переходом.
Скажете такого не может быть? Такое случается время от времени с крупными автопроизводителями, где конструированием занимаются профессионалы.
Первые проверки Toyota из-за самопроизвольного ускорения состоялись в 2002 и 2003 году. Тогда внимание NHTSA привлекли модели Camry и Solara. Еще два иска были поданы в 2004 и 2008 годах. В последнем случае поводом к началу расследования послужила гибель 76-летней Гуадалупе Альберто из штата Мичиган.
Пожилая женщина на своей Camry 2005 года выпуска ехала со скоростью 40 км/ч, неожиданно машина ускорилась до 130 км/ч и врезалась в дерево.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
. Скажете такого не может быть.
С точки зрения безопасности есть масса мер предотвращающих это — например сделать электрическое отключение привода при нажатии тормоза или сцепления, тут уже неважно что будет выдавать ардуино, если привод будет обесточен.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Наивно полагать, что только одна эта напасть может ожидать вас. В любом случае, при начале эксплуатации самопального круиз-контроля, не лишним будет известить учредителей премии Дарвина.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Так, ну частоту он запоминать начал. И после сброса тормозом или сцеплением восстанавливает её верно по кнопке Up. +/- 5 работает через. Странно в общем, видимо дребезг контактов. Надо будет для каждой кнопки его исправить программно.
Кого пугает круиз контроль — это всё очень несложно переделать в напоминалку о превышении скорости. Тогда и с кнопками +/- морочится не надо.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Наивно полагать, что только одна эта напасть может ожидать вас. В любом случае, при начале эксплуатации самопального круиз-контроля, не лишним будет известить учредителей премии Дарвина.
Пока допилю часть про ограничитель скорости, если уж КК не будет — пусть хоть пищит при превышении. Купил фокус новый недавно, там очень классно сделано — электронный дроссель просто перестаёт открываться при приближении к порогу ограничения скорости, но как это сделать с троссовым приводом — понятия не имею.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Не просветите меня, какие же ещё меня могут ожидать напасти?
От зря Вы так вопрос ставите с нашими дорогами и нравами. Не к добру шо называется.
Подумайте что будет при обгоне, если на встречке контроллер решит, что это слишком быстро. Или под круизом вылетели на участок с гололедом, а он считает, что скорость нужно держать.
Такие доработки авто запрещены, причем не только законом (хи-хи..) но и здравым смыслом, это очень опасно для Вас, Ваших пасажиров и участников движения оказавшихся рядом с Вами. Потому, пожалуста, сообщите здесь на форуме, и желательно в других СМИ, на каких дорогах и в какое время Вы будете использовать разработку первый месяц (дольше не потребуется) после установки на авто. Мы будем учитывать это при планировании поездок.
Пока допилю часть про ограничитель скорости, если уж КК не будет — пусть хоть пищит при превышении.
А вот это ни вапрос! такую штуку можна и запросто!
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Подумайте что будет при обгоне, если на встречке контроллер решит, что это слишком быстро.
Ну на этот вопрос я могу вам легко ответить — ничего. Извините меня конечно, но сразу видно, что вы не имели дело с автомобилями с троссиковым круиз-контролем. Они могут только увеличить скорость, так как используются 2 троса привода, один из которых просто провисает, когда натянут второй. Т.е. затормозить он не может в принципе, только сбросить газ, если не нажата педаль. На мерине каком-то видел — круиз контроль жал на тормоз, но это нереальная редкость. Даже на современных автомобилях такое встретишь не часто.
Или под круизом вылетели на участок с гололедом, а он считает, что скорость нужно держать.
Вот это да, опасность. Которая впрочем никак не исправлена и заводских системах без ESP и антипробуксовки. Впрочем для этого есть простое решение — не включать его в гололёд. Как я и делаю всегда.
Такие доработки авто запрещены, причем не только законом (хи-хи..)
Спорить не хочу, но насколько я помню, по основным правилам допуска ТС к эксплуатации, запрещено вносить конструктивные изменения в тормозную систему и рулевое управление. И о том и о том мне думать уже поздно, одно от ауди, другое скоро будет от фольсквагена. Про системы питания и контроля скорости нет ни слова.
сообщите здесь на форуме, и желательно в других СМИ, на каких дорогах и в какое время Вы будете использовать разработку первый месяц (дольше не потребуется) после установки на авто. Мы будем учитывать это при планировании поездок.
Не беспокойтесь, это всё скорее этап подготовки, никаких испытаний до сухого асфальта. Максимум подключу к машине и буду со светодиодом ездить на приборке, чтоб контролировать адекватность работы.
Опять же прошу прощения, но этот спор мне напоминает многостраничные споры на автофорумах про газовое оборудование.
Пока допилю часть про ограничитель скорости, если уж КК не будет — пусть хоть пищит при превышении.
А вот это ни вапрос! такую штуку можна и запросто!
Да, уже накидал скетч. На столе от генератора работает.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Всем привет, это снова я. Монстрик подрос, отрастил пищалку по превышению скорости.
Теперь появилось желание оприделывать к нему разные фишечки типа запоминания установленных скоростей при отключении питания. Планирую запитать плату через конденсатор большой ёмкости и диод (с платой на одном источнике висят регистратор и навигатор) , а один из выводов вывести до диода. Таким образом, чтобы при отключении питания плата получала об этом информацию, но за счёт конденсатора работала бы ещё какое-то время, за которое успевала бы записать значения в EEPROM. В скетче это 5 цифровой вывод. Можно было бы просто дублировать значение запомненных скоростей в EEPROM каждый раз при их изменении, но это как-то мне не нравится.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Всем привет, это снова я. Монстрик подрос, отрастил пищалку по превышению скорости.
Теперь появилось желание оприделывать к нему разные фишечки типа запоминания установленных скоростей при отключении питания. Планирую запитать плату через конденсатор большой ёмкости и диод (с платой на одном источнике висят регистратор и навигатор) , а один из выводов вывести до диода. Таким образом, чтобы при отключении питания плата получала об этом информацию, но за счёт конденсатора работала бы ещё какое-то время, за которое успевала бы записать значения в EEPROM. В скетче это 5 цифровой вывод. Можно было бы просто дублировать значение запомненных скоростей в EEPROM каждый раз при их изменении, но это как-то мне не нравится.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Sync, молодец, очень интересный проект!
Сам думал над таким, руки пока заняться вплотную не дошли, + мало опыта в программировании.
Очень удобная штука на трассе! Устаёт нога на педали газа часами находиться.
Считаю её вполне безопасной, тем более если отключать электрически.
Если педаль газа с тросиком, как лучше реализовать привод? Шаговый двиг на ось заслонки?
Ещё, как понимаю, полноценно тормозить она не сможет, только сбрасывать газ. В принципе не страшно, но тогда нужна пищалка о превышении заданной скорости , либо речевое оповещение об этом.
Сам думал обойтись одной кнопкой и светодиодом — длинное нажатие вкл, светик горит, считывается и фиксируется текущая скорость.
Короткое нажатие (или нажатие педали тормоза) — отключение питания всей схемы. Наверное, всё же нужна отдельная кнопка на питание схемы и запись установленной скорости в епром.
Умников не слушай — про полёты в космос и другие более простые вещи тоже говорили, что это бред. А что вышло?
Какие мысли по перечисленным вопросам?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Кнопка «восстановить скорость» мне кажется лишней, если электрически отключать схему. При включении сама считает из епром и восстановит. Наверно нужна кнопка сброса запомненной скорости, либо опять-таки короткое нажатие сброс, длинное — установка скорости. Либо проверять при включении не зажата ли кнопка и если не зажата — сброс, а если зажата — восстановить скорость, считав из епром.
Откуда лучше считывать скорость? Считать импульсы напрямую с датчика? Или с шины CAN?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
1. Мне такая реализация, через прерывание, при тестировании ее не понравилась. Из-за не стабильности. Отказался от нее и использую другую, «аппаратный» вариант тахометра.
1.1. micros() — переполняется и сбрасывается на ноль, приблизительно через 70 минут.
1.2 В attachInterrupt() значения возвращаемые millis() не изменяются. За micros() точно не скажу, но допускаю, что аналогично. Гуру поправят. 🙂
2. А как «круиз-контроль» будет управлять дросельной заслонкой карбюратора? Как вариант трасса пошла с начала в плавную в горку (тут бы надо чуть газку добавитьдля удержания оборотов), а потом — такой же мягкий спуск (а тут газ можно немшко и убрать что бы стакан-два бензина сэкономить и ТС не разгонялось выше установленной скорости).
Без петли «обратной связи» система улетить в черте куда. 🙂
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Короче пишу. Времени заниматься всем не было, но уже всё как бы готово. Сегодня наверное первое испытание.
Как привод реализован.
Пневмопривод от Chrysler/Dodge. Механика и пневматика работает, при замыкании проводков газу даёт.
Как блок управления выглядит в железе
Чё пока не работает — действительно с micros скорость нестабильна. Отнял у ардуины timer1, чтоб он считал импульсы напрямую. Сейчас он считает без рывков и ровно, только вот скорость на выходе неправильная. Для испытаний это не важно, он же ориентируется по изменению, а не по абсолюту, но так как у меня он и приборкой заведует — надо исправлять. Не работает определение нейтрали. У меня оно будет программное — в момент запоминания скорости считается отношение скорости к оборотам, если это отношение во время работы сильно уйдёт — поддержание скорости сбрасывается, так как это значит либо на нейтраль выдернули, либо сцепу выжали. Обратной связи груши с контроллером нет. С одной стороны она не очень и нужна, так как поддержание скорости будет происходить внутри одной передачи, так что там диапазон скоростей будет не собо большим, с другой стороны не помешала бы. Буду думать, но скорее всего забью просто. Или механически ограничу вытягивание тросика.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Тут надо учесть, что груша может не только тянуть/отпускать, но и зафиксировать своё положение. Кроме того газует она весьма неспешно, на полное открытие дросселя секунды 1,5-2, можно искусственно ещё это время увеличить поставив в вакуумный шланг жиклёр малого сечения.
Управление 1 кнопкой по весьма простой причине — я не хочу морочиться с отдельными кнопками по торпеде и колхозом дополнительных рычагов от иномарок. Но. У меня подрулевые рычаги от 2108/09 и отсутствует задний дворник и омыватель. Так что я положение правого подрулевого «от себя» на эти цели и хочу задействовать. Фиксированное положение (дворник) на включение/выключение нам не подходит, иначе при каждом омыве стекла круиз будет отрубаться, что на трассе мягко говоря не комфортно. Да и есть у этих подрулевых особенность — если оттянуть на омыв лобовухи и отпустить — часто его возвратной пружиной забрасывает на включение заднего дворника. Не дело это. А вот нефикисируемое (омыватель) в самый раз. Его и случайно прожать труднее.
Т.е. короткое нажатие — при первом включении после запуска — запоминание и поддержание текущей скорости или восстановление поддержания скорости, если она есть в памяти, длинное — запоминание и поддержание текущей скорости. Выключение — педаль тормоза, ручник или рассинхронизация оборотов двигателя со скоростью.
Источник