peter bowlin daniel clement trevor fine josh kline tommy sterling trevor
TRANSCRIPT
Peter BowlinDaniel Clement
Trevor FineJosh Kline
Tommy Sterling
Trevor
Mix-A-Lot OverviewCreate a device that can combine multiple
liquids in an automated fashionUses:
making drinksmixing liquid paintsmixing chemicals (not all at the same time)
Gravity-fed systemFour 2-liter bottles, with a pinch valve and flow
sensor for eachGoal: Simultaneously dispense a precise amount
of each fluid into a single cup or other container
Trevor
Levels of ObjectiveLow Level:
Easily cleanable componentsInterchangeable liquidsDispense from one bottle at a timeLEDs to indicate system state and fluid
dispensation from each bottle.Pre-made mixes selectable with buttons on the
Altera board (no touch-screen GUI)
Trevor
Levels of Objective (continued)Mid Level:
Fill precision of 1 mLSimultaneous dispensingBasic touch-screen GUICup detection (basic functionality)
High Level:More fully featured GUI
Create mixes View amount of remaining fluids.
iPhone interface via bluetoothInternet connectivity via embedded web server
Trevor
Milestone 1Structure built- DoneFirst revision PCB orderedSoftware architecture for MSP430 and Altera
FPGA completedDemonstrate valve control and flow-sensor
inputDraw button on touch-screen and receive
touch event
Peter
Milestone 2Final PCB orderedHardware systems integration completeMCU receives and executes commands from
FPGAGUI and data structures fully implemented.
Final debugging of these in process.
Peter
ExpoFunctional system
Combines appropriate liquids on commandCup detection implementedLED indicatorsTouch-screen user interface with GUIAbility to create mixes
Peter
Functional Decomposition – Level 0
Josh
Level 1
Josh
Level 2 - MCU
Josh
Level 2 - FPGA
Peter
Cyclone III FPGA
NIOS II Softcore Processor
LCD Controller
LCD Panel
Touch Panel
Flash Memory
Audio Out
Communication with I/O CPU (RS-232)
DDR SDRAM
Parallel Data
SCL
SCL
SDA
SDA
DDR SDRAM
Controller
Flash Memory
Controller
Hardware - StructureSecurely holds 4 2-liter bottlesControl column houses the 4
valves and flow metersPredrilled holes for the RGB
LEDs at each bottleNice and stable
Danny
Hardware - Silicon TubingFDA and NSF
approved food grade tubing
Low fluid friction 1.7 Liters per minute
in our structure10mm outside
diameter8mm inside diameter
Danny
Hardware - Flow Meters
Danny
•Swiss Flow meter SF800•5 volt•12-36ma•Flow rate 0.5-20 liter/min•Outputs a pulse train
Hardware - ValvesAccepts 10mm diameter
tubingSolenoid pinch valve
Operates 12VDC at 1.7A30-50 ms response time. Valve normally closedManufactured by TAKASAGO
ELECTRIC,INCPK-0802-NC-3
Danny
Hardware - Power Supply12V computer power supply powers the
valvesCurrently we have tested the computer power
supply that we have (200 Watt) with all 4 valves and it can handle them… like a champ
5V wall wart power supply will power everything elseThe rest of the circuit will require less than 1A
3.3V will be regulated from the 5V power supply
Danny
TLC 594016 PWM channelsGoing to be using
two chips daisy chained
10 RGBs total5 GPI/O to
communicateFlexible SPI
communication
Tommy
Hardware – MSP430F169I/O Controller MCUUtilized Features:
USART0 – RS232 FPGA
USART1 – SPI LED driver
30 GPIO pinsInternal DCO
Interrupt driven arch.
Tommy
Valve Control Schematic
Danny
Q9MOSFET-N
33KR35
1uFC14
Ceramic 805
213R36
GND
GND
GND
MSP Valve IO #1
Anode1
Cathode2
Anode3
Cathode4
Anode5
Cathode6
Anode7
Cathode8
Emitter9
Collector10
Emitter11
Collector12
Emitter13
Collector14
Emitter15
Collector16
Valve Optocouple2
PS2501L-4
1.17K
R37805 1/4W
PWR_GNDD8
10mA 1.8Vf
1020
R38805 1/4W
PWR_GND
PWR_GND
Q11D44H8
3.3V
12V
Q10MOSFET-N
L1Valve
100uF
C?Cap Pol1
PWR_GND
Flow Meter Circuit
Danny
2.2K
R40805
123
P18
FM #1
GNDMSP FM #1
5.1K
R41805
250
R39
5V
10K
R42805
GND
Costs
Josh
Item Quantity Price Cost PurchasedStructureMDF 1 $ 25.00 $ 25.00 Y2-Liter Bottles 4 $ 1.25 $ 5.00 YSilicon Tubing 1 $ 20.00 $ 20.00 Y
Pinch Valve - PK-4805-NC 4 $ 100.00 $ 400.00 YPaint 1 $ 10.00 $ 10.00 NElectricalIR Emitter 1 $ 2.00 $ 2.00 YIR Receiver 1 $ 2.00 $ 2.00 YFlow Meter - SF800 4 $ 25.00 $ - YLED Controller - TLC5940 1 $ 3.50 $ 3.50 YRGB LEDs 10 $ 0.20 $ 2.00 YMCU - MSP430F169 1 $ 11.00 $ - YTouch Screen CPU - Nios II Evaluation Kit 1 $ 449.00 $ - Y
PCB Layout 2 $ 60.00 $ 120.00 N
Passive / Misc. Components 1 $ 100.00 $ 100.00 N
Other Parts (Wires, Connectors, etc.) 1 $ 100.00 $ 100.00 NMiscellaneousMicriµm µC/GUI Software 1 $ 9,995.00 $ - YPresentation / Documentation (Poster, Binding) 1 $ 80.00 $ 80.00 N
Total Cost $ 869.50
Remaining Cost $ 410.00
MSP430 Firmware
Josh
Wait for Mixture
Command
Error handler
Is there
liquid?
Is there a
container
Open Valves
No
No
Yes
Yes
Pour Complet
e?
No
Mix Acknowledge
MSP430 Interrupt Handler
Tommy
Interrupt received
Which Port
Add to counter X
Check if
desired amount
Return
Close Solenoid
Port X (1-4)
Yes
No
Update Amount
Left in Bottle
Touch-Screen Control (Nios II)Provide a user interface for the system:
Use µC/GUIGUI will have three screensWill update the screens based on the status of
the machineNo longer planning to use embedded Linux
Peter
Nios II Software Functional Decomposition
Trevor
Module Draw_Screen()Inputs which screen to drawOutputs images to LCD
FunctionalityWill draw the buttons depending on which of the three screens has been specified. Will also check the status of the liquids available and decide which buttons (mixes) are available. Will check to see if screens need to be updated after every signal to the MSP430 is sent.
Module Send_Mix()Inputs liquids amountsOutputs RS-232 signal to MSP430
FunctionalityQuery MSP430 to see if there is a cup present. Check to see if MSP430 is already mixing something. If it is mixing something, push the mixture onto a queue. If it can send the mix, it sends it, it updates the amounts of liquids available accordingly, and if the mix is a drink and is volatile it will delete it. Once it sends the signal, it sets a flag that the MSP430 is busy.
Nios II Software Functional Decomposition
Trevor
Module Receive_Signal()Inputs RS-232 from MSP430Outputs none
FunctionalityThis is an interrupt. Will set the flag for the MSP430 to available. Will also check to see if there's anything on the queue. If so, will call Send_Mix()
Module Store_Mix()Inputs amounts of liquidsOutputs
FunctionalitySaves the mix and pushes it onto the linked list where the saved mixes are stored. This makes it such that the mix will be drawn when we draw screen one.
Nios II Software Functional Decomposition
Trevor
Module Mix()Inputs Index of mixtures (for linked list) OR amount for volatile liquidOutputs Calls Send_Mix()Functionality Will either find the specified mixture in the linked list, or just
sends the mixture.
Module Mix (Struct)Inputs noneOutputs noneFunctionality Has single pointer to next mix, contains integer amounts for all
liquids in the mix, name of the mixture in a string, int that says whether it's volatile or not.
Module AmountsOfLiquidRemaining (Struct)Inputs noneOutputs noneFunctionality Integer amounts of each of the liquids remaining.
Risks SolutionsSystem Noise/device
failureTime
Constraints/pipelining issuesErrors in the PCBErrors in software
architectureLack of experience with
critical components(MSP430, NIOS II
eval. Kit, µC/GUI)Tommy
Optocouple isolation
Plan for extra time on certain areas
Testing!
RisksShipping delay/wrong parts
Plan for shipping timeOrder earlyParallel planning
Fluid Leakage
Tommy
Contingency PlanningAlready canned Linux ideaNew plan: implement GUI with Micriµm Alternatives:
Bitmap images to create the GUIUse push buttons instead of touch events.
If we can’t get flow meters to work, use a scale instead with serial communication link to MSP430.
Tommy
Division of Labor
Josh
Danny Tommy Trevor Peter Josh
Structure X
Power Circuitry, Valve Control X X
PCB Layout X X
MSP430 code X X
Altera - Verilog X X
Altera - C code - User Interface X X
Gantt Chart
Josh