Простое усройство на Arduino для рисования сложных паттернов


Интересный проект — автомат для рисования сложных паттернов.
В основе устройства (напоминающего спирограф) — контроллер Arduino Uno, CNC-шилд и пара шаговых двигателей NEMA17.
Сама конструкция состоит из несколько деталей (опорная пластина, два диска и два рычага), которые можно вырезать из оргстекла. На конце самого длинного из рычагов закрепляется маркер, чтобы он мог рисовать на бумаге.

Изменяя только два параметра (скорости вращения дисков) — устройство позволяет получать разнообразные результирующие паттерны рисунков.

Код для Ардуино — pattern_generator.ino

#define en_pin 8

#define left_dir 6
#define left_step 3

#define right_dir 5
#define right_step 2

unsigned long left_interval = 650;
unsigned long right_interval = 300;

unsigned long left_previous;
unsigned long right_previous;
unsigned long current_time;

bool left_state = true;
bool right_state = true;


void setup() {
  // put your setup code here, to run once:
  pinMode(en_pin, OUTPUT);

  pinMode(left_dir, OUTPUT);
  pinMode(left_step, OUTPUT);
  pinMode(right_dir, OUTPUT);
  pinMode(right_step, OUTPUT);

  digitalWrite(en_pin, LOW);

  delay(1000);

  digitalWrite(right_dir, HIGH);
  digitalWrite(left_dir, HIGH);

  left_previous = micros();
  right_previous = micros();
}

void loop() {
  // put your main code here, to run repeatedly:
  current_time = micros();

  if (current_time - left_previous >= left_interval){
    left_previous = current_time;
    left_state = !left_state;
    digitalWrite(left_step, left_state);
  }
  if (current_time - right_previous >= right_interval){
    right_previous = current_time;
    right_state = !right_state;
    digitalWrite(right_step, right_state);
  }
}

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

Ссылки
Arduino Powered Pattern Making Machine

По теме
Самодельный струйный принтер на Arduino
Маленький плоттер на Arduino
Dotter — большой матричный принтер на Arduino
Простой ЧПУ под управлением Arduino
Однопиксельный сканер на Arduino
Горячий батик при помощи ЧПУ на Arduino
Рисование при помощи Arduino

Arduino
Arduino, термины, начало работы
КМБ для начинающих ардуинщиков
Состав стартера (точка входа для начинающих ардуинщиков)


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

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Arduino Bluetooth CraftDuino DIY Google IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение