3d printer 關鍵軟體控制技術之分析與探討 @ coscup 2014

Click here to load reader

Upload: roboard

Post on 27-Nov-2014

1.351 views

Category:

Software


16 download

DESCRIPTION

 

TRANSCRIPT

  • 1. 1 3D Printer3D Printer Hellion @ COSCUP 2014

2. 2 Hellion Chuang LinuxCNC 3D Printer Open Source Projects: https://github.com/roboard/Print3D https://github.com/roboard/86Duino https://code.google.com/p/rb050-little-turtle/ About me R&D Engineer DMP Electronics INC. 3. 3 3D Printer3D Printer 4. 4 RepRap 3D replicating rapid prototyper 2005 RepRap Adrian Bowyer 5. 5 Sorce :http://zh.wikipedia.org/wiki/RepRap#mediaviewer/File:First_replication.jpg RepRap 3D GNU GPL 6. 6 RepRap Family Tree 7. 7 8. 8 RepRap : fused deposition modeling FDM http://www.uni.edu/~rao/rt/major_tech.htm 9. 9 RepRap WorkFlow 3D G Code 3DP 10. 10 RepRap 11. 11 3D Printer3D Printer & What it do? 12. 12 ?? 13. 13 Open Source 3D PrinterOpen Source 3D Printer Sjfw (2012-1) Sprinter (2013-9) ImpPro3D (2014-2) Sailfish (2014-6) Aprinter (2014-6 ) Teacup (2014-7) RepRap Firmware (2014-7) Grbl (2014-7) Marlin (2014-7) Repetier-Firmware (2014-7) Smoothie (2014-7) Github commit 14. 14 Grbl 15. 15 Sprinter 16. 16 Marlin 17. 17 V0.91 (2013 12 30) Repetier-Firmware 18. 18 Smoothie 19. 19 20. 20 SD USB UART LAN G Code 3D Printer3D Printer Hard Realtime Soft Realtime 50us1ms~10ms 16ms 10ms 21. 21 Real-Time Task Implementation Solutions : Multi-Processor Multi-Threading State Machine 22. 22 23. 23 G CodeG Code G Code 3D Printer EX : G01 X10 Y15.5 F2000 M109 S180 (X10, Y15.5)X Y 180 G Code 24. 24 Solutions : Just-in-time compilation Lex & yacc? 25. 25 G Code Interpretation on Sprinter/Marlin: G01 X10 Y15.5 F2000 EX : G X 10 mm Y 15.5 mm F 2000 mm/min Planner_line(10, 15.5, z, 2000); 26. 26 Source Code : G Code, M Code, other 27. 27 (X10, Y15.5) X Y ? Planner_line(10, 15.5, z, 2000); 28. 28 Normal X-Y H-Bot CoreXY delta 29. 29 Look Ahead No Look Ahead Look Ahead Buffer = 6 Look Ahead Buffer = 2 30. 30 V V T T TV = 2 32 2 1 2 1 2 1 TATVTA ++= T T1 T2 T3 31. 31 Source Code : Look Ahead 32. 32 http://dedamail.pixnet.net/blog/post/9910986-%E9%A6%AC%E9%81%94%E7%95%B0%E6%83%B3 33. 33 120o 3 120o 41 240o 34. 34 X T V TT1 T2 T3 35. 35 X T 10 9 8 7 6 5 4 3 2 1 ,...2,1,0)( == xxft Precise Discretization 36. 36 v t 1 = X T Linear Approximation Pulse Generation on Sprinter/Marlin 37. 37 Implementation: Pulse generation by Timer ISR T1 T2 T3 T4 T5 T6 T7 T9 T8 T10 = !Hard Real-Time: interrupt latency + jitter + pulse generation + I/O = 50us 38. 38 V TT1 T2 T3 High & Low GPIO Implementation: 39. 39 Source Code : planner Timer ISR ( ) GPIO High & Low 40. 40 http://lunglungdesign.blogspot.tw/2013/05/mataerial-3d-printing.html 41. 41 AD AD 42. 42 ? ON YES 43. 43 ? ON YES 16ms 44. 44 ++= t dip te dt d KdeKteKtu 0 )()()()( 45. 45 Source Code : or PWM PID 46. 46 https://www.youtube.com/playlist? list=PLFL0ylDooClTaryk1IPAvDsqsFQ85- Rd1 47. 47 48. 48 3D printer Generation 7 Melzi PiBot for Repetier MotherboardArduino Mega Pololu Shield Sanguinololu ATmega-Based Clock : 8MHz ~ 16MHz SRAM : 32KB Flash : 128KB~256KB 49. 49 Why not 32-Bit platform ? Beaglebone Raspberry Pi Cubieboard Intel Galileo 86Duino ARM11, ARM Cortex-Ax, x86 Clock : 300MHz ~ 1GHz DRAM : 512MB~1GB Storage : eMMC, SD Card 50. 50 51. 51 hellion programmer 52. 52 3D printer hellion ? 53. 53 RepRap RepRap Open Source 3D Printer 54. 54 ? . ! 55. 55 firmware ATmega ! 56. 56 32-Bit 3D Printer controller R2C2 ARM Cortex-M3 Running at 100MHz 512KB flash memory 64KB SRAM memory R2C2 firmware 57. 57 32-Bit 3D Printer controller Azteeg X5 ARM Cortex-M3 Running at 120MHz Smoothieware firmware 58. 58 32-Bit 3D Printer controller Smoothieboard ARM Cortex-M3 Running at 96 to 120 MHz 512KB flash memory 64KB SRAM memory Smoothieware firmware Still MCU-baesd solutions 59. 59 32-Bit 3D Printer controller 86Duino Print3D Vortex86EX 32-Bit x86 Running at 400MHz 128MB DDR3 RS232/ RS485/CAN LAN USB USB Host X MOTOR Z MOTOR Y MOTOR E MOTOR E HEATER E THERM X LIMIT Y LIMIT Z LIMIT 60. 60 Before After 61. 61 32-Bit platform issues Internal Buffer size 4 x 96 Bytes 20MB Before After BufferBufferBuffer 62. 62 intRes = intIn1 * intIn2 >> 16 32-Bit platform issues Before After 63. 63 32-Bit platform issues Before After 64. 64 Look Ahead Window 32-Bit platform issues Before After 65. 65 linear approximation precise discretization v t 1 = a XaVaXV t )1(22 2 0 2 0 ++ = 32-Bit platform issues Before After 66. 66 Higher Speed Pulse Generation 20KHz 250KHz 32-Bit platform issues Before After 67. 67 Speed trick 68. 68 OS 69. 69 Hard Real-Time Task 70. 70 Thank [email protected] https://github.com/roboard/Print3D