Круиз контроль на ардуино своими руками

Обновлено: 08.07.2024

Ардуино только для начального ковыряния с прототипом и алгоритмом.
Там сразу стоит смотреть на automotive grade варианты, и делать свою плату с нормальной защитой от ЭМП, стабильным питанием, защитой всех входов, фильтрами,…
Допишите код - зовите на пощупать.

__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при малом числе вариантов…

В идеале конечно же да. НО
Вот схема моего БК которая трудится уже больше года в моем авто. И больше полугода еще в 2х автомобилях. Ни одного глюка и зависания. Были только косяки с часами реального времени и интерфейсом. Но ни одного программно-аппаратного глюка или зависания. Комплектующие самые бюджетные. Из защиты только диод от обратной полятности. Ну и буферные резисторы на входах МК. Аналоговые входы работают просто через делитель резисторный. Вообщем примитив - но работает нормально. Авто японец, может там бортсеть нормально организована, я не знаю. Схема во вложении.
Вторую версию хочу сделать более защищенную по входам.
Видео работы БК на ютубе

Как все отладится разумеется скорее всего все будет на печатке заказанной с китая, но arduino ide никуда не денется ) Я не проф программист, это лишь мое увлечение и эта всеми ненавистная среда IDE мне подходит как нельзя лучше

hyperion, а я что-то сказал против самой среды?
А напротив разъема USB Вашей платы какой у нас разъём?
Свисток STLINK стоит как одна плата, сам чип позволяет его прошить и через UART встроенным загрузчиком. Перепрошивка отлично делается и собственным загрузчиком.
Вариантов сред программирования под STM достаточно. От ардуино они по сути отличаются примерно как вариации браузеров друг от друга. А на саму программу уже точно никак не влияют. Только небольшие нюансы при вхождении, решаемые и документаций и примерами.

Теперь про версию чипа. Automotive отличается не только температурным диапазоном. Не буду долго распространяться - на сайте ST есть исчерпывающие статьи по вопросу.

Таки БК только отображает данные и не вмешивается в работу основных систем.
С круизконтролем сильно иначе. Любая мелочь уже чревата последствиями.
От сбоя с совершенно неожиданной реакцией, до ошибок в алгоритме.
Последствия из мрачного списка 200, 300, КОАП, УК, ГК.
В таком варианте нужно для начала иметь полный контроль над МК от момента выполнения первой команды. И совсем иной подход к построению алгоритмов - в основе которого должна лежать изначальная паранойя множества отмеров перед отрезанием .

На стенде как душа пожелает, а в релизе уже как положено. Так можно даже сертификацию потом коллективом единомышленников пройти. На другой чаше весов жизнь, здоровье, благополучие…

Если хотите продолжать как выбрали - лучше не публикуйте. Может когда то прийти письмо с фотографиями от родственников собравшего. На эту часть лучше просто не отвечать, не проверив на своей шкуре как это выглядит.

А публикации других - так сами же и пишите про проблемы на входах, а такая ошибка устройства с управлением двигателем и расслабленным немного состоянием водителя.
Если оно газ в пол, а время реакции человека от 0.2s - это от 4.(4)m при 80km/h
Дальше считайте сами.

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

__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при малом числе вариантов…

Давно хотел этот "прибамбас" себе в машину, хотя за городом езжу не часто, но тем не менее. Когда на форуме появилась тема, а в ней схема электронной педали газа (ЭПГ), у меня и возникла эта идея – создать упрощённый вариант круиз-контроля для самостоятельного изготовления. Скажу сразу: сначала я собрал и испытал устройство на своей машине. Как ни странно, работает! Правда, во время испытаний пришлось внести некоторые изменения и дополнения.
Cхема получилась весьма несложная и включила в себя тумблер с двумя группами контактов, одно переменное сопротивление и восемь постоянных.



Транзисторы и диод – практически любые кремниевые низкочастотные. Одно условие для транзистора VT2: максимальный ток коллектора по паспорту не должен быть меньше рабочего тока реле. Устройство можно собрать на небольшой печатной плате, протянув к ней жгут из восьми проводов от шлейфа, соединяющего педаль газа и ЭБУ, и выключателей на педалях сцепления и тормоза.


Малогабаритное реле с тремя группами контактов я не нашёл, поэтому применил два реле – с одной и двумя группами контактов. Обмотки соединены параллельно. В качестве жгута можно взять компьютерный UTP-кабель, в нём как раз восемь разноцветных жил, будет удобно идентифицировать концы. Счастливым обладателям авто с АКПП в соответствующую точку схемы вместо сигнала от педали сцепления нужно подать +12V из любого места бортовой сети, например от прикуривателя. Второй жгут проводов понадобится для соединения с потенциометром, кнопкой и индикатором.




Плату можно разместить в пепельнице. Если из неё извлечь внутреннюю полость, то на задней стенке пепельницы открывается отверстие в запанельное пространство, через него удобно вывести провода, ничего сверлить не надо. Единственный минус – водителю придётся бросить курить! Вот только на мой взгляд это плюс… :aga:


1. Данная система (звучит-то как!) не позволяет поддерживать обороты двигателя (и, соответственно, скорость автомобиля) на заданном уровне в изменившихся условиях нагрузки для двигателя. То есть на затянувшемся подъёме или спуске машина будет немного замедляться или разгоняться соответственно.

Во-первых: процент спусков и подъёмов в дороге не так уж и велик.
Во-вторых: нетрудно крутнуть регулятор в нужную сторону, компенсировав изменение нагрузки двигателя.
И в-третьих: ну, в конце концов, должен же быть хоть какой-то недостаток!

Что-то мне подсказывает, что устройство будет работать на любой машине с электронной педалью газа, только, возможно, придётся скорректировать нумерацию проводов в жгуте и номиналы сопротивлений. Поскольку другим автопарком не обладаю, проверить этот факт возможности не имею. :wall:


Ручку регулятора со временем придётся заменить на более привлекательную. Жена замечание сделала – неэстетично!
Всем удачи, ровных дорог (без крутых подъёмов…) и комфортной езды!

checkdimon

В общем решил я сделать круиз контроль в машину, ведь она это поддерживает, но производитель это решил отключить. Колхозить в панеле кнопки не хочу, купить кнопки очень-очень дорого, да и очень редкие они, поэтому я решил сделать все с помощью ардуино и блютуз модуля, а круизом управлять с магнитолы.
Компоненты все получил необходимые, но решил, что надо сделать плату для этого всего. Итак, имеем клеммы, 5 герконовых реле, 5 диодов, 4 резистора, ардуино мини и блютуз модуль at-09(hc-05). Дальше стал вопрос питания этого всего и решил добавить к схеме еще одни клеммы (для питания), понижайку LM7805 с радиатором и 2 конденсатора. Уместилось это все на плате 5х7см. Т.к. схемы никогда не разводил (но собирал), то все же решил попросить помощи у сообщества. Кто понимает, проверьте пожалуйста
Чтобы напомнить что я собираю - вот



Эдуард Анисимов

Схема не соответствует плате.
Что это за чёрная херня с какой то пежнёй между выводами. В интернет лезть лень.
Как собрались брать питание с сигнального провода?

Wan-Derer

image

Как вы уже знаете из прошлых постов, у нас в компании есть DIY-движение. В свободное от работы время коллеги занимаются фрезеровкой печатных плат в домашних условиях, делают тепловизор на FLIR Lepton, а также решают семейные разногласия с помощью 4 контроллеров и 2 умных часов. Продолжим серию увлекательный историй! Сегодня я расскажу, как сделать контроллер к трехфазному двигателю электровелосипеда своими руками. Целью создания такого контроллера было:

  1. Изучение работы трехфазного мотора под управлением контроллера.
  2. Большинство контроллеров для электровелосипедов, представленных на рынке, — китайские. Они хоть и относительно дешевые (около 2.000 руб в зависимости от мощности), но являются неведомой коробкой, в которой неизвестно что происходит. И сразу к ней возникает очень много вопросов — экономично ли она потребляет и распределяет ток, какой у нее запас мощности, почему так сильно перегревается, преждевременно срабатывает защита по току и т.д.

В тоже время на рынке представлены европейские качественные контроллеры для электробайков. Они оснащаются расширенными функциями, работают на разных напряжениях и токах и их можно программировать. Устанавливаются они на сверхмощные электровелосипеды. Но цена у них кусается — 10-20 тыс. рублей.

В итоге я решил пойти своим путем: разобраться в устройстве контроллера, сделать его прототип, а затем попытаться сделать контроллер качественнее китайского контроллера. На текущий момент проект у меня в разработке только и на уровне прототипа, готового варианта пока нет. Буду рад услышать ваши комментарии и советы.

Применение

В электровелосипедах используются трёхфазные бесщёточные электродвигатели с датчиками Холла. Стоит отметить, что применение подобных трёхфазных двигателей достаточно обширно:

  • Бытовая техника
  • Оргтехника
  • Электротранспорт
  • Промышленность

Устройство двигателя

Для разработки контроллера необходимо разобраться с принципом работы самого электродвигателя.

image

Электродвигатель состоит из фазных обмоток, магнитов и датчиков Холла, отслеживающих положение вала двигателя.

Конструктивно электродвигатели делятся на два типа: инраннеры и аутраннеры.

image

У инраннеров магнитные пластины крепятся на вал, а обмотки располагаются на барабане (статоре), в этом случае в движение приводится вал. В случае аутраннера всё наоборот: на валу — фазные обмотки, а в барабане — магнитные пластины. Это приводит в движение барабан.

image

Так как у велосипеда колесо крепится валом на раму, то здесь применителен тип аутраннера.

image

На этой картинке условно представлены три фазы с обмотками, соединёнными между собой. В реальности обмоток намного больше, они располагаются равномерно с чередованием по фазам по окружности двигателя. Чем больше обмоток — тем плавнее, чётче, эластичнее работает двигатель.

В двигатель устанавливаются три датчика Холла. Датчики реагируют на магнитное поле, тем самым определяя положение ротора относительно статора двигателя. Устанавливаются с интервалами в 60 или 120 электрических градусов. Эти градусы относятся к электрическому фазному обороту двигателя. Необходимо учитывать, что чем больше в двигателе обмоток на каждую фазу, тем больше происходит электрических оборотов за один физический оборот мотор-колеса.

image

Обмотки трёх фаз в большинстве случаев соединяются между собой по двум схемам: звезда и треугольник. В первом случае ток проходит от одной из фаз к другой, во втором — по всем трём фазам в разной степени. Иногда эти две схемы подключения комбинируют в одном двигателе, например в электромобилях. При старте и наборе скорости идёт соединение фаз по звезде: она даёт больший момент при относительно низких оборотах; далее, после набора скорости, происходит переключение на треугольник, в результате количество оборотов увеличивается, когда уже не нужен большой крутящий момент. По сути, получается условно автоматическая коробка передач электродвигателя.

Цикл работы

image

Рассмотрим эти шесть шагов цикла. Предположим, что положение ротора установлено в точке первого шага, тогда с датчиков Холла мы получим код вида 101, где 1 — фаза А, 0 — фаза B, 1 — фаза С. Определив по коду положение вала, нужно подать ток на соответствующие фазы с заданными полярностями. В результате вал проворачивается, датчики считывают код нового положения вала — и т. д.

В таблице указаны коды датчиков и смена комбинаций фаз для большинства электродвигателей. Для обратного хода колеса (реверса) достаточно перевернуть знаки полярности фаз наоборот. Принцип работы двигателя довольно прост.

Цикл двигателя представлен в gif-анимации.

Транзисторы и Н-мост

Но чтобы поочерёдно подавать ток на каждую из фаз и менять их полярность, необходимы транзисторы. Ещё нам нужна передача больших токов, высокая скорость переключения и чёткость открытия/закрытия затворов. В данном случае удобнее управлять затворами по напряжению, а не по току. Поэтому оптимальны полевые (MOSFET) транзисторы. Чаще всего их используют в контроллерах. Очень редко можно встретить комбинированный вариант транзисторов.

image

Для переключения фаз со сменой их полярностей используют классическую схему Н-моста (H-Bridge) из полевых транзисторов.

image

Он состоит из трёх пар транзисторов. Каждая из пар подключается к соответствующей фазе обмотки двигателя и обеспечивает подачу тока со значением (+ или –). Транзисторы, отвечающие за включение фазы с положительным значением, называют верхними ключами. С отрицательным — нижними. Для каждого шага открывается пара ключей: верхний одной фазы и нижний соседней фазы. В результате ток проходит от одной фазы к другой и приводит электродвигатель в движение.

image

Из схемы видно, что мы не можем включить одновременно верхний и нижний ключ у одной и той же фазы: произойдёт короткое замыкание. Поэтому очень важно быстрое переключение верхних и нижних ключей, чтобы в переходных процессах не появилось замыкание. И чем качественнее и быстрее мы обеспечим переключения, тем меньше у нас будет потерь и нагрева/перегрева транзисторов H-моста.

Для запуска остаётся обеспечить управление затворами ключей H-моста. Для управления H-мостом нужно:

  1. Считать показания датчиков Холла.
  2. Определить, в каком положении какую пару ключей включать.
  3. Передать сигналы на соответствующие затворы транзисторов.

Прототип на Ардуино

Под рукой у меня была Arduino UNO, и я решил собрать контроллер на её основе.

image

Первым делом я подал на датчики Холла питание 5 вольт от Ардуино (его достаточно для датчиков). Сигнальные провода от датчиков подключил на цифровые пины Ардуино, написав простейшую программу для считывания и обработки сигналов с датчиков.

Затем собрал Н-мост из полевых NPN-транзисторов. Подвёл к мосту независимое питание на 12 вольт. Но при отладке, чтоб убедиться в работоспособности, я подключил напрямую шесть пинов 5V из Ардуино на затворы H-моста. У большинства полевых транзисторов затвор работает на 20 вольт. Так делать нельзя, потому что Н-мост будет плохо работать и перегреваться. Но для кратковременных тестов это пойдёт. Кое-как, с сильными перегревами и страшными звуками, вибрациями и толчками колесо медленно закрутилось. Начало положено.

Мостовые драйверы

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

image

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

В это же время я наткнулся на два варианта мостовых драйверов:

Что касается HIP4086, то это полноценный мостовой драйвер, предназначенный для трёхфазного электродвигателя. Мне он показался несколько замороченным, и мои попытки использовать его в контроллере не увенчались успехом: он у меня так и не заработал. Углублённо разбираться в причинах не стал.

А взял я IR2101 — полумостовой драйвер, обеспечивающий работу нижнего и верхнего ключей для одной фазы. Несложно догадаться, что таких драйверов нужно три. К слову, драйвер очень прост в использовании, его подключение происходит безболезненно и легко. Получилась такая схема:

image

image

И готовый результат

image

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

Аппаратное прерывание

И тут я понял, в чём дело: Ардуино не успевает обрабатывать показания датчиков Холла! Поэтому необходимо было использовать пины Ардуино с аппаратным прерыванием. Так как у Ардуино УНО таких пинов всего два, а под датчики нужно три пина, надо взять Ардуино Леонардо или Искра Нео, где таких пинов — четыре штуки.

image

Переписав программу под прерывания и подключив Искру Нео вместо УНО, я повторил испытания.

Колесо наконец-то заработало чётко, без вибраций, шумов, отлично стало набирать обороты без рассинхронизации. Прототип оказался жизнеспособным. Но это ещё не полноценный контроллер, поскольку в нём не было обвязки с защитами и обеспечением качественного ШИМ-сигнала.

Прототип на базе микросхемы MC33035

Параллельно с разработкой контроллера на Ардуино я рассматривал альтернативные варианты логической части контроллера. И это привело меня к микросхеме MC33035. Это старая разработка от Motorola, сейчас её выпускает ON Semiconductor. Создана специально для мощных трёхфазных двигателей.

image

image

  • Отвечает за всю логическую часть контроллера
  • Считывает показания с датчиков Холла
  • Определяет положения вала
  • Выдаёт сигналы для затворов Н-моста на их драйверы
  • Имеет возможность подключения индикатора ошибок, перегрева
  • Обрабатывает и передает ШИМ-сигнал (PWM)
  • Осуществляет реверс (обратный ход колеса)

Одним словом, микросхема содержит всё необходимое для управления электродвигателем. Её стоимость очень низкая: на Алиэкспрессе — около 50 рублей. Для сборки полноценного контроллера на её основе потребуется микросхема MC33035, полумостовые драйверы и Н-мост из полевых транзисторов. Я также собрал контроллер на этой микросхеме. Работает отлично, стабильно, колесо крутится как надо на различных оборотах. Но функционал микросхемы ограничен, если необходимо наворотить различные функции, вывод на дисплей скорости, одометр, расход батареи, то опять же возникает необходимость дополнительно подключить Ардуино или что-то аналогичное.

Схема с MC33035

image

image

image

Главное преимущество контроллера на базе MC33035 — это простота в использовании. Просто покупаете микросхему, собираете Н-мост, спаиваете всё на плату с небольшой обвязкой — и контроллер готов. Если нужно просто запустить двигатель с ШИМ-сигналом и управлять им — оптимальный вариант.

Контроллер на базе Ардуино — вариант сложнее, понадобится писать логику, обеспечивать дополнительные защиты контроллера. Но для экспериментов, прототипов, дополнительного функционала, использования различных режимов работы двигателя — подходящий вариант. Поэтому я решил пока отложить MC33035 и продолжить работу с Ардуино.

не дай бог клина схватит или ещё чего и что тогда? Особенно зимой.

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

P.S. P-CAD потихоньку поддаётся изучению.

wersys, на Аккордах был родной круиз

Shura1:

wersys, на Аккордах был родной круиз

Найти анрил ?

на аккордах был, не искал, да и хочется сделать всё самому, пускай будет, мало ли кому ещё понадобиться.

пока что процесс идёт вот так.


а вот окончательный вариант схемы в P-CAD


не совсем окончательный, при переносе в PCB выдало 8 ошибок, сижу разбираюсь.

P.S. P-CAD потихоньку поддаётся изучению.

уж лучше тогда PROTEL

интересно как процесс проектирования и изготовления, не более

если получится и он будет установлен, то предупреждайте, когда выезжать будете

JENIK:

интересно как процесс проектирования и изготовления, не более

если получится и он будет установлен, то предупреждайте, когда выезжать будете

Вы ведь всё равно дома не останетесь, когда я выезжать буду.

Интересен не сам процесс изготовления, просто по своей работе мне периодически необходимо ездить на очень далёкие расстояния, а нога под конец дороги устаёт давить на педаль.

по работе занимаюсь разарботкой электронной аппаратуры. На месте ТС нашел бы готовый и не занимался самолечением

периодически необходимо ездить на очень далёкие расстояния

10000 без остановки и за неделю . помню как то обсуждали , насколько такое реально

KAG:

периодически необходимо ездить на очень далёкие расстояния

10000 без остановки и за неделю . помню как то обсуждали , насколько такое реально

наверное не 10000, но до москвы и обратно раза 2 за неделю практически еженедельно.

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

wersys, для разработки схемы есть отдельный редактор SCH

spaser:

зачем выдумывать велосипед, тыц

как-то дороговато выходит, у меня по подсчётам тысяч 150 получается.

KAG:

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

KAG:

wersys, для разработки схемы есть отдельный редактор SCH

Давно хотел P-CAD изучить, так что только он.

Кстати KAG вы случаем в РТИ на ФРЭ в начале века не учились? Уж больно ник знакомый.

у меня по подсчётам тысяч 150 получается.

Чёт дорого. Я на мондео брал родной круиз + кожаный руль с кнопками и ПБ за 70$.

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

pashil:

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

Малое передаточное число будет компенсироваться большим маховиком.

wersys, не совсем понимаю, как большой маховик поможет в задаче "потянуть трос строго на 5мм"

Гляньте блоки TCS (трэкшен, антибукс), там готовый мотор-редуктор и удобный крепёж для троса.

pashil:

wersys, не совсем понимаю, как большой маховик поможет в задаче "потянуть трос строго на 5мм"

Гляньте блоки TCS (трэкшен, антибукс), там готовый мотор-редуктор и удобный крепёж для троса.

не совсем понимаю про TCS, можно по подробнее, а на "5мм потянуть" решиться значит малым маховиком .

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

Читайте также: