Polargraph

image
polargraph.co.uk

Говорят, русские долго запрягают, но быстро едут. Идея собрать поларграф пришла мне 5 лет назад после прочтения статьи про плеер на флоппи дисководах. Сначала нашла drawbot на флоппи, а потом поларграф. Не спрашивайте какая между этим связь, ее нет. В основном пользовалась руководством с instructables.

Комплектующие


1. Arduino Uno
2. Драйвер моторов AdaFruit's Motorshield. У меня был Motor Drive Shield L293D for Arduino/Wze.
3. 2 шаговых двигателя NEMA-17. Я использовала Hybrid Stepping Motor 42BYGH202/Wze.

cjbfxgwlpe_fd0qr0tl1khrpurq.jpeg

4. Источник питания AC/DC power supply.
5. Гондола. Я ее сделала из подставки для дисков, нужно сделать два отверстия для крепления шнуров, и третье — для груза.

39a2f390b34b16bfbd0dd7955fd3acc5.jpg
instructables.com

6. Ходовая часть из шпулек от швейной машины (между шпулькой и осью двигателя остается зазор, я подложила кусочек резины). Лучше использовать леску, а не нитки.
7. Поверхность, на которую крепятся моторы. Чем больше, тем лучше. Автор с instructables использовал опоры для моторов (brackets), я просто прикрепила их к картону, который приклеила к планшету A2.

Arduino


Устанавливаем последнюю версию Arduino IDE (на старой не удается загрузить код). Настраиваем путь до папки со скетчами (/sketches/): Файл -> Настройки -> Размещение папки скетчей.

Скачиваем код с гитхаб euphy.

Распаковываем архив. Библиотеки Adafruit и AccelStepper копируем в папку /sketches/libraries/, папку polargraph_server_a1 — в папку /sketches/.
Запускаем Arduino IDE. Файл -> Папка со скетчами -> polargraph_server_a1. Компилируем, загружаем на плату.

Шаговые двигатели


Про шаговые двигатели есть замечательная статья на хабре. Я методом проб и ошибок подсоединила их к плате: левый двигатель — к выводам M1, M2, правый — M3, M4.
h1iuttgyk-jq2vswyqa3hi9lcre.jpeg

Установка ПО


Из ранее скачанного архива euphy распаковываем папку /controller/.

В файле default.properties.txt указываем необходимые размеры: ширина и длина машины, ширина и длина листа, home point. Измерять их нужно довольно точно, до миллиметра, иначе будут искажения в изображении. Ниже покажу пример, у меня так и получилось.

32c92a0723967d8497984f273d54bb78.jpg
instructables.com

Запускаем приложение:
sudo chmod +x polargraphcontroller
./polargraphcontroller

eouksg9z9cl3pzaiqm3oklwdm40.png

Во вкладке SETUP выбираем нужный порт (SERIAL PORT). Должна появиться зеленая надпись вверху, что полаграф готов. Устанавливаем гондолу на точку HOME POINT.

На вкладке INPUT выбираем LOAD IMAGE. Загружаем изображение, меняем размер если необходимо (RESIZE IMAGE). Двигаем изображение (MOVE IMAGE) на область листа, выбираем нужный фрагмент (SELECT AREA), уменьшаем если нужно GRID SIZE и нажимаем RENDER PIXELS. Во всплывающем окне нужно выбрать откуда начинается рисование (TOP-RIGHT) и стиль (VARIABLE SIZE SQUARE WAVE).
wtrxafqm-4vrvctashl6glzwdwk.png

Справа, чтобы запустить очередь команд нужно щелкнуть по красной надписи (становится зеленой): СommandQueue: QUEUE RUNNING.

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

qyi5bh1cygo3izf3ppqck1_yfpi.jpeg

Скорость работы поларграфа.

© Habrahabr.ru