Drawbot

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

Drawbot состоит из нескольких частей:
DC Boarduino (Arduino клон)
— 2х сервопривода непрерывного вращения.
— 2х серво колеса.
— Небольшая макетная плата.
— Разъем для батареи 9В с выключателем и штекером 2,1 мм.
— Провода с BLS штырьками.

Вместо Boarduino можно использовать любую плату Arduino. Я использовал Boarduino из-за маленьких размеров.

Также вам понадобится несколько маркеров (Я рекомендую брать набор маркеров разных цветов), батарея 9В и основа.

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

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

Как и везде в этом проекте, я использовал провода с BLS штырьками для подключения сервоприводов к макетной плате.

Когда я закончил сбору, я захотел проверить его работу. Я хотел найти или написать код для непрерывного вращения сервопривода. Поискав, я нашел статью Управление сервоприводом непрерывного вращения Parallax (Futaba) при помощи Arduino. Я максимально упростил свой код. Сейчас Drawbot просто ездит по кругу. Да, это примитивно, но это хороший старт и основа для дальнейшего развития.

Теперь у нас есть робот, который ездит по кругу. Пришло время сделать что-то ещё. Я взял небольшой кусок гофрированного пластика и при помощи ножа вырезал в нем отверстие. Я вырезал отверстие немного меньшего размера чем нужно, и благодаря этому маркер крепится в нем хорошо и туго. Если использовать картон, то так хорошо и туго маркер закреплен не будет.

Теперь, когда маркер установлен, пришло время протестировать его. Я поставил его в центр листа 24″х 18″ и включил. Он начал вращаться и рисовать круги. Мне удалось создать робота, который может создать произведение искусства!

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

Мы подумали, что два маркера будет лучше, чем один, и прикрепили его. Результат был хорошим. Круги начали пересекаться. Интересно будет попробовать запустить робота на большем листе бумаги, чтобы посмотреть, как он ведет себя дальше.

Код:

int servoPinL = 9;
int servoPinR = 10;

void setup() {
pinMode(servoPinL,OUTPUT);
pinMode(servoPinR,OUTPUT);
}

void loop() {
digitalWrite(servoPinL,HIGH);
digitalWrite(servoPinR,HIGH);
delayMicroseconds(1500);
digitalWrite(servoPinL,LOW);
digitalWrite(servoPinR,LOW);
delay(50);
}

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

Оригинал статьи

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

Ваш адрес email не будет опубликован.