Главная / TinyDeal / Мое первое знакомство с Arduino.

Мое первое знакомство с Arduino.

Перейти в магазин ( $10.99 )

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

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

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

Отчетливо понимая, что мир микроконтроллеров не начинается с Arduino и то, что данная платформа скроет от меня многие премудрости работы с ними (равно как и уберет многие грабли для начинающего) я запасаюсь терпением и желанием открыть для себя что-то, что окружает ежедневно, но спрятано за стеной непонимания, а скорее просто не заметно глазу.

Первым шагом стала покупка Arduino Duemilanove. Почему именно эта модель? Абсолютно спонтанное решение - просто подвернулась в списке новинок магазина.

Лицевая сторона

Тыльная сторона

Мое первое знакомство с Arduino.. Обзор на InSKU.com

Микроконтроллер: ATmega168
Рабочее напряжение 5 В
Входное напряжение (рекомендуемое) 7-12 В
Входное напряжение (предельное) 6-20 В
Цифровые Входы/Выходы 14 (6 из которых могут использоваться как выходы ШИМ)
Аналоговые входы 6
Постоянный ток через вход/выход 40 мА
Постоянный ток для вывода 3.3 В 50 мА
Флеш-память 16 Кб (ATmega168) или 32 Кб (ATmega328) при этом 2 Кб используются для загрузчика
ОЗУ 1 Кб (ATmega168) или 2 Кб (ATmega328)
EEPROM 512 байт (ATmega168) или 1 Кб (ATmega328)
Тактовая частота 16 МГц

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

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

http://wiki.amperka.ru/
http://cxem.net/arduino/arduino.php
http://habrahabr.ru/hub/arduino/
http://www.torrentino.com/torrents/923385

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

Следующим шагом стала покупка платформы с четырьмя моторами, и motor driver shield.

Мое первое знакомство с Arduino.. Обзор на InSKU.com

Количество моторов: 4
Количество колес: 4
Цвет: черный или прозрачный
Крепления: платформа содержит множество отверстий, предназначенных для крепления датчиков, кроме того возле каждого колеса есть посадочное место под датчик прерывания (для получения обратной связи по скорости вращения колеса)

Мое первое знакомство с Arduino.. Обзор на InSKU.com

Motor Shield – силовой модуль управления двигателями для микроконтроллеров серии Freeduino/Arduino. Модуль предназначен для упрощения разработки моторизированных и робототехнических устройств.

Технические возможности позволяют реализовать разнообразные проекты, связанные с подключением и управлением слаботочными двигателями следующих типов:
* четырёх двигателей постоянного тока (DC motors);
* двух шаговых двигателей униполярных или биполярных с одинарной или * двойной обмоткой (stepper motors);
* двух 5В сервоприводов.

Технические характеристики
напряжение питания: +7...+ 24 В;
количество силовых каналов: 4;
максимально-продолжительный ток каждого канала: 0,6 А;
напряжение питания сервоприводов: 5 В;
возможность реверса каждого двигателя;
возможность независимого управления каждым каналом;

Отверстия на платформе оказались не приспособленными для крепления Arduino-подобных, но это не смутило. Вооружившись стяжками удалось закрепить на ней Duemilanove, поверх которого тут же был водружен motor shield:

Мое первое знакомство с Arduino.. Обзор на InSKU.com

Еще одним неприятным моментом стало отсутствие припаянных проводов к моторам. Пришлось потратить какое-то время на лужение и припаивание проводов из тех что были в наличии.

Мое первое знакомство с Arduino.. Обзор на InSKU.com

Мое первое знакомство с Arduino.. Обзор на InSKU.com

Мое первое знакомство с Arduino.. Обзор на InSKU.com

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

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

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

Моторы:
Мое первое знакомство с Arduino.. Обзор на InSKU.com

И пары проводов:
Мое первое знакомство с Arduino.. Обзор на InSKU.com

Мое первое знакомство с Arduino.. Обзор на InSKU.com

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

Мое первое знакомство с Arduino.. Обзор на InSKU.com

Конечно, если вы будете использовать провода разных цветов, помечать провода не имеет смысла. Мне же было удобно, так как все использованные мною провода были черного цвета.

Чтобы закончить с материальной составляющей, осталось лишь обеспечить питание для моторов. Источником, по-началу, была выбрана сборка из четырех элементов AAA:

Мое первое знакомство с Arduino.. Обзор на InSKU.com

Но такого запаса хватало не на долго и немного позже была добавлена сборка из 6 AA элементов, которая в отличии от первой не имела кнопки включения/выключения, поэтому в разрез плюсового проводника был вставлен переключатель:

Мое первое знакомство с Arduino.. Обзор на InSKU.com

Обе батареи решил оставить для чистоты эксперимента - разделить по питанию Ардуино и мотор шилд и оценить разницу.

Для написания кода (т.н. скетчей) используется одноименная среда разработки "Arduino IDE".

Осталось вдохнуть в ардуино немного жизни - написать скетч, управляющий моторами. Для старта была выбрана библиотека AFMotor и пример работы с моторами.

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


#include <AFMotor.h>

#define MAX_SPEED 255 // Maximum motor speed
#define LEFT 33
#define RIGHT 44

#define TURN_TIME 660

//Создаем объекты для двигателей
AF_DCMotor frontLeftMotor(1); //канал М1 - передний левый
AF_DCMotor frontRightMotor(2); //канал М2 - передний правый
AF_DCMotor rearLeftMotor(3); //канал М3 - задний левый
AF_DCMotor rearRightMotor(4); //канал М4 - задний правый

void setup() {}

void setSpeed(int newSpeed) {
frontLeftMotor.setSpeed(newSpeed);
rearLeftMotor.setSpeed(newSpeed);
frontRightMotor.setSpeed(newSpeed);
rearRightMotor.setSpeed(newSpeed);
}

void turn(int dir) {
switch(dir) {
case LEFT:
frontLeftMotor.run(BACKWARD);
rearLeftMotor.run(BACKWARD);
frontRightMotor.run(FORWARD);
rearRightMotor.run(FORWARD);
break;
case RIGHT:
frontLeftMotor.run(FORWARD);
rearLeftMotor.run(FORWARD);
frontRightMotor.run(BACKWARD);
rearRightMotor.run(BACKWARD);
break;
default:
break;
}

delay(TURN_TIME);
}

void move(int dir) {
switch (dir) {
case FORWARD:
frontLeftMotor.run(FORWARD);
rearLeftMotor.run(FORWARD);
frontRightMotor.run(FORWARD);
rearRightMotor.run(FORWARD);
break;
case BACKWARD:
frontLeftMotor.run(BACKWARD);
rearLeftMotor.run(BACKWARD);
frontRightMotor.run(BACKWARD);
rearRightMotor.run(BACKWARD);
break;
default:
frontLeftMotor.run(RELEASE);
rearLeftMotor.run(RELEASE);
frontRightMotor.run(RELEASE);
rearRightMotor.run(RELEASE);
}
delay(500);
}

void loop() {
setSpeed(MAX_SPEED);

move(FORWARD);

turn(RIGHT);
move(FORWARD);

move(BACKWARD);
delay(500);

turn(RIGHT);
move(FORWARD);

turn(LEFT);
move(FORWARD);
delay(80);

turn(LEFT);
move(RELEASE);
delay(9500); }

После компиляции и заливки в Ардуино машинка прошла боевое крещение:

И даже вызвала интерес у домашнего любимца:

Мое первое знакомство с Arduino.. Обзор на InSKU.com

Мое первое знакомство с Arduino.. Обзор на InSKU.com

Мое первое знакомство с Arduino.. Обзор на InSKU.com

Мое первое знакомство с Arduino.. Обзор на InSKU.com

Мое первое знакомство с Arduino.. Обзор на InSKU.com

Эпилог
К моменту написания статьи на импорте отметилась посылка с рядом датчиков, среди которых: ультразвуковые дальномеры, ИК дальномеры, датчики обхода препятствий и sensor shield для удобного подключения всего вышеперечисленного. Кроме этого были заказаны 2 радио модуля для беспроводного управления платформой. Так что веселое времяпрепровождение мне обеспечено еще на долго.

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

Плюсы:
Огромное комьюнити, тонны видео и статей
Открытая архитектура
Легкое макетирование

Минусы:
Цена некоторых шилдов кусается.

About angy_v

Обратите внимание

Сумочка-переноска для домашних животных с плечевым ременем

Перейти в магазин ( $9.76 )
Перейти в магазин ( $9.76 )   Привет. Продолжая обзор покупок для своего любимого питомца, …

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

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