Liter Liquid Tending Robot Julie Lam Kevin Chang Jason Smith Andrew Jenkins Objectives Move Core Goals Extensions using tracks and motor Receive order by using Keypad and LCD Delivering an assortment of drink through controlled valves Read customer information (tab, name, preferences) through magstripe reader. Follow route using sensors. Pre-recorded voice prompts. Block Diagram SRAM LCD Keypad Path Sensor Microcontroller ROM FPGA Registers Interrupts A/D Motors Power Supply 12V_UNREG 110VAC Card Reader 15V 5V -15V Washer Valve Pumps Solenoids Status 68HC11 is up, running uC code from ROM, read/writing to RAM, communicating via RS-232 to host PC. Interrupt-driven communication. Unregulated power supply complete, provides plenty of power for washer pumps and motors (>2A). Tested with pumps – works. Motor base turns, moves, varies speed; with bench setup (not a Puerile design). FPGA- XCS10 Kevin Chang FPGA Overview XCS10 FPGA device Interface between microcontroller and ‘dumb’ peripheral devices. Chip selection based on address bus Registers for valve controls and motor controls. Interrupt detector and interrupt controller. Microcontroller-HC11 Jason Smith Hello World Test in C Interrupt Test LCD MICROCONTROLLER Store ROM information into registers Selects the LCD Outputs the ROM information FPGA Tells ROM to place information on the bus Selects LCD to receive information from the data bus Pumps MICROCONTROLLER Processes pump selection and duration Outputs above information onto the address and data buses Receives interrupt FPGA Selects appropriate pump and outputs power to transistor Uses decrementer to hold selected pump for the duration Send interrupt when finished Motor MICROCONTROLLER FPGA Controls the motor Outputs direction, inputs speed, and stop Uses direction input command to output to motor Stores speed input to the duty cycle register Uses stop command to turn off motors Light Sensors MICROCONTROLLER Performs ADC of light sensor photo transistors Processes light sensor data for path correction or stop command Outputs appropriate data to FPGA FPGA Selects light sensors Card reader MICROCONTROLLER FPGA Receives interrupt Generates XIRQ interrupt when card Reads from FPGA leaves card reader interrupt register Stores serial card Reads card data into shift information and register as card is location from card swiped data shift register RS-232 Receives and sends debugging commands to the microcontroller. High level microcontroller processes Priority queuing Priority interrupt control Processing orders Processing path following algorithm Processing card reader information Interface Circuits Pump Control Circuit Motor Control Circuit Line Follower Sensors Keypad Interface LCD Interface Motor Control Circuit Uses L293D Motor Driver DC Gear Motors Input 2x PWM signal (square wave, ~1kHz, duty cycle->speed). Input 2x direction signal. Provide motor power (12VDC, 400mA). FPGA provides PWM, direction. Motor Control Circuit +5V VCC C24 Cap .056uF +12_UNREG U11 2 7 10 15 U10A DIR_LEFT 2 1 MM74HC14N U10B DIR_RIGHT DIR_RIGHT 3 4 MM74HC14N PWM_LEFT PWM_RIGHT 1 9 4 5 12 13 IN1 IN2 IN3 IN4 EN1 EN2 GND GND GND GND VCC VC OUT1 OUT2 OUT3 OUT4 VCC 16 8 P1 3 6 11 14 LEFT_MOTOR_RED LEFT_MOTOR_BLACK RIGHT_MOTOR_RED RIGHT_MOTOR_BLACK 1 2 3 4 Screw Terminals VCC L293D C25 Cap .056uF Pump Control Circuit TTL compatible (FPGA). P-channel Power MOSFET dissipates 190mW. 6N138 Darlington Optoisolator (CTR 2000%) Pump Current Monitor • 0.05 Ohm Current-Sense resistor, common for all high-power (> 1W) applications. • LM6462 Rail-to-rail OpAmp->Current Reference • 6N135 Analog Optoisolator (CTR ~20%) Pump Control Circuit U21 PUMP1_ON VF+ Res1 3.3K NC 7 2 6 VF4 VB VO NC 5 8 U23A LMC6462AIN 2 1 3 UNREG_RTN R16 Res Adj1 VCC U22 430 VCC 8 R14 Res1 910 VB VO B1 NC 7 2 3 GND M 12VDC, 1.8A Fluid Pump 1 +12_UNREG VF+ 6 4 uP ADC 1 1 Rds(on) = 0.06 Ohm P(on)=1.8^2*Rds(on)=190mW GND 6N138 VCC Q6 IRF5210 I(on)=2mA 3 VCC R12 Res1 6.8k 5 NC VF4 +12_UNREG UNREG_RTN 4 R13 +12_UNREG VCC 6N135 Q7 2N3904 7 U23B LMC6462AIN 5 2 6 8 1 I(on)=1mA +12_UNREG 8 UNREG_RTN R17 607HR050-ND 0.05 R15 Res1 7.5 UNREG_RTN UNREG_RTN Line Follower LED current adjustable, >= 1mA LED on/off controlled by FET, TTL/CMOS compatible. Phototransistor senses light level, believe ~1mA peak current. Will add OpAmp to expand signal if needed. Uses 4 channels of CD4051 Analog Multiplexer, select controlled by FPGA. Line Follower VCC R5 Res1 2K Q1 L14G1 Res1 VCC R6 1K VCC R7 To FPGA Res1 2K Q2 L14G1 VCC U20 6 11 10 9 13 14 15 12 1 5 2 4 VCC R8 R11 Res Adj1 1K 8 Res1 2K DS2 LED0 DS3 LED0 DS4 LED0 VCC R9 Res1 2K PATH_LED_ON R10 Res1 100 Q5 ZVN4206A X0 X1 X2 X3 X4 X5 X6 X7 GND CD4051BCN Q3 L14G1 DS1 LED0 EN A B C Q4 L14G1 VCC X VEE VCC 16 3 7 uP ADC 2 Magnetic Card Reader 3 Mag Card Readers Outputs “Card Inserted” signal – used to enable the FPGA shift register Outputs “Data Clock” – used to clock the data into the FPGA shift register Outputs “Data” – the data. Magnetic Card Reader VCC U16 2 3 VCC CLS CLS_1 CSV RCP 1 4 GND RDP 5 6 RCP_1 RDP_1 V3A U17 2 3 VCC CLS CLS_2 CSV RCP 1 4 GND RDP 5 6 RCP_2 RDP_2 V3A VCC U18 2 3 VCC CLS CLS_3 CSV RCP 1 4 GND V3A RDP 5 6 RCP_3 RDP_3 To FPGA VCC Keypad MM74C922 decodes Row/Column Keypad into 4 bits data. Double buffer register. Debounce capacitor. Data available signal. Keypad U19 1 2 3 4 1 2 3 4 ROW 1 1 2 3 A ROW 2 4 5 6 B ROW 3 7 8 9 C ROW 4 * 0 # D X1 KP_16 5 8 COL 4 7 COL 3 6 COL 2 COL 1 5 11 10 8 7 6 C26 Cap 0.1u C27 Cap 0.1u 9 ROW ROW ROW ROW Y1 Y2 Y3 Y4 COL X1 COL X2 COL X3 COL X4 OSC KB_MASK GND MM74C922 D0 D1 D2 D3 OE D AVAIL 17 16 15 14 13 12 DATA BUS KEYPAD_CS KP D AVAIL FPGA LCD Interface CrystalFontz CFAH-2004A-RMC-JP 20x4 Character Display, parallel interface, red backlight LCD Interface Power and Contrast VCC X1 R19 Res Tap 15K 3 1 VDD VO 15 Res1 130 A K 6 5 4 LCD CS R/W LCD D/I LCD CS: FPGA Decoder R/W : from Microcontroller LCD D/I: Microcontroller GPIO Parallel 7 8 9 10 11 12 13 14 16 20x4 Red Backlit Character LCD VSS VCC R18 CE R/W D/I DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 2 Backlight Power DATA BUS CFAH2004A-RMC-JP Power Supply Julie Lam Power Supply Tech From ~110VAC Wall outlet, fused. One transformer from ~110VAC to 12VDC Using a bridge rectifier, diode and large cap for the circuit. Using a pre-assembled 110VA to 5VDC @ 1.8A power supply for Logic devices (with +/15 for Analog). Using an unregulated power supply for peripherals such as motor and pumps (~12VDC, > 2A). Milestone 1 1st PCB rev completed and ordered Complete and working setup for motor, pumps and other hardware Communication between microcontroller and FPGA Initial integration of motor, pumps and software controls Milestone 2 All software coded Completed integration of design Begin testing full system Timeline Parts and Costs Part Number Description Package Qty. Cost Line Cost MC68HC11E0CFN2 MM74HC373 MM74HC245AN TC74HC14AP 1N914 TC74HC08AP MXO45-8.0000 X28HC256P-90 CY62260L-70PC MAX233CPP APS16AMT 4-01-6016 KBPC804 FR306 52 PLCC 20 DIP 20 DIP 14 DIP Axial 14 DIP Microcontroller, 8 Bit HC11, ROMless Octal Latch, Tri-state, 74HC Octal Transceiver, Tri-state, 74HC Hex Schmitt Trigger Inverter, 74HC Diode, Signal Quad 2-Input AND, 74HC Oscillator Clock, 8MHz, CMOS/TTL EEPROM, Parallel 8x32k, 90ns SRAM, Parallel 8x32k, 70nS RS-232 Transceiver x 2 AC Line to +15, -15, +5 VDC Supply 24VA AC Line Transformer, 10V secondary 10A Bridge Rectifier 10A Rectifier 6800uF Electrolytic Capacitor LM317T 3-Terminal 1.5A Adjustable Regulator ZVN4206 N-Channel MOSFET, 1A L14G1 Phototransistor CD4051BCN Analog Multiplexer, 8 Channel LEDs, Path Finder, ~50mA 6N138 Optoisolator, Darlington, 2000% CTR 6N135 Optoisolator, High Bandwidth 19% CTR LMC6462AIN Dual Micropower Rail-to-Rail OpAmp, 0.5mV offset 2N3904 NPN BJT, 200mA IRF5210 P-channel Power MOSFET, Rds=0.06, Id=40A 607HR050 0.05 Ohm Current Sense Resistor, 1% NAPA 60-300 NAPA Universal Windshield Washer Pump 3/8" ID Flex Tubing, per foot Max '97 Robot Base and DC Gear Motors V3A Magnetic Card Reader CFAH2004A-RMC-JP 20x4 Red Backlit Character LCD, Parallel Total 28 DIP 28 DIP 20 DIP TO-220 SOT-223 TO-18 16 DIP 8 DIP 8 DIP 8 DIP TO-92 TO-220 Axial 1 $9.96 1 $0.60 2 $0.55 1 $0.39 10 $0.20 1 $0.49 1 $2.78 1 $16.13 1 $3.40 1 $7.45 1 $0.00 1 $3.50 1 $4.00 1 1 1 $0.65 1 $1.21 4 $1.72 1 $0.72 4 8 $0.90 1 $1.20 2 $3.10 1 $0.16 8 $1.91 1 $0.42 8 $18.59 100 $0.55 1 $159.95 3 $26.10 1 $26.53 $9.96 $0.60 $1.10 $0.39 $2.00 $0.49 $2.78 $16.13 $3.40 $7.45 $0.00 $3.50 $4.00 $0.00 $0.00 $0.65 $1.21 $6.88 $0.72 $0.00 $7.20 $1.20 $6.20 $0.16 $15.28 $0.42 $148.72 $55.00 $159.95 $78.30 $26.53 $560.22 Show and Tell Division of Labor Kevin Chang and Julie Lam FPGA pump control, motor control interfacing and Programming Jason Smith and Andrew Jenkins Microcontroller Programming and motor interfacing and