Progetto CNC laser con materiale di recupero

0.1 - Author: Mirco Piccin aka pitusso

url:

http://www.instructables.com/id/Pocket-laser-engraver

altra versione in legno:

http://www.heise.de/hardware-hacks/projekte/Laserplotter-1351340.html

evoluzione con fuoco mobile

http://www.thingiverse.com/thing:3902

http://builders.reprap.org/2010/08/selective-laser-sintering-part-8.html

evoluzione con struttura tagliata al laser:

http://www.thingiverse.com/thing:13242

anche folderable!:

http://wiki.nybi.cc/index.php/Pocket_Laser_Engraver

come rimuovere diodo laser da testina DVD:

http://www.instructables.com/id/Laser-Flashlight-Hack!!/

laser diode driver DIY (basato come nel progetto orginario su un LM317):

http://www.instructables.com/id/How-to-build-a-laser-general-guide/step5/Step-3-Driver/

http://www.instructables.com/id/how-to-make-a-laser-diode-driver-that-enables-you-/

http://www.instructables.com/id/Laser-Flashlight-Hack!!/step10/Final-Step/

elaborazione per aumentare area di lavoro, utilizzando sempre gli stessi materiali:

http://elabz.com/dvd-cnc-laser-cutter-diy-concept/

Altra variante con dvd laser:

http://c4r0.elektroda.eu/_hv/index.php?page=lasers/cnc2

easystepper, utilizzati nel progetto iniziale:

http://www.sparkfun.com/products/10267

Arduino Playground - pilotare stepper:

http://arduino.cc/it/Tutorial/MotorKnob

http://arduino.cc/en/uploads/Tutorial/bipolar_schem.jpeg

Laser Mount IDEA:

http://www.thingiverse.com/thing:5708

http://www.thingiverse.com/thing:11572

per pianare la base, colata di colla a caldo!

Collegamento POLOLU ad Arduino

http://letsmakerobots.com/node/34745

http://forum.pololu.com/viewtopic.php?f=15&t=6938

http://arduino.alhin.de/index.php?n=48

REALIZZAZIONE

estensione Inkscape

http://www.slackersdelight.com/instructables/laserengraver.zip

usare grbl per il controllo

https://github.com/grbl/grbl/downloads

ulteriori info qui:

http://www.shapeoko.com/wiki/index.php/GRBL

utilizzo pin standard

#define X_STEP_BIT           2

#define Y_STEP_BIT           3

#define Z_STEP_BIT           4

#define X_DIRECTION_BIT      5

#define Y_DIRECTION_BIT      6

#define Z_DIRECTION_BIT      7

(usare hex prebuilded..)

se pin diversi, ricompilare firmware

TODO, seguire:

https://github.com/grbl/grbl/wiki/Compiling-Grbl

grbl$ make clean

rm -f grbl.hex main.elf main.o motion_control.o gcode.o spindle_control.o serial.o protocol.o stepper.o eeprom.o settings.o planner.o nuts_bolts.o limits.o print.o

grbl$ make grbl.hex

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -c main.c -o main.o

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -c motion_control.c -o motion_control.o

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -c gcode.c -o gcode.o

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -c spindle_control.c -o spindle_control.o

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -c serial.c -o serial.o

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -c protocol.c -o protocol.o

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -c stepper.c -o stepper.o

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -c eeprom.c -o eeprom.o

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -c settings.c -o settings.o

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -c planner.c -o planner.o

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -c nuts_bolts.c -o nuts_bolts.o

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -c limits.c -o limits.o

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -c print.c -o print.o

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -o main.elf main.o motion_control.o gcode.o spindle_control.o serial.o protocol.o stepper.o eeprom.o settings.o planner.o nuts_bolts.o limits.o print.o -lm -Wl,--gc-sections

rm -f grbl.hex

avr-objcopy -j .text -j .data -O ihex main.elf grbl.hex

avr-objdump -h main.elf | grep .bss | ruby -e 'puts "\n\n--- Requires %s bytes of SRAM" % STDIN.read.match(/0[0-9a-f]+\s/)[0].to_i(16)'

--- Requires 1529 bytes of SRAM

avr-size *.hex *.elf *.o

   text           data            bss            dec            hex        filename

      0          17808              0          17808           4590        grbl.hex

  17808              0           1529          19337           4b89        main.elf

    340              0              0            340            154        eeprom.o

   2330              0             33           2363            93b        gcode.o

    346              0              0            346            15a        limits.o

     48              0              0             48             30        main.o

   1732              0              0           1732            6c4        motion_control.o

    156              0              0            156             9c        nuts_bolts.o

   3826              0           1092           4918           1336        planner.o

    618              0              0            618            26a        print.o

    426              0             52            478            1de        protocol.o

    338              0              4            342            156        serial.o

   1945              0              0           1945            799        settings.o

    100              0              2            102             66        spindle_control.o

   1928              0             37           1965            7ad        stepper.o

Upload su Arduino

se Win, utilizzare XLoader:

http://russemotto.com/xloader/

oppure usare avrdude.

Il comando funzionante è:

./avrdude -C avrdude.conf -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:<path to>/grbl/grbl.hex

nella fattispecie:

/arduino-1.0.1/hardware/tools$ ./avrdude -C avrdude.conf -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:<path to>/grbl/grbl.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f

avrdude: reading input file "<path to>/grbl/grbl.hex"

avrdude: input file <path to>/grbl/grbl.hex auto detected as Intel Hex

avrdude: writing flash (17808 bytes):

Writing | ################################################## | 100% 5.58s

avrdude: 17808 bytes of flash written

avrdude: verifying flash memory against <path to>/grbl/grbl.hex:

avrdude: load data flash data from input file <path to>/grbl/grbl.hex:

avrdude: input file <path to>/grbl/grbl.hex auto detected as Intel Hex

avrdude: input file <path to>/grbl/grbl.hex contains 17808 bytes

avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 4.40s

avrdude: verifying ...

avrdude: 17808 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Per mandare gcode a Arduino

http://www.shapeoko.com/wiki/index.php/Software

nella fattispecie:

https://github.com/winder/Universal-G-Code-Sender/downloads

Realizzazione primo gcode

su inkscape, proprietà del documento

mm

38x38

Realizzazione

https://picasaweb.google.com/101137849928958778147/PocketLaserEngraver?authkey=Gv1sRgCKaK0vWd5-XMOQ#

quick & dirty di legno

1 asta legno 20x20x100

2 angolari 40x40x40 (o altro)

con meccano

Meccano, Bral, Extender, etc, oppure modelli stampati:

http://sketchup.google.com/3dwarehouse/cldetails?clid=d582a5b30e5ac5fe37b6c0b4738cc781

(elementi meccano da esportare in stl)

Export da GoogleSKetchUp a STL

http://wiki.makerbot.com/google-sketchup

http://www.guitar-list.com/download-software/convert-sketchup-skp-files-dxf-or-stl

VirtualMec (per disegno)

http://www.virtualmec.com/content/download_demo.aspx

con profili alluminio

LASER DRIVER

versione semplificata, con solo lm317:

http://www.jobike.it/Public/data/Linuxianox/200921016021_Curr_reg.JPG

http://arduinoelettronica.files.wordpress.com/2012/02/driver_led_lm_3172.png

Mirco Piccin aka pitusso, pictux@gmail.com