Bubble Bobble Arcade Game
As a freshman at Rose-Hulman, I took an Object-Oriented Software Development course with Dr. Hewner. This course challenged my ability to identify, formulate, and solve cs problems as a team. My team was constructing by three people, and we were tasked with creating a bubble bobble arcade game through Java and presenting our game to the other members of the class and staff members. The presentation file can be found to the right.
We collected the information into a UML class diagram, used inheritance and interfaces to help us organize the responsibilities, and then we implemented, commented, and tested our code cycle by cycle. My role in the arcade game team was to build a hero that can move, jump, land, or fall on platforms, and shoot bubbles and two kinds of monsters that can also move in a reasonable way and shoot bullets. The most challenging part of the project was the collision. My solution was to check the horizontal and vertical movements separately. I supposed the hero was attempting to move left and down, and at this moment, I checked whether the horizontal or vertical movement would cause a collision. After we finished the basic function, we added more features to our game including changing brick colors, invincible for two seconds after respawning, the game can be paused by players, and active graphics for the hero when the time is running out for trapping the monsters and fruits. This project highlights my problem-solving skills as I believe solving complex problems in a systematic and logical way is important for a computer science student.
Python Robotics
During my Freshman Year at Rose-Hulman, I took Introduction to Software Development with Dr. Mutchler. The final project for the Python part of this course is to implement a GUI for robot control that includes reacting to another robot’s motion, and the standard is to be able to follow another robot around a track.
I had two teammates in my team and we were tasked with writing codes of Python to make robots do different commands including connecting and disconnecting from the robot, driving our robot directly at the specified speeds, line-following, sending our motion information as we move, responding to another robot’s motion in traffic, and playing a very short song. Our program was separately on a different milestone. My role in our team was to implement the IR communication. The IR sensor on the front of the robot can receive a single byte of information from another source, like another robot, the docking station, or a virtual wall. Moreover, the robot can repeatedly send a single byte out of its IR transmitter. Between the two, I wrote codes to make two robots to communicate with each other, and I implemented a very simple protocol to help two robots navigate in the traffic, so they do not hit each other. During the whole process, I communicated frequently with my other two teammates since this is my first cs project, so we spent a lot of time together to solve a problem and made many meetings to perfect our code. By implementing this project and recording the video, my communication skill is improved and It is important for a computer science student to communicate well with his teammate since he needs to explain how to solve a problem that requires interaction with other employees or customers in the future.
Editor Tree Project
In my Sophomore year, one of the most complex projects was the Editor Tree project for Data Structures and Algorithms class. This project requires us to write methods of a class that could be the “behind the scenes” data structure used by a text editor.
Editor Tree project tasked us to insert an array of characters in a form of the height-balanced binary search tree. I complete this assignment with the other two teammates. During the project, we implemented all of the methods whose stubs are provided in the Edit tree code, including adding characters at the end of the tree, deleting characters at given positions, getting node’s positions, and calculating the height and size of the tree. All of these methods needed to be implemented in editor Tree and node class. Since this project required all teammates did the same amount of work, so we assign our work equally in the whole process. My job in this project was to finish the four rotations of the binary tree. I wrote codes for single left rotation, single right rotation, double left rotation, and double right rotation. These rotations were important since they were used in every other method function. The greatest challenge I faced in this project was to implement a new tree that contained all of the elements of this tree whose positions are larger or equal to the given character’s position, and this method should be done in O(log(n)) time. At first, we can only finish this split method in O(n) time, but we finally solve this problem by changing the nodes of the tree to be recursive. From this project, I gained additional practice with team skills. Moreover, I designed my algorithm ahead of time and learned how to use the debugger, which helped me prepared for my future career as a computer science engineer.
Mobile Application: Be My Eyes
During my Sophomore year at Rose-Hulman, I took a class called RH330 Technical and Professional Communication with Dr. Summers. In this class, my teammates and I were tasked with designing a mobile app that solves problems in reality and giving a presentation to students.
My team had four people, including Yuanning Zuo, Husam M Altoona, Garrett T Buccelli, and me. We chose to design the app of Be My Eyes because we truly think this app can help blind people to better connect with the world. We built a user scenario to describe our user’s interaction with this product, and we wrote an overall usability test to determine how well the product works, whether it is easy to use, and how users experience difficulties they have using the product. Furthermore, we designed a graphical protocol for our app to better illustrate the functions of our app, which including a home page to start, emergency 911 call, and guide users using voice command. All functions in our app can be opened using a voice command and our text was set to reverse color since the target of our users were people with vision problem. My role in our team varied on a different phase of the project we were implementing. We created a google document so that we can write together with one idea comes. If we were going to design for the protocol or prepare for our presentation, we made meetings to make sure everything was finished. In the final presentation, my job was to introduce the future development of the BME project which including a larger detecting range, currency recognition, special volunteer organization collaborative, and more trained volunteers. Our presentation content can be found on the right. This project helped me prepared for how to design an app, how to work with other people, and how to conquer one problem in a group. I believe both communication skills and team-working skills can get me prepared for my future career as an engineer to work as a group.
HRC Project
During my Sophomore year at Rose-Hulman, I took Circuits, Software Development, and Societal Impact Design Studio with Dr. Brackin and Dr. Watt. In this course, I worked with three team members which included Jesus Capo, Noble Jones, and Steven Xia to implement the HRC project. In this project, our client desires to mop and sweep the break room at the HRC in addition to his current tasks (cleaning the fridge, cleaning tables, etc.), but he is not able to perform additional tasks due to his inability to recall the next task he must complete. To resolve this, he currently asks people in the room what his next tasks are, but this is not a long-term solution for him since he is not fully satisfied with his performance and it also bothers the people he requests assistance from.
In this project, we used design processes including empathy map, problem statement, benchmarking, needs, stakeholders, and features to help us thinking ideas. The solution incorporated many of the interests we discovered by interacting with our client, his coach, and the HRC staff, such as his interests in gumball machines, coins, John Deere, the color green, patterns, and games. However, the primary hurdle we had to overcome was garnering his interest in the device since at multiple points during the design process, he seemed reluctant to change his work habits. Finally, put all of these ideas together, we built our first models on Solidworks. It was a Recall-O-Coin machine which has a coin slot on the top and a spin button in the middle. Each coin represented one task that our client needs to finish, and after he finished one task, he had to put the coin in and turn the spin button to get his next coin, which has his next task on the coin, so he had to repeat this action until he used all of the coins. After printing the model out, we figured out that the coin slut was too small to fit the coin, so we fixed our model and printed it again. During the second time of printing, we found out that the material used to hold the coin is too thin and soft to withstand the pressure of the coin, so we changed the model again and again to improve its functionality. Finally, we printed out our final version, which showed in the pictures, and gave it to our client hoping that it can really help our client.
Individual Project: Sterilamp
During my Sophomore year at Rose-Hulman, I took Integrating Electrical, Software, and Society Systems with Dr. Brackin, Dr. Watt, and Dr. McCormack. Because of the spreading Coronavirus in the year 2020, I decided to design a product that can sterilize people’s personal belongings that people can use at the home. I created my model on Solidworks that consisted of two parts. The first part is the top of the lamp that has a hemisphere is connected to a pillar, and the second part is the base of the lamp that has a “Z” shape groove so that the top pillar can rotate up and down, and the base is the place where people can put items on and disinfect them. Then I glued UV light strip on the top of my product which can be controlled by remote control. In order to make my product more intelligent, I cooperated my model with Arduino UNO and Arduino sensors like Buzzer, Real-Time Clock module, LCD screen, and Infrared Receiver together so it can be automatically and regularly disinfected the items. Through coding the Arduino sensors, the UV light can be turned on and off by remote control, and a real-time clock module can realize the count-down function. Moreover, the date and left time will be shown on the LCD screen so that people can check the time if they want. This project practiced my design, modeling, and coding skills, and I believed that these skills can get me prepared for my future career as an engineer to work as a group.
Timer Project: The diamond
During my Senior year at Rose-Hulman, I took a Product Design course with Dr. Watt and Dr. McCormack. One of the projects for this studio was to design a board game timer that can support four players. In this project, my teammate Steven Xia and I were going to design a manufacturable injection molded case which included PCB, Batteries, sensors, magnets, screen, and touch-sensitive button inside to support the functions.
To start brainstorming, we analyzed SET (social, economy, technology) factors and used the style and technology positioning map to help us identify the opportunities for board game timer in the current market, and we also did the SWOT analysis to compare the classic chess clock, DGT Pyramid 4-Player Game Timer, and DGT Cube 4-Player Game Timer. Next, we created a lifestyle board to target our customers which were students and friends’ groups, and we analyzed our potential customer’s needs and requirements. We also explored our value opportunities in four ways were Ergonomics, Aesthetics, Emotions, and Personalities. Finally, we decided that our product needs to be easy to use, visually pleasing, has a sense of adventure, and takes up little space. Therefore, we start to conceptualize our first drafts which were a Trophy and a Diamond (shown on the right). The trophy can promote the player's sense of adventure and excitement while the diamond was better to manufacture. Finally, since the two concepts had the same functions and features, we decided to use a diamond because it is easier to manufacture in injection molding. As you can see in the picture, the diamond has a screen on top with a touch-sensitive button in the middle which was used to start, pause, resume, and switch player through connecting Bluetooth with the phone, and the screen was used to display the remaining time for each player and there was a buzzer sensor to remind player when time is up. We also added magnetically levitation to lift the timer so that the screen can be seen from any angle. Moreover, we wanted our product to look like a shining diamond suspended in the air waiting for the winner to take it up. The final assembly parts are shown on the right. We designed several bosses on the housing to hold separate parts tightly. Finally, we got a quote from the Protolab webpage and did the final changes according to the manufacturing errors.
From implementing this project with my partner, I learned more about the interactions between design and manufacturing from the designer’s point of view. Moreover, during the design process, my communication and modeling skills also get improved.
Want to know more? Follow the link:
jiangnanxia.weebly.com
Dream Project: Cats' Shelter
During my Senior year at Rose-Hulman, I took the Product Design course with Dr. Watt and Dr. McCormack, and we will spend five weeks to identify and complete a design project that will impress our dream employers. In the design process, I started with creating the function and detail scope to determine the scope of the project and the level of completeness, tangibility, and detail that include in this project. Then I used the table of options and the decision document to help me refine the model of the functionality that is needed by the detailed elements of my design. After figuring out the functions and features of the project which including provide food and water, provide a warm and comfortable sleeping place, has a small entrance, water-resistance housing, and entertainment function, I started to analyze the visceral, behavioral, and reflective level of emotional designs with different stakeholders. The final assembly model is shown on the right. As you can see, the model includes two Polycarbonate shells on the top and bottom. I used eight rods and screws between two shells so that it can be assembled tightly. Moreover, in order to add entertainment, I created scratchable doors as the entrance of the shelter and a heating pad in the bottom so that cats will not get cold during winter. When the doors are closed, the shelter is in an enclosed system that can preserve heat, and when the doors are opened, it created a fine ventilation system.
After creating the first solid model, I used benchmarking, house of quality and math models to compare and improve my design. I also analyzed the draft angle, wall thickness, and undercut in Solidworks in order to satisfy the manufacturability of Polycarbonate.
Dyson Grand Challenge Project: Engineering Puzzle
During my senior year at Rose-Hulman, my teammate and I implemented Engineering Puzzle in the course of ENGD240 Human-Computer Interfaces Design Studio. We were inspired by the NAE Grand Challenges for Engineering and choose personalized learning for further exploring. In this project, we created engineering puzzles that allow aspiring engineers to learn fundamental mechanical engineering concepts through both fun and practical experiences. Our puzzles pave the way for a future where all mechanical engineering education is supplemented with effective hands-on experiences. There are four engineering puzzles which are phone stand puzzle, pulley system puzzle, pendulum puzzle, and coin vault puzzle. The picture of each puzzle is shown on the right. Each puzzle includes pieces that the user can play with to learn each engineering concept, instructions to help guide the user on their journey of discovery. The pendulum puzzle uses sensors to measure the period of a designed pendulum which allows the user to explore the relationship between the period and the string length. The user can learn moments from the phone stand puzzle via building and changing physical arrangements of the system. The pulley puzzle introduces different types of pulley systems to the user, and the coin vault puzzle incorporates gears and an expanding pulley mechanism so the user may build a functional vault while learning about gears and relationships between gears. In this project, my role in the team is modeling leader although we all have individual puzzles. During the nine weeks of designing Engineering Puzzle, I learned how to write minutes, an effective way to record meetings, my communication, and team-work ability has been improved by working with my teammates, and I am more familiar with the design process from brainstorming, sketching, stakeholder-analyzing to modeling, testing and finishing up, also including many documents writeup and video taking. I also really appreciate the support my teammate gave me because of the Covid-19 sometimes we have to work remotely, and we are all satisfied with our final project.
Links to my teammates' portfolios:
Pendulum Puzzle: jesuscapo.weebly.com
Phone Stand Puzzle: jiangnanxia.weebly.com
Coin Vault Puzzle: https://nman423nj.wixsite.com/portfolio
Senior Design - The Office Robot
Rose-Hulman Career Services staff that are working remotely want the opportunity to have a physical presence and interact with on-campus personnel. We created a robot that can be controlled remotely to navigate the Career Service Office. Remote staff will be able to log into the robot remotely and click on destinations on a digital map of Career Services or take manual control of the robot. The user will also be able to video call via a Microsoft Surface mounted on top of the robot to facilitate communication with on-campus personnel.
Rose-Hulman’s Office of Career Services faculty that are working remotely want the opportunity to have a physical presence and interact with on-campus faculty.
-
Create a robot that can be controlled remotely to navigate the Office of Career Services and allow telepresence through video conferencing software.
-
Remote personnel will be able to log into the robot remotely and click on destinations on a digital map of Career Services or take manual control of the robot.
-
The user will also be able to video call via a Microsoft Surface mounted on top of the robot to facilitate communication with on-campus faculty.
Co-op Experience in Horizon Robotics Company
In my senior year, I worked as an assistant engineer in Horizon Robotics Company during practicum class. Our company is a technology company that builds and provides AI chips for automotive intelligence like self-driving cars. In the past two years, our company started to develop its own automotive products like the smart delivery robot and self-driving bus. My first project was developing the self-driving delivery robot in the mechanical engineering department. We are planning to develop a robot that can deliver food, package, or stuff in the hospital without and operator. For example, the food delivery robot will be able to carry meals to a specific delivery point and then notify and consumer when their food has arrived, which makes the delivery process more efficient and safer. However, if the robot is stuck in an obstacle, we can take control of the robot remotely in certain situations.
In my workplace, I mainly used Solidworks and Simens NX software to generate 2d and 3d models of robot components like grippers, actuators, and different kinds of sensors and motors. I will measure the device and create models of connectors between different components using computer software, and then assembly parts together to ensure the joint can function correctly.
Moreover, I also revised the engineering drawings of robot parts based on the data of factory feedback. The feedback will include a table that displays data of different measurements labeled of length, width, and angles. I will compare the data before modification and then make corresponding changes to the 3d models.
The combination skills of modeling, programming, electrical and mechanical allow me to better communicate needs and results between mechanical and software professionals.
For my next step, I am planning to continue pursuing career in robotics field because I am interested in working with a number of different disciplines including engineering, computing, and artificial intelligence. By using ideas from all of these different field, robotics is able to provide creative solutions to many problems. For more information, please check the slide on the right :)