Difference between revisions of "F16: I2Coffee"
Line 213: | Line 213: | ||
[[File:uartcoffeeStateDiagram.PNG|500px|thumb|left|Figure 1. UART Coffee State Diagram]] | [[File:uartcoffeeStateDiagram.PNG|500px|thumb|left|Figure 1. UART Coffee State Diagram]] | ||
+ | <br> | ||
<br> | <br> | ||
<br> | <br> |
Revision as of 10:32, 21 December 2016
Contents
Abstract
Mixing coffee has been a part of many people in their morning. UART Coffee aims to make that process more enjoyable. UART Coffee is a coffee maker machine that allows its user to pick from different types of coffee powders and choose their desired coffee temperature.
Objectives & Introduction
The objective of this project was to create a coffee making machine that was included two microcontrollers communicating with each other. A list of high-level objectives will be listed below.
- Establish communication between 2 microcontrollers using UART
- User interaction with the machine through the use of the buttons
- Alarm user when the coffee has reached the desired temperature
- Learn to interface different I/O components with the SJSU One board
- Program servo motors to allow flow of the different coffee flavors
- Attach a cooling system so that the coffee's temperature drops if it is desired
- Add a DC Motor so we are able to stir the coffee
Team Members & Responsibilities
- Man Hin Wong
- Email: wongmanhin@msn.com
- Implementation, code development, and testing
- Mauricio Rivera
- Email: mauricio.rivera1993@yahoo.com
- Design, code development, and documentation
Schedule
Week# | Date | Task | Actual |
---|---|---|---|
1 | 11/4 | Finalize schedule and materials. | Done |
2 | 11/11 | Design schematic with slave and master board. | Done |
3 | 11/18 | Test code and enhance it. | Done |
4 | 11/25 | Debug and enhance code. | Done |
5 | 12/2 | Start building project. | Done |
6 | 12/9 | Test prototype. | Done |
7 | 12/16 | Finishing touches. | Done |
8 | 12/20 | Finalize project for demo. | Pending. |
Parts List & Cost
Item | Quantity | Cost (1) |
---|---|---|
SJSU One Board | 2 | $80 |
5V DC Motors | 2 | $2 |
5V Servos | 2 | $3 |
Shoe Box | 1 | $0 |
12V Fan | 1 | $2 |
Transistor (ST953) | 2 | $1 |
Resistors | 3 | $0.30 |
Water valve | 1 | $3 |
Water continer | 3 | $0.10 |
System Design
Design & Implementation
Hardware Design
Block diagram
Hardware Interface
Hardware Used
- Transistor (st953)
- Resistors(10Ω and 1kΩ)
- 5v DC Motor
- 12V Fan
- 5v Step Motor
- Water Valve
- Bread Board
- Jumper Cables
Interfacing
The coffee making machine uses UARTto establish communication between two microcontrollers using their Tx and Rx pins, more specifically UART2. The first SJSUOne board is used to control the motor to stir the coffee, step motor for coffee powder flow, and the cooling system. The second microcontroller is used to control the switches for user interaction and also to transmit temperature data to the first board. Since the boards can only supply 3.3V, a transistor connected to 5V was used so that the different I/O components can receive their appropriate voltage. The stepper motors have more wires than the regular DC motors, so more than one pin was needed to use them. The only non-electronic component of our design is the water valve, this is because of security measures.
Hardware Pin Out
I/O | Pin(s) | Name |
---|---|---|
Step Motor 1 | P0.29, P0.30 | GPIO |
Step Motor 2 | P1.22, P1.23 | GPIO |
Cooling Fan | P0.0 | GPIO |
Stirring Motor | P0.1 | GPIO |
Software Design
The software of this machine is designed to interact with the user so that the user's needs are met. The buttons on the board are programmed to control the options for coffee beans, temperature, and the mixing. During the UART transmission, the trasmitting board send a 10-bit message to the receiving board that includes the user's choices. After receiving the message, the receiving boards takes over and begins the coffee mixing process.
Implementation
Motors and Transistor Interface
Connecting Transitor to I/O component
- Connect power supply (5V) to bread board
- Emmitter is connected to resistor (<200 Ohms)
- Resistor connects to board's GPIO pin
- Base pin Connected to component's ground
- Component's Vcc connected to power supply
- Collector pin goes to power supply's ground
Testing & Technical Challenges
My Issue #1
Some of the GPIO Pins cannot support enough current or voltage for our I/O devices. For example, when wanting to control a motor by the board, we couldn't get it done by simply connecting directly to the board because the pin supplies 3.3V and 0.1A.
Solution: Connecting a transistor between the motor and the SJSUOne board allowed the board to have control over the device and activate it when needed.
My Issue #2
Our coffee machine encountered a problem when wanting the coffee powder to slide down to the cup. This did not let the powder get to the cup, so our design could not function correctly.
Solution: We tilted our design to a 45-degree angle to that our ramp is steep enough to get the coffee powder into the cup.
My Issue #3
We wanted to have a water control system so that our coffee machine can provide water. Adding liquids to the design can be dangerous because it can cause a short circuit and mess the entire project up.
Solution: We added a water valve to the opposite side of the circuit. This allowed enough space between any wire and the water.
Conclusion
Conclude your project here. You can recap your testing and problems. You should address the "so what" part here to indicate what you ultimately learnt from this project. How has this project increased your knowledge?
The coffee making machine was a learning experience and we learned to interface different components to the SJSUOne board.
Project Video
Upload a video of your project and post the link here.
Project Source Code
References
Acknowledgement
We would like to thank Preet and Professor Ozemek for helping us throughout the class. Also, thank Kenneth and Amy for supporting us during the days that we worked on this project. Finally, we want to thank professor Harry Li for allowing us to use Engr 268 as a working space.
References Used
List any references used in project.