This shows you the differences between two versions of the page.
|
pm:prj2022:alaura:cnc_plotter [2022/04/29 21:09] george.cioban created |
pm:prj2022:alaura:cnc_plotter [2022/05/27 17:51] (current) george.cioban [Rezultate Obţinute] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Nume proiect ====== | + | ====== CNC Plotter ====== |
| ===== Introducere ===== | ===== Introducere ===== | ||
| - | <note tip> | + | Proiectul doreste recreerea de imagini date ca input in format gcode pe foaie cu |
| - | Prezentarea pe scurt a proiectului vostru: | + | ajutorul unui pix si a motoarelor ce pot atinge orice punct din planul XOY |
| - | * ce face | + | |
| - | * care este scopul lui | + | |
| - | * care a fost ideea de la care aţi pornit | + | |
| - | * de ce credeţi că este util pentru alţii şi pentru voi | + | |
| - | </note> | + | |
| - | ===== Descriere generală ===== | + | |
| - | <note tip> | + | Ideea de la care am pornit a fost vizionarea pe YouTube a mai multor videoclipuri |
| - | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | 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 :) | ||
| - | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | + | Utilitatea proiectului se poate rezuma fie la entertainment insa poate fi folosit |
| - | </note> | + | 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ă ===== | ||
| + | |||
| + | {{:pm:prj2022:alaura:pm_cnc_plotter.drawio.png?600|}} | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| - | <note tip> | + | Bill of materials: |
| - | Aici puneţi tot ce ţine de hardware design: | + | |
| - | * listă de piese | + | |
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | |
| - | * diagrame de semnal | + | |
| - | * rezultatele simulării | + | |
| - | </note> | + | |
| + | * 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 | ||
| + | * Diverse parti imprimate 3D => https://www.tinkercad.com/things/1ZP91gVoBcc-cncplotterbot | ||
| ===== Software Design ===== | ===== 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()> | ||
| - | <note tip> | ||
| - | Descrierea codului aplicaţiei (firmware): | ||
| - | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | ||
| - | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | ||
| - | * algoritmi şi structuri pe care plănuiţi să le implementaţi | ||
| - | * (etapa 3) surse şi funcţii implementate | ||
| - | </note> | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| - | <note tip> | + | Utilizare: |
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Userul poate transmite prin interfata seriala instructiuni GCODE G01 iar plotter-ul se va |
| - | </note> | + | deplasa la coordonatele specificate. Acest mod de comunicare permite utilizarea unui script de python pentru transmiterea instructiunilor si astfel desenarea oricarei forme (in teorie) |
| + | {{:pm:prj2022:alaura:whatsapp_image_2022-05-27_at_17.41.54_2_.jpeg?300|}} | ||
| + | |||
| + | {{:pm:prj2022:alaura:whatsapp_image_2022-05-27_at_17.41.54.jpeg?300|}} | ||
| + | |||
| + | {{:pm:prj2022:alaura:whatsapp_image_2022-05-27_at_17.41.54_1_.jpeg?300|}} | ||
| + | |||
| + | {{:pm:prj2022:alaura:whatsapp_image_2022-05-27_at_17.41.55.jpeg?300|}} | ||
| + | |||
| + | {{:pm:prj2022:alaura:whatsapp_image_2022-05-27_at_17.41.53.jpeg?300|}} | ||
| ===== Concluzii ===== | ===== 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 ===== | ===== Download ===== | ||