Home
Student Gallery
Enrollment Summer 2019 Bioinfinity (Ages 11-13) Summer 2019 NuVu at MIT (Ages 14-18) Summer 2019 NuVu at MIT Residential Academic Year Program Fall 2018 PreVu
About Us What is NuVu Calendar Team + Advisors Partners Blog Press Jobs Contact Us
Nuvu X What is NuVuX Offerings Partners
Reset Password
  • The modular robot is meant to be controlled by a person as it interacts with the environment its in. The purpose of this robot is that it is modular so you can easily attach several more arms or take off the wheels if you want to. The servos in the arms and wheels can easily be controlled by a laptop that has been connected to it and the laser can also be activated by whoevers contolling the modular robtot.

  • The goal of our studio was to think of different technologies houses might use in the future. In exploring this topic, my partners and I made a pet toy that has the ability to play with a pet when its owner is not present.

    How much free time do you have to play with your pet? We created the robotic pet toy for busy pet owners who don't have enough time in the day to set aside an hour or two to play with their dog or cat. Our toy will play with a pet even when their owner isn't present, letting the owner worry about one less thing while at the same time providing entertainment for the animal.

    There are two parts of the robotic pet toy. One of them is a ball which is able to roll around by itself without needing physical contact from a human. Inside the ball, there are two motors which make the ball move as well as an accelerometer which is able to sense the position of the ball: is it moving, being pushed, or stationary? The way the ball works is it remains stationary until an animal nudges it. When the ball senses the motion with an accelerometer inside the ball, it triggers the motors inside the ball which are activated, making the ball move around.


  • From the beginning, we were extremely interested in creating a toy that would be interactive for pets. Originally, we wanted to make a structure for cats that would supply entertainment for them. This was quickly ruled out when we realized that it would not be enough of a challenge for us considering that it would not include any coding and only a wooden structure. It was back to the drawing board for us. We eventually came to the idea of creating a ball that dogs could use to play with. This ball included a dock that dispensed a treat whenever the ball returned to it.

    We started by sketching the different elements to both the ball and dock. We had a couple different ideas as to how the ball would actually move. A couple of these ideas involved the ball moving with a weight in the center of it or the ball would have a mini cart inside of it and navigate the ball to which direction it should go to. The idea for the dock originated from the idea of the game “fetch.” Whenever you play fetch with a dog, you give the dog a treat after they return the ball back to you. So our dock would dispense a treat every time the ball was returned to its spot.

    We used the laser cutter and wood to build our prototype. When we figured out every specific dimension we wanted for the dock, we continued on modeling with Rhino to make the 3D printed parts. Some of these parts were crucial to the product because they were the actual parts we used to dispense a treat. After creating that, it was time to work on the coding.

    We used an arduino to code our dock. Since we had an exact spot for the ball to return back to, we figured it would be smart to put a switch there. So whenever the ball would return to the dock, it would hit the switch and that would signal the motor to move the auger tool that dispenses the treat.

    Originally, we created a car that would fit into a hamster ball. The way the ball would move is that the car would drive and move the sides of the ball in the direction the car moves. However, this ended up being too complicated because the hamster ball was a set size and we could only make the car a certain size given the materials we had access to. It was time for plan B.

    Our second plan was to project two rods out from both sides of the ball. These rods would have holes in both sides to perfectly fit the motor. One side of the motor was heavier than the other so when the motor would rotate, one side of the ball would be weighted down, making the ball roll as a result. At first, we tried to design a specific part to fit inside of the hamster ball. However, it soon became clear that an easier solution would be to use the 3D printer and make our own ball. We designed the ball so that it printed one half at a time with the rod protruding.

    After we had printed out both sides of the ball, we tested it with one motor, and it worked! The ball was able to move all by itself! However, it was only able to rotate forwards and back -- we needed it to move more! As a solution to this problem, we attached a servo to the original motor. By adding more weight to the original motor, we now had a way to make the ball move in whatever direction we wanted it to go.

    At this point, we thought we were all done with the ball. However, we realized that the weight of the servo itself wasn’t enough to change the direction the ball was moving. Luckily, we had another solution: the battery the ball needed to move. The battery was fairly heavy and the solution was simple: attach the battery to the servo to add weight. In order to accomplish this, we designed an other piece in Rhino that was able to hold the battery to the ball and 3D printed it. Now, we had a ball that was able to roll forwards, backwards, and side to side. The next step was simple: we wrote a code on arduino for the ball to move in a specific pattern that was random. It now did exactly what we wanted it to do -- well almost.

    There was only one thing the ball wasn’t able to do: it wasn’t able to detect what was happening to it. In other words, we wanted the ball to know when it wasn’t being played with (touched), and when there was a person or an animal that was ready to play. In order to give the ball the ability to sense its surroundings, we put an accelerometer in the ball. We then programed the accelerometer to detect if there was an outside force pushing the ball or not. With this program in place, we programed the ball to complete one full pattern (previously programed). Once the ball was stopped, it would assess the situation around it: if there wasn’t an outside force (something pushing the ball) then the program would stop until the ball was nudged. However, if there was an animal nudging it, the ball would continue to roll.

  • The central tower of the telepresence robot is where the interactive features are attached: arms, screens and cameras can all attach to this central hub and connect down into the base of the robot where all of the processors, batteries and other miscellaneous electronics are housed. We separated electronics from interactive parts of the robot for increased system stability. One of the problems with the robot's predecessor was that it would often tip over because much of the weight was placed in the "head" of the robot. In this version stability (both literal and in software) is key.

  • My initial idea was to make an in home lighting system that would tell you when to go to sleep or when to wake up. After a couple days of planning this out and starting the functions in the code, we was introduced to the idea of making a clock instead of the in home lighting system. The clock was a much cleaner way to mark the time.

    We still wanted to mark the time by the time of the light though, so we decided to combine the two. We first started off trying to create the functions we needed for the different time of day. We ended up with morning, afternoon, evening and night. We had blue for morning symbolizing to wake up, yellow for afternoon, purple for evening, and red for night. We used a potentiometer to be “time” and when you twisted the potentiometer the modes would change. This was a fast way to test if your program worked the way you wanted it to without having to wait three hours for the color to change. We had a Real Time Clock ready when all the code was done, so that the clock was hooked up to a real clock instead of going to the potentiometer every hour to change the time.

    The mechanical stuff was very easy. I had 3D printed clips that clipped into the LED strips, these clips held the LED strips in place. We had the clips around the perimeter of the circle which made it easy to form the LED strips into a circle. We had a piece of HDPE over the LED strips that helped to diffuse the light and make you not able to tell where exactly the LED’s were. On top of the HDPE we had a piece of black acrylic that blocked out the light except for what we wanted to show which were the twelve slits that marked the hour and the NuVu logo. The first time I cut out the black acrylic instead of the NuVu symbol I had an italicized font that made the hours seem to not line up, so twelve looked like one.

    We had a lot of trouble with deciding what the outside strip of LED’s should display. The outside led strip was originally to display the color of the hour, but then in the second prototype we decided we wanted to have it display the weather, if it was raining it would have a droplet effect, or if it was sunny the temperature would be displayed by the saturation of yellow. For instance if it was 100 degrees outside it would be the most yellow it could be, but if it was 0 degrees the color would be almost white light. The problem with doing the weather is that it would be really hard to retrieve the weather data from the websites. After much discussion about what the outside strip should display, we decided that it should display the minutes instead of the weather. The problem was that we had 52 LED’s, but there are sixty minutes in an hour, so we had to map the number of minutes in an hour to the number of LED’s we had. This mean that every 10-15 minutes the keep that one LED on for two minutes instead of one. We also ran into another problem when trying to make the two LED strips run off one arduino. We figured out that only 500 milliamps can flow through the arduino, and we needed two amps to power both LED strips.

    The inside strip tells the hour using two white LED’s that go around, and every three to four hours the color of the remaining LEDs change due to what time of day it is. We had a lot of trouble with the inside strip, because the code kept getting over complicated when really we only needed about ¼ of the code that was in it. We had a lot of debugging code that did not really help. For instance we had one function checked what time it was, from this it did nothing other than making the code more confusing to look at.

  • The idea for the Smart Closet was to make it easier and quicker to get ready in the morning. It is always frustrating when you look outside, put on a jacket, and go to school just for the weather to get a lot warmer. Now, you have a jacket that you do not need. The Smart Closet fixes that issue. Every morning, it checks the weather and then picks out an outfit that matches the temperature and chance of rain. For example, if it is cold and rainy, the Smart Closet will pick out a raincoat, jeans, and a long sleeve shirt. 

    In the morning, the first thing the Smart Closet will do is find the weather. Once it gets that information, it will first find a top that matches the temperature and chance of precipitation. Then, it extends out of the closet and the user will take the clothes off the hanger. The robot will then retract into the closet, and repeat this process for a shirt and jacket, if applicable. 

    There were two main parts to the Smart Closet: the robot and the track. The robot is the part that grabs the coathanger, and it moves across the track. The track holds the robot, but it also extends out of the closet once the outfit it picked by the robot. Another important part of this robot was the coding, specifically the decision engine. The clothing data is pre-programmed in the code. Each item has a range of temperature and chance of precipitation. The program will get the weather off the interent then feed that through the clothing data. The robot also knows if a shirt or bottom is taken and will not keep handing you tops when you already have one. 

    Overall, this project was long and difficult with many challeneges but we are proud with the outcome.