Мозги Моего Робота — Arduino, Первый Опыт

У меня всегда была идея сделать робота на основе Ардуино и однажды утром мой коллега говорит: «было бы не плохо купить контроллер Arduino для…», я, конечно, знал об этом не понаслышке и с этого все и началось.

Делаем АВТОМОБИЛЬ на Arduino!

Мозги моего робота — Arduino, первый опыт



Где взять?

Исходя из того, что в Ростове-на-Дону, а я оттуда, ни в одном магазине о платформе Arduino никогда не слышали, я заказывал все онлайн.

Как оказалось, самый дешевый способ — купить все в Китае через ebay, но есть большой недостаток — это занимает очень много времени.

Доставка заказа из Гонконга заняла больше месяца.

Второй вариант - забрать с родины, доставят через неделю-две, но немного дороже.

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

И товар качественный (в коробке с фирменными наклейками, все как надо) в отличии от своего китайского собрата.



Мозги моего робота — Arduino, первый опыт



Что взять?

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

Моя цель — удаленно управлять движущейся платформой с помощью ПК.

Сразу совет – не ставьте сложных целей, если вы только начинаете, или разбивайте цель на более простые задачи.

Я решил упростить задачу — мне нужно, чтобы платформа передвигалась по комнате, а не врезалась в стены.

Для своего первого робота я заказал:

  • Новая версия Ардуино Мега 2560 Стартовый комплект — это так называемый стартовый пакет, в который входит сам контроллер и сопутствующие материалы.

    Я взял комплект с ЖК-дисплеем, но для первого проекта можно было обойтись и Уно .

  • Motor Drive Shield L293D для Arduino Duemilanove Mega/UNO — Силовой модуль для управления двигателями.

  • Arduino Sensor Shield V5.0 — модуль для подключения датчиков и периферии.

  • Arduino Sharp IR Sensor — GP2Y0A21YK0F — инфракрасный дальномер.

  • Полноприводное 4-колесное шасси робота Arduino — это полноприводная платформа с электродвигателями.



С чего начать?

Интернет кишит статьями о том, как работать и программировать с Arduino. Я не стал углубляться, решил начать с простых вещей:
  • Скачано К с официального сайта: драйвер для подключения контроллера и среды разработки с компилятором.

  • Я написал свою первую программу, используя онлайн-каталог (функции ядра и библиотеки).

    При этом мне пришлось вспомнить основы языка программирования «С».

  • Я подключил и прошил контроллер.

    Процедура довольно проста, если вы используете Инструмент разработки Arduino .



Как собирать?

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

Самое простое — собрать платформу, спаять схемы, установить на плату плату контроллера, дальше уже сложнее.



Мозги моего робота — Arduino, первый опыт

Будьте осторожны при подключении периферийных устройств к контроллеру или картам расширения.

Например, я столкнулся с тем, что распиновка на плате расширения (Sensor Shield) не совпадала с датчиком дальномера и ЖК-дисплеем, точнее разъемы подходят идеально, но полярность не совпадает. При несоблюдении полярности можно просто сжечь оборудование.



Мозги моего робота — Arduino, первый опыт

Многие вещи приходят с опытом разработки.

Например, я столкнулся с проблемой подключения ЖК-дисплея к последовательному порту.

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

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

В результате я подключил ЖК к аналоговому порту и использовал библиотеку для работы с программным последовательным соединением.



Мозги моего робота — Arduino, первый опыт



Как программировать?

Ну товарищей на вкус и цвет здесь нет. Все зависит от поставленной задачи.

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

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

Самый простой пример можно увидеть здесь .

Далее я столкнулся с проблемой чтения данных с датчика - дальномера.

При чтении данных на каждой итерации цикла на одном и том же расстоянии были получены разные значения сигнала.

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

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



Запуск прототипа!

P.S. Не использует китайские аналоги.

Теги: #arduino #роботная система arduino #микроконтроллеры #роботы #Разработка для Arduino

Вместе с данным постом часто просматривают: