Three Dimensional Cnc Machine Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

This paper discusses the design and implementation of low cost three dimensional computerized numerical control (CNC) machines for Industrial application. The primary function of this microcontroller based CNC machine is to cut the metal in to required shape. This discuss is focused on communication between Personal computer (PC) and a numerical control machine. The objective to devise a computer controlled cutting machine arose from increasing demand for flexibility and cutting with respect to edge quality. The system has an 8 bit microcontroller based embedded system to achieve cost effectiveness and also maintains the required accuracy and reliability for complex shapes. The backbone of the system is a cleverly designed mechanical system along with the embedded system resulting in accuracy. The system uses C# as a programming language and .NET platform for user interface.


The main component of factory automation is the CNC which provides a set of functionalities for the management of machine tools, MTs. The adoption of a CNC for controlling MTs, instead of using classical PLC's (programmable logic controllers), provides support for implementing complex strategies and thus for building complex MT's such as Milling

-Machines, MMs, for templates, for rapid prototyping and for producing models, etc.The last-half century has been seen a no of revolutionary changes to a manufacturing systems configurations. Traditional configuration of manufacturing systems was dedicated transfer (machine) line. It enables mass production at high efficiency and low cost. Later flexible manufacturing was developed to meet the need for the production of smaller batches of different parts. However, the flexibility existing in these systems is still believed to be limited due to the continued use of out of date CNC programming language - ISO 6983, or commonly known as G- codes. These programs when processed in CAM (computer aided manufacturing) system by a machine specific processor, become machine dependent and there is limited control over program execution.

Currently there are three main kinds of computerized numeric controllers.

Multiprocessor with ASIC (application specific integrated circuit): This allows high integration and ensures great reliability.

PC front end: This is a traditional CNC black box with a personal computer added on.

Figure1: Architecture of CNC machine

Motion control card with PC: This system is configured by rigging a motion control board in a commercial PC.

Although the first kind of structure allows high integration and ensures great reliability, it is not open and reconfigurable. And the second kind is only HMI (Human machine interface) part open, and the key part of NC is still secret to the user. The third kind is still not open. However with the development of semiconductors the embedded computer is smaller and commercial operating system such as VxWorks are using for manufacturing CNC's. But they are expensive.

In this paper we are prototyping an Embedded CNC machine which address many of the problems associated with previous CNC machines. The architecture is divided in to 3 subsystems namely software, electrical, mechanical subsystems as shown on the figure1.

Figure2 shows overall general block diagram of system.

Figure2: General block diagram


Our system can be divided in to three Sub systems. As depicted in figure1 Mechanical sub system gets necessary control signals from electronics sub system which ultimately results in desired actuation of motors. Electronics Sub system gets command or a set of commands from software Sub system and generates controls for mechanical Sub system. Software Sub system which is usually a computer which provides easy to use interface for users which may be accepting commands like natural sentences and translates it to low level commands which could be understand by machine (microcontroller). Dividing the system reduces dependency between hardware and software components and also it allow us to modify any sub system without affecting the rest of Sub systems.

Mechanical Sub system:It contains stepper motors and gearing arrangement to produce required torque and wheels for moving axes. Three motors move along X, Y and Z axis respectively. In this prototype we used a sketch for plotting the required shape of image which CNC has to cut. The prototype is shown in figure3.

Figure3: Mechanical subsystem

Electronics Sub system: It consists of a low cost 8 bit Atmel 89s52 microcontroller and stepper motorcontrollers ULN 2803 and H-bridge L293dfor controlling all the three stepper motors. Microcontroller generates necessary STEP and DIRECTION signals for each stepper motor controller to achieve desired speed and rotation. Control program to generate STEP and DIRECTION signals is loaded from computer. A Max 232 is used for communicating data between PC and microcontroller. In addition to the above for making initial adjustments there are 4 switches connected to port of controller which adjusts system in 4 directions left, right, up, down if any readjustment is necessary.

Software tools or components used:



Hardware tools or components used


2. Three Stepper motors250gm, 1KG, 3KG torque & each7.5Ëš Step Angle respectively.

3. Driver ULN 2003, Driver-ULN2803

4. RS-232 to TTL Converter (MAX232).

Figure4: Electronic Subsystem

Specifications of stepper motors:

1. Operating voltage =12V or 5V

2. Holding torque = 250, 1kg, 3kg.

3. Step angle =7.5 degrees each

4. Current rating =500mA

The circuit diagram of electronic Sub system is shown in figure5.

Figure5: Circuit diagram of CNC system

Software Subsystem:This Sub system focuses on developing the user friendly development environment by providing easy to use graphical user interface. It consists of an Application specific compiler, a browser for browsing image, a covert button for converting image to binary, a draw button for sending data serially to electronic Sub system, 3 buttons for setting axes and text window for watching binary code as shown in figure6. The user can browse any image shape he wants to cut no knowledge of CAD/CAM is required. It will display "Conversion success" after converting image of work piece to binary. After drawing it shows "Drawing Completed".

Figure6: User interface of Software Subsystem

Operating software: For designing software Sub system an object- oriented language Visual c# (c sharp) is used and Microsoft .NET frame work is used on windows XP based system. This software used is less cost compared to any RTOS (Real time operating system).


Software Algorithm:

1. Converts JPEG/BMP format image into

binary code that is string of 1's and

0's in to rows (I) and columns (J).

2. The binary code is again converted to

ASCII like code which is suitable for

Serial communication.

3. Then code is sent to the microcontroller

via serial port of PC (personal computer).

Figure6: User interface of Software Subsystem

Microcontroller algorithm:

1. Waits for the serial data to come from PC.

2. If the binary data is of a row then the microcontroller controls horizontal (x-axis) stepper- motor in forward

direction.If the row data is binary '1' it controls the Z-motor for plotting along with X-motor else if data is '0' it only controls X-motor.

3. If the data of a row is over then it controls the Vertical (y- axis)-stepper- motor (Moves to next line) before that it

retracts the x-axis motor.

4. The microcontroller acknowledges by Sending a Acknowledgement signal to PC after receiving data from it.

5. This operation repeats until all rows are over that is if all bits are over then the Y axis goes to initial position and

microcontroller waits for next data to come.



Figure7: Input image at user interface (triangle) Converted in to binary

Figure8: Result for Triangular shaped Image drawn by CNC machine.

Figure9: Output result of same image with different delay for pixel.

Figure10: output for rectangular box with unfilled part.


In this paper the design and realization of a microcontroller based embedded three dimensional CNC machine was presented. Detailed descriptions of different modules along with technical details of their implementations have been given.

The realized prototype CNC machine was using a sketch instead of plasma cutter. In this system we used visual C# as a language on NET platform instead of using any RTOS which is very costlier and not user friendly and also with such systems it is not possible to implement on any general PC, where user has to purchase the operating system. This CNC eliminates the rigidness associated with traditional CAD/CAM systems. The designed system is user -friendly one which give accurate results and also flexible to users.

In the future we can further develop the system by using LASER instead of a plotter and also we can implement with reconfigurable architectures like FPGA and the speed of the system can be improved by using efficient algorithms in software sub system.


I would like to thank my guide Sri.K.N.H.Srinivas Department of ECE, for his guidance and help throughout the development of the project and for chiseling the real magnitude and dimension of my project. I feel grateful for the dexterous attitude and zeal he has installed in me. I would like to thank Dr. A.S.C.S.Sastry& Prof N VenkatRao, Department of ECE, for his assistance and constant back up because of which this project could be completed successfully.