Category: Uncategorized

  • Trappist-1 e


    Why Trappist-1e?

    • The planet is likely rocky and dense, with a thin/moderate atomsphere (possibly containning carbon dioxide, nitrogen, or water vapor).
      • This is similar to the structure on Earth and would be great to build bases and other structures.
    • The JWST (James Webb Space Telescope) suggests that Trappist 1 e is warm enough for liquid water.
      • This is great since it is possible to have water on the planet and it will not just evaporate.
    • The JWST also did not detect a thick hydrogen-dominated atomsphere, which helps rule out a Neptune-like gas layer.
      • This is great because we can eliminate the possibilty of this planet to be a gas giant and that it will have solid ground.

    Opportunity 1: Liquid-water stability


    Although we are unsure if there is water on the planet, the planet orbits inside the star’s habitable zone, where temperatures could theoretically allow liquid water to exist.

    JWST also confirmed that TRAPPIST-1e does not have a thick hydrogen atmosphere, meaning it is more likely to resemble an Earth-like rocky planet rather than a gas-dominated mini-Neptune. This creates an opportunity because liquid water is one of the most important requirements for human survival.


    Opportunity 2: Rocky Surface


    Research shows that it has a rocky surface similar to Earth. This means it has a solid surface suitable for our rover to easily travel across. Our rover will be able to use wheels instead of needing wings or other ways to transport.


    Opportunity 3: Possible Atomsphere


    JWST’s infrared observations ruled out the possibility of a thick atmosphere, but they did not confirm whether TRAPPIST-1e currently has a thinner, Earth-like atmosphere or none at all.

    This presents itself with an opportunity for a manmade atmosphere perhaps.


    Challenges:

    • Radiation and stellar: the planet orbits a red-dwarf star which can release flares that are radioactive and can strip away the atmosphere and destroy surface life
    • Possible Thin Atmosphere (Not Confirmed):Current JWST observations show that TRAPPIST-1e does not have a thick hydrogen-dominated atmosphere. However, scientists still do not know whether it has a thinner secondary atmosphere, such as carbon dioxide or nitrogen, or no atmosphere at all. If TRAPPIST-1e does have a thin atmosphere, it would provide very little protection from stellar radiation and would struggle to maintain stable temperatures. Our rover need to take into consideration the uncertainty in order to gaurantee the safety of our astronauts.
    • Dim sunlight from Red Dwarf: Trappist-1e mainly receives infrared light (M-type star), which is weaker compared to sunlight (G-type star) we receive on Earth.

    Implications for vehicle design:

    • Landing:
      • There is no thick atmosphere.
      • meaning that there isn’t enough air to slow down the aircraft/vehicle as it lands.
      • We need to use rockets in order to land safely.
    • Surface Rovers:
      • The planet is rocky -> so we have to use tires/wheels and can climb rocky surfaces.
      • The planet is possibly tidally locked, with one side that’s hot and one side that’s cold -> meaning we would have to have a sophisticated heating and cooling system, an outside layer that could stand both high and low temperatures, and tires that can endure the temperatures and changes.
    • Radiation shielding:
      • The planet is exposed to radiation by harmful flares -> meaning we have to create a thick shielding on the outside of our vehicle to stop the radiation from getting in.
    • Power systems:
      • Because the light on the planet peaks at infra red, we are not able to get the same amount of light as when exposed to our sun -> this means that solar panels will not recieve enough energy and instead, we have to develope solar panels that is specific for infrared light.

    How do we know what we know:

    • Teappist 1-e was first found in 2017 using the Trappist telescope in Chile and was confirmed later with NASA’s Spitzer Space Telescope.
      • They used the Transit Method: watching tiny dips in the star’s brightness everytime a planet crossed in front of it.
    • NASA also used the James Webb Telescope and recorded infrared spectra, which are patterns of light thta change depending on which gases are in the atom’s atmosphere.
      • When TRAPPIST-1 e passed in front of its star, some starlight filtered through the planet’s air (if it has one).
      • Using the process of transmission spectroscopy
        (studying which wavelengths of light were absorbed) we are able to identify the chemical makeup of the atmosphere.

    Sources Used (APA Format)



    Gillon, M. et al. (2017). Seven temperate terrestrial planets around the nearby ultracool dwarf star TRAPPIST-1. Nature, 542(7642), 456–460. 



    NASA. (2024, September 8). NASA Webb Looks at Earth-Sized, Habitable-Zone Exoplanet TRAPPIST-1 e. NASA Science.



    NASA Exoplanet Catalog. (2025). TRAPPIST-1 e. NASA Science.



    NASA. (2018). 10 Things: All About TRAPPIST-1. NASA Science.



    AI Use Statement

    I used ChatGPT to help me research and organize information about TRAPPIST-1 e, and all facts in my blog post is sourced directly from NASA’s official science pages and publications.

  • Simple Fan

    I am brand new to Tinker CAD and Robotics, just like I am in the previous 2 projects. I had to figure out something that is easy to do and at the same time help me develop my knowledge in Tinker CAD and Robotics.

    The Failed Attempt:

    My first idea was to create a mini bumper bot that has 2 buttons on the sides and will turn to the opposite direction when 1 is pressed.

    I worked on it for a long time but ran into too many problems that can’t be understood with my current skill level (basically 0 knowledge).

    The New Project:

    After the failed attempt to make a bumper bot, I though about a new project idea, something that is not as easy but also doable.

    I asked ChatGPT for some inspiration and decided to make a small fan.

    The Intended Device

    It is basically a small fan that is powered by a small DC motor that spins when the pushbutton is pressed, and when the button is released, the fan stops.

    How doe sthe circuit work:

    • The Arduino Uno sends control signals to the L293D chip, which makes the motor spin.
    • L293D
      • Pin 16 connects to 5V on the Arduino Uno to power the. chip logic
      • Pin 8 connects to the 3V battery to power the motor.
    • The motor is connected to pins 3 and 6 of the L293D, which helps the motor spin in different directions.
    • Pin 1 of L293D is connected to 5V on the Arduino Uno so that side of the chip is enabled.
    • I made a shared ground for the GND at the second last row of the breadboard so that all GNDs are connected and is prevented from explosions or shorts.
    • A pushbutton is placed across the center gap of the breadboard and connected between pin 7 on the Arduino Uno and the ground.
      • When the button is pressed, it sends a signal to the chip to spin the motor, and when it is released, it stops the motor.

    Bill of Materials (BOM):

    ComponentQuantityPurpose
    Arduino Uno1Main microcontroller
    Breadboard1For wiring connections
    L293D Motor Driver IC1Controls motor direction and power
    DC Motor1Acts as the fan motor
    3 V Battery1Motor power supply
    Pushbutton1Manual motor control
    Jumper wires~10Electrical connections

    Circuit Diagram

    Code:

    This is my code for the small fan

    const int IN1 = 9;    
    const int IN2 = 8;    
    const int BUTTON = 7; 
    
    void setup() {
      pinMode(IN1, OUTPUT);
      pinMode(IN2, OUTPUT);
      pinMode(BUTTON, INPUT_PULLUP); 
    }
    
    void loop() {
      int buttonState = digitalRead(BUTTON);
    
      if (buttonState == LOW) {
        
        digitalWrite(IN1, HIGH);
        digitalWrite(IN2, LOW);
      } else {
        
        digitalWrite(IN1, LOW);
        digitalWrite(IN2, LOW);
      }
    }

    The first 3 lines tells the Arduino which pins are connected:

    const int IN1 = 9;  
    const int IN2 = 8;    
    const int BUTTON = 7
    • Pin 8 and 9 controls the motor
    • Pin 7 is connected to the pushbutton

    In the setup part, the Arduino prepares the pins so that:

    void setup() {
      pinMode(IN1, OUTPUT);
      pinMode(IN2, OUTPUT);
      pinMode(BUTTON, INPUT_PULLUP); // uses internal resistor
    }
    • The motor pins (9 and 8) are set as outputs so the Arduino is able to send power signals.
    • The button pin (7) is set as an input with a built-in resistor (INPUT_PULLUP), which keeps it not moving when not pressed.

    The loop will run over and over:

    void loop() {
      int buttonState = digitalRead(BUTTON);
    
      if (buttonState == LOW) {
        // button pressed → spin fan
        digitalWrite(IN1, HIGH);
        digitalWrite(IN2, LOW);
      } else {
        // button released → stop fan
        digitalWrite(IN1, LOW);
        digitalWrite(IN2, LOW);
      }
    • The Arduino checks if the button is pressed (digitalRead(BUTTON)).
    • If the button is pressed, then the Arduino sends power to the motor and it spins.
    • If the button is not pressed, it cuts power and the motor stops.

    Demonstration Video:

    • After pressing the button, the motor (fan) spins and when I release it, the motor stops spinning.

    Reflection on the Use of AI:

    I used Chat GPT as my AI to help me

    Process:

    • At first, I wanted to build a bumper bot, but it kept failing and shorting out. After I talked to AI about it and considering many suggestions, I switched to a fan which is simpler and easier for me.
    • The Ai helped me understand the logic of the circuits and explained how each component played a role in my design.

    How it worked for me:

    • The way that I asked the Ai to help me really worked for me because I am not just getting answers but rather getting suggestions and a deeper understanding for each component.
  • CAD Assignment

    For this project, I decided to go with something that is beginner friendly and something that I may be able to use. I asked AI for several ideas and I decided on creating a desk organizer that includes a stand for my phone since it is always laying around the desk not doing much.

    I started with thinking about the things that i would like to put in the organizer (since I might print it out and use it)

    A phone stand, a container for pens, a pocket for my AirPods, and a few more extra spaces for other things.

    Left tall container -> for my pens

    Center block: my phone stand (with my initials on it)

    The rectangle at the right to the middle: space for my Airpods

    Other spaces scattered around: for different little objects that I might need

    Now that you have seen the entire organizer, lets break it down part by part:

    The Blueprint:

    This shows all the parts that were used to make the organizer. The main body is shown in 4 drawings, from the front, from the top, from the bottom, and an isometric drawing.

    The Skeleton:

    This is the skeleton of the dinasor, the bones of the organizer.

    I created this by first drawing a sketch:

    You can see here I have a lot of measurements.

    • I have an Iphone 15 Pro Max and I wanted it to stand: thats why I created the slot at the top of the drwaing with a 90mm length, so that the phone can fit in and still have a bit of space on the sides.
    • I have a pair of Airpods: so I gave him a big roon, with 65mm of length and 50mm of width.
    • I dont have a lot of pens: so I just created a container with a 58mm diameter so that I can fit 3-4 pens that I use daily.

    Adding on the meat…

    From the sketch comes the extrusion of the base of the organizer, with a depth of 10mm.

    Then I extruded these 2 highlighted parts since I wanted them to come out of the organizer rather than sinking in.

    Then I exturded this highlighted part. This will be te stand for my phone and I also extruded my initials (2mm dent)to add a bit more of customization.

    I transformed the phonestand so it slants backwards and so that I am able to leave a room to put my phone in and having the stand as my back.

    Fine tunning the edges…

    These highlighted parts have been “fillet”/smoothed out. This makes the organizer safer (preventing cuts) and also makig it look a lot better than with sharp edges.

    This is a close in picture of a fillet…

    Adding on the scales…

    What I mean by scales are the plates that I add under the skeleton and the meat. This is for filling the holes so that I could actually use the oragizer.

    Without the scales:

    With the scales:

    I added the scales seperately because it looks pretty good from the bottom, instead of having just a flat base, I am able to have the plates sticking out a bit, kind of like little legs:

    Assembly:

    Assembly is where I put all of my parts together. I have 10 parts and in assembly I put them all together to create the final organizer.

    As you can see here, I used sliders to connect the base covers to the base plate.

    This is an example of a base cover that I use slider to mount onto the base plate.

    Bill of Materials (BOM):

    So as you can see here, I decided to make the organizer out of mostly PLA since it is an organizer and would need to be stable and long lasting.

    I was wondering whether making the organizer entirely out of PLA would not look that great and not really unique from the other desk organizers I can find in IKEA or Walmart.

    Then the idea of making the base plate (the Skeleton) out carbon fibber might be a good idea since I really like the sporty look of carbon fibber and it will look high end and modern.

    I also wanted the PLA to be white so that I can have some contrast to the carbon fibber and it would look good since white goes well with black always.

    Below is a picture of BOM with the mechanical drawings:

    The Final Product:

    This is an illustration of the final product in the materials that I would like it to be in.

    I feel like it is pretty modern looking and it kind of reminds me of Channel.

    I would definitely want to print it out and show it off to my friends.

    Be Sure to Check Out the New Channel Desk Organizer!

    Link to Onshape:

  • Fishing -Frenzy


    When the coding project is announced, my mind went blank. After sometime, figured that I would make something related to my interests.

    I thought about making a sports game that would allow the player to make a team and earn money fighting against other layers, but I soon realized that it will be difficult to complete with Python and my existing knowledge base.

    Shifting the gears, I decided to focus on another of my hobbies, fishing. A game that will combine mysteriousness, surprises, and most importantly money$$$!


    And here is my masterpiece:


    Code:

    https://colab.research.google.com/drive/15x2X9p3_MtEyr3D5FrMhJc9bTKJeLkzr


    Flowchart:


    1. The Game Setup:

    import random
    
    fish_values = {
        "Tuna": 20,
        "Salmon": 15,
        "Sardine": 5,
        "Pufferfish": -5,
        "Shark": -10,
        "an soggy boot": 0
    }

    This is all the kinds of fish you will be able to fish from the ocean, some of them more desirable than others.

    If you caught a pufferfish, unfortunately, you are not able to eat it and it is a waste of time, making you lose $5.

    If you fished a shark, well good luck! He is going to take your fishing rod with him and maybe some of your bait as well. A shark will make you lose $10.

    If you fished out a boot… well I dont know what to say about that, improve our fishing skills dude. You will not get anything form it.

    Other than the 3 mentioned above, all others have positive values, meaning you can sell them and earn money (Sardine: $5, Salmon: $15, and Tuna: $20.)


    2. Initial Conditions:

    player_score = 0
    total_tries = 6
    
    available_fish = list(fish_values.keys())

    This part of the code sets up the game.

    It is saying that the player will start with $0, since he did not cast his line yet.

    It is also saying that the player has 6 tries to fish out as much value as possible and the available fish = the list of all possible catches.


    3. Game Intro:

    print("What a nice day! I think I will go fishing beside the ocean...")
    print("-" * 50)

    This will display a short message to the player at the start of the game.


    4. The Fishing Loop

    for try_number in range(1, total_tries + 1):
        input(f"\nPress Enter to cast the line... (Try {try_number} of {total_tries})")
    
        caught_fish = random.choice(available_fish)
    
        fish_worth = fish_values[caught_fish]

    The player presses “Enter” to cast the line.

    A random fish is chosen from the list of available fish.

    The worth of the fish is looked up from the code before.


    5. The Value of The Catch

    if fish_worth > 0:
            print(f"Casting the line... AYYY! What a dime! I caught a {caught_fish}! It's worth ${fish_worth}.")
        elif fish_worth < 0:
            print(f"Oh shoot! A freaking {caught_fish}. Man, what a bad cast! I lost freaking ${abs(fish_worth)}!")
        else:
            print(f"Damn, {caught_fish}... To the garbage it goes.")

    If the value of the fish caught is positive, its a good catch (Earns money).

    If the fish has a negative value, its a bad catch (money lost).

    If the value is 0, its worthless (no money earned or lost).


    6. Total Up the Score

    player_score += fish_worth
    
    print(f"${player_score} in the bank!")

    Adds/subtracts fish value from the total score.

    Prints the updated balance after each cast.


    7. The Game Ends

    print("\n" + "=" * 50)
    print("Well, I better get back before lunch!")
    print(f"Today's catch is worth a whooping: ${player_score}")
    print("=" * 50)

    After the player casted 6 times, the game ends.

    Then the total value of the cast will be displayed.

    8. Calling the Function

    def go_fishing():
    ...
    
    go_fishing()

    These 2 lines of codes allow me to name and call the function, which is the whole process form casting to getting the fish.


    Reflection:

    In summary I think I did a great job on the project.

    Although it is a simple game, I think I came up with a pretty interesting idea.

    I think instead of making something to do with math or things that require great mental power, a game that is interesting and simple to play is a great way for you to relax after a long day of hard work.