Ivan Liew's Coding Projects

My name is Ivan, and I am 12 years old. I started learning robotics with LEGO Mindstorms and block-based coding in Primary 4. I enjoy designing and building robots and structures that automate routine tasks in my daily life. Learning robotics taught me to solve real-world problems and inspired me to explore beyond block-based coding. This sparked my interest in Python, where I began writing programs to solve math problems without using pen and paper. As I strengthened my Python skills, I also learned Pygame and created educational games that my friends could play and compete in. I have documented my journey in robotics, coding, innovation, and STEM.

Portrait of Ivan Liew

Project 1: Ferris Wheel

Ferris Wheel

I learned how to use LEGO Technic parts to design and build functional mechanical systems. By applying coding concepts such as conditionals (if-else) and integrating various sensors, I programmed my creations to respond dynamically to their environment. One example was a ferris wheel that moves only when the touch sensor is activated. This simulates real-world operator-driven control to ensure safety.

Project 1: Ferris Wheel
Project 2: Ultrasonic Activated Tractor
Project 2: Ultrasonic Activated Tractor

Ultrasonic Activated Tractor

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 a load on it.

Project 3: 2 Touch Activated Gripper

2 Touch Activated Gripper

Having played at the arcade frequently, I decided to apply the same concepts and design principles to create a robotic gripper that opens and closes only when a touch sensor is activated. This mechanism allows for precise control, mimicking the arcade claw machine’s motion. Beyond recreation, this design has real-world applications — such as in assistive robotics, where touch-sensitive grippers can help individuals with limited mobility pick up and release objects safely, or in industrial automation, where the system can handle delicate components without causing damage. By integrating touch-based activation, the gripper combines fun design inspiration with practical functionality for real-world use.

Project 3: 2 Touch Activated Gripper
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: Colour and Infrared Activated Spinning Top

Colour and Infrared Activated Spinning Top

Playing the top is my childhood game and I decided to recreate a sensor-controlled spinning top using LEGO technic parts and coded it to move when it is activated by a colour sensor. I could control the direction it spins using an infrared sensor when it detects someone within different range. If the infrared sensor detects someone near it, it will spin clockwise, else, it spins anti-clockwise. This setup mirrors real-life smart devices that respond to environmental cues. The system responds intuitively to human presence, creating an interactive and dynamic user experience.

Project 5: Colour and Infrared Activated Spinning Top
Project 6: Touch Activated Treadmill
Project 6: Touch Activated Treadmill

Touch Activated Treadmill

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:

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:

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: