TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MATO

Por:   •  25/11/2019  •  Trabalho acadêmico  •  2.952 Palavras (12 Páginas)  •  213 Visualizações

Página 1 de 12

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MATO

GROSSO - Campús Cel. Octayde Jorge da Silva

6731.3B G2

Aluno: João Gabriel Brasil Da Costa

Cuiabá- MT

2019

Aluna: João Gabriel Brasil Da Costa

Impressora 2D

Cuiabá-MT

2019

Materiais :

02- Drives de computador

01- Shield

01- Arduino

01- Caneta

X- Parafusos

01- Furadeira

X- Jacarezinhos ( presilias )

01- Cabo de 4 cores

  1. Placa
  2. Blocos de madeiras

01- Suporte para a caneta

01- Alicate

O código comentado :

#include

#include

#define LINE_BUFFER_LENGTH 512

char STEP = MICROSTEP ;

// Posição servo para cima e para baixo const int penZUp = 99;

const int penZDown = 70;

// Servo on PWM pin 10 const int penServoPin =10 ;

// Deve ser adequado para os leitores de DVD, mas não é muito importante const int stepsPerRevolution = 40;

// criar objeto servo para controlar um servo

Servo penServo;  

// Inicialize steppers para os eixos X e Y usando os pinos do Arduino para a ponte H

L293D

AF_Stepper myStepperY(stepsPerRevolution,1);            

AF_Stepper myStepperX(stepsPerRevolution,2);  

/* Estruturas, variáveis globais    */ struct point {   float x;   float y;   float z;

};

// Posição atual do plothead struct point actuatorPos;

// As configurações de desenho devem estar OK float StepInc = 1;

int StepDelay = 0; int LineDelay =0; int penDelay = 50;

// Etapas do motor para ir 1 milímetro.

// Use o esboço de teste para executar 100 etapas. Meça o comprimento da linha.

// Calcular etapas por mm. Entre aqui. float StepsPerMillimeterX = 100.0; float StepsPerMillimeterY = 100.0;

// Desenho dos limites do robô, em mm

// OK para começar. Poderia subir até 50 mm se bem calibrado.

float Xmin = 0; float Xmax = 35; float Ymin = 0; float Ymax = 35; float Zmin = 0; float Zmax = 1;

float Xpos = Xmin; float Ypos = Ymin; float Zpos = Zmax;

// Defina como verdadeiro para obter a saída de depuração. boolean verbose = false; //  Precisa interpretar

//  G1 para mover

//  G4 P300 (espera 150ms)

//  M300 S30 (caneta para baixo)

//  M300 S50 (caneta para cima) //  Descartar qualquer coisa com um (

//  Descarte qualquer outro comando!

/**********************

 * void setup() - Initialisations

 ***********************/ void setup() {

  //  Setup

 

  Serial.begin( 9600 );

 

  penServo.attach(penServoPin);   penServo.write(penZUp);   delay(100);

  // Decrease if necessary   myStepperX.setSpeed(600);

  myStepperY.setSpeed(600);  

 

  //  Definir e mover para a posição padrão inicial

  // TBD

  //  Notificações !!!

  Serial.println("Mini CNC Plotter alive and detonando!");

  Serial.print("X range is from ");

  Serial.print(Xmin);

  Serial.print(" to ");

  Serial.print(Xmax);

  Serial.println(" mm.");

  Serial.print("Y range is from ");

  Serial.print(Ymin);

  Serial.print(" to ");

  Serial.print(Ymax);

  Serial.println(" mm.");

}

/**********************

 * void loop() - Main loop  ***********************/ void loop()

{

 

  delay(100);

  char line[ LINE_BUFFER_LENGTH ];

  char c;   int lineIndex;

  bool lineIsComment, lineSemiColon;

  lineIndex = 0;   lineSemiColon = false;   lineIsComment = false;

  while (1) {

    // Recepção serial - principalmente do Grbl, adicionado suporte de ponto e vírgula     while ( Serial.available()>0 ) {       c = Serial.read();

      if (( c == '\n') || (c == '\r') ) {             //Fim da linha atingido         if ( lineIndex > 0 ) {                        // A linha está completa. Então execute!

          line[ lineIndex ] = '\0';                   // Terminar sequência           if (verbose) {

            Serial.print( "Received : ");

            Serial.println( line );

          }

          processIncomingLine( line, lineIndex );           lineIndex = 0;

        }         else {

          // Linha vazia ou comentário. Pular bloco.

        }

        lineIsComment = false;         lineSemiColon = false;

        Serial.println("ok");    

      }

      else {

        if ( (lineIsComment) || (lineSemiColon) ) {   // Jogue fora todos os caracteres de comentário           if ( c == ')' )  lineIsComment = false;     // Fim do comentário. Retomar a linha.

        }         else {

          if ( c <= ' ' ) {                           // Jogue fora o espaço em branco e controle os caracteres

          }

          else if ( c == '/' ) {                    // A exclusão de bloco não é suportada. Ignorar caractere.

          }

          else if ( c == '(' ) {                    // Ative o sinalizador de comentários e ignore todos os caracteres até ')' ou EOL.

            lineIsComment = true;

          }

          else if ( c == ';' ) {             lineSemiColon = true;

...

Baixar como (para membros premium)  txt (10.7 Kb)   pdf (74.6 Kb)   docx (13.3 Kb)  
Continuar por mais 11 páginas »
Disponível apenas no TrabalhosGratuitos.com