Peter Bowlin Daniel Clement Trevor Fine Josh Kline Tommy Sterling Trevor Mix-A-Lot Overview Create a device that can combine multiple liquids in an automated fashion Uses: making drinks mixing liquid paints mixing chemicals (not all at the same time) Gravity-fed system Four 2-liter bottles, with a pinch valve and flow sensor for each Goal: Simultaneously dispense a precise amount of each fluid into a single cup or other container Trevor Levels of Objective Low Level: Easily cleanable components Interchangeable liquids Dispense from one bottle at a time LEDs 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 mL Simultaneous dispensing Basic touch-screen GUI Cup detection (basic functionality) High Level: More fully featured GUI Create mixes View amount of remaining fluids. iPhone interface via bluetooth Internet connectivity via embedded web server Trevor Milestone 1 Structure built- Done First revision PCB ordered Software architecture for MSP430 and Altera FPGA completed Demonstrate valve control and flow-sensor input Draw button on touch-screen and receive touch event Peter Milestone 2 Final PCB ordered Hardware systems integration complete MCU receives and executes commands from FPGA GUI and data structures fully implemented. Final debugging of these in process. Peter Expo Functional system Combines appropriate liquids on command Cup detection implemented LED indicators Touch-screen user interface with GUI Ability to create mixes Peter Functional Decomposition – Level 0 Josh Level 1 Josh Level 2 - MCU Josh Level 2 - FPGA Parallel Data Communication with I/O CPU (RS-232) Cyclone III FPGA NIOS II Softcore Processor LCD Controller DDR SDRAM Peter Control Flash Memory Controller Address Control Data Address DDR SDRAM Controller Data Audio Out SCL Flash Memory LCD Panel SDA SCL SDA Touch Panel Hardware - Structure Securely holds 4 2-liter bottles Control column houses the 4 valves and flow meters Predrilled holes for the RGB LEDs at each bottle Nice and stable Danny Hardware - Silicon Tubing FDA and NSF approved food grade tubing Low fluid friction 1.7 Liters per minute in our structure 10mm outside diameter 8mm inside diameter Danny Hardware - Flow Meters •Swiss Flow meter SF800 •5 volt •12-36ma •Flow rate 0.5-20 liter/min •Outputs a pulse train Danny Hardware - Valves Accepts 10mm diameter tubing Solenoid pinch valve Operates 12VDC at 1.7A 30-50 ms response time. Valve normally closed Manufactured by TAKASAGO ELECTRIC,INC PK-0802-NC-3 Danny Hardware - Power Supply 12V computer power supply powers the valves Currently 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 else The rest of the circuit will require less than 1A 3.3V will be regulated from the 5V power supply Danny TLC 5940 16 PWM channels Going to be using two chips daisy chained 10 RGBs total 5 GPI/O to communicate Flexible SPI communication Tommy Hardware – MSP430F169 I/O Controller MCU Utilized Features: USART0 – RS232 FPGA USART1 – SPI LED driver 30 GPIO pins Internal DCO Interrupt driven arch. Tommy Danny PWR_GND 4 - L 1 0 5 2 S P Emitter Cathode PWR_GND 9 8 1.8Vf 10mA Collector Anode D PWR_GND 8 1 1 0 Emitter Cathode 6 1 7 D N G Collector Anode Valve 2 1 5 0 2 0 1 1 L 1/4W 805 1.17K Emitter Cathode D N G 1/4W 805 3 1 4 R38 3 1 2 R37 Collector Anode 4 1 3 R36 PWR_GND D44H8 MOSFET-N Emitter Cathode 5 1 2 Q11 Q10 K 3 3 Collector Anode F u 0 0 1 6 1 1 R35 Pol1 Cap Optocouple2 Valve ? C MOSFET-N #1 IO Valve MSP 9 Q V 2 1 805 Ceramic F u 1 D N G C14 3.3V Valve Control Schematic Danny D N G 5 0 8 K 0 1 R42 D N G #1 FM MSP 5.1K #1 FM 5 0 8 R41 1 2 3 2.2K 8 1 P 5 0 8 0 5 2 R40 R39 V 5 Flow Meter Circuit Costs Item Quantity Price Cost Purchased Structure MDF 2-Liter Bottles Silicon Tubing 1 4 1 $ $ $ 25.00 1.25 20.00 $ $ $ 25.00 5.00 20.00 Y Y Y Pinch Valve - PK-4805-NC Paint 4 1 $ $ 100.00 10.00 $ $ 400.00 10.00 Y N IR Emitter IR Receiver Flow Meter - SF800 LED Controller - TLC5940 RGB LEDs MCU - MSP430F169 Touch Screen CPU - Nios II Evaluation Kit 1 1 4 1 10 1 1 $ $ $ $ $ $ $ 2.00 2.00 25.00 3.50 0.20 11.00 449.00 $ $ $ $ $ $ $ 2.00 2.00 3.50 2.00 - Y Y Y Y Y Y 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 N 1 1 $ $ 9,995.00 80.00 $ $ 80.00 Y N Total Cost $ 869.50 Remaining Cost $ 410.00 Electrical Miscellaneous Micriµm µC/GUI Software Presentation / Documentation (Poster, Binding) Josh MSP430 Firmware Wait for Mixture Command Is there liquid? No Yes Mix Acknowledge Is there a container Yes Open Valves Pour Complete? No Josh Error handler No MSP430 Interrupt Handler Interrupt received Which Port Port X (1-4) Add to counter X Check if desired amount Yes Close Solenoid No Return Tommy Update Amount Left in Bottle Touch-Screen Control (Nios II) Provide a user interface for the system: Use µC/GUI GUI will have three screens Will update the screens based on the status of the machine No longer planning to use embedded Linux Peter Nios II Software Functional Decomposition Module Inputs Outputs Functionality Module Inputs Outputs Functionality Trevor Draw_Screen() which screen to draw images to LCD Will 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. Send_Mix() liquids amounts RS-232 signal to MSP430 Query 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 Module Inputs Outputs Functionality Module Inputs Outputs Functionality Receive_Signal() RS-232 from MSP430 none This 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() Store_Mix() amounts of liquids Saves 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. Trevor Nios II Software Functional Decomposition Module Inputs Outputs Functionality Mix() Index of mixtures (for linked list) OR amount for volatile liquid Calls Send_Mix() Will either find the specified mixture in the linked list, or just sends the mixture. Module Inputs Outputs Functionality Mix (Struct) none none 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 Inputs Outputs Functionality AmountsOfLiquidRemaining (Struct) none none Integer amounts of each of the liquids remaining. Trevor Risks Solutions System Noise/device failure Optocouple isolation Time Constraints/pipelining issues Plan for extra time on certain Errors in the PCB areas Errors in software architecture Lack of experience with Testing! critical components (MSP430, NIOS II eval. Kit, µC/GUI) Tommy Risks Shipping delay/wrong parts Plan for shipping time Order early Parallel planning Fluid Leakage Tommy Contingency Planning Already canned Linux idea New plan: implement GUI with Micriµm Alternatives: Bitmap images to create the GUI Use 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 Danny Structure X Power Circuitry, Valve Control X PCB Layout X MSP430 code Tommy Trevor Peter X X X X Altera - Verilog X X Altera - C code - User Interface X X Josh Josh Gantt Chart Josh