CNC Plotter

Introducere

Proiectul doreste recreerea de imagini date ca input in format gcode pe foaie cu ajutorul unui pix si a motoarelor ce pot atinge orice punct din planul XOY

Ideea de la care am pornit a fost vizionarea pe YouTube a mai multor videoclipuri despre imprimante 3D dar cum o imprimanta 3D ar fi fost un proiect mult prea complex pentru timpul si resursele mele momentan, am decis sa mai tai o dimensiune :)

Utilitatea proiectului se poate rezuma fie la entertainment insa poate fi folosit si ca o imprimanta nu tocmai ideala. Ideea principala e ca fiecare persoana care vede proiectul sa poata cere un desen (nu prea complicat) si sa plece cu el acasa pastrand astfel o amintire

Descriere generală

Hardware Design

Bill of materials:

  • 42BYGHW609 Stepper Motor X 2
  • Roata dintata latime 8mm X 2
  • Rulment pentru profil V X 4
  • Curea transmisie X 2
  • Shield CNC X 1
  • Driver Stepper Motor X 2
  • Rulmenti X 2
  • Profil 2040 aluminiu X 1
  • Profil 2020 aluminiu X 1
  • Servomotor SG90 X 1

Software Design

Codul aplicatiei a fost dezvoltat folosind VSCode + Extensia de Arduino (Care la randul ei se foloseste de Arduino IDE) Repository GitHub: https://github.com/adriangeorge/CNC-Plotter

Librarii:

  Servo.h - folosit pentru controlarea servomotorului de la capul de scriere

Algoritmi folositi / functii implementate:

  Functii de ridicare si coborare a creionului **pen_up()/pen_down()**
  Functie pentru executia unui singur pas **step(int dir, int axis)**
  Functie pentru miscare pe axa X si Y cu specificare a pozitiei creionului **move(int stepsX, int stepsY, bool new_pen_state)**
  Functie pentru miscare la anumite coordonate **move_to(int x, int y, bool pen_state)**
  
  In loop se poate prelua o instructiune G-Code in formatul
  G01 X<STEPS_X> Y<STEPS_Y> Z<If 0 => pen_down() else pen_up()>

Rezultate Obţinute

Utilizare: Userul poate transmite prin interfata seriala instructiuni GCODE G01 iar plotter-ul se va deplasa la coordonatele specificate. Acest mod de comunicare permite utilizarea unui script de python pentru transmiterea instructiunilor si astfel desenarea oricarei forme (in teorie)

Concluzii

La miscarea pe axa Y dispozitivul oscileaza foarte tare, din pacate nu am reusit sa gasesc o solutie pentru acest lucru momentan.

A fost foarte dragut sa pot invata sa fac modele pentru imprimarea 3D si lucrul hands-on cu componente mi se pare la fel foarte util.

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2022/alaura/cnc_plotter.txt · Last modified: 2022/05/27 17:51 by george.cioban
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0