Робот для сборки авто
Развитие промышленных роботов в автомобилестроении. Часть 1
Со времен изобретения автомобилей, люди пытаются оптимизировать все процессы в производстве машин. Ведь чем быстрей и проще автомобиль будет собран и выпущен на рынок, тем быстрей производитель получит свой Доллар/Рубль/Евро.
Роботы внедряются в производство постепенно и обдуманно. Они имеют большое преимущество перед любым человеком в силе и постоянстве, могут работать 3 смены без остановки на выходные, обеденный перерыв или отпуск. Что очень важно для беспрерывного производства.
Добро пожаловать под кат, где много картинок и видео.
Многие уже видели видео о том как два робота крутят в разные стороны телевизоры. Именно такие роботы широко применяются на линиях сборки автомобилей.
На каких же этапах роботы помогают быстрей выпустить авто с конвейера? Сегодня я хотел бы описать первый этап производства автомобилей и участия в нем промышленных роботов.
ЭТАП 1: СБОРКА И СВАРКА КУЗОВА
Процесс производства автомобиля начинается с изготовления и сборки кузова. Практически все остальные составляющие автомобиля производят компании-поставщики и присылают их на сборочную линию.
На заводе-изготовителе все начинается со штамповки деталей с последующей их сборкой, сваркой и склейкой.
Штамповка/изготовление кузовных деталей
Вся задача персонала на линии штамповки сводится к перемещению деталей между прессами, проверке качества, складированием готовых изделий и контролю прессов. Работа монотонная и опасная. Пресс производит сильные вибрации, человек может не успеть убрать руку, выпадающая деталь может упасть на ноги и т.д. Развивать тему «как убиться об промышленный пресс» можно долго.
Линии с автоматической передачей деталей
Чтобы снизить травмоопасность, или же расходы на персонал, на заводах начали устанавливать автоматические линии на этапе штамповки деталей.
Задачи довольно простые, но из-за громоздкости прессов и миниатюрности деталей реализовать изначально замену людей было сложно и громоздко.
Роботы
При штамповке преимущество робота в том, что он не бросит заготовку, а очень точно ее положит. Вовремя уберет руку, т.к. синхронизирован со штампом.
Сборка и сварка
Сварка — очень опасный и вредный для здоровья процесс, поэтому имеет смысл поставить на место человека робота, который будет держать ровно сварочный шов и не перерасходует сварочного материала. На заводе зоны сборки и сварки очень ограниченны и люди не имеют свободного доступа на эти территории.
На этапе проверки качества деталей стоят люди. Лично меня радует тот факт, что без людей обойтись пока невозможно.
К сожалению, или скорее к счастью на этом этапе Людей заменили очень давно. Я даже не нашел подходящей картинки. Нашел только для сборки. Как видно на видео, люди делали сварку во много маленьких этапов, чтобы ускорить процесс изготовления деталей.
Приспособления и Роботы
Роботы делают свою работу совместно с приспособлениями, которые например подставляют нужные детали, держат вместе всю конструкцию и отодвигают сваренный корпус автомобиля. Вся такая работа синхронизирована.
Изготовление комплектующих из углепластика
Совсем недавно BMW запустили в продажу автомобили серий i3 и i8. В скором времени будут i1 и i5. Особенности автомобилей в том, что они частично, или полностью электрические и их кузова изготовлены из углепластика. Технология производства таких деталей нова, поэтому люди в основном выполняют контроль процессов и качества.
Изготовление деталей из углепластика.
Склека и пайка кузова
Заключение:
В чем же заключается развитие?
Самое главное это то, что роботов уже очень давно внедрили в производство и все время совершенствуют под разные задачи. Робот может залезть в достаточно (деликатные) узкие места с тяжелым грузом, при этом не задеть обшивку и не удариться головой.
Роботизация в автомобильной промышленности – 6 возможностей применения роботов на производстве автомобилей
Автомобильная промышленность использует промышленных роботов более полувека с тех пор, как General Motors впервые приняла UNIMATE в начале 1960-х годов. За прошедший период количество роботов, используемых в секторе автоматизации, значительно выросло. Технология также улучшилась за счет более дешевых, гибких, совместных систем, дополняющих и заменяющих громоздкие и негибкие традиционные роботы.
Использование роботов позволяет производителям автомобилей и автокомпонентов ускорить производство, снизить затраты, улучшить качество и защитить своих рабочих от вреда. Совместные роботы (или «коботы») открыли новые возможности для автопроизводителей, в том числе возможность развертывать роботов в непосредственной близости от рабочих-людей без необходимости ограждения. Коботы позволяют производителям освобождать рабочих от унылой, грязной и опасной работы — плюс коботы доступны 24 часа в сутки, 7 дней в неделю, 365 дней в году.
Ниже мы рассмотрим шесть примеров использования коботов в автомобильном секторе, но сначала …
ГДЕ ИСПОЛЬЗУЮТСЯ ПРОМЫШЛЕННЫЕ РОБОТЫ?
Очень немногие отрасли промышленности не выигрывают от использования автоматизации. С тех пор, как на производственной линии GM появился первый автомобильный робот, множество других заводов и складов приняли роботизированные технологии. Отрасли, в которых используются роботы, включают фармацевтический сектор, общее производство, медицину и сельское хозяйство. Коботы Universal Robots — это универсальные платформы, которые можно развернуть для решения широкого круга задач в различных средах. Единственные ограничения — это полезная нагрузка, соответствие требованиям безопасности и ваше воображение.
ЧТО ДЕЛАЮТ ПРОМЫШЛЕННЫЕ РОБОТЫ?
Промышленные роботы на производстве могут выполнять широкий спектр задач: от погрузочно-разгрузочных работ, сбора и размещения и проверки до сборки, упаковки, укладки на поддоны и отделки. Роботы предназначены для выполнения повторяющихся задач и избавления рабочих от тяжелого физического труда. Роботы могут быть оснащены системами машинного зрения и искусственного интеллекта, которые позволяют им реагировать на различные ситуации и обеспечивать обратную связь о производительности системы в режиме реального времени.
КОБОТЫ В АВТОМОБИЛЬНОМ ПРОИЗВОДСТВЕ
Некоторые из наиболее неотложных проблем, с которыми сталкиваются автомобильные сборочные линии, включают возможность травм, медленное производство и проблемы с качеством конечного продукта (ов). Эти проблемы можно решить, развернув коботов.
Например, роботы UR10 используются компанией Ford в Румынии для смазки распределительных валов, заправки двигателей маслом и проведения проверок качества.
Коботы UR10 позволили румынскому производственному предприятию Ford обеспечить более высокую производительность, а также избавили сотрудников от повторяющихся задач.
Роботы могут справиться практически с любой физической задачей, связанной с конструированием транспортных средств. У роботов также есть множество возможностей для помощи в выполнении работ, требующих принятия решений, включая, например, выполнение проверок качества «годен / не годен», чтобы гарантировать, что конечный продукт имеет достаточное качество.
КАКОВЫ 6 ОСНОВНЫХ ПРИМЕНЕНИЙ КОБОТОВ В АВТОМОБИЛЬНОЙ ПРОМЫШЛЕННОСТИ?
Сборка
Коботы играют важную роль на многих автомобильных заводах, включая сборочные. Коботы могут выполнять повторяющиеся задачи на производственной линии, например, прикреплять дверные ручки и дворники, что позволяет людям-работникам сосредоточиться на более важных задачах. Коботы с более высокой полезной нагрузкой, такие как UR16e (полезная нагрузка 16 кг / 35,3 фунта), могут работать с более крупными и громоздкими предметами, такими как колеса, люки и капоты двигателя.
Lear Corporation использует гибкие и легкие коботы UR5 для сборки автомобильных сидений. UR5 имеет небольшой отпечаток стопы (Ø 149 мм), что позволяет ему работать в труднодоступных местах, где он может выполнять такие задачи, как помощь в сборке автомобильных сидений и рамы сиденья. В Lear, UR5 выполняет заворачивание 8 500 раз в день, что позволяет оптимизировать производственное время компании. Lear внедрила своего первого кобота UR в 2017 году — сегодня компания имеет 38 роботов UR на своем производственном предприятии в Китае, где они используются для затягивания винтов автокресла, электрического осмотра, подбора и размещения и других важных процессов.
Покраска
Сварка роботами
Этот сварочный кобот легко запрограммировать с помощью программного обеспечения URCap на обучающем подвесном пульте UR.
Уход за машиной
Уход за машинами — одна из тех задач, которые идеально подходят для совместной автоматизации с помощью роботов. Скучная, часто грязная, а иногда и опасная, неудивительно, что в последние годы уход за машинами стал одним из самых популярных приложений для коботов.
Установленные на потолке UR10 помогают людям в сборке и обслуживании машин в Bajaj Auto в Индии.
Индийская Bajaj Auto — один из крупнейших в мире производителей мотоциклов и первая компания в Индии, которая развернула коботов. С тех пор Bajaj Auto разместила на своих производственных объектах 100 коботов, которые помогают людям выполнять работы по обслуживанию и сборке машин. Эта компания стремилась улучшить стандартизацию своих двухколесных транспортных средств и увеличить скорость производства.
Роботы для удаления материалов и полировки
Удаление материала и полировка деталей — важные процессы в производстве автомобилей. Эти процессы включают в себя очистку автомобильных деталей путем обрезки металла или полировки форм для получения гладкой поверхности. Как и многие другие задачи в автомобилестроении, задачи повторяются и иногда опасны, что создает идеальную возможность для вмешательства роботов. Задачи по удалению материала включают шлифование, удаление заусенцев, фрезерование, шлифование, фрезерование и сверление.
Роботы UR созданы для гибкой работы вместе с людьми, поэтому они отлично подходят для рабочих участков и производственных помещений, где безопасность является приоритетом, а пространство — на первом месте.
Проверка качества
Процессы контроля качества могут иметь большое значение между успешным производственным циклом и дорогостоящими и трудоемкими отказами. Коботы используются в автомобильной промышленности для обеспечения качества продукции. UR + предлагает широкий спектр аппаратного и программного обеспечения, специально разработанного для автоматизации задач по контролю качества автомобилей, включая косметический оптический контроль и метрологию.
Индийский производитель автомобильных компонентов Craft and Technik Industries ( CATI ) развернул коботов для инспекций и обслуживания станков с ЧПУ, увеличив производство и снизив количество отказов клиентов до нуля. «Пришло время для МСП автоматизировать — роботы больше не являются прерогативой только крупных предприятий», — сказал генеральный директор CATI Прашант Шантарам Умбрани. С момента развертывания коботов CATI удалось добиться «бездефектной» производственной среды и увеличения производства на 20%.
Компания Comprehensive Logistics, базирующаяся в Огайо, специализирующаяся на сборке двигателей, развернула робота для совместной работы UR10, оснащенного камерой технического зрения, чтобы помочь в выполнении задач проверки. Внедрение позволило контрактному производителю из Огайо достичь 100% качества сборки автомобильных двигателей.
Установка на заводе инспекционной камеры с приводом от коботов позволила компании Comprehensive Logistics достичь 100-процентного качества сборки автомобильных двигателей.
ПРОДОЛЖАЮЩИЙСЯ РОСТ АВТОМОБИЛЬНОГО ПРОИЗВОДСТВА
Существует бесчисленное множество возможностей и приложений для вмешательства роботов — и коллективных роботов — в автомобильную промышленность. Роботы обеспечивают повышенное качество, сокращение сроков производства и меньшее количество травм на рабочем месте.
Коботы Universal Robots популярны среди производителей автомобилей благодаря своей гибкости и адаптируемости. Коботов можно размещать на заводе в непосредственной близости от рабочих без ограждений. А из-за их компактности и простоты мобильности производители автомобилей продолжают находить новые приложения для своих платформ коботов.
Arduino. Проект «Робот-машина RoboCar4W»
Вы понимаете, — втолковывал редактор, — это должно быть занимательно, свежо, полно интересных приключений… Так, чтобы читатель не мог оторваться.
И.Ильф, Е.Петров «Как создавался Робинзон».
Начинать работу с Arduino, как и с любой другой платформой программной или аппаратной, всегда интереснее с какого-нибудь реального проекта. Программисты при этом пишут код выводящий «Hello, world», ардуинисты моргают светодиодом. И все радуются как дети.
Я же решил начать с продвинутого проекта, в том числе с тайной надеждой оторвать молодое поколение от Counter-Strike (не получилось).
Как можно догадаться из названия RoboCar4W, первым проектом стал робот-машина о четырех колесах. Начиная работу я уже имел опыт программирования, умел когда-то давно паять, но совершенно не знал даже распиновки Arduino и документацию совершенно не читал. Все премудрости изучал по ходу пьесы и Гугл в помощь.
Поскольку сам проект принципиально не нов, подобных описаний в сети достаточно, все компоненты известны, то никаких неожиданностей не предполагалось. Поэтому задумка была сформулирована в самых общих чертах и главной целью являлось погружение в «мир вещей» с помощью Arduino, как платформы для быстрого прототипирования. В этом опусе возможно кто-то узнает себя в самом начале пути.
Всё «железо» приобреталось на ebay, и по своему опыту хочу сказать, что проще приобрести сразу стартер кит (ищите по словам Arduino Starter Kit), а не собирать подетально. Да и приедет все сразу вместе. Решено было не мелочиться, купить нормальное шасси, нормальные колеса, нормальные моторы, чтоб было «дорохобохато».
Главный секрет успешных покупок на eBay — покупать у продавцов с высоким рейтингом и при этом внимательно читать описание товара. Об этом есть много статей в интернете.
Какую плату семейства Arduino выбрать?
Я взял Arduino UNO, под нее много проектов с описаниями. Но сейчас бы взял Arduino Mega 2560, у нее больше цифровых и аналогов выводов и полная совместимость по проектам с UNO.
Общее описание проекта
В мире разработки программного обеспечения это называют еще «требования к системе».
Задумка проекта была следующей. Первый вариант машины-робота под названием RoboCar4W должен выполнять незамысловатые действия:
Второй вариант машины должен управляться вручную по bluetooth с Android телефона.
Чтобы вам лучше работалось вот весь финальный проект RoboCar4W в сборе (тут без блютуза).
Вот видео ходовых испытаний.
На первом видео RoboCar4W ездит в автоматическом режиме с объездом препятствий на двух разных версиях «прошивки», т.е. скетча, поэтому, если кто самый зоркий и заметил, что поведение робота в разных эпизодах немного отличается.
На втором видео RoboCar4W передвигается при помощи команд, передаваемых «водителем» по Bluetooth с мобильного телефона под Android. На телефоне установлена программа «Bluetooth RC Car». Причем, если близко впереди оказывается препятствие, то робот останавливается, т.е. протаранить что-нибудь не получится (однако есть «секретная» кнопка, которая отключает безопасный режим).
На третьем видео RoboCar4W показывает заранее запрограммированную демо-программу движения с поворотами. Демо-программа активируется по команде с того же мобильного телефона под Android. Робот просто едет некоторое время и делает повороты.
Алгоритм управления движением
Ошибочно называть наш способ «алгоритм объезда препятствий» или «поиском пути». Это отдельные математические дисциплины, чистая математика. Если вам очень-очень сильно нравится математика, то погуглите указанные словосочетания, чтивом на полгода будете обеспечены.
Пока же нас интересуют вещи гораздо проще. Поэтому мы назовем это просто — алгоритм управления движением 4-х колёсного робота. Разумеется речь идет об автоматическом управлении без участия человека.
Вот этот простой алгоритм записанный словами, для более сложных алгоритмов придется (хочется или нет) составлять блок-схемы.
Сейчас одновременно смотрите в исходник скетча RoboCar4W-1.ino.
Чем хорошо, что у нас 4 колеса и все ведущие? Мы можем выполнить (запрограммировать) несколько типов поворотов:
Во втором варианте программы, при управлении с Android-телефона безопасный режим, когда робот старается не допускать лобовых столкновений, может быть отключен, если в программе два раза нажать кнопку
и включен обратно однократным её нажатием.
Важное примечание. Вся логика находится под управлением Arduino. Android здесь выступает просто как игровой пульт (без мозгов) от консоли, его задача — тупо передавать нажатия кнопок (т.е. команды) посредством Bluetooth в Arduino RoboCar4W.
Компоненты
Первоначально в состав машины входил сервопривод, который поворачивал ультразвуковой измеритель расстояния на определенный угол для измерений по трем направлениям. Но в ходе испытаний из-за неосторожного обращения сервопривод сгорел, поэтому теперь датчик расстояния просто жестко закреплен впереди корпуса.
Нет худа без добра, зато скетч стал немного проще.
Итак составные части проекта RoboCar4W, описание на английском дается для облегчения поиска на ebay и ему подобных:
Шасси, DC моторы и колеса приобретались сразу в комплекте и даже с инструкцией по сборке.
Распиновка
Аналоговые входы могут использоваться как цифровые выводы портов ввода/вывода. Выводы Arduino, соответствующие аналоговым входам, имеют номера от 14 до 19. Это относится только к выводам Arduino, а не к физическим номерам выводов микроконтроллера Atmega.
Рисовать не обязательно, можно просто свести все в таблицу. У меня получилось так.
Пины D4, D7, D8, D12 будут заняты, если используются любые DC моторы или шаговые.
Пины D9 (Servo #1 control), D10 (Servo #2 control) будут заняты, только если используются сервомоторы.
Сама по себе плата для управления моторами Motor Drive Shield L293D пины Arduino не занимает.
Пины питания 3.3 В, 5 В и «земля» дублируются на Motor Drive Shield в достаточном количестве. Поэтому об их нехватке не стоит беспокоиться.
Если все-таки хотите красиво нарисовать, то бесплатная программа Fritzing вам в помощь.
Питание
Это второй очень важный момент. От питания зависит очень многое. Например, серво-мотор при повороте вала на заданный угол начинает потреблять большой ток. При этом если серво подключен по питанию на 5 В Arduino, то происходит «просадка» по напряжению и вся остальная схема начинает глючить, а Arduino даже может перезагружаться при этом.
В любом случае, если в поделке используете моторы, то Motor Drive Shield необходим (или подобная ему схема).
Итак, имеем 4 мотора постоянного тока (DC), сервопривод, саму плату Arduino и несколько датчиков. Моторы самые прожорливые, а вот датчики могут успешно запитываться с разъемов самой платы Arduino, поэтому с ними все просто. Для удобства я свел всё хозяйство в одну таблицу.
Напряжение рекомендованное или типовое. Потребляемый ток | Максимальное напряжение | Чем планируется питать | Примечания | |
---|---|---|---|---|
Плата Arduino UNO R3 | 7 — 12V, 200mA (среднее) | 6 — 20 | «Крона 9V» Li-ion 650mAh, 8.4V | Разъем с плюсом в центре |
Сервомотор MG-995 | 5—6 V, 0.1 — 0.3A (пиковое) | 4.8 — 7.2 | Аккумуляторы (5) шт. Ni-Mh 1.2V = 6V | Питание только от отдельного источника. Если запитать вместе с Arduino, то будет глючить всё. Напряжения Ni-Mh аккумуляторов 4шт. * 1.2В = 4.8V не хватает. Некоторые утверждают, что данную серву не стоит использовать на 6 вольтах только 4,8 |
DC двигатели (4 шт.) | 6 — 8V, ток от 70mA до 250mA | 3 — 12 | аккумуляторы (5+3) шт. Ni-Mh 1.2V = 9.6V | Вы не сможете нормально запустить двигатели от 9В батареи, так что даже не тратьте время (и батареи)! |
Motor Drive Shield L293D | не требуется | 4.5 — 36 | не требуется | |
Модуль Bluetooth HC-0506 | 3.3 V, 50 mA | 1.8—3.6 | С пина 3.3V платы Arduino | |
Ультразвуковой измеритель расстояния HC-SR04 | 5 V, 2 mA | 5 | С пина 5V платы Arduino |
DC/DC преобразователя напряжения у меня не было в наличии. Крона 9V оказался не очень хорошим источником питания, просто у меня он уже был.
А вот от использования Li-ion аккумуляторов большой емкости я отказался. Во-первых, из-за высокой стоимости, во-вторых в китайских интернет-шопах легко нарваться на подделку. Точнее не «легко», а «всегда». Кроме этого Li-ion требует особого обращения, и он не безопасен.
Итак, как видим из таблицы, нам требуется 3 независимых источника питания:
Где ж столько набрать? Саму плату Arduino в любом случае надо питать от отдельного источника, т.к. при «проседании» напряжения, например от включения моторов, плата может перезагружаться или просто глючить. Здесь применяем аккумулятор форм-фактора «Крона 9В», причем разъем который будет подключаться к Arduino должен быть с «плюсом в центре».
Для сервомотора и 4-х DC моторов можно обойтись одним источником питания. Проблема только в том, что сервомотор рассчитан на напряжение 5-6В (максимум 7.2В) и ток 100 — 300мA (пиковое), а DC моторам требуется 6 — 8В (максимум 12В) и ток 250мА.
Для решения проблемы существуют DC-DC преобразователи, но у меня таких не оказалось. В итоге я применил свою «фирменную» схему соединения (безо всяких понижающих электронных схем, только экологически чистые напряжение и ток!): подключил 8 шт. аккумуляторов на 1.2V последовательно и сделал отводы в нужных местах, как показано на схеме.
6В пошло на сервомотор, а 9.6 на DC моторы. Понятно, что аккумуляторы 1—5 будут испытывать повышенную нагрузку.
Для управления серво и DC моторами использовал 4-х канальный Motor Drive Shield на базе микросхемы L293D.
Сборка
Собрать готовое шасси небольшая проблема. Но не думайте, что без допиливания у вас всё сразу соберется. Поэтому приготовьте надфили.
Подключить нормально несколько моторов, сервомотор или шаговый напрямую к Arduino не удастся. Так как пины (выводы) Arduino являются слаботочными. Для решения проблемы существует дополнительный модуль управления приводами — Motor Drive Shield на базе микросхемы L293D, которая является одной из самых распространенных микросхем, предназначенных для этой цели. Чип L293D известен также как H-мост (H-Bridge).
Данная плата модуля управления приводами имеет следующие характеристики.
Motor Drive Shield требует небольшой доработки, чтобы можно было после него хоть что-нибудь подключить. Я подпаял сверху необходимые разъемы, получилось вот что.
Моторы могут быть подключены к дополнительному по отношению к плате Arduino источнику питания. Я рекомендую именно такой способ подключения. Для этого нужно снять, разомкнуть перемычку, как показано на картинке.
В этом случае питание Arduino и питание моторов производится независимо друг от друга.
Светодиод на мотор-шилде светится при наличии питания для моторов, если он не горит, то моторы работать не будут.
Сервомоторов положение джампера питания не касается, они по прежнему будут запитаны от 5V Arduino. Так как сервомоторы обычно потребляют большой ток и если питания недостаточно, то всё устройство начинает глючить, в «лучшем» случае будет глючить только сервопривод — не будет поворачиваться на заданный угол, либо все время перед каждым поворотом поворачивать сначала в 0 градусов, а уже потом на заданный угол (и если будет успевать). Поэтому я рекомендую питать сервопривод также от дополнительного источника питания. Для этого придется немного переделать схему подключения: откусить плюсовой провод (обычно красный) от стандартного разъема и соединить его с плюсом источника питания напрямую.
При подключении Motor Drive Shield аналоговые пины не используются. Цифровые пины 2, 13 не используются.
Указанные ниже пины используются, только если подключены и используются соответствующие DC двигатели или шаговые двигатели (Stepper):
Эти пины будут заняты, если используются любые DC/steppers: D4, D7, D8, D12.
Указанные ниже пины будут заняты, только если используются соответствующие сервомоторы:
Для начала работы с Motor Drive Shield необходимо скачать и установить библиотеку Adafruit AFMotor.
Пример кода для управления моторами:
DC мотор у меня начал крутиться только при указании скорости больше 100, если меньше — просто жужжит. Минимальную скорость вашего мотора вам придется определить экспериментально.
Для моторов, подключенных к M1 и M2 можно задать частоту: MOTOR12_64KHZ, MOTOR12_8KHZ, MOTOR12_2KHZ, MOTOR12_1KHZ. Наибольшая скорость вращения достигается при 64KHz эта частота будет слышна, меньшая частота и скорость на 1KHz но и использует меньше энергии. Моторы 3 и 4 всегда работают на 1KHz другие значения игнорируются. По умолчанию везде 1KHz.
После этого необходимо прогнать тест моторов. Скетч для тестирования можно взять здесь. В начале скетча измените номер мотора в строке (или в строках) типа:
Скетч некоторое время вращает мотор(ы) вперед по ходу движения робота, а затем назад. Посмотрите внимательно в ту ли сторону вращается мотор, и измените полярность подключения если нужно.
Подключаем ультразвуковой измеритель расстояния HC-SR04 Ultrasonic Module. Распиновка выводов:
Время затрачиваемое ультразвуковым дальномером на измерения (определено опытным путем):
Ультразвуковой датчик дальномер, в силу своей физической природы, а не потому что Китай, в некоторых случаях плохо определяет расстояние до препятствия:
Другими словами, для ультразвукового дальномера в идеале было бы отлично, если бы все препятствия имели вид твёрдой плоскости, перпендикулярной направлению излучения ультразвука.
Некоторые проблемы можно решить с помощью инфракрасного датчика расстояния. Но он тоже не идеален:
Хотя если установить эти дальномеры в паре, то эффективность их работы заметно повысилась бы.
Подключаем Bluetooth HC-05
Как видим из даташита основные пины «голого» HC-05:
Наш модуль припаян к плате Breakout/Base Board, где уже есть делитель напряжения, поэтому диапазон рабочих напряжений у него от 3.3В до 6В.
Подключаем наш Bluetooth модуль в сборе :
После подачи питания на модуль Bluetooth HС-05 на нем должен заморгать светодиод, что означает работоспособность блютуза.
Включаем bluetooth на мобиле, находим устройство с именем HC-05 и подключаемся, пароль 1234.
Для тестирования заливаем в Arduino простой скетч:
На Android телефон устанавливаем Bluetooth Terminal. Подключаемся к устройству HC-05 и наблюдаем на экране телефона бегущие строки с увеличивающимся счетчиком.
Чтобы модуль мог принимать AT-команды, нужно его перевести в соответствующий режим — для этого нужно установить вывод KEY (PIO11) в логическую 1. На некоторых Breakout/Base Board вместо вывода KEY есть вывод EN (ENABLE), который может или не может быть припаян к выводу на самом чипе. Это касается только чипов HC05. Вот как раз у меня вывод EN платы никуда не припаян. Поэтому его можно припаять отдельным проводом к выводу KEY(PIO11) чипа. Либо во время работы, чтобы перевести HC05 в режим AT-команд на пару секунд закоротить вывод чипа KEY(PIO11) на вывод питания Vcc. Для HC06 вывод KEY не нужен.
Программное обеспечение
Примечание. Каждый раз перед загрузкой программы в Arduino, убедитесь, что модуль Bluetooth не подключен к Arduino. Это вызовет проблемы заливки скетча. Просто отсоедините питание от Bluetooth модуля или провода, соединяющие Arduino и RX, TX контакты модуля.
В начале скетча измените номера моторов в строках типа:
Если заменить строку
то включится режим отладки.
В режиме отладки робот RoboCar4W реально ездить или крутить колесами не будет. Вместо этого активируйте монитор последовательного порта и там увидите как он «ездит» виртуально. Вместо реальной езды вперед в монитор последовательного порта будет писаться строка «Forward», вместо заднего хода с поворотом влево — «Turn Back L(eft)» и т.д. Датчик ультразвукового измерения расстояния тоже ничего не делает, вместо этого расстояния до препятствий генерируются программно и случайно.
Этот режим отладки удобен, если вы меняете алгоритм движения и вместо того, чтобы ловить машинку по комнате, просто проверяете всё на «холостом» ходу.
Скетч для ручного управления по блютуз скачать здесь. Скетч не имеет режима отладки, так как там всё прозрачно. Вы нажимаете кнопку — робот едет.