1. Главная страница » Компьютеры

Arduino uno r3 робот

Автор: | 16.12.2019

Робот – машинка на Ардуино становятся одним из самым популярных инженерных проектов в школьной робототехнике. Именно с таких устройств, автономных или управляемых со смартфона и bluetooth, начинается путь в робототехнику “после Lego”. К счастью, сегодня можно без труда купить все необходимые компоненты и достаточно быстро создать своего первого робота для езды по линии или объезда препятствий. В этой статье вы найдете подробную видео инструкцию как сделать продвинутый автомобиль Arduino Car своими руками, с питанием, датчиками линии, расстояния и управлении через bluetooth.

Робот на ардуино своими руками

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

Робот машина на Ардуино

Вот список ключевых компонентов, которые обязательно встретятся в проекте.

Контроллер Ардуино

Куда уж без него, если мы говорим о проектах на этой платформе. Как правило, роботы машины делают на базе плат Arduino Uno и Nano. Mega будут слишком большие, Pro Mini сложнее подключать к компьютеру и соединять с остальными компонентами, а Leonardo требуют дополнительных навыков в программировании, они дороже и их основное преимущество (тесная интеграция с компьютером в качестве периферийного устройства) в данном случае не слишком востребована.

Читайте также:  Aorus geforce gtx 1080 ti extreme edition

Есть еще вариант использования плат ESP8266 или ESP32, тогда в проекте появляется возможность управления машиной через WiFi. Но и сами платы и их программирование требует определенных навыков, в этой статье мы будем говорить преимущественно об Uno или Nano.

Конструкция, шасси и двигатели робота на Ардуино

Для того, чтобы что-то поехало или стало перемещаться, надо снабдить “это” колесами, гусеницами или манипуляторами-ногами. Вот тут выбор совершенно не ограничен, можно использовать совершенно любые комбинации и сочетания платформ. Как правило, в качестве начального варианта берутся уже готовые наборы платформ с Алиэкспресс.

Двигатель, шасси и колеса машинки на ардуино

Если работать со стандартными наборами вам не интересно, можно создать платформу своими руками. Например, разобрать игрушечные радиоуправляемые машинки или любые двигатели на 5-12 вольт, с редукторами или без. Колеса можно создать и самим, что тоже является интересной задачей.

Драйвер двигателей

Ардуино – достаточно ранимое устройство, не терпящее больших нагрузок по току. Соединяя его с “брутальными” мощными двигателями, не избежать беды. Поэтому для нормальной совместной работы нам нужно будет включить в схему робота компонент, отвечающий за управление двигателями – подающий и отключающий ток на их обмотки. Речь идет о микросхеме или готовом модуле, которые называют драйвером двигателя. На нашем сайте есть статьи, посвященные драйверам, построенным на схеме H-моста. Если вы покупаете готовые шасси, то обязательно предусмотрите возможность размещения на них подходящего драйвера.

Красивый корпус

Как правило, вся конструкция автомобиля строится вокруг его шасси. Если посмотреть примеры готовых проектов, то они часто выглядят как “провода на колесиках” – внешний вид их изобилует пучками соединительных проводов, ведущих от восседающего на троне контроллера Ардуино к драйверам, моторам и датчикам. Между тем, красивый и функциональный корпус не только вызывает правильные эстетические чувства и помогает выделить вашу модель от остальных. Хороший корпус может превратить игрушку в реальное устройство, помогает привить навыки конструирования и промышленного дизайна, что важно для инженеров любого возраста.

Питание робота

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

Питание робота на Ардуино

Создавая по-настоящему автономное устройство робота, нужно побеспокоиться и о времени его работы, и о возможности быстрой подзарядки или смены батареек. Как правило, выбираются решения из следующих вариантов:

  • Обычные батарейки AA. Тут нужно понимать, что платы Arduino Uno, Nano и большинство двигателей, используемых в Ардуино-робототехнике, требуют напряжения в диапазоне 6-9 вольт. Поэтому придется собрать вместе последовательно не менее 4 батареек на 1,5 В, причем сами батарейки должны быть хорошего качества и обеспечивать работу с достаточно большим током. Например, большинство солевых батареек этим критериям не удовлетворяют. Батарейки AAA при создании ардуино-машинок практически не используются из-за своей пониженной емкости (хотя могут использоваться в миниатюрных моделях, где размер имеет первостепенное значение).
  • Аккумулятор AA. Здесь возникает еще большее ограничение по напряжению и току. Большинство аккумуляторов выдают напряжение 1,2 вольт, поэтому их требуется больше для “собирания” нужных нам 6-9 вольт. Несомненным плюсом является возможность перезарядки.
  • Литиевые аккумуляторы 18650. Это уже “серьезная артиллерия”, позволяющая получить большое время автономной работы, возможность подзарядки и приемлемые характеристики по току и напряжению. Рабочее напряжение для таких элементов питания – 3,7 В, что позволяет собирать готовую схему питания всего из двух элементов.
  • Другие источники питания. Сюда можно включить как более мощные и габаритные никель-металлгидридные, кадмиевые аккумуляторы, так и многочисленные литий-ионные “плоские” варианты, используемые в дронах, смартфонах или другой портативной цифровой технике.

Каким бы ни был источник питания, нужно обеспечить его надежное крепление, удобное расположение, защиту от воздействия недружелюбной окружающей среды. Если вы подключаете к одному источнику и контролер, и двигатели, и датчики, то нужно позаботиться о правильной схеме, включающей, например, надежную связь “по земле” всех устройств.

Где купить платформу и запчасти

Все, о чем говорится в этой статье, можно без проблем купить на всем известном сайте. К сожалению, подавляющее большинство предложений основываются на стандартной платформе 4WD автомобиля с двумя несущими планками, не очень надежными двигателями и колесами, любящими ездить в “развалочку”. Но эти варианты относительно не дороги и вполне подойдут для начала работы.

Робот – машинка на Ардуино становятся одним из самым популярных инженерных проектов в школьной робототехнике. Именно с таких устройств, автономных или управляемых со смартфона и bluetooth, начинается путь в робототехнику “после Lego”. К счастью, сегодня можно без труда купить все необходимые компоненты и достаточно быстро создать своего первого робота для езды по линии или объезда препятствий. В этой статье вы найдете подробную видео инструкцию как сделать продвинутый автомобиль Arduino Car своими руками, с питанием, датчиками линии, расстояния и управлении через bluetooth.

Робот на ардуино своими руками

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

Робот машина на Ардуино

Вот список ключевых компонентов, которые обязательно встретятся в проекте.

Контроллер Ардуино

Куда уж без него, если мы говорим о проектах на этой платформе. Как правило, роботы машины делают на базе плат Arduino Uno и Nano. Mega будут слишком большие, Pro Mini сложнее подключать к компьютеру и соединять с остальными компонентами, а Leonardo требуют дополнительных навыков в программировании, они дороже и их основное преимущество (тесная интеграция с компьютером в качестве периферийного устройства) в данном случае не слишком востребована.

Есть еще вариант использования плат ESP8266 или ESP32, тогда в проекте появляется возможность управления машиной через WiFi. Но и сами платы и их программирование требует определенных навыков, в этой статье мы будем говорить преимущественно об Uno или Nano.

Конструкция, шасси и двигатели робота на Ардуино

Для того, чтобы что-то поехало или стало перемещаться, надо снабдить “это” колесами, гусеницами или манипуляторами-ногами. Вот тут выбор совершенно не ограничен, можно использовать совершенно любые комбинации и сочетания платформ. Как правило, в качестве начального варианта берутся уже готовые наборы платформ с Алиэкспресс.

Двигатель, шасси и колеса машинки на ардуино

Если работать со стандартными наборами вам не интересно, можно создать платформу своими руками. Например, разобрать игрушечные радиоуправляемые машинки или любые двигатели на 5-12 вольт, с редукторами или без. Колеса можно создать и самим, что тоже является интересной задачей.

Драйвер двигателей

Ардуино – достаточно ранимое устройство, не терпящее больших нагрузок по току. Соединяя его с “брутальными” мощными двигателями, не избежать беды. Поэтому для нормальной совместной работы нам нужно будет включить в схему робота компонент, отвечающий за управление двигателями – подающий и отключающий ток на их обмотки. Речь идет о микросхеме или готовом модуле, которые называют драйвером двигателя. На нашем сайте есть статьи, посвященные драйверам, построенным на схеме H-моста. Если вы покупаете готовые шасси, то обязательно предусмотрите возможность размещения на них подходящего драйвера.

Красивый корпус

Как правило, вся конструкция автомобиля строится вокруг его шасси. Если посмотреть примеры готовых проектов, то они часто выглядят как “провода на колесиках” – внешний вид их изобилует пучками соединительных проводов, ведущих от восседающего на троне контроллера Ардуино к драйверам, моторам и датчикам. Между тем, красивый и функциональный корпус не только вызывает правильные эстетические чувства и помогает выделить вашу модель от остальных. Хороший корпус может превратить игрушку в реальное устройство, помогает привить навыки конструирования и промышленного дизайна, что важно для инженеров любого возраста.

Питание робота

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

Питание робота на Ардуино

Создавая по-настоящему автономное устройство робота, нужно побеспокоиться и о времени его работы, и о возможности быстрой подзарядки или смены батареек. Как правило, выбираются решения из следующих вариантов:

  • Обычные батарейки AA. Тут нужно понимать, что платы Arduino Uno, Nano и большинство двигателей, используемых в Ардуино-робототехнике, требуют напряжения в диапазоне 6-9 вольт. Поэтому придется собрать вместе последовательно не менее 4 батареек на 1,5 В, причем сами батарейки должны быть хорошего качества и обеспечивать работу с достаточно большим током. Например, большинство солевых батареек этим критериям не удовлетворяют. Батарейки AAA при создании ардуино-машинок практически не используются из-за своей пониженной емкости (хотя могут использоваться в миниатюрных моделях, где размер имеет первостепенное значение).
  • Аккумулятор AA. Здесь возникает еще большее ограничение по напряжению и току. Большинство аккумуляторов выдают напряжение 1,2 вольт, поэтому их требуется больше для “собирания” нужных нам 6-9 вольт. Несомненным плюсом является возможность перезарядки.
  • Литиевые аккумуляторы 18650. Это уже “серьезная артиллерия”, позволяющая получить большое время автономной работы, возможность подзарядки и приемлемые характеристики по току и напряжению. Рабочее напряжение для таких элементов питания – 3,7 В, что позволяет собирать готовую схему питания всего из двух элементов.
  • Другие источники питания. Сюда можно включить как более мощные и габаритные никель-металлгидридные, кадмиевые аккумуляторы, так и многочисленные литий-ионные “плоские” варианты, используемые в дронах, смартфонах или другой портативной цифровой технике.

Каким бы ни был источник питания, нужно обеспечить его надежное крепление, удобное расположение, защиту от воздействия недружелюбной окружающей среды. Если вы подключаете к одному источнику и контролер, и двигатели, и датчики, то нужно позаботиться о правильной схеме, включающей, например, надежную связь “по земле” всех устройств.

Где купить платформу и запчасти

Все, о чем говорится в этой статье, можно без проблем купить на всем известном сайте. К сожалению, подавляющее большинство предложений основываются на стандартной платформе 4WD автомобиля с двумя несущими планками, не очень надежными двигателями и колесами, любящими ездить в “развалочку”. Но эти варианты относительно не дороги и вполне подойдут для начала работы.

Немного теории о платах Arduino.

Микроконтроллер (МК) — однокристальный компьютер, имеющий процессор, память (в т.ч. энергонезависимую) и интерфейсы для ввода и вывода.
Любая плата Arduino – это печатная плата (вернее различные модификации) с общеизвестными стандартными габаритами и расположением выводов микроконтроллера. По сути Arduino является просто оберткой для МК ATmega, предоставляя собой стандартный форм-фактор, облегчающий физическое подключение дополнительных модулей.
Многие модели плат Arduino так же имеют элементы контроля напряжения питания и USB интерфейс, используемый одновременно и для питания и для связи с контроллером через последовательное соединение (USB-serial).

Кроме удобства подключения, работу с Arduino облегчает наличие готового открытого программного обеспечения для программирования контроллера — среды Arduino IDE. Это среда для разработки со встроенным компилятором и загрузчиком кода в МК, а так же набором библиотек, облегчающих написание некоторых операций.
Специальный загрузчик, заранее записанный в память МК, обеспечивает загрузку и выполнение загруженного кода (т.н. скетчей, как называют программы в терминах Arduino), так что пользователю не нужно задумываться, как загружается и стартует его код. Достаточно написать скетч в среде разработки и нажать кнопку загрузки — код загрузится в память МК и запустится сразу, а так же будет стартовать автоматически при перезагрузке микроконтроллера.

Arduino UNO R3 на микроконтроллере ATmega328P

Плата Arduino UNO R3 — новая, очень популярная, плата на базе 8-битного микроконтроллера ATmega328 типа AVR фирмы Atmel.

Контроллер Arduino UNO R3 имеет 14 цифровых вход/выходов, 6 из которых поддерживают режим ШИМ, 6 аналоговых входов. Частота работы микропроцессора 16 MHz. Плата также имеет встроенный USB коннектор, вход для питания, коннектор ICSP и кнопку перезагрузки. Питание может осуществляться как через USB, так и внешним источником питания.
Для этой модели существует большое количество готовых для подключения (без паяльника) модулей и с ней удобно экспериментировать. Достаточно подключить USB кабель к компьютеру и подать питание.

Внешний вид Arduino Uno R3

Чтобы увидеть, насколько Arduino является «оберткой» МК ATmega, можно изучить схему выводов ATmega328 в исполнении 28DIP и соотнести их описание с выводами Arduino.

Почти все выводы МК напрямую соединены с выводами Arduino. При чем, некоторые выводы одновременно и доступны для подключения и задействованы во внутренней схеме. Например, D0 и D1 одновременно являются RX и TX последовательного интерфейса, подключенного к USB-serial контроллеру, реализованному на отдельном МК ATmega16U (этот МК обслуживает только USB интерфейс и не имеет отношения к функционированию «основного» МК).

У Arduino Uno имеется USB интерфейс, который используются как для питания (5В), так и для связи с компьютером, при этом на компьютере он распознается как асинхронный последовательный (COM) порт. Со стороны МК связь с компьютером так же выглядит как обмен данными через последовательный порт.

Так же имеется вход для внешнего питания 7-12В. Регулятор напряжения всегда будет выводить напряжение на 5В — рабочее напряжение Arduino Uno. Arduino автоматически переключает питание между USB портом и внешним источником питания, делая выбор в пользу внешнего, если он дает напряжение более 6,6В.

ISCP для USB интерфейса предназначен для программирования контроллера USB интерфейса.

ISCP для «основного» МК используется для работы с программатором, через который можно совершать операции, недоступные через обычный последовательный интерфейс — запись загрузчика и изменение фьюзов (fuses), изменяющих поведение МК.

Выводы МК делятся на цифровые (D0-D13) и аналоговые (A0-A5) , хотя при написании программ используется «сквозная» нумерация выводов, т.е. вывод 13 = D13, а 14 = A0, 15 = A1 и т.д.
Цифровые выводы могут использоваться и как входы и как выходы (режим входа или выхода задается в программе), аналоговые используются как входы, с разрешением АЦП 10 бит (0-1023) и пределом измерений 5В относительно земли или вывода AREF.

Выводы D0, D2 используются для передачи данных через асинхронный последовательный порт и подключены к USB-serial контроллеру. Внимание — эти выводы нельзя подключать напрямую к порту RS323! Эти выводы используют последовательный интерфейс ТТЛ, который несовместим с RS232 и требует преобразования.

Выводы D2, D3 могут использоваться для вызова внешних прерываний.

Выводы D3, D5, D6, D9, D10, и D11 связаны с внутренними счетчиками-таймерами МК и могут использоваться для вывода ШИМ-сигнала (Широтно-импульсная модуляция, PWM) и в качестве счетчиков внешних импульсов.

Выводы D10-D13 могут использоваться для работы с внешними устройствами по протоколу SPI, при чем D10 (SS) используется в случае, если МК является ведомым (slave).

Вывод D13 подключен к светодиоду «L» на плате, что никак не влияет на его использование, но может быть полезным для индикации чего-либо.

Два вывода I2C в верхнем (или «длинном») ряду — дублируют A4 и A5. Они могут использоваться для работы с внешними устройствами по протоколу I2C, что является дополнительной функцией A4, A5.

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

Выводы GND, 5V, 3V3 — земля и регулируемое напряжение 5В, 3,3В.

Вывод IOREF — выдает рабочее напряжение, т.е. 5В для Arduino Uno.

Таким образом, возможности ввода-вывода достаточно разнообразные. Через аналоговые входы можно измерять напряжение сигнала, для цифровых входов-выходов можно как считывать, так и выставлять состояние, в т.ч. генерировать ШИМ сигнал (обычно используется для управления двигателями или генерирования звука), а через целый ряд интерфейсов можно общаться с внешними устройствами: однопроводная шина на базе любого цифрового вывода, асинхронный последовательный порт, I2C, SPI.
При чем I2C и SPI позволяют одновременно подключать множество устройств на одну шину.

Большинство сенсоров для Arduino подключаются с помощью аналоговых входов, однопроводной шины или I2C.

Через SPI обычно работают устройства, требующие большой скорости передачи данных (Ethernet shield, Wi-Fi shield).

Очень полезно для экспериментов использовать платы расширения (Shield). Это платы с удобным дублированием всех выводов вместе с землей и питанием для подключения внешних устройств или платы для расширения функциональности контроллеров.
Платы расширения для Arduino =>>

Так же очень удобна макетная плата для быстрого подключения устройств и пассивных компонентов без пайки.
Макетные платы для Arduino =>>

Нельзя превышать допустимые величины силы тока!
Ток на любом отдельном выводе не должен превышать 40 мА.
Ток на любой группе выводов (D0-D4, D5-D13, A0-A5) не должен превышать 100 мА.
Ток на всем МК не должен превышать 200 мА.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *