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

14.02.2014, 12:26
Источник: habrahabr.ru


Меня всегда посещала мысль сделать робота на базе Arduino и однажды утром мой коллега говорит — «не плохо было бы купить контроллер Arduino для...», я конечно же знал про него не по наслышке и тут все началось. Мы делаем «Ардуино КАР»!

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


Где взять?

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

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

Второй вариант взять у нас на родине, доставят за неделю — две, но чуть дороже. Я пользуюсь магазином «Амперка», здесь выбор не большой, но зато есть все что необходимо для начала. И товар хорошего качества (в коробочке с наклеичками бренда, все как надо) в отличии от китайского брата.



Что брать?

Мой совет — определитесь с целью, потом заказывайте, иначе можно взять лишка.
Моя цель — дистанционно управлять движущейся платформой по средствам ПК.
Сразу совет — не ставьте сложных задач, если вы только начинаете, или разбивайте цель на более простые задачи.
Я решил упростить задачу — мне нужно, чтобы платформа ездила по комнате и не врезалась в стенки.

Для моего первого робота я заказал:
Arduino New Version Mega 2560 Starter Package Kits — это, так называемый, стартовый пакет, куда входит сам контроллер и сопутствующие материалы. Я взял набор с LCD дисплеем, но для первого проекта можно было обойтись и Uno.

Motor Drive Shield L293D for Arduino Duemilanove Mega / UNO — Силовой модуль для управления двигателями. Arduino Sensor Shield V5.0 — модуль для подключения датчиков, и периферии.
Arduino Sharp IR Sensor — GP2Y0A21YK0F — инфракрасный дальномер.
Arduino Robot Platform All-Wheel-Drive 4 Wheel Chassiss — полно приводная платформа с электродвигателями.

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

Интернет кишит статьями, как работать и программировать под Arduino. Я не стал углубляться, решил начать с простых вещей:
Скачал ПО с официального сайта: драйвер для подключения контроллера и среда разработки с компилятором. Написал первую программу, пользуясь онлайн справочником (функции ядра и библиотеки). При этом пришлось вспомнить азы языка программирования «C».
Подключил и прошил контроллер. Процедура довольно проста, если использовать средство для разработки Arduino.

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

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

Мозги моего робота


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

Ардуино мозги моего робота


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

Мозги моего робота — Arduino


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

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

Чтобы ваша программа заработала, контроллеру достаточно увидеть две функции — это инициализация контроллера (выполняется при запуске) и функция основного цикла. Простейший пример можно посмотреть тут.(https://arduino.cc/en/Tutorial/Blink)

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

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

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



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

Ключевые слова:
первый опыт
Arduino
контроллер
моего робота
Ардуино
Shield
разработки
Sensor
подключения
контроллер
функции
Wheel
платформа
программировать
периферия
Мозги моего робота — Arduino
первый опыт
Роботы на платформе Ардуино
робот


Вернуться в рубрику:

Проекты на платформе Ардуино


Хотите видеть на нашем сайте больше статей? Кликните Поделиться в социальных сетях! Спасибо!

Смотрите также:

Обратите внимание полезная информация.

Робототехника для каждого. 2024г.