cover photo

COURSEWORK

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

Uditha ReddyAUTHORACTIVE
This Report is yet to be approved by a Coordinator.

Uditha Reddy Level 0 Report

2 / 1 / 2025


TASK 1: 3D Printing

3D printing is the process of creating a three dimensional object layer-by-layer using a Computer Aided Design (CAD) model.

Process of 3D Printing:

  1. Create a 3D design of the object using CAD.
  2. Save the file in an stl format.
  3. The stl file is loaded into the 3D printer's software, like Ultimaker Cura which "slices" the model into thin horizontal layers and converts it into G-code. This helps the printer know how to build up the object step by step. The software also helps set other important settings, like temperature, print speed, and material.
  4. The 3D printer starts creating the object layer by layer. It heats the material (eg: PLA) and extrudes it through a nozzle and builds up the model.
  5. After printing, the object may need some finishing touches, like cleaning off extra material, smoothing surfaces which can be done using Sandpaper.

For this task, I 3D printed Thor’s hammer(Mjolnir)

TASK 2: API

An API (Application Programming Interface) is a set of rules and protocols that allows different software applications to communicate with each other. It defines a set of rules and protocols for how one piece of software can request services or information from another without needing to know the details of how each one works internally.

For eg: Food Delivery Apps use Google Maps API to track the location of the delivery partners instead of creating their own satellite based navigation system as it is more efficient and economical. A request is made by the app, the Google maps server processes it, and the data is returned to the user.

It improves efficiency, allows reusability, provides flexibility, adds security, and makes it easy to integrate with other services.

I created a recipe API which returns the recipe of the dish when we type the dish name.

TASK 3: Working with Github

I learnt about GitHub integrated workflows (GitHub actions), Issues, and pull requests with this task.

  1. I cloned the forked repository to my computer.
  2. I created a new branch to work on.
  3. I fixed the error in the main branch of the repository.
  4. I made the necessary changes and committed them to the cloned repository.
  5. Finally, I submitted a pull request with the changes.

TASK 4: Command Lines on Ubuntu

I learnt about various commands on Ubuntu:

  1. I created a folder named test using the command: mkdir test
  2. I then changed the directory (cd) into that folder using the command: cd test
  3. I created a blank file without using any text editor using the command: touch blank.txt
  4. I then listed the files in that folder using the command: ls
  5. I created 2600 folders in this folder where each folder is named like M0001-M2600 using the command: mkdir M{0001..2600}
  6. Finally I concatenated two text files using the command: cat blank.txt blank2.txt

TASK 5: Kaggle Contest

I familiarize myself with how the Kaggle platform works. Using machine learning, I created a model that predicts which passengers survived the Titanic shipwreck.

TASK 6: Working with Pandas and Matplotlib

I learned how to plot a line graph, bar graph, and scatter plot along with a dataset of my choice, using Pandas and Matplotlib By applying the code provided, I was able to generate the respective visualizations, as shown in the images below:

Code: https://github.com/uditha229/panda-matplotlib

Line Graph: Bar Graph: Scatter Graph:

TASK 7: Portfolio Webpage

Using HTML, CSS and JavaScript, I created my own portfolio webpage that displays information about me.

Link to my code: https://github.com/uditha229/portfolio

TASK 8: Writing Resource Article using Markdown

My technical article is about Quantum Cryptography and how it can pave the way for future secure communications.

Link to my article: https://hub.uvcemarvel.in/article/9fa20a67-44fd-485b-a9ce-209e558e89b6

TASK 9: Tinkercad

I created my own Tinkercad account and familiarized myself with the application.

Working principle:

  1. The transmitter sends out ultrasonic sound waves.
  2. These waves travel through the air, hit an object, and bounce back (or reflect).
  3. The receiver detects the reflected waves and measures how long it took for the waves to return. With this we can calculate the distance between the sensor and the object.

Link to my Tinkercad Simulation: https://www.tinkercad.com/things/8lg0uUfzmbh-ultrasensor-without-servo-motor/editel?returnTo=https%3A%2F%2Fwww.tinkercad.com%2Fdashboard

TASK 10: Speed Control of DC Motor

Introduction: In this task. I learnt how to control a DC motor using an Arduino and an L298N motor driver. This project helped me understand how to control a 5V DC motor and regulate its speed using PWM (Pulse Width Modulation).

Components:

  1. Arduino UNO
  2. L298N Motor Driver
  3. DC Motor (5V)
  4. Power Supply (5V)
  5. Jumper Wires
  6. Breadboard

Working Procedure:

  1. The Arduino controls the speed and direction of a DC motor using the L298N motor driver.
  2. The Arduino sends digital signals to the L298N to control the motor's direction through the IN1 and IN2 pins.
  3. The motor's speed is controlled by sending a Pulse Width Modulation (PWM) signal to the ENA pin of the L298N.
  4. The L298N uses an H-Bridge circuit to change the direction of the current flow, which in turn adjusts the motor's rotation direction (clockwise or counterclockwise).
  5. The speed of the motor is regulated by varying the duty cycle of the PWM signal, where 0% duty stops the motor, and 100% duty runs the motor at full speed.
  6. The motor is powered through the OUT1 and OUT2 pins of the L298N, with a 5V power supply.
  7. I used the potentiometer for controlling the speed of the DC motor by varying the PWM signal, we can change the motor speed continuously.

Link to video:

TASK 11: LED Toggle using ESP32

I learnt how to use the ESP32 microcontroller, which has built-in Wi-Fi, to create a simple web server. This server will let us control an LED connected to the ESP32 from your smartphone or computer by accessing the server through a web browser.

Working Process:

  1. First, we need to configure the Arduino IDE by installing the necessary libraries and selecting the correct board type (ESP32) in the IDE.
  2. We’ll write a program in the Arduino IDE to make the ESP32 act as a web server. The code will allow the ESP32 to connect to a Wi-Fi network and listen for requests from a web browser.
  3. The program will set up a web page hosted by the ESP32. When we enter the ESP32’s IP address in a browser, we will see a simple webpage with an ON/OFF button to control the LED.
  4. The ESP32 will monitor for clicks on the ON or OFF button from the browser. When the button is pressed, the ESP32 will turn the LED on or off by sending a signal to the corresponding GPIO pin connected to the LED.

Link to video: https://github.com/uditha229/images/blob/main/VID-20241203-WA0005.mp4

TASK 12: Soldering

Through this task, I learned how a soldering iron functions, along with the different accessories such as the sponge and flux, and understood the soldering process. After that, I successfully soldered an LED and a resistor together and powered the LED with a 9V battery.

TASK 13: 555 Astable Multivibrator

I learnt the working of the IC and to design the 555 multivibrator in Astable mode at 60% Duty Cycle. The connections are made on the breadboard as shown in the circuit diagram below: By using the formula used to calculate Duty cycle, ratio of the resistors to be used while designing a astable multivibrator for a given 60% of duty cycle is: 1:2.

I used capacitors and resistors as a part of the external circuit and the got a 58.5% duty cycle result as shown in the oscilloscope below:

TASK 14: Karnaugh Maps and Deriving the logic circuit

A burglar alarm should go off when there is unauthorized access, like when the door opens without the key. Let's make the following assumptions:

The door is represented by ‘D’: 1 means the door is open, and 0 means it is closed. The key is represented by ‘K’: 0 means the key is not on the door, and 1 means the key is on the door. The alarm is represented by ‘A’: 1 means the alarm is on, and 0 means the alarm is off. The alarm works based on the truth table below:

K-map and Logic circuit:

Simulation video:

https://github.com/uditha229/images/blob/main/Burglar%20alarm.mp4

TASK 15: Active Participation

I have participated in Kagada 2024 organized by IEEE UVCE in the Poster Presentation Track.

TASK 16: Datasheets Report Writing

Report on L293D Motor Driver

  1. Introduction to L293D The L293D is a popular dual H-Bridge motor driver IC used for controlling DC motors and stepper motors in electronic projects. Its main purpose is to provide bidirectional control over motors, allowing them to rotate forward, reverse, or stop. The L293D is commonly employed in robotics, automation, and various electronic devices where motor control is required.

  2. IC Specifications The L293D is a quadruple high-current half-H driver, capable of controlling two DC motors or one stepper motor. It is designed to handle up to 600mA continuous output current per channel, with a peak current of 1.2A per channel. The IC operates with a supply voltage ranging from 4.5V to 36V. The L293D comes in a 16-pin Dual In-line Package (DIP), with pins for motor power, logic control, and ground.

Pin Configuration:

Pins 1, 9: Output pins for motor A and B (connected to the motor). Pins 2, 7: Input pins for controlling motor direction. Pin 16: Vcc (supply voltage for logic circuits). Pin 8: Vcc2 (motor power supply). Pins 4, 5, 12, 13: Ground pins.

  1. H-Bridge Configuration The L293D uses an H-Bridge configuration to control the direction of motor rotation. An H-Bridge consists of four transistors arranged in a bridge-like structure, allowing current to flow in either direction through the motor. By switching the transistors appropriately, the L293D can reverse the polarity of the voltage applied to the motor, enabling both forward and reverse rotation. This configuration is vital for bidirectional motor control.

  2. Pulse Width Modulation (PWM) Pulse Width Modulation (PWM) is a technique used to control the speed of motors by adjusting the duty cycle of the signal applied to the motor driver. The L293D accepts PWM signals at its input pins. By varying the duty cycle of the PWM signal, the effective voltage applied to the motor changes, resulting in different speeds. A higher duty cycle corresponds to a faster motor speed, and a lower duty cycle reduces the speed.

  3. Electrical Characteristics The L293D can operate with a supply voltage (Vcc2) of 4.5V to 36V, suitable for various motor types. It can provide a continuous output current of 600mA per channel, with short bursts capable of handling up to 1.2A. The IC has thermal shutdown and overload protection features to prevent damage under excessive conditions. The recommended operating temperature range is -40°C to 85°C, with a maximum power dissipation of 1W.

UVCE,
K. R Circle,
Bengaluru 01