Управление автомобилем с джойстика через Arduino Mega



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

    Студенты университета штата Огайо показали бюджетный вариант, как сделать «бортовой компьютер» на плате Arduino Mega. Управление машиной происходит с джойстика.

    Четверо студентов Картер, Дейв, Райан и Шон собрали систему Д/У частично из подручных средств, во время 24-часового хакатона в университете. Её назвали MagiKarpet, потому что управляющий блок лежит на месте коврика.

    Например, пластиковые соединения для крепления элементов слепили за час, вскипятив и размягчив полиморфный пластик (полиморфус).







    Для проекта взяли автомобиль Chevy Cobalt. Задача состояла в том, чтобы управлять педалями газа, тормоза и рулевым колесом прямо с геймпада. Один линейный привод управляет железной «ногой», которая давит на педаль газа.



    Другой привод тянет тросы, прикреплённые к рулевому колесу, так что оно поворачивается на 90º в каждую сторону.







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



    В ходе работы возникли некоторые сложности. Сначала парни хотели использовать геймпад от игровой приставки Xbox, но тот глючил, так что пришлось заменить его на самодельный джойстик.

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



    В итоге всё отлично получилось, но ребята заняли в хакатоне только второе место.
    Поделиться публикацией
    Комментарии 54
      0
      Управление рычагом коробки передач они почему-то не сделали. Не успели?
        +3
        присмотритесь, там нет 3ей педали ;)
        Если вы конечно не про переключение с N на D, что можно было бы сделать наверняка программно.
          0
          Да и даже если механика была бы — страшно такое устройство испытывать на любой передаче, кроме первой.
          +2
          Не сделали по той же причине, по которой не делали выключатель сцепления, думаю.
          –1
          POC за 24 часа — это молодцы.
            0
            Интересно взглянуть на первое место
              0
              Перчатка, распознающая язык жестов..
                0
                А ссылочки нет?
                  +1
                  Ссылка на ивент: https://ece.osu.edu/news/2016/03/makeathon-2016-recap
                  победитель — Team M4C.

                  Видео с работой перчатки я не нашел.
                  Мне кажется, что первое место дали больше за "социальную значимость", чем за качество результата… (есть несколько проектов со считыванием языка жестов и если посмотреть на их развитие и проблемы, которые приходится решать — то (имхо) можно понять, что задача не для 24h хакатона, даже на уровне "прикольного прототипа"...)
              0
              --
                +2
                Кому интересно, что это за «пластиковые шарики», то это поликапролактон, его еще называют полиморфусом, а также PCL. Он плавится при температуре 59-64 градуса, и он биоразлагаем.
                  –2
                  Молодцы, запилили золотой стартап для террористов
                    +3
                    Зачем террористам радиоуправляемые машины, если смертники и так отлично справляются?
                      0
                      Смертник сильно дешевле автомобиля.
                        –1
                        Угнанный автомобиль сильно дешевле смертника
                      0
                      Постоянно вижу подобные конкурсные работы по управлению автомобилем и ещё ни разу не встречал нормальную реализацию вращения руля штатным электроусилителем и дросселя штатным электроприводом дроссельной заслонки по штатной же информационной шине (CAN, например). Что сложного-то для человека, и так пишущего программу управления электроприводом? Ладно, согласен, что на тормоз давить можно и простым приводом, чтобы не лезть своими корявыми сигналами в очень ответственную систему ABS/ESP.
                        +1
                        Ребята из Сиэттла написали два года назад статью про взлом GMной машинки по CAN.
                        Покрутили всем, загнали спидометр на 160, и пришли к выводу, что при наличии доступа к шине современный автомобиль уязвим донельзя.

                        http://www.autosec.org/pubs/cars-oakland2010.pdf
                          0
                          У них там, похоже, все управление электроприводом — вкл/выкл и концевые выключатели. ИМХО, штатная шина — это сложные протоколы с проприетарными недокументированными изысками, совсем не на сутки задача.
                            0
                            прикол в том что если не давить на педаль физически, то смысла от твоих поддельных команд управления мало, ибо на каждую твою команду "дроссель 50%", компьютер будет слать свою команду "дроссель 12%", компьютер видит реальное положение педали и параллельно с тобой управляет дросселем так как считает нужным.
                            это не говоря о том что алгоритм управления электронным дросселем архисложная вещь, он постоянно октрывается//закрывается на разные углы для поддержания нужной смеси, поддержания нужного крутящего момента, компенсации нагрузки от потребителей и т.п. множество параметров влияющих на текущий уровень открытия дросселя. и своей фальшивой командой ты просто нарушишь нормальную работу мотора.
                            так же и с остальными устройствами типа электроусилителя, в нём есть датчики и алгоритмы работы, которые будут непрерывно пытаться перебить твои фальшивые команды управления.

                            а ещё прикол будет когда после таких команд вперемешку, ЭБУ осознает что что-то странное происходит и вывалится в аварийный режим.

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

                              +2
                              Все гораздо проще — вытыкается разъем из педали газа и втыкается в свой девайс, который и эмулирует нужное положение педали.
                                0
                                никто не спорит что управлять автомобилем имитируя действия водителя проще всего.
                                но внешний хардварный эмулятор педали газа к управлению по CAN шине никакого отношения не имеет.
                                я лишь объяснил почему проблематично рулить автомобилем по CAN шине.
                                  0
                                  Мой пост в основном отвечает на Ваш последний абзац про управление через круиз и связанные с этим сложности :)
                                0
                                Вы верно упомянули круиз-контроль, который в современных автомобилях реализован по умолчанию (благодаря "электронной педали газа") и лишь программно отключён в исполнениях без КК, так что ваши же рассуждения о %% педали/дросселя вами же и опровергаются. Ограничение по скорости "снизу", думаю, также снимается программно.
                                  0
                                  Ничего там архисложного нет — потребная скорость задаётся электрическим сигналом либо от датчика педали, либо от кнопок КК на руле, либо… хакерским сигналом.
                                  Точно так же ЕУР рапортует встроенным датчиком об угле поворота и позволяет отслеживать этот угол, задаваемый извне, в нашем случае — прямой командой подачи тока на ЭД и замыканием предохранительной муфты.
                                  Кстати, у всех компьютеров автомобиля есть т.н. "командный режим" диагностики, позволяющий все эти команды выполнить прямым приказом.
                                    0
                                    слова "думаю, также снимается программно" звучат как "тыж програмист, почини монитор"
                                    скорей всего придётся менять и ограничения по оборотам мотора, нагрузке и ещё фиг знает по чему, чем современнее авто тем больше там наверчено зависимостей.
                                    это не вспоминая о том что придётся приобрести адаптер для прошивки, который может стоить трёхзначной суммы вечнозелёных, а так же надеяться что где-то в интернете есть описание прошивки с искомыми данными по круизконтролю и оно совпадет с твоей версией эбу и версией ПО.
                                    и когда все звёзды сойдутся, с этим всем надо будет разобраться что и как делать, а потом рискнуть убийством эбу авто (которое не факт что можно будет перепрошить как было) при попытке залить новую личноправленную прошивку)))
                                    Но есть конечно тот же автоваз, к нему можно купить новый ЭБУ относительно недорого если вдруг чего, да и описание прошивок есть в сети за недорого вместе с специальными программами и адаптерами.
                                    но с иномарками в большинстве ситуаций всё сложно.
                                      0
                                      Я, действительно, не программист, потому отвечал осторожно.
                                      Но зато я более 20 лет глубоко занимаюсь автомобилями иностранного бренда, а автомобилями "вообще" — так всю жизнь.
                                      И вижу, сколько уже на сегодня уже хакнутых автомобильных систем, да вот хоть возьмите недавнюю историю с крайслеровскими машинами. Диагностические адаптеры из Китая сегодня легкодоступны, повсюду предлагаются перепрошивки/чиптюнинги. Вспомните "бустеры" педали акселератора…
                                      Не думаю, что на фоне этого изменить/отменить порог срабатывания КК представляется невероятной задачей.
                                        0
                                        по телевизору и не такое покажут...
                                        тут в комментариях за один день уже 3 человека по моему высказалось в духе, "вот дураки, сделали бы через CAN шину"
                                        но раз эта супер популярная мысль за прошедшие десятилетия ещё не разу не была реализована… с ней явно что-то не так :D
                                          0
                                          Я телевизор уже много лет (десятилетий?) не смотрю. Мысль — реализована https://habrahabr.ru/post/274453/
                                            0
                                            прям незнаю что и сказать…
                                            если кратко — статья сочится желтизной и неправильным переводом, авторы хака хотели рассказать про хак удалённого доступа, а газетчики написали про дистанционное управление авто.
                                            если подробно…
                                            управление рулём у джипа они не перехватывали, джип оказался в кювете потому что водитель не смог затормозить и джип скатился в кювет самокатом.
                                            как они это сделали? запустили диагностическую процедуру блока АБС так что абс работало непрерывно и не давало водителю прожать педаль.
                                            управление дворниками и бибикалкой — аналогично, штатная тестовая процедура, даже многие автосигнализации могут мигать фарами, запирать двери и делать т.п. вещи.
                                            это совсем не тоже самое что заставить руль крутиться игнорируя обратную связь по датчику усилия, увеличить обороты мотора игнорируя обратную связь по датчику в педали.
                                            управление автомобилем в обход штатных блоков это совершенно другой уровень.
                                            одно дело воспользоваться штатными диагностическими процедурами доступными любому желающему, другое дело слить.
                                            прошивку авто и изменить её под свои надобности, внедрив в неё код для руления и разгона.
                                            ещё раз повторю, если вам кажется что это сущий пустяк, управлять автомобилем электронно, это означает лишь то что вы недостаточно хорошо разбираетесь в вопросе.
                                            вот теслой можно управлять удалённо, вероятно это единственное авто на данный момент с такой функцией, но взломать её пока никому не удалось))
                                              0
                                              Оставляю вас "шагать в ногу".
                                                0
                                                Правильное решение, меньше знаешь крепче спишь =) Спокойной ночи!
                                  0
                                  "Реализовано" на печально известных электроусилителях рулевого управления автомобилей ВАЗ.
                                    0
                                    а можно поделиться ссылочкой или описанием реализацией на эур ваза?
                                    с вазами не знаком но интересно бы почитать.
                                      0
                                      Это была ирония, потому- в кавычках: инет уже несколько лет кишит сообщениями о самопроизвольном срабатывании ЭУР на ВАЗах. Так что "возможно всё!".
                                    0
                                    Совершенно с вами согласен. Так называемые "рулевые машинки" и внешние приводы педалей используются при испытаниях автомобилей наверное с момента появления самого автомобиля. В конце 80-х при подготовке диссера использовал подобные идеи и это не считалось чем-то "ах", а просто использованием давно известных технологий. Сегодня, при наличии CAN, и неиспользовании открывшихся при этом возможностей всё представленное выглядит наивной самодельщиной парней, даже не удосужившихся поизучать вековые наработки в этой области.
                                    0
                                    Интересно, конечно.
                                    Но в плане безопасности управлять машиной геймпадом с 20-го этажа, летом с деревьями.
                                    Наезд на старушку или ребёнка, которых сверху не видно — это будет не смешно.
                                      0
                                      От этого поможет элементарная защита в виде ультразвуковых датчиков спереди и сзади
                                        0
                                        парктроник частенько бесполезен, потому что он или тупо не видит препятствие по углом или вообще врёт дистанцию.
                                      0
                                      Взяли бы машинку чуть подороже с электронными педалями газа, тормоза и руль с электроусилителем и могли бы не колхозить с механикой, а подключить ардуинку к CAN шине и отправлять нужные команды. Уложились бы в пару часов.

                                        +1
                                        Разобраться с протоколами CAN конкретной модели автомобиля может потребовать намного больше времени, чем сколхозить
                                          0
                                          Сколхозить "аналоговую дыру".
                                          +1
                                          Как ты думаешь, кто победит в битве команд?
                                          твоя ардуинка шлющая в кан шину команду "полный вперёд", или ЭБУ автомобиля, видящий что реально педаль газа не нажата, и по этому шлющий команду "полный стоп"?
                                            0
                                            Как уже упоминалось выше, педаль газа можно и отключить.
                                              0
                                              отключить её нельзя, ЭБУ сразу выпадет в аварийный режим.
                                              можно заменить на своё устройство, но тогда это тоже самое что давить педаль моторчиком
                                              к цифровому управлению автомобиля по CAN шине это никакого отношения не имеет =)
                                              проще давить мотором на педаль.
                                                0
                                                Мне кажется, что давить мотором на педаль точно не проще.
                                                Что мешает эмулировать работу датчика положения педали, зарегистрировавшись в шине под тем же адресом? Чем это сложнее монстроузной конструкции, давящей на педаль физически? Никакой особой защиты от такого, как я понимаю, нет. Понятно, что это потребует некоторого реверс-инжиниринга, в отличие от способа «в лоб», но и результат будет гораздо изящнее.
                                                  0
                                                  В обычных авто (недорогих) педаль подключена непосредственно в блок управления двигателем,
                                                  в таких авто в принципе невозможно послать поддельные команды от имени педали газа,
                                                  там эбу впрыска берёт данные о угле нажатия педали не из шины авто, а непосредственно считывая сопротивление резисторов в педали.

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

                                                  Это всё придётся реверсить и эмулировать.
                                                    0
                                                    Так вроде бы изначально говорилось о ситуации, когда датчик педали газа не простой потенциометр (его эмулировать-то вообще проблемы нет, и сервоприводы для этого не нужны), а более сложное устройство.
                                                    Эмулировать можно все что угодно, вопрос в количестве усилий, затрачиваемых на это. Допускаю также вариант а-ля man in the middle, когда между шиной и нужным датчиком стоит прослойка, которая слегка модифицирует сообщения, отсылаемые датчиком. Если защиты от такого в шине нет, то это вполне можно провернуть с любым устройством, сидящим на шине. При этом остальные служебные сообщения останутся, правиться будет лишь часть пакета, отвечающая, например за положение педали газа. Правда, на AVR-ке такое скорее всего не провернешь.
                                                      0
                                                      в принципе такое возможно, насколько я знаю существуют обманки которые впаиваются в шину и подменяют цифру пробега которая идёт чисто на приборку, когда невозможно сбросить пробег во всех блоках.
                                                      но в любом случае это задача не на "пару часов" и нужно как минимум понимать как работает CAN шина,
                                                    0
                                                    Далеко не во всех машинах используется электронная дроссельная заслонка. Самое популярное решение это датчик положения дросселя, который физически поворачивается при нажатии педали (точнее при натяжении тросика педалью). Если эмулировать его показания дроссель от того не откроется и воздух в мотор не попадет. Неопнятно тут другое, зачем городить нажатие на педаль, если можно разместить под капотом некоторый соленоид который будет открывать/закрывать дроссель.
                                                      0
                                                      У ребят из статьи шеви кобальт, там электронная педаль и соответственно электронный дроссель.

                                                      они могли бы выдернуть разъём из педали и имитировать показания резистора, но им видимо было некогда этим заморачиваться :D
                                                        0
                                                        Вообще, дежурная отмазка для исследовательского проекта могла бы быть "подходит к любому типу педалей, легко масштабируется для большего числа каналов управления".
                                            +1
                                            Док Браун такое в 88м уже делал, и без ардуины.

                                              0
                                              Руль поворачивается только на 45⁰

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

                                            Самое читаемое