Final Project - Armaan

Download as pdf or txt
Download as pdf or txt
You are on page 1of 54

Project Report: The SketchScribe CNC Plotter Machine

A PROJECT REPORT

On

The SketchScribe CNC Plotter Machine

Submitted by

Armaan Khan

The Study Hall College

Affiliated To

UNIVERSITY Of LUCKNOW

Course

Bachelors in Computer Application

Roll Number
202410040005

2022-23

i
Project Report: The SketchScribe CNC Plotter Machine

ACKNOWLEDGEMENT

I would like to extend my heartfelt gratitude to all those who have played a crucial role in the
completion of my final year project for the Bachelor of Computer Applications (BCA). Firstly,
I am immensely thankful to my project guide, Juan Carlos Cubiles de Vega, for their invaluable
guidance and unwavering support throughout the project. Their expertise and constructive
feedback have greatly contributed to the refinement and success of my project.

I would also like to express my appreciation to the faculty members of the Computer Science
Department at The Study Hall College for their dedication and knowledge, which have been
instrumental in shaping my project. Additionally, I am indebted to my family and friends for
their unconditional love, encouragement, and understanding. Their unwavering support has
provided me with the strength and motivation to overcome challenges and pursue my goals
with determination. Lastly, I acknowledge the participants who generously shared their time
and insights, as well as the management and staff of The Study Hall College for providing the
necessary resources and academic environment.

In conclusion, I am sincerely grateful for the assistance and encouragement I have received
from all these individuals and institutions. Their contributions have been invaluable, and I
express my deepest appreciation for their support.

Name: Armaan Khan

iii
Project Report: The SketchScribe CNC Plotter Machine
PREFACE

Python is a well-designed language that can be used for real world programming. Python
is a very high-level, dynamic, object-oriented, general purpose programming language that
uses interpreter and can be used in a vast domain of applications. Python was designed to be
easy to understand and use.

In 21st century, smart technology becomes a fundamental instrument for everything, it


influenced individuals worldwide to enhance performance and productivity and to ensure the
job is efficient and effective. Additionally, smart technology can improve communication,
collaboration, cooperation,
connections. Furthermore, using smart technology can reduce utility cost;
more sustainable and saving energy among businesses, education and individuals.

Our project is “The SketchScribe CNC Plotter Machine”. At its core, the CNC plotter
homework machine is a computer-controlled drawing tool that uses a combination of motors,
gears, and pulleys to move a pen or pencil across a piece of paper. The machine is programmed
using specialized software that allows users to create and edit designs on a computer before
sending them to the machine for production.

Iv
Project Report: The SketchScribe CNC Plotter Machine

TABLE OF CONTENTS

TITLE
FRONT PAGE i
CERTIFICATION OF COMPLETION ii
ACKNOWLEDGMENT iii
PREFACE iv
1.0 INTRODUCTION AND FEATURES OF 1
TECHNOLOGY
1.1 About the Technology 1

1.2 Key Features of Python 1-2

1.3 About the Technology 2-3

1.4 Key Features of Arduino 3-4

2.0 INTRODUCTION TO THE PROJECT 5


2.1 Introduction to SketchScribe CNC Plotter Machine 5

2.2 Key Features 5-6

2.3 Why this Project? 6-8

3.0 OBJECTIVES AND SCOPE OF THE PROJECT 9


3.1 Proposed System 9

3.2 Objective 9-10

3.3 Scope 10-11

4.0 THEORETICAL BACKGROUND DEFINATION AND 12-13


PROBLEM
5.0 FEASIBILITY STUDY 14
5.1 Feasibility Study of the SketchScribe Project 14-15
Project Report: The SketchScribe CNC Plotter Machine

6.0 PROJECT PLANNING 16


6.1 Project Planning of the SketchScribe Project 16-17
7.0 SYSTEM PLANNING 18
7.1 System Planning of the Project 18-20
8.0 METHODOLOGY ADOPTED & SYSTEM 21
IMPLEMENTATION
8.0 Methodology used in the Waterfall model 21-22
8.1 Waterfall Model 22-26
8.2 Development Process 26-27
8.3 Methodology Adopted for System Implementation of 27-29
the Project
9.0 HARDWARE & SOFTWARE REQUIREMENT 30
9.1 Hardware Requirement 30
9.2 Software Requirement 30-31
9.3 System Hardware & Software Requirement 31-32
10 SYSTEM DESIGN 33
System Design for the SketchScribe Project 33-35
11 SNAPSHOTS 36-40
12 TESTING 41-42
13.1 Blackbox Testing 42-43
13.2 Whitebox Testing 43-44
13 TEST LEVEL 45
14.1 Testing Section 45-46
15 IMPLEMENTATION 47-48
16 LIMITATIONS OF THE PROJECT 49-50
17 FUTURE SCOPE 51-52

18 REFERENCES 53
Project Report: The SketchScribe CNC Plotter Machine

INTRODUCTION AND FEATURES OF TECHNOLOGY

1.1 About the Technology:

Python is a high-level, interpreted programming language known for its simplicity, readability, and versatility.
It was created by Guido van Rossum and first released in 1991. Python emphasizes code readability with its
clean and concise syntax, making it an excellent choice for beginners and experienced programmers alike. It
has gained immense popularity over the years and has become one of the most widely used languages in
various fields, including web development, data analysis, artificial intelligence, and scientific computing.

1.2 Key Features of Python:


1. Simple and Readable Syntax: Python's syntax is designed to be easy to understand and read, which helps in
reducing the learning curve for beginners and enhances the productivity of experienced developers.

2. Interpreted Language: Python is an interpreted language, meaning that it does not need to be compiled before
running. This allows for faster development and testing cycles, making it suitable for scripting and rapid
prototyping.

3. Cross-platform Compatibility: Python is available on multiple platforms, including Windows, macOS, and
various Linux distributions. This allows developers to write code once and run it on different operating systems
without any significant modifications.

4. Extensive Standard Library: Python comes with a comprehensive standard library that provides numerous
modules and functions for performing various tasks, such as file handling, networking, and web development.
This extensive collection of tools simplifies development and reduces the need for external libraries.

5. Large Ecosystem: Python has a vast ecosystem of third-party libraries and frameworks that extend its
capabilities. These libraries cover a wide range of domains, including web development (Django, Flask),
scientific computing (NumPy, SciPy), data analysis (Pandas), machine learning (TensorFlow, PyTorch), and
more. This rich ecosystem enables developers to leverage existing solutions and accelerate their project
development.

1
Project Report: The SketchScribe CNC Plotter Machine

6. Object-Oriented Programming (OOP) Support: Python supports object-oriented programming paradigms,


allowing developers to structure their code using classes and objects. This feature promotes code reusability,
modularity, and makes it easier to manage complex projects.

7. Dynamic Typing: Python is dynamically typed, meaning that variable types are determined automatically
during runtime. This flexibility eliminates the need for explicit type declarations and allows for more flexible
code.

8. Community Support: Python has a large and active community of developers who contribute to its growth and
development. The community provides extensive documentation, tutorials, forums, and online resources that can
help developers troubleshoot issues, share knowledge, and learn from each other.

Python's versatility and wide range of applications make it an ideal choice for various projects, including web
development, scientific computing, data analysis, machine learning, and automation. Its simplicity, readability,
and extensive ecosystem contribute to its popularity and make it a powerful tool for developers across different
domains.

1.3 About the Technology:

Arduino is a versatile microcontroller board that enables users to create interactive projects. It offers a user-
friendly environment for writing and uploading code to control electronic components. With various board
options available, Arduino can be used in a wide range of applications. Its strong community support and
extensive resources make it accessible for beginners and advanced users alike. Arduino programming uses a
simplified version of C++ in the Arduino IDE.

1.4 Key Features of Arduino:


1. User-Friendly: Arduino is renowned for its user-friendly nature, making it accessible to both beginners and
experienced users. The Arduino IDE (Integrated Development Environment) provides a simple and intuitive
interface for writing, compiling, and uploading code to the Arduino board.

2. Versatility: Arduino offers a wide range of board options with varying capabilities, making it suitable for
diverse applications. Whether you're creating robotics projects, home automation systems, wearable devices,
or interactive artworks, there's an Arduino board that fits your needs.

2
Project Report: The SketchScribe CNC Plotter Machine

3. Extensive Community Support: The Arduino community is vast and vibrant, consisting of passionate
developers, hobbyists, and educators. This community-driven ecosystem provides extensive support through
forums, online tutorials, and open-source projects, ensuring that help and inspiration are always just a click
away.

4. Abundance of Libraries and Shields: Arduino benefits from an extensive collection of libraries, which are
pre-written code that simplifies complex tasks. These libraries cover a wide range of functionalities, such as
connecting to Wi-Fi networks, controlling motors, working with sensors, and more. Additionally, Arduino
shields are pre-designed circuit boards that plug directly onto Arduino boards, adding specific functionalities
like GPS, Ethernet connectivity, or motor control.

5. Interactivity with the Physical World: Arduino's strength lies in its ability to interact with the physical world.
It provides a multitude of input and output pins that allow you to connect and control sensors, actuators, and
other electronic components. This interactivity enables you to create projects that respond to external stimuli,
making it ideal for building interactive installations, sensor-based systems, and IoT (Internet of Things)
applications.

6. Open-Source Philosophy: Arduino embraces the open-source philosophy, making its hardware and software
specifications freely available. This encourages collaboration, innovation, and customization within the
community. You can modify and share your own Arduino designs or benefit from the vast array of open-
source projects created by others.

These key features of Arduino make it a powerful and versatile platform for electronic prototyping and project
development. Whether you're a hobbyist, student, or professional, Arduino provides the tools and resources to
bring your creative ideas to life.

3
Project Report: The SketchScribe CNC Plotter Machine

INTRODUCTION OF PROJECT

2.1 Introduction to SketchScribe CNC Plotter Homework Machine

The SketchScribe CNC Plotter Homework Machine is an innovative project that combines the precision of
CNC (Computer Numerical Control) technology with the artistry of human-like drawing and writing. This
versatile machine is designed to create stunning illustrations, cartoons, and detailed portraits using both pens
and pencils, replicating the intricacy and finesse of human handiwork.

The primary goal of the SketchScribe CNC Plotter Homework Machine is to provide a powerful tool for
artistic expression, making it an ideal companion for artists, designers, and hobbyists. With its exceptional
accuracy and control, it enables users to transform their creative ideas into tangible, high-quality drawings.

2.2 Key Features:

1. CNC Precision: The CNC technology employed in the SketchScribe ensures precise movement and
positioning of the drawing tool. This accuracy allows for intricate details, smooth lines, and consistent strokes,
resulting in professional-grade artwork.

2. Dual Functionality: The machine is capable of accommodating both pens and pencils, giving artists the
freedom to choose their preferred medium. Whether it's the fine lines of a pen or the shading capabilities of a
pencil, the SketchScribe can adapt to various artistic styles and techniques.

3. Human-like Drawing and Writing: The advanced algorithms and programming behind the SketchScribe
enable it to emulate the nuances of human hand movements. This capability allows the machine to create
drawings and writings that exhibit the fluidity and naturalness of human artistry.

4. High Precision Portraits: The SketchScribe excels at producing highly detailed and lifelike portraits. By
meticulously capturing subtle facial expressions, textures, and shading, it can generate stunning and realistic
representations of individuals.

5. Versatile Application: The SketchScribe is not limited to portraits alone; it can also be used to create a wide
range of illustrations, cartoons, architectural sketches, and intricate designs. Its adaptability and precision

4
Project Report: The SketchScribe CNC Plotter Machine
make it suitable for various artistic endeavours.

6. User-friendly Interface: The machine features an intuitive user interface that allows artists to easily control
and customize their drawings. From adjusting stroke thickness to selecting different shading techniques, the
interface offers a seamless experience for creators to bring their visions to life.

7. Expandability and Integration: The SketchScribe is designed to be adaptable and can integrate with external
software and design tools. This compatibility allows artists to leverage existing digital assets and seamlessly
transfer their designs to the machine for precise execution.

The SketchScribe CNC Plotter Homework Machine represents a significant advancement in the field of
automated drawing and writing. By combining CNC technology with human-like artistry, it offers artists and
enthusiasts an exceptional tool for producing high-quality illustrations, detailed portraits, and captivating
designs. Its precision, versatility, and ability to replicate the skill of human artists make it a valuable asset for
creative individuals seeking to push the boundaries of their artistic expression.

2.3 Why this project?


The SketchScribe CNC Plotter Homework Machine project was initiated to address the need for a versatile
and precise tool that combines the benefits of CNC technology with the artistic capabilities of human-like
drawing and writing. Here are some reasons why this project was undertaken:

1. Enhancing Artistic Expression: Traditional drawing and writing methods often rely solely on manual
dexterity, which can limit the level of detail and precision achievable. The SketchScribe project aims to bridge
this gap by providing artists with a machine that can replicate the finesse and intricacy of human artistry,
enabling them to express their creative ideas with greater accuracy and sophistication.

2. Precision and Consistency: CNC technology offers exceptional precision and repeatability in movement
and positioning. By harnessing this technology, the SketchScribe machine ensures that every stroke and line
is executed with utmost accuracy and consistency. This level of precision allows artists to create artwork with
intricate details and maintain consistent quality throughout their work.

3. Time and Effort Efficiency: Creating highly detailed drawings and illustrations by hand can be a time-
consuming and labour-intensive process. The SketchScribe CNC Plotter Homework Machine streamlines this
process by automating the repetitive and meticulous aspects of drawing and writing. Artists can focus more

5
Project Report: The SketchScribe CNC Plotter Machine
on their creative vision and spend less time on repetitive tasks, leading to increased efficiency and productivity.

4. Versatility and Adaptability: The ability to accommodate both pens and pencils makes the SketchScribe
machine a versatile tool for artists. It offers the flexibility to experiment with different mediums and artistic
techniques, allowing artists to explore and expand their creative boundaries.

5. Accessibility and Inclusivity: By providing a machine capable of producing stunning artwork, the
SketchScribe project aims to make high-quality drawing and writing accessible to a wider audience. Artists of
all skill levels, including beginners and individuals with physical limitations, can benefit from the precision
and assistance offered by the machine, fostering inclusivity and enabling more people to engage in artistic
endeavours.

6. Showcasing Technological Innovation: The SketchScribe CNC Plotter Homework Machine represents the
amalgamation of artistry and technology. It serves as a demonstration of how advanced algorithms, CNC
mechanisms, and human-like drawing capabilities can be seamlessly integrated to create a ground-breaking
tool. The project highlights the potential for technological innovation to revolutionize artistic practices and
inspire new possibilities in the creative realm.

Overall, the SketchScribe CNC Plotter Homework Machine project was initiated to provide artists with a
powerful and precise tool that enhances their creative expression, saves time and effort, and showcases the
fusion of art and technology. It addresses the desire for precision, versatility, and the ability to create highly
detailed artwork while making artistic pursuits more accessible and inclusive.

6
Project Report: The SketchScribe CNC Plotter Machine

OBJECTIVES AND SCOPE OF THE PROJECT

3.1 Proposed System:

The SketchScribe CNC Plotter Homework Machine works like magic to create amazing drawings! First, you
choose a pen or a pencil to use. Then, you use a special computer program to tell the machine what to draw.
The machine's clever mechanics move the pen or pencil in just the right way, following the instructions from
the program. It can make straight lines, curvy lines, and even fill in areas with shading! The best part is that it
can draw with the same precision as a human artist. It can make detailed portraits, stunning illustrations, and
even funny cartoons. So, whether you want to create a masterpiece or have fun doodling, the SketchScribe
machine is here to make your drawings come to life!

Immerse yourself in the world of artistry and technology with the captivating SketchScribe CNC Plotter
Homework Machine. This revolutionary system blends the precision of CNC technology with the finesse of
human-like drawing and writing, unleashing a new realm of artistic possibilities. Picture a sturdy frame
housing an intricate mechanism that effortlessly controls the movement of pens and pencils, enabling artists
to create mesmerizing illustrations, detailed portraits, and vibrant cartoons. The user-friendly software
interface puts the power in your hands, allowing you to customize stroke thickness, experiment with shading
techniques, and import digital designs for flawless execution. With advanced algorithms capturing the
subtleties of human artistry, the SketchScribe CNC Plotter Homework Machine becomes your creative
accomplice, effortlessly reproducing the fluidity and precision of hand-drawn masterpieces. Brace yourself
for a journey where art and technology converge, unlocking a world of limitless imagination and stunning
artistic creations.

3.2 Objective:
The primary objective of the SketchScribe CNC Plotter Homework Machine project is to develop a versatile
and precise drawing and writing tool that combines the benefits of CNC technology with human-like artistic
capabilities. The project aims to provide artists, designers, and enthusiasts with a machine capable of
producing highly detailed illustrations, cartoons, portraits, and other artistic creations, emulating the finesse
and intricacy of human handiwork. The main objectives of the project include:

1. Enhancing artistic expression by providing a tool that can replicate the precision and detail of human artistry.

7
Project Report: The SketchScribe CNC Plotter Machine
2. Streamlining the drawing and writing process to save time and effort for artists.
3. Offering a versatile machine that accommodates both pens and pencils, enabling artists to explore various
artistic techniques and mediums.
4. Showcasing the fusion of art and technology and pushing the boundaries of automated drawing and writing
capabilities.
5. Promoting accessibility and inclusivity in the field of art by providing a tool that can assist artists of all skill
levels and physical abilities.

3.3 Scope:
The scope of the SketchScribe CNC Plotter Homework Machine project encompasses the following areas:

1. Mechanical Design: Designing and constructing a robust and precise CNC plotter mechanism capable of
controlling the movement of drawing tools with high accuracy.

2. Electronics and Control Systems: Developing the necessary electronic components, such as motors, drivers,
sensors, and controllers, to ensure precise movement and coordination of the drawing tools. Implementing
control algorithms to replicate human-like drawing and writing capabilities.

3. Software Development: Creating user-friendly software interfaces that allow artists to control the machine,
customize their drawings, adjust settings such as stroke thickness, shading, and speed, and import digital
designs for precise execution.

4. Integration of Drawing Tools: Designing mechanisms to securely hold and interchange different drawing
tools, including pens and pencils, ensuring proper alignment and consistent performance.

5. Artistic Capabilities: Developing algorithms and programming techniques to replicate human-like drawing
and writing, capturing subtleties such as stroke variations, shading, and textures to produce lifelike
illustrations, portraits, and artistic creations.

6. Testing and Calibration: Conducting thorough testing and calibration procedures to ensure the machine's
accuracy, precision, and performance meet the desired artistic standards. Iteratively refining and optimizing
the machine's functionality based on feedback and user testing.

7. Documentation and User Support: Providing comprehensive documentation, including user manuals and

8
Project Report: The SketchScribe CNC Plotter Machine
guides, to assist artists in understanding the machine's operation, setup, and maintenance. Offering ongoing
user support to address inquiries, troubleshoot issues, and provide assistance to users.

It is important to note that the project's scope may vary based on available resources, time constraints, and
specific requirements. The project team will determine the final scope and prioritize features and
functionalities based on feasibility and project goals.

9
Project Report: The SketchScribe CNC Plotter Machine

THEORETICAL BACKGROUND DEFINATION OF PROBLEM

The Sketchscribe Project addresses the problem of limited accessibility and expressiveness in human-computer
interaction (HCI) systems. Traditional HCI interfaces, such as keyboards and mice, often require users to learn
complex commands or interact with abstract representations that can be unintuitive and time-consuming. This
restricts the ability of users to effectively communicate their ideas, especially when it comes to visual and creative
tasks.

The goal of the Sketchscribe Project is to overcome these limitations by developing a novel interface that allows
users to communicate their ideas and intentions through sketching and natural gestures. By leveraging advanced
machine learning algorithms and computer vision techniques, the project aims to enable real-time recognition
and interpretation of hand-drawn sketches and gestures, transforming them into actionable commands or
meaningful representations in digital environments.

The theoretical background of this problem encompasses several key areas. First, it involves computer vision
techniques, which are used to analyse and interpret the visual information captured from the user's sketches and
gestures. This includes methods for feature extraction, shape recognition, and gesture tracking, among others.

Secondly, the project relies on machine learning algorithms to train models that can accurately recognize and
classify different sketch and gesture inputs. This involves the collection and annotation of large datasets, the
design of appropriate network architectures (such as convolutional neural networks or recurrent neural networks),
and the optimization of training procedures to achieve high recognition accuracy and low latency.

Furthermore, the project draws upon HCI principles and user-centred design approaches to ensure that the
developed interface is intuitive, user-friendly, and effectively meets the communication needs of the users. This
involves conducting user studies, iterative prototyping, and incorporating feedback to refine the system's interface
and interaction mechanisms.

Overall, the Sketchscribe Project seeks to bridge the gap between human expression and digital interaction by
leveraging computer vision, machine learning, and HCI principles. By enabling users to communicate through
sketching and gestures, the project aims to enhance the accessibility, efficiency, and expressiveness of HCI
systems, opening up new possibilities for creative expression, design, and collaborative work in various domains.

10
Project Report: The SketchScribe CNC Plotter Machine

FEASIBILITY STUDY

5.1 Feasibility Study of the SketchScribe Project:

A feasibility study is conducted to assess the viability and potential success of a project. In the case of the
Sketchscribe Project, the feasibility study evaluates various aspects to determine if it is practical, achievable,
and economically viable. Here are some key areas that would be assessed in the feasibility study:

1. Technical Feasibility: This examines whether the technology and resources required for the project are
readily available or can be developed within a reasonable timeframe. It considers factors such as the
availability of computer vision algorithms and libraries, machine learning frameworks, hardware
requirements, and expertise in these areas. Additionally, the study would evaluate any technical challenges or
limitations that may arise during the development of the sketch recognition and gesture tracking system.

2. Economic Feasibility: This focuses on assessing the financial aspects of the project. It includes estimating
the overall costs involved in developing the Sketchscribe system, such as hardware and software expenses,
personnel salaries, data collection and annotation costs, and any potential licensing fees or intellectual property
considerations. The study also evaluates the potential return on investment (ROI) by estimating the market
demand for such a system, potential revenue streams, and the project's long-term sustainability.

3. Market Feasibility: This entails analysing the target market and determining the potential user base for the
Sketchscribe system. It involves conducting market research to identify the existing demand for similar HCI
interfaces, exploring potential user segments and their needs, and understanding the competitive landscape.
Additionally, the study examines the potential market acceptance and adoption of the Sketchscribe system by
considering user feedback, conducting surveys, and analysing user preferences.

4. Legal and Ethical Feasibility: This assesses any legal or ethical considerations associated with the project.
It involves identifying and complying with relevant laws and regulations related to data privacy, intellectual
property rights, and any other legal obligations. Additionally, the study evaluates the ethical implications of
collecting and processing user data, ensuring transparency, and implementing safeguards to protect user
privacy and security.

11
Project Report: The SketchScribe CNC Plotter Machine
5. Time Feasibility: This examines the project's timeline and whether the proposed objectives can be achieved
within the desired timeframe. It involves breaking down the development process into milestones and
evaluating the availability of resources, potential bottlenecks, and risks that may impact the project schedule.
This assessment helps determine if the project can be completed within the allocated time and if any
adjustments or optimizations are necessary.

Based on the findings of the feasibility study, the project stakeholders can make informed decisions about the
viability and potential success of the Sketchscribe Project. It helps identify any potential challenges, risks, or
adjustments required to ensure the project's successful execution and implementation.

12
Project Report: The SketchScribe CNC Plotter Machine

PROJECT PLANNING

6.1 Project Planning of the Sketchscribe Project:

System planning is a crucial phase in the project lifecycle, where the overall scope, objectives, and
requirements of the project are defined. In the case of the Sketchscribe Project, the system planning involves
several key steps:

1. Defining Project Goals and Objectives: The first step is to clearly define the goals and objectives of the
Sketchscribe Project. This includes determining the desired outcomes, such as developing a robust sketch
recognition and gesture tracking system, improving human-computer interaction in creative tasks, or
enhancing accessibility and expressiveness in HCI interfaces.

2. Identifying Stakeholders: It is important to identify the stakeholders who will be involved or impacted by
the project. This may include end users, developers, designers, domain experts, potential investors, and any
other relevant parties. Understanding the needs and expectations of the stakeholders helps in shaping the
project requirements and ensuring their satisfaction.

3. Gathering Requirements: Requirements gathering involves identifying and documenting the specific
functionalities, features, and constraints of the Sketchscribe system. This includes understanding the desired
sketching and gesture input types, the expected output or actions based on the recognized inputs, hardware
and software compatibility requirements, performance expectations, and any specific usability or accessibility
requirements.

4. Resource Identification: The system planning phase also involves identifying the necessary resources for
the project. This includes the hardware and software infrastructure required for development, testing, and
deployment of the Sketchscribe system. Additionally, the availability of human resources, such as developers,
researchers, data annotators, and user experience designers, needs to be determined.

5. Project Schedule and Milestones: Developing a project schedule is crucial to plan the timeline and allocate
resources effectively. This involves breaking down the project into phases, tasks, and milestones, and
estimating the time required for each. It is important to consider dependencies among tasks and potential risks

13
Project Report: The SketchScribe CNC Plotter Machine
that may impact the schedule. This schedule helps in tracking progress and ensuring timely completion of the
project.

6. Risk Assessment and Mitigation: The system planning phase should also include a thorough risk assessment
to identify potential risks and challenges that may impact the project's success. This includes technical risks,
resource constraints, changes in requirements, and external factors. Once identified, appropriate risk mitigation
strategies and contingency plans can be developed to minimize the impact of risks on the project.

7. Budgeting and Cost Estimation: A budget needs to be estimated to ensure adequate funding and resource
allocation for the project. This includes considering the costs associated with hardware and software
acquisition, personnel salaries, data collection and annotation, infrastructure setup, marketing, and any other
relevant expenses. A detailed cost estimation helps in financial planning and securing necessary funding.

8. Documentation and Communication: Proper documentation of the system planning phase is crucial for
ensuring clarity and shared understanding among project stakeholders. This includes creating project charters,
requirements documents, project schedules, risk registers, and any other relevant documents. Additionally,
effective communication channels need to be established to facilitate collaboration and regular updates among
the project team.

By conducting thorough system planning, the Sketchscribe Project can set a solid foundation for the
development and implementation phases. It ensures alignment with project goals, defines clear requirements,
allocates necessary resources, establishes a realistic schedule, and mitigates potential risks, all of which
contribute to the overall success of the project.

14
Project Report: The SketchScribe CNC Plotter Machine

SYSTEM PLANNING

System Planning of the Project:

System planning is a critical phase in project management that involves defining the project's scope,
objectives, and strategies for successful execution. In the context of the Sketchscribe Project, the system
planning phase includes the following key steps:

1. Project Definition:
 Clearly define the purpose and scope of the project, which is to develop the Sketchscribe system for
enhanced human-computer interaction.
 Identify the primary objectives, such as improving accessibility and expressiveness in HCI interfaces
through sketch recognition and gesture tracking.

2. Stakeholder Identification:
 Identify and engage relevant stakeholders who have an interest or influence in the project.
 Determine their roles, responsibilities, and expectations.
 Foster effective communication and collaboration throughout the project.

3. Project Team Formation:


 Assemble a team of skilled individuals with expertise in areas such as computer vision, machine
learning, software development, user experience design, and project management.
 Assign roles and responsibilities to team members based on their skills and strengths.
 Establish clear lines of communication and a reporting structure within the team.

4. Requirements Gathering:
 Conduct a thorough analysis of the project requirements.
 Identify and document the specific functionalities and features required for the Sketchscribe system,
including sketch recognition algorithms, gesture tracking mechanisms, user interface components, and
integration with existing systems.
 Consider usability, performance, scalability, security, and compatibility requirements.
 Involve relevant stakeholders, end users, and domain experts in the requirements gathering process.

15
Project Report: The SketchScribe CNC Plotter Machine

5. Resource Planning:
 Identify and allocate the necessary resources to support the project, such as hardware, software, tools,
and infrastructure.
 Estimate the required budget and secure funding.
 Determine the availability and allocation of human resources, including team members, subject matter
experts, and external consultants.
 Assess and address any potential resource constraints or dependencies.

6. Project Schedule:
 Develop a project schedule that outlines the timeline, milestones, and deliverables.
 Break down the project into manageable tasks and subtasks.
 Determine task dependencies and critical path to identify potential bottlenecks and optimize the
schedule.
 Define project milestones for tracking progress and ensuring timely completion.

7. Risk Management:
 Conduct a thorough risk assessment to identify potential risks, issues, and uncertainties that may affect
the project.
 Analyse the likelihood and impact of each risk and prioritize them accordingly.
 Develop risk mitigation strategies and contingency plans to minimize the impact of identified risks.
 Regularly monitor and reassess risks throughout the project lifecycle.

8. Communication and Documentation:


 Establish effective communication channels within the project team and with stakeholders.
 Develop a communication plan that defines the frequency, methods, and stakeholders involved in
project communication.
 Create a documentation framework to capture project artifacts, including project charters, requirements
documents, design specifications, progress reports, and meeting minutes.

By following a systematic system planning approach, the Sketchscribe Project can set a solid foundation for
successful project execution. It ensures clear definition of project objectives, stakeholder alignment,
comprehensive requirements gathering, efficient resource allocation, realistic scheduling, proactive risk
management, and effective communication throughout the project lifecycle.

16
Project Report: The SketchScribe CNC Plotter Machine

METHODOLOGY ADOPTED & SYSTEM IMPLEMENTATION

Methodology used in this project is Water Fall method

I use this methodology because-:

The Waterfall process is adopted by project managers who are faced with development projects that:

 Don’t have ambiguous requirements.


 Offer a clear picture of how things will proceed from the outset.
 Have clients who seem unlikely to change the scope of the project once it is underway.

If a project manager prefers clearly defined processes, where cost, design, and time requirements
are known upfront, then the Waterfall method is the way to go, as long as the project itself is
conducive to those constraints.

About Water Fall model

The waterfall methodology is a project management approach that emphasizes a linear progression from
beginning to end of a project. This methodology, often used by engineers, is front-loaded to rely on careful
planning, detailed documentation, and consecutive execution.

What is the Waterfall methodology?

The Waterfall methodology — also known as the Waterfall model — is a sequential development
process that flows like a waterfall through all phases of a project (analysis, design, development,
and testing, for example), with each phase completely wrapping up before the next phase
begins.

It is said that the Waterfall methodology follows the adage to “measure twice, cut once.” The success
of the Waterfall method depends on the amount and quality of the work done on the front end,

17
Project Report: The SketchScribe CNC Plotter Machine
documenting everything in advance, including the user interface, user stories, and all the features’
variations and outcomes.
With the majority of the research done upfront, estimates of the time needed for each requirement are more
accurate, and this can provide a more predictable release date. With a Waterfall project, if parameters change
along the way, it’s harder to change course than it is with Agile methodology.

8.1 Waterfall Model

The waterfall mode was selected as the SDLC model due to the following reasons:

 Requirements were very well documented, clear and fixed.


 Technology was adequately understood.
 Simple and easy to understand and use.
 There were no ambiguous requirements.
 Easy to manage due to the rigidity to the model. Each phase has specific deliverable and a review
process.
 Clearly defined stages.
 Well, understood milestones, easy to arrange tasks.

18
Project Report: The SketchScribe CNC Plotter Machine

5 common stages in a Waterfall process.

The Waterfall methodology follows a chronological process and works based on fixed dates,
requirements, and outcomes. With this method, the individual execution teams aren’t required to
be in constant communication and, unless specific integration are required, are usually self-
contained.

Team members also tend to work independently and aren’t expected to provide status reports
as often as with the Agile approach. Usually, one phase doesn’t begin until the previous one is
finished.
Using a software development project as an example, the Waterfall process usually includes stages
that look like this:

Requirements:
The Waterfall methodology depends on the belief that all project requirements can be gathered
and understood upfront. The project manager does their best to get a detailed understanding of the
project sponsor’s requirements. Written requirements, usually contained in a single document, are
used to describe each stage of the project, including the costs, assumptions, risks, dependencies,
success metrics, and timelines for completion.

Design:

Here, software developers design a technical solution to the problems set out by the product requirements,
including scenarios, layouts, and data models. First, a higher-level or logical design is created that describes
the purpose and scope of the project, the general traffic flow of each component, and the integration
points. Once this is complete, it is transformed into a physical design using specific hardware and software
technologies.

19
Project Report: The SketchScribe CNC Plotter Machine
Implementation:

Once the design is complete, technical implementation starts. This might be the shortest phase
of the Waterfall process because painstaking research and design have already been done. In
this phase, programmers code applications based on project requirements and specifications,
with some testing and implementation taking place as well. If significant changes are required
during this stage, this may mean going back to the design phase.

Verification or testing:

Before a product can be released to customers, testing needs to be done to ensure the product has
no errors and all of the requirements have been completed, ensuring a good user experience with
the software. The testing team will turn to the design documents, personas, and user case
scenarios supplied by the product manager to create their test cases.

Deployment and maintenance:

Once the software has been deployed in the market or released to customers, the maintenance phase
begins. As defects are found and change requests come in from users, a team will be assigned to
take care of updates and release new versions of the software.

Advantages of the Waterfall methodology:

The Waterfall methodology is a straightforward, well-defined project management methodology


with a proven track record. Since the requirements are clearly laid out from the beginning, each
contributor knows what must be done when, and they can effectively plan their time for the
duration of the project.

Other benefits of the Waterfall method include:

 Developers can catch design errors during the analysis and design stages, helping them to
avoid writing faulty code during the implementation phase.
 The total cost of the project can be accurately estimated, as can the timeline, after the
requirements have been defined.

20
Project Report: The SketchScribe CNC Plotter Machine
 With the structured approach, it is easier to measure progress according to clearly defined
milestones.
 Developers who join the project in progress can easily get up to speed because everything they
need to know should be in the requirements document.
 Customers aren’t always adding new requirements to the project, delaying production.

Disadvantages of the Waterfall methodology:

Like any development process, the strengths in one area might mean weaknesses in the other. The
Waterfall methodology’s insistence on upfront project planning and commitment to a certain
defined progress means that it is less flexible, or agile, later in the game. Changes that come further
in the process can be time consuming, painful, and costly.

Other reasons the Waterfall methodology may not work include:

 Projects can take longer to deliver with this chronological approach than with an iterative
one, such as the Agile method.
 Clients often don’t fully know what they want at the front end, opening the door to requests
for changes and new features later in the process when they’re harder to accommodate.
 Clients are not involved in the design and implementation stages.
 Deadline creep — when one phase in the process is delayed, all the other phases are delayed.

8.2 Development Process

I planned the project over a period of 30 days and divided it into four iterations. I planned the first iteration
for analysis, second iteration for game design, third iteration for coding and the final iteration for the product.

In the first iteration, I focused on Project analysis determined as the first planned milestone of the project.
Analysis is essential for starting of upcoming milestones and delivering a finished project on time. Successful
completion of a project is heavily dependent on effective analysis.

The second iteration started by brainstorming with my mentor on what the game would be. I gathered
suggestions together and chose the ones that was possible to be implemented within a 30 days project time.

21
Project Report: The SketchScribe CNC Plotter Machine
As soon as the game concept became clear, I made some early decisions on basic requirements of the project
in order to more easily reach the development goals. Game design document was meant to be a living
document. In other words, throughout the production process the document was updated, if needed.

In the third iteration coding in Python using Vs-code was under way. Therefore, most of time in this iteration
was dedicated for internal training sessions. In this iteration, I needed to achieve four milestones each was
dependent on the previous one.

Last iteration was planned for testing and finalizing the product. The testing process is an iterative process. I
performed the testing process in four iterations. The successful testing process of software requires a good
plan. Therefore, after the requirements of the project are confirmed, the future testing of the system and the
code were planned. The test plan provided information on how and when the testing will be executed. In the
second iteration, test cases were designed for the planned tests. In iteration three, the designed test cases were
executed alongside the module testing and usability testing. During the last iteration, according to the result
of the tests, the test reports were documented properly and the bugs were reported after the testing is completed.

8.3 Methodology Adopted for System Implementation of the Project:

The implementation phase of the Sketchscribe Project involves transforming the planned system design into a
fully functional and operational Sketchscribe system. The methodology adopted for system implementation
plays a crucial role in ensuring the successful development and deployment of the project. Here are the key
aspects of the methodology that can be adopted for the implementation of the Sketchscribe system:

1. Agile Development Approach:


 Agile methodologies, such as Scrum or Kansan, can be adopted for system implementation. These
methodologies emphasize iterative and incremental development, allowing for flexibility,
collaboration, and continuous improvement.
 The project can be divided into small, manageable work units called sprints or iterations, each with its
own set of goals and deliverable.
 Regular meetings, such as daily stand-ups, can be conducted to provide updates, address challenges,
and align the development efforts.

2. Development Environment Setup:

22
Project Report: The SketchScribe CNC Plotter Machine
 Set up the necessary development environment, including software development tools, integrated
development environments (IDEs), version control systems, and project management tools.
 Ensure that the development environment supports the programming languages, frameworks, and
libraries required for implementing the Sketchscribe system.

3. Iterative Development and Testing:


 Begin the implementation process by focusing on the core functionalities of the Sketchscribe system.
 Implement the sketch recognition and gesture tracking algorithms, considering the requirements
gathered during the planning phase.
 Conduct regular testing and quality assurance activities to ensure that the implemented functionalities
meet the desired accuracy, performance, and usability standards.
 Iterate and refine the implementation based on feedback, test results, and user evaluations.

4. Collaborative Development and Code Review:


 Foster collaboration among the development team members through effective communication channels
and tools.
 Encourage code reviews and peer programming to ensure code quality, consistency, and adherence to
coding standards.
 Implement an efficient code versioning and documentation system to track changes, manage code
repositories, and facilitate knowledge sharing.

5. Integration and System Testing:


 Integrate the individual components and modules of the Sketchscribe system.
 Conduct thorough system testing to validate the functionality, interoperability, and performance of the
integrated system.
 Test the system in various scenarios and environments to ensure its reliability and stability.

6. User Interface Design and Development:


 Design and develop an intuitive and user-friendly interface for the Sketchscribe system.
 Consider user experience principles, visual aesthetics, and ease of use when designing the user
interface.
 Implement the necessary features for sketch input, gesture interaction, and visualization of recognized
inputs.

23
Project Report: The SketchScribe CNC Plotter Machine
7. User Acceptance Testing:
 Involve end users and stakeholders in user acceptance testing to gather feedback and validate the
system's usability, effectiveness, and user satisfaction.
 Incorporate user feedback and make necessary adjustments to improve the system based on user
preferences and requirements.

8. Deployment and Post-Implementation Support:


 Deploy the Sketchscribe system in the target environment, ensuring compatibility and proper
configuration.
 Provide comprehensive documentation, user guides, and training materials to facilitate system
adoption and usage.
 Offer post-implementation support, including bug fixes, system updates, and user assistance, to ensure
the smooth operation of the Sketchscribe system.

By following this methodology for system implementation, the Sketchscribe Project can ensure an efficient
and effective development process, resulting in a fully functional and user-eccentric Sketchscribe system that
meets the defined requirements and objectives.

24
Project Report: The SketchScribe CNC Plotter Machine

HARDWARE & SOFTWARE REQUIREMENTS

Hardware Requirements:
1. Arduino Board: An Arduino board, such as Arduino Uno or Arduino Mega, to control the stepper motors
and servo motor.
2. CNC Shield: A CNC shield, compatible with the Arduino board, to interface with the stepper motors and
servo motor.
3. Stepper Motors: Two stepper motors for controlling the X and Y axes of the SketchScribe system.
4. Servo Motor: A servo motor for controlling the Z axis of the system.
5. Power Supply: A 12V power supply to power the Arduino board and the CNC shield.
6. 3D Printed Chassis: The chassis of the SketchScribe system is made up of 3D printed parts, which provide
the structure and support for mounting the motors, CNC shield, and other components.

Software Requirements:
1. Arduino IDE: The Arduino Integrated Development Environment (IDE) is used to write and upload the
code to the Arduino board.
2. Inkscape: Inkscape is a vector graphics editor used to generate G-code from drawings or handwriting that
are to be printed by the SketchScribe system.
3. Universal Gcode Sender: A Universal Gcode Sender application is used to send the generated G-code
instructions to the SketchScribe system for printing.
4. G-code Interpreter: The Arduino board should have a G-code interpreter program installed to interpret and
execute the received G-code instructions.
5. Libraries: Depending on the specific requirements and functionality of the SketchScribe system, relevant
libraries such as AccelStepper (for stepper motor control) and Servo (for servo motor control) may be required.

In summary, the hardware requirements for the SketchScribe project include an Arduino board, CNC shield,
stepper motors, servo motor, power supply, and a 3D printed chassis. The software requirements involve using
the Arduino IDE for programming the Arduino board, Inkscape for generating G-code, Universal Gcode
Sender for sending instructions, a G-code interpreter on the Arduino board, and relevant libraries for motor
control.

25
Project Report: The SketchScribe CNC Plotter Machine
System Hardware & Software Requirements:

The storage, RAM, and core requirements for running the SketchScribe machine on a system can vary
depending on factors such as the complexity of the system, the software being used, and the specific tasks
being performed. However, here are some general guidelines:

Storage:
The storage requirements for running the SketchScribe machine are typically not very high. The software
applications and files involved in the project, such as the Arduino IDE, Inkscape, and the G-code files, do not
consume significant storage space. A few gigabytes of available storage should be sufficient to accommodate
the required software and project files.

RAM:
The amount of RAM required depends on the software applications running simultaneously and the size and
complexity of the files being processed. For running the Arduino IDE, Inkscape, and the Universal Gcode
Sender, as well as the associated G-code interpreter on the Arduino board, a minimum of 4 GB of RAM should
be sufficient. However, if you are working with large and complex files or running resource-intensive tasks,
having 8 GB or more of RAM would provide smoother performance.

Processor/CPU:
The processor requirements are typically not very high for running the SketchScribe machine. A modern dual-
core or quad-core processor should be sufficient for most tasks involved in generating and sending G-code
instructions. However, if you are working with complex designs or require faster processing, a more powerful
processor, such as a higher-end quad-core or hexa-core processor, can offer improved performance.

It's important to note that these are general guidelines, and the specific resource requirements may vary based
on your specific setup and the complexity of your projects. It's recommended to check the system requirements
specified by the software applications you intend to use, as well as consider the size and complexity of the G-
code files you will be generating.

26
Project Report: The SketchScribe CNC Plotter Machine

SYSTEM DESIGN

System Design for the SketchScribe Project:

The system design for the SketchScribe project involves defining the architecture, components, and interactions
of the system to achieve its objectives effectively. Here is a high-level overview of the system design for the
SketchScribe project:

1. Hardware Components:
 Arduino Board: The Arduino board serves as the central control unit for the SketchScribe system. It is
responsible for receiving instructions, controlling the stepper motors and servo motor, and interpreting
the G-code commands.
 CNC Shield: The CNC shield is connected to the Arduino board and provides the necessary interface
and connections for the stepper motors and servo motor.
 Stepper Motors: Two stepper motors are utilized to control the X and Y axes of the SketchScribe
system, allowing precise movement of the drawing tool.
 Servo Motor: The servo motor controls the Z axis and is responsible for raising and lowering the
drawing tool to adjust the pen height.
 Power Supply: A 12V power supply provides power to the Arduino board, CNC shield, and motors.

2. Chassis:
 The SketchScribe system's chassis is constructed using 3D printed parts, providing structural support
for mounting the hardware components securely.
 The chassis design should incorporate appropriate mounting points and space for accommodating the
Arduino board, CNC shield, motors, and other necessary components.

3. Software Components:
 Arduino Firmware: The Arduino board requires specific firmware to interpret the G-code instructions
and control the stepper motors and servo motor accordingly. The firmware handles the communication
between the computer and the SketchScribe system.
 Inkscape: Inkscape software is used to create vector-based drawings or handwriting and generate G-
code files.

27
Project Report: The SketchScribe CNC Plotter Machine
 Universal Gcode Sender: The Universal Gcode Sender application is responsible for sending the
generated G-code instructions from the computer to the SketchScribe system via the Arduino board.

4. User Interface:
 The user interacts with the SketchScribe system through the Inkscape software, which provides a
graphical user interface for creating and editing drawings or handwriting.
 Inkscape may include specific plugins or extensions that facilitate the generation of G-code specifically
tailored for the SketchScribe system.

5. Communication and Control Flow:


 The user creates the desired drawing or handwriting in Inkscape, utilizing the provided tools and
features.
 Inkscape generates the corresponding G-code based on the created design.
 The generated G-code is sent from the computer to the SketchScribe system using the Universal Gcode
Sender application.
 The Arduino board, with the installed firmware, receives and interprets the G-code instructions.
 The Arduino board controls the stepper motors and servo motor accordingly to move the drawing tool
across the X, Y, and Z axes, creating the desired output.

The system design of the SketchScribe project integrates the hardware components, software components, and
user interface to enable the generation and execution of G-code instructions for precise control of the drawing
tool. By following this system design, the SketchScribe system can accurately replicate the provided drawings or
handwriting.

28
Project Report: The SketchScribe CNC Plotter Machine

Flowchart:

29
Project Report: The SketchScribe CNC Plotter Machine

SNAPSHOTS

30
Project Report: The SketchScribe CNC Plotter Machine

31
Project Report: The SketchScribe CNC Plotter Machine

32
Project Report: The SketchScribe CNC Plotter Machine

33
Project Report: The SketchScribe CNC Plotter Machine

34
Project Report: The SketchScribe CNC Plotter Machine

COMPONENT PHOTOS

Nema 17 Stepper Motors:

CNC Shield and Arduino UNO:

35
Project Report: The SketchScribe CNC Plotter Machine

3D printed parts:

Assembly Diagram:

36
Project Report: The SketchScribe CNC Plotter Machine
Assembled Hardware:

Fully Assembled Machine:

37
Project Report: The SketchScribe CNC Plotter Machine
TESTING

Testing is a process of executing a program with the intent of finding an errors. Testing is a crucial element of
software quality assurance and present ultimate review of specification, design and coding. System testing is
an important phase. Testing represents an interesting anomaly for the software. A good test case is the one that
has high probability of finding an as undiscovered errors.
Testing Scope:
Software testing is a critical element of software quality assurance and represents the ultimate review of
specification, design and code generation Once source code has been generated, software must be tested to
uncover and correct as many errors as possible before delivery to the customer. Our goal is to design a series
of test cases that have a high likelihood of finding errors. That' s where software-testing techniques come
in to the picture. These techniques provide systematic guidance for designing tests that
1. Exercise the internal logic of software components and
2. Exercise the input and output domains of the program to uncover errors in program function, behaviour and
performance.
A Testing of the software leads to the uncovering of errors in the software functional and performance
requirements are met. Testing also provides a good indication of software reliability as software quality as a
whole. The result of the different phases of testing are evaluated and then compared with the expected results.
If the errors are uncovered they are debugged and corrected. A strategy approach to software testing has the
generic characteristics:

1. Testing begins at the module level and works & quote; outwards towards the integration of the entire
computer-based system.
2. Different testing techniques are appropriate Testing and Debugging at different points of time.
3. Testing and Debugging are different activities, but debugging must be accommodated in the testing, strategy
A strategy for the software testing must accommodated low level tests that are necessary to verify that a small
source code segment is Pert-brining correctly according to the customer' s requirements and that of
developer' s expectations.
Testing Principle:
Testing is the process used to measure the quality of developed computer software is a Process designed to
make computer code does that it was designed to do and that does not do anything unintended. One of the
primary causes of poor
program testing is the fact that most programmer begin with a false definition of the term They might say
testing Is the processed demonstrating that error is not present.

38
Project Report: The SketchScribe CNC Plotter Machine
1. The purpose of testing is to show that a program performs its intended function correctly.
2. & quote; Testing is a process of establish confidence that program does what it is supposed to disquote; this
last statement is all based on false primes at the start of testing, a program should not be merely tested to show
that it works Rather the test should start with the assumption that the program contains error and the goal is to
find as many error as possible.

Testing Approaches
Following are main types of tests software undergoes:

Black Box Testing

Black-box testing (also known as functional testing) treats the software as a & quote; black box, & quote;
examining functionality without any knowledge of internal implementation, without seeing the source code.
The testers are only aware of what the software is supposed to do, not how it does it. Black-box testing methods
include: equivalence partitioning, boundary value analysis, all- pairs testing, state transition tables, decision
table testing, fuzz testing, model-based testing, use case testing, exploratory testing, and specification-based
testing. Specification-based testing aims to test the functionality of software according to the applicable
requirements. This level of testing usually requires thorough test cases to be provided to the tester, who then
can simply verify that for a given input, the output value (or behaviour), either & Quota; is & quote; or &quoins
not & quote; the same as the expected value specified in the test case. Test cases are built around specifications
and requirements, i.e., what the application is supposed to do. It uses external descriptions of the software,
including specifications, requirements, and designs to derive test cases. These tests can be functional or non-
functional, though usually functional. Specification-based testing may be necessary to assure correct
functionality, but it is insufficient to guard against complex or high-risk situations.
One advantage of the black box technique is that no programming knowledge is required. Whatever biases the
programmers may have had, the tester likely has a different set and may emphasize different areas of
functionality. On the other hand, black-box testing has been said to be &quotalike a walk in a dark labyrinth
without a flashlight. &Quote; Because they do not examine the source code, there are situations when a tester
writes many test cases to check something that could have been tested by only one test case or leaves some
parts of the program untested. This method of test can be applied to all levels of software testing: unit,
integration, system and acceptance. It typically comprises most if not all testing at higher levels, but can also
dominate unit testing as well.

39
Project Report: The SketchScribe CNC Plotter Machine
White Box Testing

White-box testing (also known as clear box testing, glass box testing, transparent box testing and structural
testing) verifies the internal structures or workings of a program, as opposed to the functionality exposed to
the end-user. In white-box testing, an internal perspective of the system (The source code), as well as
programming skills, are used to design test cases. The tester chooses inputs to exercise paths through the code
and determine the appropriate outputs. This is analogous to testing nodes in a circuit, e.g., in-circuit testing
(ICT). While white-box testing can be applied at the unit, integration, and system levels of the software
testing process, it is usually done at the unit level. It can test paths within a unit, paths between units during
integration, and between subsystems during a system–level test. Though this method of test design can uncover
many errors or problems, it might not detect unimplemented parts of the specification or missing requirements.
Unit testing refers to tests that verify the functionality of a specific section of code, usually at the function
level. In an object-oriented environment, this is usually at the class level, and the
minimal unit tests include the constructors and destructors.

Techniques used in white-box testing include:

 Code coverage – creating tests to satisfy some criteria of code coverage (for example, the
test designer can create tests to cause all statements in the program to be executed at least
once)
 Fault injection methods – intentionally introducing faults to gauge the efficacy of testing
strategies
 Mutation testing methods
 Static testing methods
 Code coverage tools can evaluate the completeness of a test suite that was created with
any method, including black-box testing. This allows the software team to examine parts
of a system that are rarely tested and ensures that the most important function points have
been tested. Code coverage as a software metric can be reported as a percentage for:
 Function coverage, which reports on functions executed Statement coverage, which reports on the number
of lines executed to complete the test
 Decision coverage, which reports on whether both the True and the False branch of a
given test has been executed.

40
Project Report: The SketchScribe CNC Plotter Machine

TESTING LEVEL

12.1 Testing Section:

The SketchScribe machine underwent a comprehensive testing phase to ensure its functionality, performance,
and reliability. The following key areas were thoroughly examined and verified:

1. Hardware Functionality: All hardware components, including the stepper motors, servo motor, CNC shield,
and power supply, were meticulously checked for proper connection and optimal functioning. Extensive tests
were conducted to evaluate the movement and accuracy of the motors along the X, Y, and Z axes, confirming
their ability to accurately reproduce the desired drawings and writings.

2. Software Integration: Rigorous testing was performed to validate the seamless integration between the
software applications utilized in the SketchScribe system, namely Inkscape and Universal Gcode Sender. The
compatibility and proper interpretation of the G-code generated by Inkscape were verified, ensuring error-free
communication of instructions to the SketchScribe machine.

3. G-code Execution: A wide range of G-code files representing various drawings and writings were executed
to assess the machine's ability to accurately translate instructions into physical output. The resulting artwork
was meticulously compared against the original designs to ensure faithful reproduction and adherence to the
intended paths.

4. Calibration and Accuracy: The SketchScribe machine's accuracy and calibration were systematically
evaluated through rigorous testing. Precise measurements of printed drawings were conducted, and alignment
of different elements within the artwork was verified. Any necessary adjustments were made to improve the
precision and alignment of the machine, ensuring high-quality output.

5. Stress and Durability: The SketchScribe machine underwent rigorous stress tests to evaluate its endurance
and durability. Extended operational periods and complex, intricate drawings were executed to assess its
performance under demanding conditions. The machine demonstrated resilience and reliability without signs
of overheating, motor fatigue, or mechanical failures.

41
Project Report: The SketchScribe CNC Plotter Machine
6. Error Handling: Various error scenarios were intentionally introduced to gauge the machine's ability to
handle unexpected situations. These scenarios included disconnected cables, invalid G-code files, and
unexpected power interruptions. The SketchScribe machine exhibited robust error handling capabilities,
displaying informative error messages, gracefully handling exceptions, and recovering effectively from such
situations.

7. Usability and User Experience: Extensive user testing was conducted to evaluate the overall usability and
user experience of the SketchScribe system. Feedback from users was collected regarding setup, software
operation, file management, and any challenges encountered during the printing process. This valuable
feedback was utilized to improve the system's usability and address user-related concerns.

Throughout the testing phase, meticulous records were maintained, documenting the tests performed, observed
results, and any issues encountered. This comprehensive documentation serves as a valuable resource for
troubleshooting, system refinement, and ensuring a high-quality user experience.

42
Project Report: The SketchScribe CNC Plotter Machine

IMPLEMENTATION

Implementing the SketchScribe project involves several steps and considerations. Here is a general guide for
the implementation process:

1. Gather Hardware and Components:


 Acquire the necessary hardware components, including the Arduino board, CNC shield, stepper
motors, servo motor, power supply, and 3D printed chassis.
 Ensure that all components are compatible and properly connected.

2. Set Up Arduino Development Environment:


 Install the Arduino IDE on your computer.
 Connect the Arduino board to your computer via USB.
 Install any required drivers for the Arduino board to establish proper communication.

3. Write and Upload Arduino Code:


 Develop the Arduino code that will control the stepper motors and servo motor.
 Utilize libraries such as AccelStepper for stepper motor control and Servo for servo motor control.
 Test and debug the code as needed.
 Upload the code to the Arduino board using the Arduino IDE.

4. Install and Configure Software Applications:


 Install Inkscape and Universal Gcode Sender on your computer.
 Familiarize yourself with the usage and functionality of these applications.
 Ensure that the necessary plugins or extensions are installed in Inkscape to generate G-code compatible
with the SketchScribe system.

5. Create Drawings and Generate G-code:


 Open Inkscape and design or import the drawings or handwriting you want to print.
 Utilize the provided tools and features to create vector-based graphics.
 Export or save the drawings as G-code files using the appropriate plugin or extension in Inkscape.

43
Project Report: The SketchScribe CNC Plotter Machine
6. Connect the SketchScribe System:
 Connect the CNC shield to the Arduino board, ensuring proper pin connections.
 Connect the stepper motors and servo motor to the CNC shield, following the specified wiring
configuration.
 Connect the power supply to the Arduino board and ensure it is providing the necessary voltage and
current.

7. Send G-code to the SketchScribe System:


 Open the Universal Gcode Sender application on your computer.
 Connect the application to the SketchScribe system by selecting the appropriate serial port.
 Load the generated G-code file into the Universal Gcode Sender.
 Configure any necessary parameters such as feed rate and tool height.

8. Test and Calibrate the System:


 Execute the G-code instructions to observe the movement of the SketchScribe system.
 Verify that the system accurately reproduces the desired drawings or handwriting.
 Make any necessary adjustments or calibrations to ensure precise and accurate printing.

9. Iterate and Refine:


 Continuously test, evaluate, and refine the system's performance.
 Incorporate feedback and make improvements as needed to enhance the quality and reliability of the
SketchScribe system.

Throughout the implementation process, it's important to refer to relevant documentation, tutorials, and
resources specific to the hardware components, software applications, and programming libraries being used.
These resources can provide detailed instructions and troubleshooting guidance to aid in the successful
implementation of the SketchScribe project.

44
Project Report: The SketchScribe CNC Plotter Machine

LIMITATIONS OF THE PROJECT

While the SketchScribe project can be an exciting endeavour, it is important to consider its limitations. Here
are some potential limitations to be aware of:

1. Precision and Accuracy: The precision and accuracy of the SketchScribe system may be limited by factors
such as the quality of the hardware components, mechanical tolerances, and calibration. Achieving extremely
fine details or precise reproductions of complex designs may be challenging.

2. Drawing Size and Area: The size of drawings that can be created with the SketchScribe system may be
constrained by the physical dimensions and range of motion of the stepper motors and servo motor. Larger
drawings may require multiple passes or resizing of the original artwork.

3. Speed and Efficiency: The speed at which the SketchScribe system can create drawings may be limited by
factors such as the processing capabilities of the Arduino board, the communication speed between the
computer and the system, and the complexity of the G-code instructions. Large and intricate drawings may
take a significant amount of time to complete.

4. Limited Materials and Media: The SketchScribe system is primarily designed for drawing with a pen or
similar drawing tool. It may not be suitable for other media or materials that require different types of tools or
mechanisms, such as painting, etching, or 3D printing.

5. User Interface and Design Complexity: The user interface for creating drawings using Inkscape and
generating G-code may require some learning curve and familiarity with the software. Complex designs may
require advanced skills and expertise in vector-based graphics.

6. Software Compatibility: The SketchScribe project relies on specific software applications, such as Inkscape
and Universal Gcode Sender. Changes in software versions or compatibility issues with the operating system
may impact the smooth functioning of the system.

7. Maintenance and Upgrades: Like any hardware and software system, the SketchScribe project may require
regular maintenance, including checking for loose connections, replacing worn-out parts, and keeping the
software up to date. Additionally, upgrading the system to improve its performance or functionality may

45
Project Report: The SketchScribe CNC Plotter Machine
require additional technical expertise and resources.

8. Safety Considerations: Operating any machinery, including the SketchScribe system, carries inherent risks.
It is crucial to follow safety guidelines, ensure appropriate supervision, and take necessary precautions to
prevent accidents or injuries.

It is important to thoroughly understand these limitations and consider them when planning and utilizing the
SketchScribe system. By acknowledging these constraints, you can manage expectations and make informed
decisions throughout the project.

46
Project Report: The SketchScribe CNC Plotter Machine

FUTURE SCOPE

The SketchScribe project has several potential future scopes and avenues for further development and
enhancement. Here are some possibilities:

1. Improved Precision and Accuracy: Future iterations of the SketchScribe system could focus on enhancing
precision and accuracy. This could involve using more advanced stepper motors with higher resolution,
implementing closed-loop control systems for better position feedback, or incorporating sensors to detect and
compensate for any mechanical deviations.

2. Expansion of Drawing Size and Area: The system could be redesigned to accommodate larger drawing sizes
and a wider working area. This would involve modifying the mechanical structure, such as using longer rails
or implementing a gantry system, to enable the creation of bigger drawings.

3. Integration with Additional Tools and Media: The project could be extended to support a variety of drawing
tools and media beyond pens. For example, integrating brush attachments for painting or incorporating laser
modules for etching and engraving could open up new artistic possibilities.

4. Advanced User Interface: Enhancing the user interface could involve developing dedicated software
applications specifically tailored for the SketchScribe system. These applications could provide more intuitive
design tools, advanced editing features, and seamless integration with the hardware for a smoother workflow.

5. Automated Colour and Shading: Incorporating colour and shading capabilities into the SketchScribe system
could enable the creation of more intricate and visually appealing artwork. This could be achieved through the
integration of multiple pens or by incorporating techniques like dithering for grayscale shading.

6. Mobile and Remote Control: Developing a mobile app or a remote-control interface would enable users to
interact with the SketchScribe system from a distance. This could provide flexibility and convenience,
allowing artists to work on their designs remotely or integrate the system into interactive installations.

7. Cloud Connectivity and Collaboration: Implementing cloud connectivity would facilitate easy sharing and
collaboration of drawings. Users could upload their designs to a cloud platform, access them from multiple
devices, and collaborate with others in real-time.

47
Project Report: The SketchScribe CNC Plotter Machine

8. Integration with AI and Machine Learning: Leveraging AI and machine learning algorithms could enable
the SketchScribe system to analyse and interpret hand-drawn sketches or convert raster images into vector-
based drawings automatically. This would streamline the process and expand the creative possibilities for
users.

9. Commercialization and Accessibility: The project could be further developed for commercial production,
making the SketchScribe system available as a consumer product. This would involve streamlining the
manufacturing process, optimizing costs, and ensuring user-friendly packaging and documentation.

These future scopes can extend the functionality, usability, and artistic potential of the SketchScribe project,
catering to the evolving needs and expectations of users. It is important to assess market demand, gather
feedback from users, and conduct further research and development to pursue these future directions
effectively.

48
Project Report: The SketchScribe CNC Plotter Machine
REFERENCES

Arduino: https://www.arduino.cc/

GitHub: https://github.com/

Online Community and Forums

ThingiVerse: https://www.thingiverse.com/

49

You might also like