cover photo

COURSEWORK

Darshan's CL-CY-001 course work. Lv 3

Darshan S VajrawadAUTHORACTIVE

Generic Task Report by Darshan

5 / 1 / 2024


Task 1: 3D Printing

3D Printers

3D printers are devices that create three-dimensional objects by depositing material layer by layer based on a digital model. The basic operation involves slicing a 3D model into thin layers and then gradually building the physical object by adding these layers on top of each other.Alt

Slicer

Slicer translates 3D models into a series of instructions (G-code) that the 3D printer can understand and execute. Slicer software takes into account various parameters, such as layer height, infill density, print speed, and support structures, to generate the optimal toolpaths for creating a physical object layer by layer.

STL File

STL (Standard Triangle Language or Stereolithography) is a file format widely used in 3D printing. It represents the surface geometry of a 3D object using a collection of triangular facets.

G-code File

G-code is a programming language used in 3D printing. G-code instructions control the movements and operations of machines, specifying toolpaths and parameters. In the context of 3D printing, G-code files contain a series of commands that guide the 3D printer's extruder and build platform to create a physical object layer by layer.

3D printer terminologies

  • Bed Temperature: The temperature of the print bed or build platform, which helps in the first layer adhesion and overall print stability.
  • Infill Density: The percentage of material used within the interior of a printed object, affecting its strength, weight, and print time.
  • Layer Height: The thickness of each individual layer of filament laid down during the printing process, impacting print resolution and time.
  • Print Speed: The speed at which the 3D printer head or nozzle moves while laying down the filament, influencing the print quality and duration.
  • Support Structures: Additional, often temporary, material printed to support overhanging features during the printing process, which are removed after completion.

Task 2: API

API An API (Application Programming Interface) is a set of rules and tools that allows different software applications to communicate with each other. It defines the methods and data formats that applications can use to request and exchange information. APIs facilitate the integration of different systems, enabling them to work together seamlessly.

Crux Code:

$(function () {
  $("#myForm").submit(function (e) {
    e.preventDefault();

    var city = $("#city").val();

    getWeather(city);
  });
});

function getWeather(city) {
  $(".weather-temperature").openWeather({
    key: "ea5ceda552fc62d695e46455e0a5ddbb",
    city: city,
    descriptionTarget: ".weather-description",
    windSpeedTarget: ".weather-wind-speed",
    minTemperatureTarget: ".weather-min-temperature",
    maxTemperatureTarget: ".weather-max-temperature",
    humidityTarget: ".weather-humidity",
    sunriseTarget: ".weather-sunrise",
    sunsetTarget: ".weather-sunset",
    placeTarget: ".weather-place",
    iconTarget: ".weather-icon",
    customIcons: "../src/img/icons/weather/",
    success: function (data) {
      // show weather
      $(".weather-wrapper").show();
      console.log(data);
    },
    error: function (data) {
      console.log(data.error);
      $(".weather-wrapper").remove();
    },
  });
}

Alt


Task 3: Working with Github

GitHub is a platform that allows developers to automate their software development workflows directly within the GitHub repository. GitHub enables continuous integration and continuous deployment (CI/CD) processes, making it easier for teams to collaborate and streamline their development pipelines.

Forking refers to the process of creating a personal copy of someone else's repository (a collection of files and the entire version history of those files) in a distributed version control system like Git. When you fork a repository, you are essentially creating your own independent copy of the project, which can be modified without affecting the original repository.

A pull request (PR) in GitHub is a proposed code change submitted by a developer for review and integration into the main codebase.


Task 4: Get familiar with the command line on ubuntu:

  • Create a folder named test.
  • cd into that folder.
  • Create a blank file without using any text editor.
  • List the files in that folder.
  • Create 2600 folders in this folder where each folder is named M90.
for i in {1..2600}; do
    mkdir "M$i"
done
  • Concatenate two text files containing any random text and display them on the terminal.
echo "Random Text File 1" > file1.txt
echo "Random Text File 2" > file2.txt
cat file1.txt file2.txt

Check the full code here (Github repo).


Task 6: Working with Pandas and Matplotlib:

Pandas is a Python library for data manipulation, offering structures like DataFrame for efficient handling of structured data, crucial in data science and analysis.

Matplotlib is a comprehensive Python 2D plotting library, enabling the creation of diverse visualizations with fine-grained customization.


Task 7: Create a Portfolio Webpage

A portfolio webpage is a personal or professional website that showcases an individual's or a company's work, achievements, skills, and projects. It serves as a digital portfolio, providing a centralized platform to display a collection of work samples, resume, and other relevant information.


Task 8: Writing Resource Article using Markdown

Markdown is a lightweight markup language that uses plain text formatting syntax to stylize and structure documents, widely used for creating content for the web, including documents, blog posts, and readme files.


Task 9: Tinkercad

Distance measurement using Ultrasonic sensor and Arduino

Arduino: It is an open-source electronics platform. It consists ATmega328 8-bit Microcontroller. It can be able to read inputs from different sensors & we can send instructions to the microcontroller in the Arduino. It provides Arduino IDE to write code & connect the hardware devices like Arduino boards & sensors.

Ultrasonic Sensor: An ultrasonic Sensor is a device used to measure the distance between the sensor and an object without physical contact. This device works based on time-to-distance conversion.

Working Principle of Ultrasonic Sensor:
Ultrasonic sensors measure distance by sending and receiving the ultrasonic wave. The ultrasonic sensor has a sender to emit the ultrasonic waves and a receiver to receive the ultrasonic waves. The transmitted ultrasonic wave travels through the air and is reflected by hitting the Object. Arduino calculates the time taken by the ultrasonic pulse wave to reach the receiver from the sender.

We know that the speed of sound in air is nearly 344 m/s.

So, the known parameters are time and speed (constant). Using these parameters, we can calculate the distance traveled by the sound wave.

Distance = Speed * Time

In the code, the “duration” variable stores the time taken by the sound wave traveling from the emitter to the receiver. That is double the time to reach the object, whereas the sensor returns the total time including sender to object and object to receiver. Then, the time taken to reach the object is half of the time taken to reach the receiver. So we can write the expression as

Distance = Speed of Sound in Air * (Time Taken / 2)
Note: Speed of sound in air = 344 m/s.

Circuit Diagram


Task 11: LED Toggle Using ESP32

The primary goal of this tutorial is to fabricate a functional web server capable of controlling two LEDs connected to the GPIO pins of the ESP32. This web server will be readily accessible by inputting the ESP32’s IP address into any browser within the local network. The web interface will be equipped with ON/OFF buttons, providing an intuitive means of managing the LED states.
This is just a simple example to build a web server that controls ESP32 outputs pins. here we are using LED for executing this project.

Components Required

  • ESP32 development board – read ESP32 Development Boards Review and Comparison
  • 2x 5mm LED
  • 2x 330 Ohm Resistor
  • Breadboard
  • Jumper wires

Task 12: Soldering Prerequisites

What is Soldering?

Soldering is the process of joining two or more electronic parts together by melting solder around the connection. Solder is a metal alloy and when it cools it creates a strong electrical bond between the parts.

Soldering Tools

  • Soldering Iron
  • Soldering Station
  • Brass or Conventional Sponge
  • Soldering Iron Stand
  • Solder
  • Perf Board
  • Flux

Desoldering

The good thing about using solder is the fact that it can be removed easily in a technique known as desoldering. This comes in handy if you need to remove a component or make a correction to your electronic circuit.

My Work

img1 img2


Task 13: 555 Astable Timer

An astable 555 multivibrator is a type of electronic oscillator circuit that uses a popular integrated circuit (IC) known as the 555 timer IC that produces continuous square wave or pulse wave output, commonly used for generating clock signals and timekeeping in digital circuits.
In the astable mode, the 555 timer functions as an oscillator, generating a continuous square wave output. This makes it useful for generating clock pulses, tone generation, and various timing applications.

Why "555"?

The name "555" comes from the three 5-kiloohm resistors used in the original design in its internal voltage divider network.

What is an Oscilloscope?

An oscilloscope is an electronic test instrument used to visualize electrical signals as they vary over time. It displays the voltage of an electrical signal on a two-dimensional graph, with the vertical axis representing voltage and the horizontal axis representing time. This graphical representation is called an oscillogram or waveform.


Task 15: Active Participation

I took part in the CodeFury-6.0 conducted by IEEE UVCE where the competitors in teams were given a task to make a web or mobile application addressing the Mental Health issues among the Gen-Z youths.
I along with two of my classmates created a wonderful website, the site is live on github and the link is given below. CodeFury-6.0 Participation certificate


UVCE,
K. R Circle,
Bengaluru 01