Introduction: Cooking Assistant

The cooking assistant is a revolutionary kitchen robot designed to simplify the cooking process by efficiently arranging ingredients and accurately delivering the required amounts at the precise stages during the following of a recipe. Designed to make cooking easier and more efficient, this advanced kitchen assistant effortlessly fits into your cooking routine. Using smart technology, the cooking assistant not just helps organize ingredients but also guarantees precise dispensing, making the complex job of following recipes easier. By automating these essential aspects of meal preparation, the cooking assistant aims to redefine home cooking, making it more accessible, enjoyable, and foolproof for users of all culinary skill levels.

Supplies

The following materials are needed to make a project like the Cooking Assistant:

  • One Stepper Motor (NEMA17)
  • One Micro Servo Motor
  • One A4988 Driver
  • One Arduino Uno
  • One DHT11 Temperature Sensor
  • One LJ12A3 Inductive Sensor
  • One LCD Screen 16x2
  • Two I2C Commutator
  • One PCB Board
  • One Protoboard
  • Push Buttons
  • Jumper Cables
  • Two Capacitors (100 µF)
  • Two Resistors (1000 kΩ)
  • One Bearing
  • One Switch
  • Silicone Pump
  • One Generator
  • M4,M5 and M7 Nuts and Bolts

In order to make some parts of the prototype, the following techniques are required:

  • Laser Cutting :
  1. Material Used:
  2. 3mm MDF
  3. 4mm MDF
  • 3D Printing :
  1. Material Used:
  2. PLA

Step 1: Table of Contents

  1. Table of Contents
  2. Project motivation
  3. Requirements and Functionnalities
  4. State of the art & patent analysis
  5. Conceptual design
  6. Embodiment design (final product)
  7. Sub-systems design (prototype)
  8. Mechanical systems
  9. Circuitry & sensors
  10. Software
  11. Integration guide
  12. Demo project
  13. Critical review
  14. Sustainability
  15. Bill of materials
  16. Team Presentation
  17. Project repo

Step 2: Project Motivation

Who Will Buy The Product ?

For the developing of a successful product the market size has to be known and what the expectations towards our development are. Furthermore, knowing more about the target audience can help regulate the requirements, set priorities and improve the marketing for the final product. 

That is why a survey was made. The following questions were asked: 

  • What is your gender? 
  • What is your age? 
  • What is your occupation? 
  • How many times a week do you cook? 
  • Do you find picking small ingredients time consuming? 
  • Would you find it helpful small ingredients getting displayed for you? 
  • Would you consider purchasing the Cook Assistant? 
  • What price range would you be willing to give for this device? 

By combining data gathered form the survey a of the people interested can be extracted. This will be explained in the next section. The survey can be found using the following link: https://forms.gle/WgKBCon2pTKxHwho8

These questions are intentionally straightforward to ensure that respondents remain engaged throughout the survey. The sample size formula will provide the minimum amount of respondents needed to get to a valid conclusion: 

  • The sample size (n) is the number of individual units or observations that are included in a sample, which is a subset of a larger population. 
  • The population size (N) is the amount of people subjected to the survey. 
  • In this case the assumption was made to use the population of Brussels: N = 2,000,000 
  • The critical value of the normal distribution (Z) at the required confidence level. As seen in the Figure 1, Z = 1.96 agrees with an area under the curve from Z = -infinity till Z = 1.96 equal to 0.95 or thus 95%. 
  • The sample proportion (p) is the relative amount of a specific outcome within a group of data collected. p = 50% will give the highest sample size and so this number is chosen. 
  • The margin of error (e) gives the relative error of which the true population expects to lie. e = 7 \% is a commonly used value. 

Considering as population the city of Brussels and following this formula a minimum amount of respondents needed for the survey is n = 196. A total of 221 forms were registered at the time of writing. One of the team members got in contact with some of the respondents. All of them suggested the incorporation of a more robust ’dispensing’ feature in the product. In response to this feedback, the design was changed a bit along the way. 

In Figure 2.2 it can be seen that 60% of people that would buy the product have there age around 29 to 58 years. This result is not unexpected since the age from the people who filled in the survey was normally distributed with an average of 48 years of age. 

From Figure 2.3 it can be concluded that most of the people interested in the product, cook once a day (and thus not more than once a day!). 

From Figure 2.4 it is clear that relatively more males than females are interested in buying the product.

In Figure 2.5 it can be concluded that the amount of interested students is triple the amount of students not interested. This is particularly noteworthy, considering that one might expect students to have fewer expenses compared to, for instance, a retired individual. 

Combined Data From The Survey

In this section some of the data from the survey will be combined and plotted in a histogram. Then, some remarkable information that will later on be helpful (for example the marketing aspect of the product) will be presented. 

From Figure 2.6 we know that people who would buy the product also would give a fair amount of money for it. Since the not-blue-colored bars in the category ’would buy’ versus the ones in the ’would not buy’ are way higher. The two are thus linked. This is interesting for the interpretation of other graphs: for example in the next graph. In the category ’yes’ in Figure 2.7 around 10 times the amount of people who think the product would be helpful, also consider buying it (because of the analysis of Figure 2.6). From the last graph (Figure 2.8) we can deduct 2 groups who would buy the product: 

  • 35% of people who think picking small ingredients is not time consuming. 
  • 88% of people who think picking small ingredients is time consuming. 

These numbers only differ a multiplying factor of 2.5 which we think is not that much. 


Conclusion

The demographic cohort of interest may be summarized as follows: 

  • 60 % of participants were aged between 29 and 58 years old. The mean is a value of 48 years old. 
  • Most participants cook once a day. 
  • Relatively more males than females are interested in the product. 
  • The amount of interested students is 3 times the amount of uninterested. 
  • There exists a correlation between the people who would buy the product and the amount of money they would give for it. Meaning that the ones interested also think the product would be quite expensive. 
  • There are 2 remarkable groups who would consider buying the product: 35 % think picking small ingredients is not time consuming and 88 % think picking small ingredients is time consuming.

Step 3: Project Working Modes/functionality/requirements

Overview

Since we have our motivations clear, let's now quantify the work based on the needs of our users and the constrains that will apply to our design. First, we will set the objectives of the design. Then number our constrains and describe their importance. After that, based on the previous information we will set a list of requirements for the project and finally a list of updated requirements specifically designed to fit and test a prototype.


Objectives

Our main objective is to design an appliance capable of assisting the user during the cooking of a recipe. For that, it needs to get loaded with ingredients and then be able to select the correct ingredient based on the user's/recipe's needs and place the selected item in front of the user, also dispensing the contents or opening the lid of the container if requested. To achieve that we will set the following functional objectives:

  • The appliance has to be able to hold multiple ingredients.
  • The appliance has to know where each ingredient is stored inside it.
  • The appliance must be able to move one item to its front to display it to the user.
  • The appliance must be able to lift a lid so that the user can insert a spoon inside and get the contents of the container is asked to.
  • The appliance should be able to dispense small spices or grains form the bottom if needed.
  • The appliance should be able to dispense small amount of liquids from the bottom if needed.
  • The appliance should be able to follow a recipe.


Constrains

For the design to work as expected we need to understand the different constrains that will affect its design and functionality.


Environment constraints

The product is being designed to work as a kitchen appliance so it will work mostly on the kitchen, therefore:

  • Must be small. Since the kitchen countertop space is limited, the design cannot occupy much space.
  • Should resist high temperatures. At least should be able to withstand heat to a certain degree.
  • Should be made of food secure materials, and the containers should be highly biocompatible.
  • Can be energized by the main power supply of the house, the robot does not need a battery.
  • The containers should be washing machine safe.
  • The appliance should be recyclable.


Technical constraints

Considerations taken to direct the design and limit the workload:

  • The user will load the ingredients in the robot. Safe to say the robot will not create ingredients out of nowhere to supply the recipes.
  • The robot won't automatically recognize the ingredients. The user will provide the ingredients and at the same time set them on the system. This will ensure the correct work of the design while reducing the workload and need of sensors.
  • The appliance and its manufacturing process must generate little to no waste. To ensure an environmentally friendly design.
  • The use of energy must be reduced as much as possible. for example, the use of motors and other electronic equipment has to be reduced to make the robot light and inexpensive but mainly to waste little energy making it friendlier with the environment and the users wallet.


Financial constraints

What about budgets:

  • The robot should be accessible for the target audience.
  • The prototype will be made mostly on materials that we can obtain from the laboratory, but in case we need to buy something we will try to go as cheap as possible.


Legal and regulatory constraints

Laws and norms to follow:

  • We will follow basic kitchen appliance electronic normative.
  • We will follow dust and water resistance normative.


Project-specific constraints:

Limitations relating to the project:

  • The prototype has a deadline on 31st of December 2023 so every part of the work should be finished by that.
  • The team will be conformed by 6 people.


Prototype-specific constraints:

Limitations relating to the prototype:

  • The prototype's mechanisms will be constructed mostly of plywood and 3D printed PLA.
  • The electronics we will use will come from the available stock on the fablab.
  • Our prototype will focus on the mechanical design. Since the programing part of the project will be in constant upgrade, but in any scenario would just manage the same mechanical movements, we will prioritize the mechanisms on the design.

A summary of the constrains with a some possible means of how to achieve them is attached to this step under the name "CONSTRAIN TABLE".


Requirements

Based on the Objectives to achieve and the constrains to follow we generated a Requirement list, that is attached to this step under the name "REQUIREMENT LIST".


Conclusion

The purpose of this project is to design and prototype a compact, affordable and safe appliance that would be connected to the main energy supply of the house. And that will assist the user with the organization and selection of spices, grains and liquids in the kitchen, handing them over during recipes by dispensing, granting access (lid opening) or by simply placing the respective container in front of itself, allowing the cooking process to go smoothly. This appliance will also be easy to clean, environmentally friendly and recyclable.

Step 4: State of the Art and Patent Analysis

State of the Art

The idea of the state-of-the-art comparison is to understand the advantages and disadvantages of the developing product in the target market, contrasting it with existing products and services. To this end, an analysis of the competitors by comparing them with our product should be done.  

The analysis is divided between those products or services designed to solve the same or a similar problematic than the Cooking Assistant, sharing target audience and that will directly compete against it, these will be called "Direct Competitors". And products that, even if not in a direct manner, could satisfy the same needs the product Cooking Assistant aims to fulfil, consequently being a possible threat to the success of the development, will be "Indirect Competitors".  

Criterion selection

All the criteria selected will be related to user experience and visible features like dimensions or usability. This is because deeper physical characteristics like forces applied, or manufacturing processes do not seem to affect the overall user preference. In the same way not all information from the competitors is available, so we will focus on information that can have a direct impact on the user’s choice.  

Making use of the criteria utilized for the requirement list we can obtain a series of categories: 

  • Accessibility: Refers to how possible and how easy it is to get the product, the criteria are:  
  • Cost: As of now the most important factor since it can by itself make a product viable or not, the ability of a design to stand in common ground with products of the same category is key. For the next comparisons the cheaper the product is, the better.  
  • Country: The closest the factory or a distributor is to the target audience mean an advantage.  

  • Geometry: Refers to physical size and capacity of the parts that conform the system, such as:  
  • General dimensions: Is the height, width and thickness of the system, in this scenario is desirable for the products to occupy the least amount of space possible.  
  • Maximum Capacity: The total volume of ingredients/items the system can hold, in contrast with the previous criteria the objective is to hold as much as possible.  
  • Number of containers: The quantity of different elements that the system can contain at a time, having more would be an advantage since it would translate to more variety and grant better management capabilities to the user.  

  • Operation: Refers to the active or passive action the system to be compared does to achieve its objective. In most cases an automatic action would be easier, more comfortable and quicker for the user.  
  • Rotation movement: Is the ability of the system to rotate around its own axis, to give the user easy access to the different ingredients being held.  
  • Dispensing action: The possibility of serving the user the amount of ingredient required.  
  • Lid opening: In the case of replenishing content or getting access to big objects, the existence of a lid that would grant this action   
  • Type of ingredients: The different items that can be contained, usually granular items, spices or liquids.  
  • Smart options: The use of an app or the capacity to do smart actions such as following a recipe or recognizing voice.  

  • Maintenance: Refers to the approaches the system takes in case of cleaning, repair or replacement, to prolong its lifetime and ensure an optimal use.  
  • Interchangeable compartments: Individually handling the compartments away from the main system, so that the alternative of storing extra ingredients, changing damaged containers, and washing the compartments separately is present.  
  • Replaceable components: The possibility to change one or more parts of the system with new ones so that, if broken, the system can be functional again.  
  • Washing machine safely: The capacity of the machine to resist up to 60°C of heated water, important to make it easier to wash.  
  • Recyclable: The option of recycling a good amount of the parts of the product once its life cycle ends.  

Direct competitors

A small description of all the direct competitor to the system.  

  • SENRN - Large Capacity Storage Container: 

Inexpensive large capacity storage system that allows unmeasured dispensing of different granular, not too small ingredients like rice or cereals.   

Has the possibility of rotating, giving access to all of its 6 compartments with ease, but lacks any smart functionality since it is a pure mechanical system. The containers are part of a single piece, accessible and refillable from the top thanks to its one lid. Comes in two sizes, the one being displayed is the smallest one.   

  • LIVESGOODS - Rotating Cold Kettle:  

Super cheap beverage dispenser, made to be placed inside the fridge when needed can give you access to three (or four in the larger version) different liquids, has the ability to rotate so the user can have access to each liquid with ease and each separate container can be removed and used individually.   

  • PantryChic - smart storage system: 

Smart ingredient dispenser, capable of using different size containers, can save and recognize a large variety of grains and spices. Able to precisely dispense each spice with easy and having a mobile app to help with recipes.   

The smart storage system can only dispense one ingredient at a time and the replacement of ingredients has to be done manually by the user. There is the possibility to purchase containers, as well as to change and refill ingredients. The containers are washing machine safe and made of recyclable materials.   

  • TasteTro - Spice System:   

Multiple spice dispenser. Having 20, RFID recognizable, spices inside, can easily create mixtures for recipes in a few minutes. The precision dispensing and fast selection makes the creation of recipes a lot less hard and with the smart screen allows the user to favorite their recipes, create their own or select from more than 50 existing ones.   

The spice system pods are interchangeable, but they are sealed and cannot be refilled, needing to buy new ones each time one is emptied. As of now this prize-winning innovation is not on official sale but it's official website is still working.  

The Table 1 compares the different competitors.  

Indirect competitors

A small description of all the indirect competitors to the system.  

  • ZEVRO - Dry Food Cereal Dispenser:  

Easy and ergonomic system of dial containers with a dispensing handle each, as such this system doesn't hold a major threat to the product Cooking Assistant, but with the correct space and with enough containers this can escalate to be a competitor, since the use of containers is alike.   

Even though these containers are very cheap, the cost of shipment increases their value to more the double, this clarification is being made here but will not taken into account for the cost criterium since it will do on the country criterium.   

  • Fousenuk - Rotating Storage Rack:  

An extremely simple solution to the problematic presented by this document, a simple rotating floor gives the user access to the ingredients desired and has space for multitude of containers, given the user provides them. Nonetheless the lack of same sie containers could mean a lack of organization and having no dispensing options makes this system lackluster compared to others.   

  • Artemis - Automatic Cat Feeder:  

Not in the same category as the product being designed, but with some changes it could become a threat. The Cat Feeder has smart connectivity with a smart app and the capacity to dispense precise amounts in regular intervals, increasing the number of containers this system has the potential to achieve the same objectives as the ones presented in this document.   

  • DIOSTA - Coffee Vending Machine:  

A vending machine, apart from being a lot more expensive than any other dispensing/organizing system shown, is also a very interesting indirect competitor. Being able to dispense precise quantities, in the correct time and following multiple recipes in only part of its functionality. As a disadvantage this machine has a very complex refilling method and is very difficult to maintain.  

Conclusion

Based on the research and analysis on competitors shown above, it is noticeable that the product Cooking Assistant presents a very valid space of opportunity since it mixes the idea of organizations, easy access and smart dispensing in a way no other system in the market does. Nonetheless there have been found, disadvantages as the size, being one of the biggest appliance in its category.   

The current development should now focus on keeping the general size and the price of the system as low as possible to increase the chances of success, but based on the information provided the implementation of all the desired options on the product would give it a clear advantage over the competitors.  

Therefore, the product Cook Assistant is an innovative system, and this analysis concludes that the development should continue.  

Patent Analysis 

Lid Opener

Here are two patents that have expired (Figures 1 and 2), one in 2021 and the other in 2011, making both open for utilisation. The only distinction between them is that in the case of the first one (motorized jar opener), the jar is secured around its surface, while in the second one (Automated container closure opener), it is secured at the bottom. However, the lid-opening mechanism remains nearly identical in both patents. With the expiration of these patents, there is a certain degree of freedom to operate without being bound by legal constraints.  

Rotational Motion Mechanism

Another important aspect of the project involves the mechanism designed to generate rotational motion, allowing the selection of various ingredients. This mechanism contains a motor that drives a gearbox, generating a high-torque circular movement around the center of the system.  

In order to ensure that this concept did not copy any patents, extensive research was carried out into mechanisms similar to this project from a variety of sources. Many similar mechanisms have been identified in different systems. For example, the patent described in the Figure 3 illustrates a surgical platform which facilities rotational movement at its base. Additionally, Figure 4 represents a patent for a device that uses circular motion to seal trash bags.  

Solid Dispenser

The system was developed to offer users the flexibility to dispense the desired amount accurately. For this purpose, a mechanism capable of dispensing a specific quantity of granular/powdery products is required. Among the relevant patents, the Automated Multi-Dish Cooking Machine (Figures 8,9 and 10) stands out as particularly intriguing. This patent employs diverse dispensing methods tailored for different types of products. It's important to note that this patent is currently active.  

Possible Problematic Patents

As part of the search for patents held by potential competitors for this project, an interesting patent was found that could potentially be an issue for the design of the project. As shown in Figures 11,12 and 13; this patent describes an intelligent ingredient dispenser designed to be placed on top of a pan or saucepan, autonomously preparing complete meals based on pre-programmed recipes.  

As this functionality matches some of the main objectives, it was decided to carefully examine the claims of the patent to ensure that the system does not unintentionally replicate this concept. The most important claims of this patent are as follows:  

  • Claim 1 :  
  • Multi-ingredient dispenser comprising a base with a collection of containers and a dispensing selector. The dispensing selector comprises a central hub, a geared motor system designed to rotate the central hub, and a pin positioned around the central hub, allowing rotational movement through the geared motor system.  
  • A set of ingredient dispenser units configured to removably couple with the base receptacles, wherein each ingredient dispenser unit comprises an ingredient container and a dispensing gate, the dispensing gate comprising a hinged door and a coupling mechanism configured to engage with the pin of the dispensing selector during rotation of the central hub and transition the ingredient dispenser unit between a closed state with the hinged door closed and an open state with the hinged door open.  
  • A control unit, which functions as a computer device, equipped with a user interface. This unit plays an essential role in partially overseeing the dispensing selector and is designed to manage and execute a multi-stage cooking process.  
  • Claim 2: The automated cooking device according to claim 1, including a cooking device embodying a cooking container equipped with a heating unit and a mixing unit. The control unit partially controls the heating unit and the mixing unit.  
  • Claim 3: The automated cooking device according to claim 2, including a liquid dispenser.  
  • Claim 4: The automated cooking device according to claim 2, wherein the base is removable and connectable to the cooking device in a vertical position, at least partially above the cooking vessel. In addition, the multi-ingredient dispenser is horizontally aligned with the cooking device.  

Conclusion

After careful consideration and deliberation, the team has reached a unanimous consensus that the detailed claims mentioned above are not directly aligned with the primary objectives and goals of the current development. This understanding gives the team the assurance and confidence to continue smoothly with the design process, without fear of inadvertently reproducing or violating the specified patent claims. 

Step 5: Conceptual Design

In the conceptual design step we will translate the abstract formulation of the problem to some features with corresponding means. After discussion in the group, some means will be chosen. The others will be determined by generating several concepts. These will then be compared based on the requirements list and the final concept will be determined. 

In Figure 1, the translation from an abstract formulation (which is just the problem statement) to an essential problem formulation is depicted. This allows to build Figure 2, which summarizes all the features/functions. They are explained in Table 1, as well as all the considered means. In the beginning there were multiple means per functions but we decided these to be the best. The only thing left to do is to determine the means for the functions Dispensing liquids', 'Dispensing solids' and 'Lid opener' which will be done below. 

Four different concepts based on permutations of these means are generated. Sketches of the means corresponding to these functions can be found in Figure 3, Figure 4 and Figure 5. They can be found in Table 2. To find the ‘best solution’, each relevant requirement will be given a weight such that the sum of the weights is 1 (100 %). Comparing these four concepts based on this requirements list will give a hierarchy of the ‘best’ concept. This can be seen in Table 3. Based on this scoring, concept A is the ‘best’. However, after some preliminary CA designs, we found out concept C (second best) was easier to build. Most of the time, this is the best choice so we went for this concept.

Step 6: High-Level Design / Embodiment Design

HIGH LEVEL DESIGN

On this step we will show a diagram of the chosen concept, describe the way each part of the project relates to each other and show the initial full design on CAD. After that we will do a material and manufacturing selection for the system. 


Diagram Description

Please look at the first picture of the step (also available as a PDF at the end of the presentation with the name “HIGH LEVEL BLOCK DIAGRAM”), this diagram of the chosen concept describes the way the system should work internally, all the subsystems and the way they communicate to one another. 

  • Processor

Refers to the main processing unit or the brain of the system, in the prototype this job will be done by an Arduino UNO. This part oversees the functionality of all other subsystems, sends the commands to take actions and receives the feedback from each block. 

Apart from feedback data this subsystem receives energy from the Energy supply and the desired settings from the User.   

  • Mechanical
  • Ingredient Selection 

This subsystem is the one in charge of moving the container to the front of the appliance. 

  1. Rotation Mechanism 

The main component of the subsystem, a mechanism capable of using a motor, the movement of the motor is managed in the processor. 

  • Lid Opening & Dispensing

Subsystem in charge of granting access to the desired ingredient, the main part is the Dispensing Mechanism, and there are three types. 

  1. Solid Dispensing: is a mechanism that moves a mill inside the container, allowing a measured amount of grains or spices to come out.  
  2. Liquid Dispensing: is the same mechanism as in the previous type, but the container, instead of having a mill mechanism has a peristaltic pump, so the system is capable of dispensing liquids.
  3. Lid Opening: a mechanism that moves a handle which grabs the lid of the container and opens it. 
  • Button Layout 

A set of buttons that work as an interface with the user, they can receive the configurations of the User and send them to the processor. 

  • Electronic
  • Energy Supply 

It’s the power supply, a transformer and energy regulator that rectifies the AC power from the house into DC energy to feed the Processor and the motors separately. 

  • Sensing 
  1. Calibration with Encoder: sensor to mark position zero, the robot looks for this when being energized. For the sake of simplicity, the encoder we will use is a simple inductive sensor that will detect a metal rod on the rotating piece. 
  2. Timer: makes the robot wait until a certain time has passed before stopping an action. 
  3. Temperature Sensor: tells the temperature around the processor. 
  4. Humidity Sensor: tells the humidity around the sensor. 
  • Alarm System 

This subsystems is only to alert the user, in case of an event, error or high temperature or humidity values. We are adding this option since by normative appliances should try to be as safe as possible. 

  • Display 

An LCD display that works as an interface with the user, shows the status and messages on the appliance to the user. 


  • End User

Represents the user of the product and the way in can interact with it. 


  • Other Inputs
  • House Power 

The house’s main power suppy, normally 220V AC. 

  • Internal Temperature and Humidity 

External input, means to represent the temperature and humidity being measured. 

  • Possible Errors 

External input, means to represent a possible error being detected. 

CAD design

Attached to this step there is an STL as well as a .zip file named “FULL DESIGN”, they contain the full CAD design of the chosen concept as it is pictured in the images. To open the .zip extract it and upload it to Inventor, SolidWorks or Fusion360 using as main Assembly the file “ASSEMBLY+LID” 

Validation Tests

To validate the functionality of the system each individual part will be tested for movement individually, and later it will be assembled to test again. The only part with a movement so complex it would need extra tests is the rotational movement mechanism as it’ll hold a lot of weight, for that it will be tested at different speeds and with different amount of loads. 


Material Selection

30° and 60° Supports

The mass equation is given by: m = (B * H / 2) * t * ρ.

The constraint equation (stiffness) is: S = (C₁ * E * I) / L³.

After replacing the free variable t, the mass equation becomes: m = sqrt((12 * L⁵ * S) / C₁) * (ρ / E^(1/3)).

The material index to maximise is: M = E^(1/3) / ρ . Where it can be seen easily that we have a slope of 3 (between E and ρ) when putting the equation in a logarithmic form.

The filters that have been put are the minimum glass temperature at 50° (following the requirements list) and it has to be able to be recycled.

As it can be seen on the graph generated by Granta for the supports, the choices of the material are mostly polymers such as PS, ABS, CA, PMMA, PA, PET and PEEK. The glasses such as Silica glass have not been considered due to their excessive weight for the group’s requirements. The best choice would be the PEEK but it is not very pratical because of its huge cost. The best option out of these and one of the cheapest is the polyethylene terephthalate (PET). This polymer is used in many applications such as packaging and textiles. It has a lot of advantages but the most useful for the cooking assistant is its huge strength compared to his low density.

Containers

The mass equation is given by: m = A * L * ρ.

The constraint equation is: F / A < σ_y.

After replacing the free variable A, the mass equation becomes: m = (F / σ_y) * L * ρ.

The material index to maximise is: M = σ_y / ρ. Where it can be seen easily that we have a slope of 1 (between σ_y and ρ) when putting the equation in a logarithmic form.

The filters put to obtain the most suitable material for the containers are the following:

  • Minimal melting point : 50°C
  • Water (fresh and salted) : Excellent
  • Wine : Limited/Acceptable/Excellent
  • Acetic Acid : Limited/Acceptable/Excellent
  • Citric Acid : Limited/Acceptable/Excellent
  • Vegetable oils : Excellent
  • Recycle : YES

The melting point has been put and not the glass temperature because even if the material becomes like rubber, it can still store the ingredients without breaking till the melting point. The filters helped the group to reach to the best material. As it can be seen on the graph, only 2 materials are suitable for the containers. The PEEK is the best option but it is rejected due to his very high price. The group will proceed with the choice of the PET.

Gears and Rotating Disks

The mass equation is given by: m = A * L * ρ.

The constraint equation is: S = (C₁ * E * A³) / (12 * L³).

After replacing the free variable A, the mass equation becomes: m = sqrt((12 * L⁵ * S) / C₁) * (ρ / E^(1/3)).

The material index to maximise is: M = E^(1/2) / ρ. Where it can be seen easily that we have a slope of 2 (between σ_y and ρ) when putting the equation in a logarithmic form.

Not many filters have been put for the gears except the glass temperature and the recyclability following the requirements list which are: a minimum of the glass temperature at 50° C and the recyclability. The glass temperature has been chosen over the melting point because it comes before, at a lower temperature. Even though it didn’t start melting, it becomes viscous like a rubber and for gears, it would not be efficient. Another reason to choose the glass temperature is that the metals don’t have this transition temperature so it eliminates this kind of material which are heavy and makes too much noise when used as a gear.

The choices are the PA, PEEk and glass. The glass is not the best solution on the long term and the PEEK which looks the best is too expensive. The group goes for the PA (polyamides, Nylons) which is the most used plastic for spur gears.

Solid Dispenser

The mass equation is given by: m = A * L * ρ.

The constraint equation is: S = (C₁ * E * A³) / (12 * L³).

After replacing the free variable A, the mass equation becomes: m = sqrt((12 * L⁵ * S) / C₁) * (ρ / E^(1/3)).

The material index to maximise is: M = E^(1/2) / ρ.

The filters put for the solid dispenser are the same than the ones put for the containers.

The choices were again mostly polymers except glass that is rejected due to it’s huge cost and density. Between the PEEK, PET, tpPVC and PC. The polycarbonate (PC) has been chosen because of its strength and its cost which is not too high compared to the best option which is the PEEK.

Lid

The mass equation is given by: m = L * l * t * ρ.

The constraint equation is: S = (C₁ * E * l³) / (12 * L³).

After replacing the free variable t, the mass equation becomes: m = sqrt((12 * L⁵ * S) / C₁) * (ρ / E^(1/3)).

The material index to maximise is: M = E^(1/3) / ρ.

The filters put are the as the support of the containers. One more filter has been put on the density around 1200kg/m3 to eliminate too heavy and expensive materials such as the titanium and aluminium. The metal foam can also be rejected due to his high cost. The polymers have been chosen for their high weight to strength ratio and the final choice is the PET for his very low price. The PET is used by some companies for packaging or covering so the lid made in this material will nicely cover the ingredients.

Bottom Support

The mass equation is given by: m = ρ * L * A.

The constraint equation is: F / A < σ_y.

After replacing the free variable A, the mass equation becomes: m = C₁ * (ρ / σ_y).

The material index to maximise is: M = σ_y / ρ.

The filters applied to the selection of the material for this support are the following:

  • Minimal melting Point : 100°C
  • Flammability : Non-flammable
  • Recycle : YES

Flammability has been added to filter some materials that could be dangerous in case of fire such as the wood. The melting point has been chosen because unlike the glass transition temperature, it doesn’t eliminate the metals and something very solid is needed in order to support the weight of the whole product. A plastic could also be used which is the reason the melting point has been put higher than in the requirements list (50°C with tolerance) so that the glass temperature is also high enough for the plastics in the options.

It can be seen on the graph that only metals are the best options. The wrought magnesium alloys has been chosen because it is the less heavy and has a high elastic limit. The chosen metal is also very cheap compared to the other options which are titanium, aluminium alloys and steel.

Step 7: Design of Sub-Systems

Mechanical Systems

Requirements

The main action of the robot is rotating a big cylinder. On this cylinder a total 12 small, 6 big or a combination of small and big containers should be carried when rotating. This rotational movement should be fast (faster than 60 deg per second) for a pleasant user interaction. A second requirement is the opening and closing of the lids. Since the lids are not heavy (smaller than 100 grammes), the motor needed for this job doesn’t have to be a big one. The last requirement is the dispensing part. This comes down on rotating a T-shape 180 degrees. 


Conceptual design: preliminary concepts and selection

As mentioned before, the concept with the following most important means: 

  • The peristaltic pump to dispense liquids 
  • The water mill to dispense solids 
  • The horizontal lid opener 

Embodiment design: manufacturing and assembly

The assembly can be found in the CAD design in the attachment below. The long cylinders are long screws. It is just a matter of placing the nuts at correct heights so that the nuts plates that rest on them are at the correct height. In the attachment the real, final design is also in there. It might be interesting to see the difference between them. 

The different parts of this project have been manufactured in a smart and efficient way.

  • Support of containers (30° and 60°) :

This piece has been modeled in a CAD software and 3 layers have been created in order to laser cut. 4 holes have been put also on the piece in the CAD design even if it could be done with a drill machine after the piece being produced but it will not be too precise. The wood of 4mm of thickness has been used for all the layers so it gives some space between the bottom and middle layer for the container to be fixed in easily. Indeed, the bottom part of the container has a small piece of wood of 3mm in order to be fixed smoothly in the support. To conclude, the laser cutting technique has been used because of its large cutting range and because it is less time consuming than the 3D printing for this piece specially.

  • Solid dispenser :

This part has been produced with the 3D printers because of its complex shape and we needed something very stiff so it does not break dispensing the ingredients.

  • Liquid dispenser :

This part has also been done by 3D printing it because of its complex shape and because the PLA is a better solution to be in contact with water than the wood. The small liquid container has also been done in plastic instead of wood like the other containers because of the same reason, it has to contain liquids.

  • Dispenser mechanism :

It is the piece that rotates the star of the dispenser in the container. It has been done in plastic as it needs to have a high strength-dimension ratio : it needs to be small but very stiff and not break. Due to his small size, this piece did not take much time to be 3D printed.

  • Support of the dispenser mechanism :

We needed something on where we could put the Dispenser mechanism which is linked to the motor to rotate the star on the containers. A layer of wood was enough and was a better solution than the plastic as the laser cutting technique is not time consuming and the 2D shape was quite complex with some holes everywhere so it would have taken too much time if we went with 3D printing the technique.

  • Lids :

The lid has been 3D printed because of its complex mechanism with the arms and the part that would stick the lid on the container. Even if a small layer of wood could have replaced the plastic lid, it would have been very difficult to create the mechanism of the lid opening and closing while sticking on the container.

  • Lid opening mechanism :

The small piece that moves the lid while controlled by a servomotor has been made in plastic due to his complex shape and his very small size. Some layers of wood have been put around this small piece in order to stick everything together and for this piece to go up and down to close/open the lid.

  • Rotating disks :

The gears in the rotational mechanism set have all been done in wood. The main reason was that the laser cut technique is time saving. It has been considered that this need to function for a long time, it must be stiff so a good thickness has been chosen for this set.

  • Disk to place the triangular support of containers :

This part has been manufactured through the laser cutting machines because of its large dimension and its simple shape. A few layers of 3mm thickness wood has been put on the product and when needed, we added one more layer to increase the stability which could not be done or would not be too efficient if we went for this disk to be in plastic (3D printed).

  • Disks to be placed in the bottom of the triangular support :

Theses pieces are mostly here for the assembly of everything together. Due to their large size and with several holes in it, it has been laser cut.


Final CAD design

The final CAD design can be found in the last step in the OneDrive. 


Circuitry & Sensors

1.Requirements 

the purpose of the robot is to be able to dispense ingredients from a particular recipe chosen in advance from the robot's interface menu. For each ingredient, it must be able to allow the user to choose the required quantity manually or automatically, but also to make the said ingredient available at the right time as provided by the chosen recipe and pre-stored in its memory. For our prototype, we choose to pre-save three different recipes in the robot's memory. In addition, given the safety requirements for all food equipment, the robot must be capable of protective power-down at certain temperatures. 

Based on the different mechanisms chosen and explained in the previous sections, the robot needs two motors to control the various rotary movements involved in the automatic dispensing mechanisms for the ingredients stored in containers designed by the team, a temperature sensor, a position sensor to locate the position of each ingredient on the rotating disc, a third motor for the opening and closing lid mechanism and a microcontroller to manage all of them togother. 

2.Design process and considerations of components

It is important to note that the group did not have all the components needed to achieve the best version of this project. A table can be found in the images.

In order to be as efficient as possible, we have divided our electrical needs into several sub-problems, studying the different solutions available to us. 

a. Planetary gears and rotating disks : torque and motor needed  

One of the primary considerations in choosing the 'central' motor for the robot's rotation is precision. For ingredient distribution purposes, we need to rotate either 30° or 60° depending on the type of containers. Additionally, we also aimed for the motor to provide enough torque power to overcome the friction forces generated by the planetary geartrain and the bearings implemented in the center of the robot. 

The torque calculation is performed as follows: 

Tmotor needed represent the torque needed for the rotation, and Tfriction denote the torque opposing rotation due to friction. Applying the theorem of angular momentum to the rotating bodies: 

I * (d2θ/dt2) = Tmotor needed - Tfriction

Where: 

  • I is the moment of inertia around the axis of rotation, 
  • θ is the angular displacement, 
  • t is time, 
  • (d2θ/dt2) denotes the second derivative of angular displacement with respect to time. 

The model used to estimate the friction in this equation is by assuming the motor will need the highest torque when starting. This means the static friction has to be overcome. Thus: 

Thus let's note that Tmotor needed = (1 / (safety factor)) * Tmotor given (the actual torque of the motor) and Tfriction = µstatic * m * g * (Dbore / 2) where m = mdiscs + 6mbig container . We consider the large containers because if we manage to derermine the torque required for rotation in this case, the torque will be largely sufficient for the small containers. 

By applying the formula of steiner : 

I = Idiscs + 6Ibig container + 6mbig containery2  

Where y is the distance from the center point of the rotating disc to the middle point of the big containers and the ‘inertia moment of the discs’ is just the inertia of all the disc the central motor needs to carry. When assuming the containers are filled with water (mass density around 1000 kg/ m³), an estimation of I = 0.4 kg m² was obtained. 

By assumating I * (d^2 θ/dt^2) = I * (Δθ/(Δt)^2), it follows that Tmotor needed = safety factor * ((I * (Δθ/(Δt)^2)) + µstatic * m * g * (Dbore / 2)). 

We aim to achieve a rotation of 60° in 1 second, so Δθ = 60° and Δt = 1 second. The coefficient of static friction = 0.05.Normally this value should be smaller but when receiving the bearing, it did not spin very well as expected (reference : "Bearing - friction"). Finally, the safety coefficient is 2, which means that the maximum load permissible is half of the breaking or malfunctioning load. As a result we have a torque needed of around 2 Nm. 

When it came to the motor selection, we had the choice between a DC motor and a stepper motor, ensuring that for each case, we choose a motor capable of providing sufficient torque. Given that precision and controllability were significant factors, the team opted for a stepper motor, specifically a NEMA 17(cf Figure Stepper motor NEMA17). This motor provides ample power for the robot's requirements and, importantly, is available in the initial project material stock. However, controlling such a motor is done using a driver, in our case, an A4988 (cf Figure A4988 and Thermic device), which comes with the stepper motor. Reference & tutorial : "How to control a stepper motor with an A4988 driver

b. LCD screen : 

An LCD Display 1602A with I2C module were used to show the interface's robot because of its simplicity and its cost. . Its description corresponds to a 2-line by 16-column display, allowing a total display of 32 characters, which is sufficient for our needs. The I2C module allows a considerable reduction in the number of cables required for various connections between the LCD and the microcontroller, which is not a negligible advantage. (cf Figure : LCD screen16x2 with a I2C module). 

c. Temparature sensor : 

We have several option for this requirement depending on the accuracy, the range of values and also the cost. The DHT11 has proven to be more than sufficient in terms of precision and measuring capability additionally, its includes an NTC thermistor, a humidity sensing component inside and all of the necessary supporting circuitry, so it can be used straight out of the box. Reference & tutorial : "DHT 11 sensor"

d. Position sensor :  

The idea is to set the 'zero' position of the stepper motor to a chosen point. This is aimed at facilitating the rotations from one container to another. For this purpose, we use an inductive sensor that, during the start-up motor rotation, must detect a thin metal piece fixed on the stationary part of the robot at a specific location. Once the sensor detects the metal piece, the motor stops, and then the robot, using the same motor, begins its rotations towards the ingredients starting from this stationary position called the home position. The Inductive Sensor LJ12A3, is the one we've chosen for this task due to its precision and the ease with which we implement it in the code. Reference & tutorial : "Inductive Sensor LJ12A3

e. Mirocontroller : 

There are several microcontrollers capable of effectively managing and executing the program for our robot, including the Raspberry Pi, ESP8266, and ESP32. However, considering the cost, available resources, accessibility, and the actual needs of the robot, the team opted for an Arduino Uno since its hardware and software tools are open-source. Here is a lot of examples of the working principles of an Arduino Uno

f. Opening/Closing lid system: 

According to the mechanism designed for the opening and closing of the containers, a servo motor is the most considered choice for the proper functioning of this mechanism since it requires a 180-degree rotation in one direction for opening and in the opposite direction for closing, with a torque requirement of less than 1 Nm. Reference & tutorial :"How to use a servo-motor ?

g. Solid dispensing system : 

The mechanism consists of an actuator and a prismatic object with a header shaped like a cross, which the actuator rotates by 180° to dispense the ingredient grains from the container. For this, the actuator is linked via a toothed pulley to the shaft of a motor. The motor must provide enough torque because depending on the ingredient density, the actuator will require more or less power to rotate the cross. Moreover, considering the mechanism, the motor also needs to be as precise as possible because, similar to the case of the central rotation, the actuator moves by a 180-degree rotation a certain number of times based on the desired quantity. This is why we opted for a NEMA 17 stepper motor paired with the A4988 driver, allowing us to control the power supplied to the motor for this task. 

e. Power Supply : 

A PSU (power supply unit) which provides at least 12V DC voltage and 2.5A of current combine with a DC to DC Buck Converter LM2596 to convert the tension from 12 to 5V for the Arduino to work .

3.List of components

·      1x Arduino Uno

·      2x Driver A4988

·      1x Temperature sensor DHT11

·      1x Inductive sensor LJ12A3

·      1x LCD screeen display 16x2

·      1x I2C module PCF8574

·      4x Push buttons

·      1x Protoboard

·      1x PCB board

·      2x Stepper motor (NEMA17)

·      1x Micro servomotor

·      4x resistors (110kohms)

·      2x Capacity (100µF)

·      1x LED

·      1x Switch (TE Connectivity SPST, On-None-Off Rocker Switch Panel Mount)

·      1x DC to DC Buck Converter LM2596 (needed but not implemented)

·      1x PSU 12V; 2,5A

4.Circuit

The pdf file « prototype cooking assistant circuit » shows every details.

5. Code flow diagram

The robot's operation sequence is as follows: When the robot is started using the switch, a message appears on the screen prompting the user to choose a recipe. Once the recipe is selected from the three available options, a message asks for the arrangement of each ingredient on the robot. User input and validation of choices via the interface are done using push buttons ("up", "down", "validate", "reset"). Once the encoding is completed, the central stepper motor rotates until the inductive sensor detects the thin metal, then stops and begins rotations for distribution. The temperature sensor, when powered, provides measurement information, and if the temperature inside the robot exceeds 40 degrees Celsius, a white LED lights up, and the robot stops.

Depending on the type of container on which the ingredients are placed, one of the two additional motors comes into play. The servo motor activates if there's a large container, while the second stepper motor activates for the rest. Each recipe is stored as a table in the code, consisting of ingredient names.

Cf Figure code flow diagram and the pdf file « code flow diagram ». 

6. Arduino Code

Each subsystem, taken separately, operates with the parameters and instructions given to it. Unfortunately, we were unable to test the entire final code for the robot's operation as outlined in the code flow diagram. Nevertheless, we have various tested codes for demonstrating the different mechanisms established. 

a. Arduino code for the servo-motor:

This code activates the servo motor to open the container and asks the user if he has finished closing the container. 

#include <Servo.h>   //Include library for the servomotor
#include <Wire.h> // Include wire library
#include <LiquidCrystal_I2C.h> //Include library for the lcd screen


Servo my servo; //creates a servo object to control the servo motor
int position_servo = 0; //variable to store the servo position
const int i2c_addr = 0x27; //depending on the type of module you have in our case it was pcf8574
LiquidCrystal_I2C lcd(i2c_addr, 16, 2); //creates a lcd combined to a i2c module

const int buttonPin = 7; //the pin of the "validate" push button
int buttonState = 0; //state of the "validate" button

void setup(){
myservo.attach(8); //the pin of the servo motor
lcd.init();
lcd.backlight();
pinMode(buttonPin,INPUT);
}
void loop(){
// opening the lid
myservo.write(0);
for(position_servo =0; pos <= 140; position_servo++){
myservo.write(position_servo);
delay(15);
}
// the user had to enter if he is done or not
lcd.clear();
lcd.setCursor(0,0);
lcd.print("have you finished ?");
buttonState = digitalRead(buttonPin); //reading of the button state
if (buttonState == HIGH) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("closing lid");
//closing the lid
for(position_servo > 140; positon_servo = 0; po}
}


b. Arduino code for the dispensing stepper motor :

This code displays the message asking the user to enter a number using the "Up" and "Down" buttons on the LCD screen. Once the number has been validated with the "Validate" button, the stepper motor rotates according to the number entered, each number corresponding to 180 degrees.

#include <Wire.h>
#include <LiquidCrystal_I2C.h> // Include the library for the lcd display and the I2C module
#include <AccelStepper.h>


LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address of the LCD (module pcf8574)


const int buttonUpPin = 2; // Pin for "Up" button
const int buttonDownPin = 3; // Pin for "Down" button
const int buttonValidatePin = 4; // Pin for "Validate" button
#define motorInterfaceType 1 // type of driver for the stepper motor in our case it was A4988
#define dirPin 2     //set the dir pin (direction of the rotation)
#define stepPin 3 // set the step pin (impluses send to the motor)
int turns = 0; // Number of turns entered by the user


AccelStepper stepper(motorInterfaceType, stepPin, dirPin); // Stepper motor configuration


void setup() {
  lcd.init();
  lcd.backlight();


  pinMode(buttonUpPin, INPUT_PULLUP);
  pinMode(buttonDownPin, INPUT_PULLUP);
  pinMode(buttonValidatePin, INPUT_PULLUP);


  stepper.setMaxSpeed(1000); // Set max speed of the stepper motor
  stepper.setAcceleration(500); // Set acceleration of the stepper motor
}


void loop() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("How many turns?");
  lcd.setCursor(0, 1);
  lcd.print("Turns: " + String(turns));


  // Entering the number of turns using Up and Down buttons
  if (digitalRead(buttonUpPin) == LOW) {
    turns++;
    delay(200);
  }
  if (digitalRead(buttonDownPin) == LOW && turns > 0) {
    turns--;
    delay(200);
  }


  // Validating the entered number of turns
  if (digitalRead(buttonValidatePin) == LOW) {
    lcd.clear();
    lcd.print("Starting turns...");
    delay(1000);


    int steps = turns * 180; // Calculate steps for stepper motor based on turns (180 degrees per turn)
    stepper.moveTo(steps); // Move the stepper motor
    while (stepper.distanceToGo() != 0) {
      stepper.run(); // Run the stepper motor until it reaches the desired position
    }


    lcd.clear();
    lcd.print("Finished!");
    while (true) {} // Stay in this state until reset 
  }
}


c.Arduino code for the central stepper motor + inductive sensor and DHT 11 temperature sensor :

This code integrates the AccelStepper library for controlling the stepper motor, the DHT11 temperature sensor library, and checks the inductive sensor for metal detection. It stops all operations if the temperature exceeds 40 degrees Celsius.

#include <AccelStepper.h> //Include library for the stepper motor
#include <DHT.h> //Include library for the DHT sensor
#define DHTPIN 2  // Pin to which DHT11 sensor is connected
#define DHTTYPE DHT11 // Type of DHT sensor


DHT dht(DHTPIN, DHTTYPE); //creates a DHT object


// Define stepper motor connections and parameters
#define motorInterfaceType 1
#define dirPin 2
#define stepPin 3
#define stepsPerRevolution 200  // number of steps four the NEMA 17
AccelStepper stepper(motorInterfaceType, stepPin, dirPin);


// Define inductive sensor pin
const int inductiveSensorPin = 3;


void setup() {
  Serial.begin(9600);
  dht.begin();

  // Setup stepper motor parameters
  stepper.setMaxSpeed(1000);
  stepper.setAcceleration(500);


  pinMode(inductiveSensorPin, INPUT);
}


void loop() {
  float temperature = dht.readTemperature(); // Read temperature from DHT sensor


  // Check if temperature exceeds 40 degrees Celsius
  if (!isnan(temperature) && temperature > 40) {
    stopAll(); // If temperature exceeds 40°C, stop all operations
  } else {
    // Check inductive sensor for metal detection
    int inductiveSensorValue = digitalRead(inductiveSensorPin);

    if (inductiveSensorValue == HIGH) {
      // Metal detected, stop motor and wait for 3 seconds
      stepper.stop();
      delay(3000);


      // Rotate stepper motor 30 degrees to the left (anti-clockwise)
      stepper.moveTo(stepper.currentPosition() - stepsToMove(20));
      while (stepper.distanceToGo() != 0) {
        stepper.run();
      }
    }
  }
}


// Function to convert degrees to steps for the stepper motor
long stepsToMove(float degrees) {
  return degrees * (stepsPerRevolution / 360.0);
}


// Function to stop all operations
void stopAll() {
  stepper.stop();
}



d.Arduino code for the LCD display 16x2 combine with a I2C module :

This code manages the LCD display, allowing the user to choose a recipe among three options using push buttons ("Up", "Down", "Validate"), then select a salt position between 1 and 12, and finally simulates a loading process before providing an option to reset back to the initial state.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>


LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address of the LCD


const int buttonUpPin = 2; // Pin for "Up" button
const int buttonDownPin = 3; // Pin for "Down" button
const int buttonValidatePin = 4; // Pin for "Validate" button
const int buttonResetPin = 5; // Pin for "Reset" button


int recipeChoice = 1; // Recipe selection (default 1)
int saltPosition = 1; // Salt position (default 1)
bool recipeChosen = false; // Variable to track if recipe is chosen
bool saltPositionChosen = false; // Variable to track if salt position is chosen


void setup() {
  lcd.init();
  lcd.backlight();


  pinMode(buttonUpPin, INPUT_PULLUP);
  pinMode(buttonDownPin, INPUT_PULLUP);
  pinMode(buttonValidatePin, INPUT_PULLUP);
  pinMode(buttonResetPin, INPUT_PULLUP);
}


void loop() {
  if (!recipeChosen) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("choose your");
    lcd.setCursor(0, 1);
    lcd.print("recipe");


    // Recipe selection
    if (digitalRead(buttonUpPin) == LOW) {
      recipeChoice = (recipeChoice == 3) ? 1 : recipeChoice + 1;
      delay(200);
    }
    if (digitalRead(buttonDownPin) == LOW) {
      recipeChoice = (recipeChoice == 1) ? 3 : recipeChoice - 1;
      delay(200);
    }
    if (digitalRead(buttonValidatePin) == LOW) {
      recipeChosen = true;
      delay(200);
    }


    lcd.setCursor(0, 1);
    lcd.print("Recipe: " + String(recipeChoice));
  } 
   else if (!saltPositionChosen) {
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("position of");
   lcd.setCursor(0, 1);
   lcd.print("the salt?");


    // Salt position selection
    if (digitalRead(buttonUpPin) == LOW) {
      saltPosition = (saltPosition == 12) ? 1 : saltPosition + 1;
      delay(200);
    }
    if (digitalRead(buttonDownPin) == LOW) {
      saltPosition = (saltPosition == 1) ? 12 : saltPosition - 1;
      delay(200);
    }
    if (digitalRead(buttonValidatePin) == LOW) {
      saltPositionChosen = true;
      delay(200);
    }


    lcd.setCursor(0, 1);
    lcd.print("Salt: " + String(saltPosition));
  } 
    else {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("loading...");


    // Simulated loading time with delay
    delay(2000);


    if (digitalRead(buttonResetPin) == LOW) {
      recipeChosen = false;
      saltPositionChosen = false;
      delay(200);
    }
  }
}

Step 8: Integration Guide

Easy step by step guide to integrate subsystems 


Step 1. Container

The container is a hexagon made of 6 laser cut 3 mm sheets put together, and a 3D printed Lid connected by a 3D printed hinge to the hexagon. Don’t forget to add a 3 mm screw to the end of the lid’s effector so that it can work as a handle. 


Step 2. Dispensing Mechanism

Consist of four parts, three 3D printed shapes and a 3 mm laser cut sheet. The three parts are a mill like actuator and its compartment (top and bottom), the sheet comes at the bottom and works as a lock with the cup holder. The middle part moves freely inside its compartment, all the other parts are fixed together with 4 screws. All of this comes under the Container as shown in the image. 


Step 3. Cup Holder

Three 3 mm laser cut sheets, put one on top of the other and fixed with screws, create a locking system to keep the container + dispensing mechanism in place. 


Step 4. Rotation Mechanism

As shown in the image, first place 3 long screws on the laser cut base, then place the stepper motor and fix it with screws to another sheet on top. 

After that add the special rotation bearing to the same top sheet of the stepper motor and carefully add separators, the sun and planet gears of the planetary gear set.  

Then fix the other side of the bearing to the inverted gear and finally the cup holder fixer. 


Step 5. Lid Opener

The Lid Opener is very straight forward, there is a F shaped actuator connected to a spur gear fixed to a servomotor. To secure the movement the guide is made by placing laser cut sheets together like in the image. Both side sheets are 4 mm, and the rest is 3 mm. 


Step 6. Dispensing Actuator

There is a special 3 mm laser cut sheet that places a 3D printed T shaped actuator to the right distance of the dispensing mechanism of a container, put the T piece in the sheet and the motor. After that the motor to the T shape with a belt. 


Step 7. Integration

The sheet where the dispensing actuator is located has holes to fit in the same 3 long screws of the rotating mechanism and also space for the lid opener. To put them in the correct position just add the necessary number of separators between the planetary gear, then the hall sensor and the Dispensing actuator so that the actuator is at the correct height to activate the dispensing mechanism. 


Step 8. Cabling + Electronics

All pieces have holes for cables, just pass the cables of the motors in-between the planetary gears thought the cable holes to the bottom of the system and use the space at the bottom to connect the electronics needed.

Step 9: Demo Project

Step 10: Project Review

Reflecting on the project, a few standout points come to mind. First off, the way we distributed the workload was spot on. Team collaboration was on point, making sure everyone had a fair share and keeping things running smoothly.

Now, for the "could be better" part, introducing some intermediate deadlines could be a game-changer. It's like adding signposts along the way, giving us clear markers and avoiding that last-minute hustle we all know too well.

Another thought is about wrapping things up a bit earlier say a week before the final deadline instead of just one day. That extra time could be a game-changer, allowing for a more relaxed review and polish, and avoiding the nail-biting scenario of handing in an unfinished project.

Looking ahead, if time were on our side, the programming to detect when the user is ready to dispense would be a cool addition. It's one of those things that could take our project to the next level.

So, in a nutshell, some parts went really well, but we have to acknowledge some were too. However, we have the opinion the project has high potential and we are dreaming about future work on the subject.

Step 11: Sustainability

Sustainability emerges as an important consideration, even in the early stages of prototyping, shaping conscientious decisions for an eco-friendlier product. Notably, some sustainable choices were naturally incorporated when prototyping. For instance, plywood was provided for laser-cutting, a sustainable alternative to other materials like plexiglass or plastics. The adoption of PLA in 3D printing further aligns with sustainability goals, as PLA is recognized for being a biodegradable and compostable type of elastomer. 

In the design phase, deliberate choices were made to enhance sustainability, exemplified by the incorporation of interchangeable containers and supports, enabling the replacement of specific components, extending the lifespan of the robot and minimizing environmental impact. 

Looking ahead, the prototype offers a foundation for continuous improvement with additional opportunities for sustainability integration. Future enhancements could involve exploring protective measures for critical elements, such as the implementation of safeguards to prevent damage to DC and stepper motors in the event of excessive current.

Step 12: Bill of Materials

The prototype can be made for around 115 euros but the total cost of the prototype is 170 euros when the power supply is taken into account.

The volume of filament of PLA used to 3D print the pieces has been taken from the Prusa Software for each piece. Knowing that the cost of 1 kg of PLA is 23.98 euros and the total mass that has been 3D printed is around 0.15 kg, the total cost of the material can be found and is equal to 3.52 euros.

The total area that has been used to laser cut some pieces has also been calculated. Knowing that 5 euros is the price of 0.88 m^2, the price can be found for 1 m^2 which is equal to 5.68 euros. Then the total area used (0.37 m^2) can be used to calculate the price of the wood used (2.12 euros).

Step 13: Team Presentation

Léon Borremans

Hi, I am a 21-year-old electro-mechanical engineer currently rocking the master's program at BRUFACE after acing the bachelor's scene at VUB last year. Passionate about projects, i thrive in hands-on work, bringing theory to life. Watch out, the future of electro-mechanical innovation! 🚀


Salman Memon

I am an electro-mechanical engineering master student enrolled in the BRUFACE program at ULB and VUB. I learned a lot during this project especially in CAD software, laser cutting and 3D printing since I mostly worked on mechanical conception. Thanks to my coding skills, I was able to bring some help for the LCD and Arduino. We had a complete group, and it was interesting to work with people that have different backgrounds.


Rodolfo Prieto Maldonado

1st Year Student from the MSc in electromechanical engineering of the BRUFACE program in Belgium. International student from Bolivia, with a previous engineering degree in Mechatronics. During the project my main job was the design of the rotational and lid opening mechanisms, as well as having a big role in the conception and development of the product. My favorite part of the project was having access to the laser cutter, being able to design with such an interesting constraint for the prototype was really fun. 


Ariel Kriss Sany

Hi, I'm an electromechanical engineering student currently enrolled at ULB, specializing in robotics. I've always been fascinated by the blend of mechanics and electronics. My passion lies in creating autonomous systems and I aim to work on enhancing robots' adaptability in the future.


Loubna El Baz

I am an electromechanical engineering student in the BRUFACE program. I mostly worked on the different kind of containers presented in this project.


Guillaume Crohin

I am an electromechanical engineering student in the BRUFACE program. I worked on the LCD and on the liquid dispenser.

Step 14: Project Repository

All the files can be found at: Cook Assistant CAD's