- PVSM.RU - https://www.pvsm.ru -
Меня всегда посещала мысль сделать робота на базе Arduino [1] и однажды утром мой коллега говорит — «не плохо было бы купить контроллер Arduino для...», я конечно же знал про него не по наслышке и тут все началось. Мы делаем «Ардуино КАР»!
Исходя из того что в Ростове-на-Дону, а я как раз от туда, про платформу Arduino ни в одном магазине не слыхали, то заказывал все online.
Как оказалось дешевле всего купить все в Китае через ebay, но есть большой минус — очень долго. Доставка заказа из Гонконга более месяца.
Второй вариант взять у нас на родине, доставят за неделю — две, но чуть дороже. Я пользуюсь магазином «Амперка», здесь выбор не большой, но зато есть все что необходимо для начала. И товар хорошего качества (в коробочке с наклеичками бренда, все как надо) в отличии от китайского брата.
Мой совет — определитесь с целью, потом заказывайте, иначе можно взять лишка.
Моя цель — дистанционно управлять движущейся платформой по средствам ПК.
Сразу совет — не ставьте сложных задач, если вы только начинаете, или разбивайте цель на более простые задачи.
Я решил упростить задачу — мне нужно, чтобы платформа ездила по комнате и не врезалась в стенки.
Для моего первого робота я заказал:
Интернет кишит статьями, как работать и программировать под Arduino. Я не стал углубляться, решил начать с простых вещей:
Каждый для себя решает сам как делать и с чего начинать, я знаю одно — провода спаивать нужно качественно!
Для сборки понадобится: голова, руки и небольшие знания в электротехнике.
Самое простое — собрать платформу, спаять цепи, установить плату контроллера на борт, далее сложнее.
Будьте внимательнее при подключении периферии к контроллеру или платам расширения.
Например я столкнулся с тем, что распиновка на плате расширения(Sensor Shield) не совпадала с датчиком дальномером и LCD дисплеем, вернее разъемы подходят отлично а полярность не совпадает. При не соблюдении полярности можно попросту спалить оборудование.
Многие вещи приходят с опытом разработки.
Например я столкнулся с проблемой подключения LCD дисплея к последовательному порту.
Вернее проблем не было, дисплей работал, но при подключенном дисплее прошивать контроллер нельзя, потому что порт занят (долго не мог понять почему прошивка не заливается).
У меги 4 аппаратных последовательных порта, казалось бы что проще, переключи дисплей на второй, но не тут то было, плата расширения, которую я использовал, не захватывает нужные пины на контроллере.
В итоге подключил LCD к аналоговому порту и использовал библиотеку для работы с программным последовательным соединением.
Ну тут на вкус и цвет товарищей нет. Все завесит от поставленной задачи.
Не буду рассказывать как это делал я, опишу лишь некоторые моменты.
Чтобы ваша программа заработала, контроллеру достаточно увидеть две функции — это инициализация контроллера (выполняется при запуске) и функция основного цикла. Простейший пример можно посмотреть тут [7].
Далее я столкнулся с проблемой чтения данных с датчика — дальномера.
При чтении данных, при каждой итерации цикла, приходили разные значения сигнала при одном и том же расстоянии.
Оказалось, что датчик передает сигнал на аналоговый порт с некоторой амплитудой и иногда в момент считывания данных значение оказывалось отличным от нормального, потому что итерация приходилась на провал. Пришлось писать функцию чтения с датчика, таким образом, чтобы снимать несколько показаний подряд, а затем отсеивать ошибочные значения и приводить все к среднему арифметическому.
P.S. Не использует китайские аналоги.
Автор: obidnov
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/roboty/4916
Ссылки в тексте:
[1] Arduino: http://ru.wikipedia.org/wiki/Arduino
[2] Mega 2560: http://arduino.cc/en/Main/ArduinoBoardMega2560
[3] Uno: http://arduino.cc/en/Main/ArduinoBoardUno
[4] ПО: http://arduino.cc/en/Main/Software
[5] онлайн справочником: http://arduino.cc/en/Tutorial/HomePage
[6] средство для разработки Arduino: http://arduino.cc/en/Guide/Environment
[7] тут: http://arduino.cc/en/Tutorial/Blink
Нажмите здесь для печати.