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