Image2Gcode Software

Posted by jhlee98y
2015. 6. 24. 10:20 Arduino

Image2Gcode Software


이번 포스트에서는 레이져를 적용하여 그림을 조각하고자 하는 방법 중의 첫번째 

단계인 원하는 그림을 적절한 형식의 G-code로 변경해 주기 위한 프로그램에 

대해서 말씀드리겠습니다.


이 프로그램은 마치 3D 프린터를 사용하고자 할 경우에 slic3r 이나 kslicer를 

사용하여  STL 모델을 슬라이싱하고 G-code를 만드는 과정과 유사한 

단계입니다. 


하기에서 말씀드리는 프로그램은 이전 포스트에서도 말씀드린바와 같이 

Scorch의 "dmap2gcode" 프로그램을 기본으로 Marlin firmware에 맞도록 

수정한 사항입니다.

http://www.scorchworks.com/Dmap2gcode/dmap2gcode.html  )


수정 이유는 원래 프로그램은 CNC 2D 조각용 G-code생성을 위한 

프로그램이며  Linux CNC 등의 CNC 제어기에 적합한 G-code를 생성하기 
때문에 Marlin firmware에 적절한 G-code로 생성해야하기 때문입니다. 


1> Image2Gcode 프로그램

- 이 프로그램은 JPG 또는  PNG 파일 형식의 이미지 파일을 읽어  

G-code를 생성합니다. 참고로 이 프로그램은 Python을 이용하여 

개발되었습니다. 



상기 그림은 이 Image2Gcode 프로그램의 전체적인 모양입니다.

왼쪽 상단에는 읽어들인 이미지(target image) 파일의 정보를 표시합니다.  

상단의 setting 메뉴에서 출력하고자 원하는 크기와 DPI(출력 해상도)를 

조절할 수 있습니다 . 또한 조각하는 속도(feedrare) 및 레이져 강도 및 

threshold를 설정할 수 있도록 했습니다. 

 


- G-code 변환은 흑백 이미지로 변환되며  변환된 이미지는 PNG 파일

형식의 동일이름으로 저장되고 메일 화면에 이의 결과를 보여줍니다. 

 



2> 레이져 제어용 G-code 

- 아래 그림은 생성된 G-code 파일의 일부입니다.  이 그림상에서 볼 수 있듯이 

레이져 제어를 위해 추가된 m-code를 볼 수 있습니다. 아래는 레이져 제어를 위해

추가된 M-code 내역입니다. 


  > M161 - Laser Power On
  > M162 - Laser Power Off
  > M160 Sxxx - 레이져 강도 조절 
      
( Sxxx is PWM duty for Laser control board's TTL modulation signal
                       "xxx" has 0 ~ 255 value, 0 means power off and 255 means max 

- 여기서 Sxxx는 레이져 강도 제어를 위한 PWM 듀티를 의미하며, 0~255의 값을 가집니다.  

"255"의 경우 최대 강도를 의미합니다 .





- 이 Image2Gcode 프로그램에 관심이 있으시거나 사용하기를 원하시면

아래 사이트에서 down 받으실 수 있습니다. 


https://github.com/jhlee98y/Image2Gcode


- 다음 포스트에서는  레이져 적용을 위한 Marlin firmware 수정 사항에 대해서 포스트하도록

하겠습니다.  

'Arduino' 카테고리의 다른 글

레이져 제어를 위한 마를린 펌웨어 변경  (1) 2015.06.24
마를린 펌웨어로 레이져 제어  (4) 2015.06.15
아두이노 IDE CPU Pin 할당  (0) 2015.06.08

마를린 펌웨어로 레이져 제어

Posted by jhlee98y
2015. 6. 15. 11:03 Arduino

마를린 펌웨어(Marlin Firmware)에 레이저 제어 적용하기


3D 프린터에 플라스틱 익스루더외에 레이져를 적용하여 그림을 조각하고자 하시는 분들이 많이 계십니다. 

이에 대해서 제가  구현한 내용을 정리해 올립니다.


우선 해야할 내용에 대해서 알아야 하기에 아래처럼 전체적인 큰 그림을 구성해 봤습니다. 

각 단계별로 간략히 설명한 이후에 다음번에 좀 더 자세히 설명드리도록 하겠습니다.  



전체적인 구성은 2단계입니다. 

먼저, 그림(칼라이미지 또는 흑백 이미지)을  마를린 펌웨어가 이해할 수 있도록 G-gode로 변환하기 

위한 단계가 있습니다. 이는 3D프린터에서 모델링을하고 이를 슬라이서를 이용해 G-code를 생성하는

것과 같은 단계입니다. 


이를 위해서는 3D 프린터의 slic3r이나 키슬라이서와 같은 이미지를 G-code로 변환하기 위한 

프로그램이 필요하며 구성한 Image2Gcode 프로그램은  Scorch Work의 "dmap2gcode" 

프로그램을 마를린 펌웨어에 맞도록 일부 수정해서 간략히 구성했습니다. 

Scorch Work의 관련 사이트는 아래와 같습니다.  

http://www.scorchworks.com/Dmap2gcode/dmap2gcode.html 


아래는 간략히 구성한 Image2Gcode 프로그램으로 가장 핵심은 마를린 펌웨어에 적합하도록 

즉, 3D 프린터에서 사용하는 형식으로 G-code를 생성하는 부분입니다. 

이 프로그램에 대한 좀 더 자세한 사항이 미리 알고싶으시면 이전에 정리해 놓은  아래의 

영문 사이트 설명을 먼저 봐주시면 도움이 될 수 있습니다.


 http://dreammakercnc.blogspot.kr/2014/08/currently-my-micro-cnc-uses-arduino.html 




두번째는 마를린 펌웨어가 레이져를 적절히 제어할 수 있도록 펌웨어의 일부를 수정하는 것과 

하드웨어적인 구성이 있습니다. 

펌웨어의 수정은 기존 마를린 펌웨어에 레이져 제어 즉, 레이져의 On/Off와 레이져 제어의 

강도를 제어하기 위한 PWM 신호를 생성하는 것을 의미합니다. 


하드웨어 적으로는 RAMPS 1.4 AUX2 단자의 를 이용해 레이져 제어 보드를 제어하는 것을 

의미합니다.  여기서는 AUX2의 D42를 On/Off 용으로 D44를 PWM 제어용도로 사용했습니다. 




RAMPS1.4와 레이져 제어 보드의 연결에 대해서 먼저 알아 보고자 하시는 분은 아래 영문 페이지를 

보시면 좀 더 빠른 정보를 보실 수 있습니다. 

http://dreammakercnc.blogspot.kr/2014/09/control-wiring-connection-for-laser.html


전체적인 사항은 이와 같습니다만 이를 보시고 구현하시기는 힘들거라 생각됩니다. 

실제적인 구현을 위한 좀 더 구체적인 사항은 다음 포스트에서 설명드리도록 하겠습니다.

(이전 영문 정리사항은 국문으로 올리도록 히겠습니다.)


감사합니다.

   


'Arduino' 카테고리의 다른 글

레이져 제어를 위한 마를린 펌웨어 변경  (1) 2015.06.24
Image2Gcode Software  (0) 2015.06.24
아두이노 IDE CPU Pin 할당  (0) 2015.06.08