Manual

do

Maker

.

com

Guilloché - Faça a sua com Arduino

Guilloché - Faça a sua com Arduino

Com pouquíssimos componentes e quase nenhum trabalho eletrônico, você pode montar uma máquina para fazer Guilloché com infinitos padrões. Para esse projeto onde faço apenas prova de conceito, juntei restos de materiais utilizados em outros artigos como o do relógio de madeira (engrenagem de teste que fiz e sobrou), um tampo que eu utilizava para uma topia, o miolo de um HD velho, alguns CDs inúteis (até então), uma esponja de lavar louça, uma caneta e 3 motores, sendo um motor de passo e os outros dois, de leitores de CD velhos. Mas se quiser, apenas 2 motores serão suficientes. Claro que você pode adaptar com uma infinidade de coisas, esse projeto é muito simples de montar. Já adianto que como prova de conceito, fiquei empolgado e penso em fazer um funcional, agora que com o conceito pude achar os problemas que possivelmente teria. Não sabe o que é Guilloché?

O que é Guilloché?

Guilloché é uma técnica utilizada para desenhar padrões de forma rápida. As antigas máquinas eram manuais e, apesar de bastante práticas, tomavam um determinado tempo para a manipulação.

Diversas coisas eram decoradas com esses padrões; jóias, relógios, vasos, caixas de jóias e quaisquer coisas que pudessem ser decoradas.

Essa máquina possui 3 eixos, sendo pelo menos dois móveis e um apenas para deslocamento de um dos braços. A segunda parte móvel seria para o segundo braço, que trabalha em conjunto com o primeiro e a roda maior é a base onde coloca-se o objeto alvo a ser decorado. Nas máquinas tradicionais os pontos são deslocados pela matriz XY de forma a acentuar a variação dos padrões, mas aqui será utilizado um recurso diferente para esse objetivo.

Objetivo do projeto

Nessa primeira (e talvez única) fase, o objetivo é construir um mecanismo simples para que de imediato você possa desenhar seus padrões para decoração, seja cadernos, capas de trabalhos escolares, decoração de toalhas de prato (trocando a caneta e usando tecido invés de papel), personalizando camisetas e uma montanhas de possibilidades mais. Se porventura vier a existir uma segunda fase, será uma adaptação para maior controle e talvez até pirografia.

Componentes da máquina

O funcionamento da máquina foi citada anteriormente. Ela é composta por uma base, três rodas, dois braços e uma caneta. Como o projeto trata de automatizar o processo do desenho, devemos incluir 2 ou 3 motores e os recursos de adaptação cada um faz à sua maneira. Minha prova de conceito ficou horrível, mas adiante destaco os pontos para um modelo funcional.

Lista de materiais

  • 1 base de madeira
  • 4 CDs
  • 3 (ou mais) tampas de caixa de leite longa vida
  • 2 separadores (que podem ser feitos com mais tampas de leite ou de refrigerante)
  • 1 motor de passo (porque faz um pouquinho de força no prato)
  • 1 ou 2 motores DC para os pratos dos braços (isso já não presta, detalho adiante)
  • 1 Arduino (estou utilizando o UNO)
  • 1 mini-protoboard (ou faça um circuito, como preferir)
  • 1 controlador para o motor de passo
  • 1 pistola de cola quente
  • 1 tampa da caixa de pizza
  • papelão para os braços
  • eventuais ferramentas para parafusos e afins

No meu caso, estou utilizando esse motor desse tutorial que fiz há muito tempo. É um motor de passo simples, barato e fácil de achar no Mercado Livre e já vem com o ULN2008 em uma board, portanto dispensará maiores trabalhos além do wiring descrito também nesse post que recomendei no início do parágrafo.

Bugs e defeitos

O resultado final deixou claro o seguinte:

1 - Os motores DC não servem para isso, ainda que controlando-os com um L293D. É necessário força, nesse caso um conjunto de engrenagens de redução pode ser útil, mas preferencialmente o motor de passo para esse projeto.

2 - Velocidades - os motores laterais devem rodar na mesma velocidade até onde pude perceber. A mesa central pode variar. O ideal é que seja possível controlar individualmente as velocidades e então testar.

3 - Os motores laterais devem ser mais altos que a base central para não forçar os braços.

4 - Os pinos que prender os braços devem ser relativamente largos em seu diâmetro. Os pinos finos que usei não possibilitam estabilidade horizontal dos braços.

5 - Não consegui utilizar os 2 motores DC sem redutores, então tive que usar um só e o padrão ficou limitado.

Código de teste

Esse código é apenas para controlar o motor de passo e usei um PWM nos motores DC, mas ficou muito ruim.

int left  = 0;
int right = 1;
int stop  = 9;

int motor1[] = {2,3};
int motor2[] = {5,6};

int pins[4];
int estados[4][8];

void esquerda(){  
  analogWrite(motor1[0], LOW);  
  analogWrite(motor1[1], 0);  
  
}  

void direita(){  
  analogWrite(motor2[0], 255);  
  digitalWrite(motor2[1], LOW);  
  
} 

void Steps(int steps, int direction)
{

if (direction == left){
    for (int j=0;j<steps;j++){
        for (int i=0; i<8;i++){
            delay(5);
            digitalWrite(pins[0],estados[0][i]);
            digitalWrite(pins[1],estados[1][i]);
            digitalWrite(pins[2],estados[2][i]);
            digitalWrite(pins[3],estados[3][i]);
        } 
    }
}
else if (direction == right){
    for (int j=0;j<steps;j++){
        for (int i=8; i>-1;i--){
            delay(5);
            digitalWrite(pins[0],estados[0][i]);
            digitalWrite(pins[1],estados[1][i]);
            digitalWrite(pins[2],estados[2][i]);
            digitalWrite(pins[3],estados[3][i]);
        }
    }
}
else{
    digitalWrite(pins[0],0);
    digitalWrite(pins[1],0);
    digitalWrite(pins[2],0);
    digitalWrite(pins[3],0);
}
}

void setup(){
  direita();
  esquerda();
    for (int i=8;i<12;i++){
        pinMode(i,OUTPUT);
        pins[i-8] = i;
    }
    //4 pins, 8 states
    //PIN 0
    int j = 0;
    estados[j][0] = 0;
    estados[j][1] = 0;
    estados[j][2] = 0;
    estados[j][3] = 0;
    estados[j][4] = 0;
    estados[j][5] = 1;
    estados[j][6] = 1;
    estados[j][7] = 1;

    //PIN1
    j = 1;
    estados[j][0] = 0;
    estados[j][1] = 0;
    estados[j][2] = 0;
    estados[j][3] = 1;
    estados[j][4] = 1;
    estados[j][5] = 1;
    estados[j][6] = 0;
    estados[j][7] = 0;

    //PIN2
    j = 2;
    estados[j][0] = 0;
    estados[j][1] = 1;
    estados[j][2] = 1;
    estados[j][3] = 1;
    estados[j][4] = 0;
    estados[j][5] = 0;
    estados[j][6] = 0;
    estados[j][7] = 0;

    //PIN3
    j = 3;
    estados[j][0] = 1;
    estados[j][1] = 1;
    estados[j][2] = 0;
    estados[j][3] = 0;
    estados[j][4] = 0;
    estados[j][5] = 0;
    estados[j][6] = 0;
    estados[j][7] = 1;
}

void loop()
{
    Steps(5000,left);
    Steps(0,stop);
    delay(300);
    Steps(5000,right);
    Steps(0,stop);
    delay(300);
}

Algumas fotos do processo

guilloche-full.jpg

Essas foram algumas das etapas, mas nada significativo. É bastante simples o processo, mas se quiser fazer verdadeiros guillochés, terá que caprichar no material.

results-guilloche.jpg

O controle dos motores DC fiz como nesse post, e o controle do motor de passo fiz como explicado nesse outro post.

A prova de conceito pode ser vista nesse video.

https://youtu.be/rtv2DiEGks0

Inscreva-se no nosso canal Manual do Maker Brasil no YouTube.

Próximo post a caminho!

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.