Сайт о роботах

Мозги моего робота — Arduino, первый опыт » Роботы на платформе Ардуино


Меня всегда посещала мысль сделать робота на базе Arduino и однажды утром мой коллега говорит — «не плохо было бы купить контроллер Arduino для...», я конечно же знал про него не по наслышке и тут все началось. Мы делаем «Ардуино КАР»!
Навигация
Самые интересные статьи
Карнавальный костюм 'Робот IJ-88'
Карнавальный костюм
Что необходимо иметь каждому роботостроителю в своей мастерской? Минимальный набор предметов, устройств и т.д. Почитайте, Вам, как робомастеру должно быть это интересно!...

Обратите внимание Будьте в курсе событий.

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

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

Меня всегда посещала мысль сделать робота на базе 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 к аналоговому порту и использовал библиотеку для работы с программным последовательным соединением.



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

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

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

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

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

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



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

Arduino Robot: открытая платформа для сборки роботов

Arduino Robot: открытая платформа для сборки роботов
  • Компания Arduino анонсировала новое семейство инженерных плат и выпустила готовый конструктор Arduino Robot для сборки роботов. Как обычно, ...
  • НАЗАД
    Горячие Ардуиновские новости!!!

    Горячие Ардуиновские новости!!!
  • В этом посте будет краткий обзор новинок от Arduino ...
  • ВПЕРЁД