Chicken-Baking Oven ControllerOctober 2017

doorDetection1 Thumbnail

Overview

I tried to build an Internet-enabled controller for my oven so that I can start cooking chicken wings even when I'm at work. The design worked out but the installation process lead to a fatal failure. More details can be found here.

Locked Door Detection SystemAugust 2016

doorDetection1 ThumbnaildoorDetection2 Thumbnail

Overview

Locked Door Detection System is an Internet of Things project that I developed to monitor the locking status of my apartment door. It is part of a DIY home security system. Details can be found here.

Solor Powered RefrigeratorSeptember 2015–Present

solarFridge Thumbnail

Overview

Imagine a refrigerator that does not consume electricity, but utilizes only solar energy. No, the solar energy is not converted into electricity by a solar panel, it directly involves in the refrigeration system and drives the cooling cycle. With no electricity in the system, the refrigerator is designed to be low-cost, environment-friendly, and maintenance-free. This refrigerator can be a life-saver, as clinics in African rural areas and earthquake-stricken places can use it to store temperature-sensitive vaccines even when there is no electricity supply.

Background

The project was initiated in September 2015. I invited Zihao Zhang and Yirong Zhang into the team, both of whom were Mechanical Engineering students at UIUC. We did background research in various refrigeration technologies in late 2015, and brainstormed several possible solutions in the stage of concept design. Nowadays we are searching for suitable chemical substances that would be used in the product, and preparing experiments to compare their thermal properties.

Solution

After comparing absorption and adsorption refrigeration, we decided to choose the latter one as the cooling mechanism. More details will be released once we finish building the first prototype.

Plan

  • Create CAD model of the prototype using Onshape, a full-cloud CAD tool that allows three of us to work collaboratively
  • Look for funding

Feel free to contact me if you are interested in any aspect of this project.

TrussMe.ioSeptember 2015–December 2015

TrussMe.io Thumbnail

Overview

TrussMe.io is a web-based statics solver for truss system. I started to work on this web app in my senior year, and finished the main part of it in late 2015.TrussMe.io allows users to input information about a 2-D truss system and it will solve for forces on each beam in the system.

Background

The idea of creating such a website came from one homework assignment in my Mechanical Design class at UIUC. In that assignment, we were given the schematics of an excavator arm with more than 20 beams connected to each other and gravity of a weight applied at the end of the arm. The target was to calculate the force applied on each joint, and to achieve that, we must calculate the force on each beam. Solving this problem by hand is extremely time-consuming and tedious, and the final result may be incorrect if any one of these 20 plus forces was miscalculated. Some of my classmates spent few days on this question because they were keeping getting bad result, while I was looking for software and web app that could help. Software often give solutions that are too complex in this case—I do not need finite element analysis to solver statics problem after all. On the other hand, most online tools do not offer quantitative solutions but rather show forces in different colors to compare their magnitude, but what I needed was the exact magnitude of the forces. So I decided to write some code. The initial program was written in Matlab, and the method was to use matrix to solve multiple force balance equations on joints. That program gave me the correct answer to the homework, and when I showed the work to my professor Stephen Downing, I told him that I can transfer this Matlab program to an online tool. The transfer work turned out to be more complicated than just "transfering", and for the following semester, I spent hundreds of hours of my spare time on it. In the end of 2015, I finally finished the main part of the web app, and published it on my personal website. Domain name TrussMe.io was bought later to make this web app looks more professional.

Solution

I tried to design this app to be sleek, elegant and ituitive. English is rarely used (except for the slogan "TrussMe, I'm an engineer"), so that even people who do not understand English can use it. Bootstrap is used as the framework of the website, with few Bootstrap plugins that enhance user experience. Math.js is the JavaScript library that allows me to handle matrix calculation. Flot, a JavaScript plotting tool with jQuery, is used to make the plot as I did in Firefly Project.

Plan

  • Balance of moment will be considered
  • Reaction forces on pin and roller will be calculated
  • Notations of beam and joint will be showed on the plot

EDO of Four-Bar Straight Line MechanismDecember 2014–May 2015

Overview

A Matlab program that uses Evolutionary Design Optimization (EDO) method to optimize four-bar straight line mechanism.

Background

Four-bar straight line mechanism is a simple four-bar structure that is capable of transforming rotary movement to psudo-linear movement. It is useful in the applications that require transformation of rotary-linear movement with limited space. Although for a long time, Hoeckens linkage is considered to be the best four-bar straight line mechanism design, no mathematical proof is given. Evolutionary Design Optimization is a method that allows computer to automatically generate and optimize designs that satisfy the requirements set by users. Since four-bar structure design is too hard to be done with mathematical tool, I decided to try to use EDO to come up with a better four-bar straight line mechanism design. I started to program in Matlab from December 2014, and showed my work to Professor Bruce Flachsbart at UIUC the following semester. He was interested in the project and willing to give me guidance along the course of the project. In May 2015, the project was done and the result offered a better four-bar straight line mechanism design than Hoeckens linkage. I was also luckily invited to be a guest lecturer in Professor Flachsbart's class, and gave a lecture to my peer students about this project.

Solution

The program at first generated 10000 four-bar linkages with random lengths. Grashof condition was applied to filter out linkages so that the cranks in the remaining linkages can complete a full rotation. All the linkages were then classified into 12 "breeds" based on the relatioship between links. Mating, reproduction and mutation occured as in typical evolutionary algorithm. In the end of the day, the "best" linkage in each breed was found (definition of "best" will be discussed later), and therefore 12 candidates entered the final competition, aka "clash of clans". In the end of the project, a better four-bar straight line linkage was found (and shown in the figure above), and its fitness score is 21% higher than that of Hoeckens linkage.

The calculation of fitness score, in other words, the definition of how good a linkage is, is critical to the final result. In this project, the fitness score is defined as the length of the straight line portion devided by the sum of the lengths of the linkage. It is defined in such way so that the best linkage generates the longest straight line with least material consumed. The calculation of fitness score can vary for different needs and therefore produce different results, but this project intends to prove a way to optimize engineering design.

More than 600 lines in Matlab were written by me and more than 100 CPU hours were spent on the project. One downside of EDO is that it requires massive amount of computing power to finish the calculation.

More technical details are involved in the project, and it is hard to present them all on the website. You may search relevant articles and videos online with keywords "evolutionary design optimization" or "evolutionary algorithm" to have a better understanding of the method. You are also welcome to contact me if you want to know more details about the project.

Firefly ProjectMay 2014–July 2014

Firefly-Project Thumbnail

Overview

Firefly Project is a website that records flight ticket price over time. This project has been paused due to similar service offered by KAYAK and other travel website, but the data is still available for review.

Nearly 820,000 international students were enrolled at U.S. colleges and universities in the 2012-13 year, and this number is increasing dramatically. Although some stay in the states during school breaks, the rest of them choose to buy plane tickets and fly back home every year. Most students know that they would leave campus one or two days after their last final exams and come back few days before the beginning of the next semester, but the question is: when is the best time to buy the ticket?

Background

As one of the international students in the US universities, I want to know when is the best time to buy my ticket, so I initiated Firefly Project, a website that automatically records the lowest price of designated flight, and plots the data out over time. Graph gives the perfect sense to user about the change of price and interactive operation makes it possible to view every detail of the plot. The website is quite analog to stock price monitor, and what Firefly Project does is just offering the information transparently and directly, while users make the decision to buy the ticket now or later.

Solution

Flot is the JavaScript library for plotting. Google QPX Express Airfare API is used for fetching price information. The data is collected everyday by server automatically at around 12:00 CST.

Others

Simunomics Hack Script

Simunomics is a massive online economics game. It has a built-in mini game called ABC, which rewards users money in Simunomics once they win the mini game. This JS script helps users win the mini game automatically, and efficiently raise up in-game income. The script is hosted here. It requires Greasemonkey (in Firefox) or Tampermoney (in Chrome) to run.