2 / 1 / 2025
This was a very thrilling experience. i was able to make a 3D printed snowflake using a STL design acquired from thingiverse.com to splice and resize the model, i used the ultimaker software.
Through this task, i was able to learn that API (Applicaton Programming Interface) is used as an accessible way to extract and share data within and across organizations. THis helped me create a weather Application that gives real-time information about the weather, temperature, humidity and wind pressure.
Here's an image of my weather application: Github link
GitHub is a platform for hosting and sharing Git repositories online, enabling collaboration. This task made me familiarise with Github features.
Here's the images of the pull request: Github link
This task helped me gain familiarity with Ubuntu which is a open source operating system. It provides us with various functions like file management and efficient manipulation of files and directories
Here's an image of the Ubuntu terminal:
Kaggle is a website where you can learn data science and practice machine learning by working on real-world problems.Although this task seemed overwhelming at first, i realised this was one of the best ways to get into Datascience and ML.
i was able to learn new concepts and features involved with a ML project. i learned about RandomForestTrees and Decision trees model which are more commonly used. i was also introduced to jupyter notebook.
# Titanic - Machine Learning from Disaster
from sklearn.preprocessing import LabelEncoder
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
# Load and preprocess data using panda library
train_data = pd.read_csv('train.csv')
test_data = pd.read_csv('test.csv')
#This code fills missing values with the median Value.
train_data['Fare'] = train_data['Fare'].fillna(train_data['Fare'].median())
test_data['Fare'] = test_data['Fare'].fillna(test_data['Fare'].median())
train_data['Age'] = train_data['Age'].fillna(train_data['Age'].median())
test_data['Age'] = test_data['Age'].fillna(test_data['Age'].median())
#LabelEncoder transforms the column into numeric values
label_encoder = LabelEncoder()
train_data['Sex'] = label_encoder.fit_transform(train_data['Sex'])
test_data['Sex'] = label_encoder.transform(test_data['Sex'])
#This code fills missing values with the most occured values and labelencodes them into numerical values
train_data['Embarked'] = train_data['Embarked'].fillna(train_data['Embarked'].mode()[0])
train_data['Embarked'] = label_encoder.fit_transform(train_data['Embarked'])
test_data['Embarked'] = test_data['Embarked'].fillna(test_data['Embarked'].mode()[0])
test_data['Embarked'] = label_encoder.transform(test_data['Embarked'])
#Combine two columns/features into one
train_data['FamilySize'] = train_data['SibSp'] + train_data['Parch']
test_data['FamilySize'] = test_data['SibSp'] + test_data['Parch']
# Features under study
features = ['Pclass', 'Sex', 'Age', 'Fare', 'FamilySize', 'Embarked']
X = train_data[features]
y = train_data['Survived']
X_test = test_data[features]
# Model and prediction
model = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=1)
model.fit(X, y)
predictions = model.predict(X_test)
# Save results inside submission.csv
output = pd.DataFrame({'PassengerId': test_data['PassengerId'], 'Survived': predictions})
output.to_csv('submission.csv', index=False)
print("Your submission was successfully saved!")
Here is an image of the submissions:
Pandas is an open-source data analysis and manipulation library for Python. It provides flexible data structures, such as DataFrames(2D) and Series(1D), which are essential for handling and analyzing large datasets.Matplotlib is a widely used plotting library in Python that allows you to create a variety of animated and interactive plots and visualizations.
Tinkercad is a free, online tool for 3D design and models, electronics circiuts and coding IDE. After creating a account, i tinkered around given basic circuits. We also had to simulate a simple circuit using an ultrasonic sensor to estimate the distance between an obstacle and the sensor and display the results on the serial monitor.
The distance is calculated by sending a trigger pulse (using trigger pin) from the ultrasonic sensor, waiting for the echo to receive it back (through the echo pin), and measures the time it takes for the pulse to return using the formula :
Distance = (speed of sound x time)/2
Distance = (0.03430 x time)/2
Here's images of the circuit: Tinkercad Circuit link
I completed the task of controlling the speed of a 5V motor by using Arduino board, DC Motor, H-Bridge L298N motor driver and 20K potentiometer. After uploading the code into the arduino IDE and compiling it, i could change the the speed of the DC motor using the potentiometer manually.
Arduino Controls Both Speed and Direction:
The Arduino sketch controls the logic levels (HIGH/LOW) for the IN1 and IN2 pins to set the motor's direction.
It uses analogWrite to send PWM signals to the ENA pin to control speed.
Here's an image of circuit connection: Here's a video of the working:
An LED connected to an ESP32 microcontroller is controlled (turned on and off) via software, often through a web server.
Connect the long leg (anode) of the LED to ESP32 GPIO pins(for example, pin 26 and pin 27). Connect the short leg (cathode) of the LED to a 220-ohm resistor, and the other end of the resistor to GND.
Connect ESP32 via USB to computer.
Select the correct port.
Upload the code onto the arduino IDE.
Input the correct network ssid and password in the code.
After compiling, open the Serial Monitor in the Arduino IDE to find the ESP32's IP address.
Open a web browser and type the ESP32's IP address (e.g: http://192.168.1.100). You will see a simple webpage with links to turn the LED ON and OFF.
The ESP32 connects to your Wi-Fi network and sets up a web server. When you click the links on the webpage (LED=ON or LED=OFF), the ESP32 processes the request and controls the GPIO pin to turn the LED on or off.
Here's an image of the circuit connections:
Here's an video of the working:
Soldering is used to join two or more components of an electronic circuit together melting solder around it.
When 555 Timer is operated in astable mode it is 555 oscillator circuit which continously produces square wave pulses with desired duty cycle. By choosing the correct resistors and capacitor, we can get the needed 60% duty cycle.
A Karnaugh Map (K-Map) is a diagrammatic method used in digital electronics and Boolean algebra to simplify logical expressions and minimize the number of logic gates required to implement a circuit. It helps eliminate redundant terms in a Boolean function, making it more efficient.
Here's an image of logic diagram and truth table:
I participated in the college hackaton and poster presentation competition
Here's an image of the certificates:
Since motors require more current than what the microcontroller pin can typically generate, we need a type of intermediate that can accept a small current, amplify it and generate a larger current, which can drive a motor. This is done by what is known as a Motor driver. The L293D motor driver is a device used to control DC motors. The L293D has two H-bridge circuits, allowing control of two motors independently. This makes it great for projects like robots and automation.
Reversal of direction of motor can be achieved by using four switches(Transistors) that are arranged in an H-like manner such that the circuit not only drives the motor but also controls its direction. H-bridge circuit transistors are arranged in a shape that resembles the English alphabet “H”.
Specification | Value |
---|---|
Operating Voltage | 4.5V to 36V |
Output Current | 600 mA per channel |
Control Logic Voltage | 5V |
Number of Channels | 2 |
Operating Temperature | 0°C to 70°C |
Enable 1,2 | Input 1 | Input 2 | Function |
---|---|---|---|
1 | 1 | 0 | Rotates Anti-clockwise (Reverse) |
1 | 0 | 1 | Rotates Clockwise (Forward) |
1 | 1 | 1 | OFF |
1 | 0 | 0 | OFF |
0 | X | X | OFF |
The same is true of the other side of IC with enable 3,4 and the input 3 and input 4 |
PWM (Pulse Width Modulation) is a technique used to control the amount of power delivered to an electrical device by varying the width (duration) of electrical pulses in a signal. It’s used in electronics for tasks such as motor speed control, dimming LEDs etc.
SadServers is an online platform designed to help individuals enhance their Linux troubleshooting skills through interactive, real-world scenarios. In this task, we had to solve the Problem: Command Line Murders. This is a murder mystery which can be cracked using the clues and witness reports.