Drawbot

Drawbot

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

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

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

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

Компоненты

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

Сборка Drawbot

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

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

Сборка Drawbot

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

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

Сборка Drawbot

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

Drawbot в работе

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

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

Код:

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

Drawbot в работе