Category: Uncategorized

  • 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.