cover photo

COURSEWORK

Vismay's D-P-001 course work. Lv 1

Vismay ChandraAUTHORACTIVE
work cover photo
This Report is yet to be approved by a Coordinator.

24 / 10 / 2025


TASK 1: 3D Printing


Objective

The goal of this task was to gain hands-on understanding of 3D printing technology, including the working principles of a 3D printer, slicing of STL files, and understanding important printer parameters such as bed temperature, nozzle temperature, and infill percentage. This activity was carried out under the guidance of the assigned coordinator.


Procedure and Learning

I began by studying how a 3D printer functions and exploring the role of STL (Stereolithography) files, which serve as the digital blueprints for 3D models. I also reviewed the Standard Operating Procedures (SOPs) and safety measures associated with operating the printer.

For this activity, I worked with a Creality Ender 3 printer. The material used was PLA (Polylactic Acid) filament - a popular, biodegradable thermoplastic commonly used for desktop 3D printing. The printing parameters were configured as follows:

ParameterValue
Bed Temperature60°C
Nozzle Temperature200°C
Infill Density20%

I selected a 3D Benchy model from Thingiverse in .stl format. The file was then imported into Ultimaker Cura for slicing, where I adjusted the layer height, infill, and support settings. After generating the G-code, the sliced file was transferred to the printer for printing.


Outcome

Through this task, I learned how to prepare and execute a 3D print from start to finish. I developed a clear understanding of how different print parameters affect the print quality and speed. Additionally, I became familiar with Cura’s slicing interface and how to troubleshoot common print issues such as bed adhesion and warping.


TASK 2: Application Programming Interface (API)


Objective

The aim of this task was to understand the concept, functioning, and applications of APIs (Application Programming Interfaces). Additionally, the task involved implementing an API in a simple web-based project to fetch and display data dynamically.


Procedure and Learning

I began by studying what an API is and how it enables communication between different software systems. APIs act as intermediaries that allow two applications to exchange data - similar to how a messenger conveys requests and returns responses between two parties.

To apply this concept practically, I developed a weather information web app using the OpenWeather API.
The app takes a city name as user input and, upon making an API call, displays the current temperature, weather condition, and humidity.
This task helped me understand how to fetch data from an external source and render it on a web interface using JavaScript.


Tools and Technologies Used

ComponentDescription
API UsedOpenWeather API
LanguagesHTML, CSS, JavaScript
PlatformVisual Studio Code

Issues Faced

Initially, the web page wouldn’t open correctly in the browser through VS Code.
This issue was resolved by installing and using the Live Server extension from the VS Code Marketplace.
Once configured, the application ran successfully and displayed real-time weather data.


Outcome

By completing this task, I learned how to integrate APIs into a project, handle requests and responses, and display external data on a user interface.
The activity provided practical exposure to how APIs streamline communication between clients and servers, which is an essential concept in modern web and mobile application development.


TASK 3: Working with GitHub


Objective

The objective of this task was to gain practical exposure to GitHub’s collaborative workflow, including branching, committing, and creating pull requests. It also aimed to help understand how GitHub manages version control, issues, and project collaboration efficiently.


Procedure and Learning

I started by exploring the provided GitHub repository and went through the README file to understand the task requirements.
The repository was then forked to my personal GitHub account, creating a copy where I could freely make changes.

Next, I created a new branch specifically for implementing modifications and debugging the existing code.
After reviewing the code, I located and corrected the identified error. Once the issue was fixed, I committed the changes with a clear message describing the update.

Following that, I raised a Pull Request (PR) to propose merging my fixes from the branch into the main repository.
This helped me understand how collaborative workflows operate on GitHub and how contributions are reviewed before integration.


Objectives Met

  • ✅ Forked the assigned GitHub repository into my personal account
  • ✅ Created and switched to a new branch for code changes
  • ✅ Debugged and corrected the error in the existing code
  • ✅ Committed and pushed the updated code to the branch
  • ✅ Opened a pull request to merge the changes with the main repository
  • ✅ Gained foundational knowledge of GitHub, including pull requests, branches, and commits

Link to My Pull Request

🔗 Open GitHub


Outcome

Through this task, I developed a solid understanding of GitHub’s workflow and version control processes.
I learned how multiple contributors can collaborate seamlessly on a single project using forks, branches, and pull requests.
This activity gave me hands-on experience in resolving issues and contributing effectively to a shared codebase.

GitHub Screenshot


TASK 4: Working with the Command Line on Ubuntu


Objective

The aim of this task was to get hands-on experience with the Linux command line and understand some of the most commonly used terminal commands in Ubuntu.
The activity helped in learning how to navigate directories, create files and folders, and manipulate text files using basic shell commands.


Procedure and Learning

To begin with, I opened the terminal and created a new directory named testVVC using the mkdir command.
After that, I moved into this directory using the cd command. Inside this folder, I created a blank text file named emptyfile.txt with the touch command, without using any text editor.

Next, I used a loop command to generate 2600 subdirectories inside the testVVC folder, each with unique names like A45, K102, etc.
Once created, I listed all the directories using the ls command to confirm that they were successfully generated.

Finally, I created two sample text files with some random content and used the cat command to concatenate them and display their combined content directly in the terminal window.


Commands Learnt

CommandPurpose
cdChange directory (used to navigate between folders)
mkdirMake directory (used to create new folders)
lsList all files and directories in the current location
touchCreate an empty file
catDisplay and concatenate the contents of files

Outcome

This task helped me understand how to interact with the file system using the terminal instead of a graphical interface.
I became comfortable with several basic Linux commands and gained confidence in performing file and directory operations efficiently from the command line.

TASK 6: The Matrix Puzzle — Decode with NumPy & Reveal the Image

Objectives Met

  • ✅ Successfully solved the matrix puzzle provided in the task
  • ✅ Gained a basic understanding of NumPy for numerical computations and Matplotlib for visualizing data
  • ✅ Learned to manipulate matrices using NumPy operations and display the decoded image using Matplotlib

Procedure and Learning

I started by exploring the scrambled matrix given in the task. Using NumPy, I performed operations such as reshaping, transposing, and indexing to gradually rearrange the matrix elements.
Once the matrix was decoded, I used Matplotlib to visualize the result, which revealed the hidden image.

Through this exercise, I became familiar with essential NumPy commands for array creation, manipulation, and arithmetic operations, as well as basic Matplotlib functions for displaying images and plots.


Link to Colab Notebook

🔗 Google Colab


Outcome

This task provided practical experience in working with matrices and visual data representation.
It helped me understand how NumPy and Matplotlib can be combined to solve computational problems and visualize results effectively.

TASK 6: The Matrix Puzzle — Decode with NumPy & Reveal the Image

Objectives Met

  • ✅ Successfully solved the matrix puzzle provided in the task
  • ✅ Gained a basic understanding of NumPy for numerical computations and Matplotlib for visualizing data
  • ✅ Learned to manipulate matrices using NumPy operations and display the decoded image using Matplotlib

TASK 8: Writing Resource Article Using Markdown

Objectives Met

  • Learned the basics of Markdown syntax, including headings, lists, links, and formatting.
  • Created a technical resource article on soft robotics.
  • Successfully formatted the article for consistent readability across devices.
  • Posted the resource article on the MARVEL website for reference and documentation.

Procedure and Learning

  1. Explored Markdown syntax through official documentation and tutorials.
  2. Chose the topic wearable robotics to create an informative article.
  3. Structured the article using headings, bullet points, and hyperlinks for clarity and references.
  4. Ensured the article adhered to Markdown standards, making it device-agnostic and easily readable.
  5. Submitted the article on the MARVEL platform for review and sharing.

Outcome

  • Gained hands-on experience in writing technical articles using Markdown.
  • Developed the ability to present complex technical concepts clearly in a structured format.
  • Improved understanding of how Markdown can be used for documentation and educational content.

TASK 9: Tinkercad – Ultrasonic Sensor & Radar Simulation


Objective

The aim of this task was to get hands-on experience with Tinkercad, understand the working of an ultrasonic sensor and servo motor, and simulate a simple radar system to detect objects within a specified range.


Procedure and Learning

I began by creating a Tinkercad account and exploring the platform to understand its interface and simulation capabilities.
Using the resource video as a guide, I first built a basic circuit with:

  • Arduino Uno
  • HC-SR04 Ultrasonic Sensor
  • LCD 16x2 Display

This circuit measured the distance between the sensor and an obstacle, displaying the readings on the serial monitor.

Next, I simulated a radar system by integrating a servo motor with the ultrasonic sensor.
The servo motor rotated the sensor to scan a wider area, while the sensor measured distances using sound waves.
This allowed the system to detect objects in its path, demonstrating the basic principle of radar technology.


Components Used

  • Arduino Uno
  • LCD 16x2 display
  • HC-SR04 Ultrasonic Distance Sensor
  • Servo Motor
  • Jumper Wires

Outcomes

  • Gained familiarity with Tinkercad’s simulation environment
  • Understood how ultrasonic sensors and servo motors work together for object detection
  • Learned the basic concept of a radar system and its real-world application

Precautions / Safety Measures

  • None applicable, as the task was completed in a virtual environment

TASK 10: Speed Control of DC Motor Using L298N and Arduino

Objectives

  • Control the speed of a DC motor using an L298N motor driver and Arduino UNO.
  • Learn how PWM (Pulse Width Modulation) can be used to adjust motor speed.
  • Gain practical experience in building and testing motor control circuits.

Procedure and Learning

  1. Built the circuit on a breadboard using:

    • Arduino UNO
    • L298N motor driver
    • 5V DC motor
    • Potentiometer to vary speed
  2. Connected the motor to the L298N driver and wired the driver to Arduino’s PWM-enabled pins.

  3. Uploaded Arduino code to read potentiometer values and control the motor speed accordingly.

  4. Tested the circuit by rotating the potentiometer and observing the motor speed variations.

  5. Learned the concept of PWM, which allows varying the effective voltage supplied to the motor, thereby controlling speed.


Outcomes

  • Successfully built a working motor control circuit.
  • Adjusted the DC motor speed smoothly using the potentiometer.
  • Gained practical knowledge of Arduino programming for motor control and using the L298N driver.
  • Understood how PWM signals affect motor speed.

Components Used

  • Arduino UNO
  • L298N Motor Driver
  • 5V DC Motor
  • Potentiometer
  • Jumper wires
  • Breadboard

TASK 11: LED Toggle Using ESP32

Objective

The objective of this task was to learn the working of the ESP32 microcontroller and to create a standalone web server that can toggle an LED connected to the ESP32’s GPIO pins.
The task also involved configuring the Arduino IDE to program and upload code to the ESP32.


Procedure and Learning

ESP32 Setup

  • Configured the Arduino IDE to recognize the ESP32 board by installing the required board manager URLs and libraries.
  • Connected the ESP32 to the computer via USB for programming.

Circuit Design

  • Connected a simple LED to a GPIO pin of the ESP32 with a current-limiting resistor.

Coding and Uploading

  • Wrote a program in Arduino IDE to create a web server hosted on the ESP32.
  • Program included code to toggle the LED from a web browser using HTTP requests.
  • Uploaded the code successfully to the ESP32 and tested the LED toggle function via a local network.

Testing

  • Opened the ESP32’s IP address in a web browser.
  • Verified that the LED could be turned ON and OFF by clicking the buttons on the web interface.

Components Used

  • ESP32 Development Board
  • LED
  • Resistor (220Ω)
  • Jumper Wires
  • Breadboard

Outcomes

  • Learned how to **

UVCE,
K. R Circle,
Bengaluru 01