Nikolas Koh's Coding Projects

My name is Nikolas, and I am 12 years old. I started learning robotics with LEGO Mindstorms and block-based coding in Primary 4, where I enjoyed designing and building robots to automate daily tasks. Robotics inspired me to solve real-world problems and explore beyond block-based coding, which led me to learn Python. Using Python, I wrote programs to solve math problems without pen and paper. I also learned Pygame to create educational games where my friends could compete and challenge one another. I have documented my journey in robotics, coding, innovation, and STEM.

Portrait of Nikolas Koh

Project 1: Ping Pong Racket

Ping Pong Racket

I learned how to use LEGO Technic parts to design and build various mechanical structures. By applying coding concepts such as conditionals (if-else) and incorporating different sensors, I built a tractor. Using the ultrasonic sensor, the tractor moves when it detects the load on it. Such autonomous track-based vehicles are used to transport goods between different stations. Once the sensor detects the object, the vehicle automatically moves to deliver the item to the designated location. This automation reduces the need for human labor, increases efficiency, and ensures precise handling of materials.

Project 1: Ping Pong Racket
Project 2: Ultrasonic Activated Tractor
Project 2: Ultrasonic Activated Tractor

Sushi Belt

I enjoy going to the restaurant for sushi and decided to recreate an automated one. Using the lego technic parts and a colour sensor, I created a sushi belt that is activated to move only when it detects the colour green. This reduces unnecessary motion and saves energy.

Project 3: Distance Sensor Coin Dispenser

Distance Sensor Coin Dispenser

Inspired by arcade coin dispensers, I applied the design principles and coding skills I learned to build a distance-activated coin dispenser. The dispenser uses two ultrasonic sensors that detect my hand in a specific sequence within a defined distance threshold. When both sensors are triggered in order, the mechanism opens to release coins. This project demonstrates how sensor integration and conditional logic can create automated systems, similar to those used in vending machines .

Project 3: Distance Sensor Coin Dispenser
Project 4: Touch Activated Automated Rabbit Head
Project 4: Touch Activated Automated Rabbit Head

Touch Activated Automated Rabbit Head

My younger siblings loved playing with their toy rabbit head, which spins when the wind hits it. They used to manually spin and stop it, which was fun but limited. To make it more interactive and engaging, I decided to create an automated version of the toy. In this upgraded version, the rabbit head starts spinning automatically as soon as the program runs. When the ultrasonic sensor detects someone nearby—such as a child approaching—the spinning stops, and the toy returns to its original position.

Project 5: Follow The Line

Follow The Line

Inspired by a line-following robot I observed at the library—used to transport books from the return bin to the sorting section—I decided to design a similar robot for home use. My version is programmed to follow a black line on the floor, allowing it to navigate efficiently through designated areas that require cleaning.

Project 5: Follow The Line
Project 6: Touch & Colour Activated Merry Go Round
Project 6: Touch & Colour Activated Merry Go Round

Touch & Colour Activated Merry Go Round

As someone who enjoys exercising on a treadmill, I decided to recreate an automated treadmill using LEGO Technic parts. This miniature version functions similarly to a real treadmill—its speed is controlled by user input. With the use of a touch sensor, and coding concepts such as variables and if-else statements, the treadmill increases speed with each press—just like speed adjustments on a real gym machine.

Simple Division (simple_division.py)

Description:

This project shows how to calculate the remainder when one number is divided by another. It’s a great way to practice using arithmetic and the modulo operator (%).

Diagram:

simple_division.png

Trinket:

Even/Odd Checker (even_odd_checker.py)

Description:

In this project, I designed a program that checks if a number is even or odd using if-else statements. This project teaches me how to make decisions in code based on conditions.

Diagram:

Diagram for Even/Odd Checker

Trinket:

Prime Number Guesser Game (prime_number_game.py)

Description:

This game challenges you to decide if a number is prime by using if-else statements. It’s a fun way to reinforce the concept of prime numbers and divisibility in code.

Diagram:

prime_number_game.png

Trinket:

Factorial Calculation(factorial_calculator.py)

Description:

I organized a math competition among my friends, and one of the challenges involved calculating the factorial of a given number. I created a Python script that took a user input and calculated the factorial of the given number.

Diagram:

Diagram for Factorial Calculation

Trinket:

Count Vowels and Consonants in a String (count_vowels_consonants.py)

Description:

In this project, I used a for loop to count the number of vowels and consonants in a given string. The loop iterates through each character in the string, checking if it is a vowel or consonant, and updates the counts accordingly.

Diagram:

Diagram for Count Vowels and Consonants

Trinket:

Number Pyramid (number_pyramid.py)

Description:

In this project, I created a number pyramid using nested for loops. The outer loop controls the number of rows, while the inner loop prints the numbers in each row. This project demonstrates how to use loops to create patterns and shapes in Python.

Diagram:

Diagram for Number Pyramid

Trinket:

Word Matrix Diagonal (word_matrix.py)

Description:

In this project, I learned how to create a program that takes in a user input for a choice of word and prints the word diagonally in a square matrix using a nested for loop concept.

Diagram:

Diagram for Word Matrix

Trinket:

Pascal Triangle (pascal_triangle.py)

Description:

In this project, I created a program that uses nested loops concept to build a classic math triangle known where each number is the sum of the two numbers above it.

Diagram:

Diagram for Pascal Triangle

Trinket:

Sum of My Even Numbers (sum_of_my_even_numbers.py)

Description:

I have created a Python script named sum_of_my_even_numbers.py. It prompts me for a positive integer, and using a while loop, it calculates and displays the sum of all even numbers from 2 to the entered integer.

Diagram:

Diagram for sum of even numbers

Trinket:

Countdown Timer (my_countdown_timer.py)

Description:

In this project, I built a countdown timer that uses a while loop to count down from a starting number until it reaches 1. This is important because it shows me how to repeat an action until a condition is met.

Diagram:

Diagram for Countdown Timer

Trinket: