Home

THE B.O.S.S.

image

Contents

1. 20 2 2 2 0 02 2 2 23 14 Project Schedule in GANNT Chart Form 1 oerte 27 15 Xpp 5 5 Budge o Ne FELIS EORR PONE MR REC 28 Introduction In recent times there has been a growing demand for efficiency and time saving techniques in every aspect of society From faster internet to at home grocery delivery consumers have grown accustomed to rapid delivery of goods and better use of their time On a recent trip to a grocery store it became evident that this is an industry that is behind the times of recent technological advancements While some grocery stores have recently added self check lines to their stores there still is a need for a more rapid way to check out By creating a device that will allow the consumer to ring up grocery items while they shop we will be able to alleviate the current problems facing grocery store checkout Such a system would not only cut down on the consumer s time spent in the store but would also allow the grocery stores to cut back on the amount of cashiers needed Problem Statement and Objective Grocery stores need a way to decrease the bottleneck effect that often occurs at checkout lines The Buyer Operated Shopping System will provide grocery stores with a solution to this problem by allowing customers to scan and total their items as they shop The Buyer Operated Shopping System is a shopping cart contained appa
2. L1 3 39 Pin DB Female Connector Digikey A2100 ND essi Comer i L1 3 3 JCDProgammingPot Digikey A9043 ND L2 3 6 tuF Ceramic Capacitor Generic 7 2 3 6 J22pFCeramicCapactor 7 03544 13 13 Sm Green Limex SSLDXSESSGD AT L1 3 3 5 22 5514 509007 12 L1 3 3 112 596 Resistor L1 3 3 3 3 5 Resistor G2 G2 G2 Co Co Co Co Go Go Go 100 Co C2 Source code for BOSS Project Digital Scale include lt 16f 870 h gt fuses HS NOWDT NOPROTECT NODEBUG NOBROWNOUT NOLVP NOCPD NOWRT duse delay clock 10240000 use rs232 baud 9600 xmit PIN C6 rcv PIN C7 void main int i min max value float sum avg printf Sampling setup port a ALL ANALOG setup adc ADC CLOCK INTERNAL set adc channel 0 min 255 max 0 value 0 sum 0 0 avg 0 0 for i 1 1 lt 10 i delay ms 100 value Read ADC sum sum float value if value min min value if value gt max max value avg sum 10 0 printf f MIN u MAX u AVG u r min max int while TRUE Source code for BOSS Project Digital Scale Standard Header file for the 16 870 device device 16 870 nolist Program memory 2048x14 Data
3. if stremp list entry text 0 printf MATCH Nn DEBUG while r lt sizeof session list sizeof session list r strcpy session_list r session_list r 1 r Then the text view box is updated with text_view_update entry If the item is being added to the session_list then item_count is incremented and the total is updated item_count total total priceLookup entry_text 14 Digital Scale The digital scale built for the B O S S Project uses a pressure sensor to measure the weight of an object and outputs over RS 232 an 8 bit number between 0 and 255 A circuit schematic PCB layout and parts list have been included in the Appendix The digital scale was built using three primary components which will receive further attention later in this section The pressure sensor a piezeo electric resistor which when pressure is applied to it drops its resistively with a linear relation to the pressure applied This sensor changes from approximately 1 2 kOhms to 15 kOhms as pressure is applied to its plunger When set up as the first resistor in a voltage divider an analog DC signal is produced This DC voltage signal corresponds directly with the pressure that is being applied across the sensor The second component is the PIC16F870 microcontroller this IC performs Analog to Digital Conversion ADC on the DC analog signal obtained from the sensor samples the signal and performs mathematical o
4. QUU De De diy 29 BIBLIOGRAPHY eee eoo reae pe ieu conden VERSER Fed envie yn de 30 APPENDIX Backoroitul iie eee E reno sn nave wo RES 31 32 APPENDIX II User s Manual eee e eee ere rs oo rr sacscases ou due 33 38 APPENDIX III Source Code e ean ett ssa MES wa veo Eo ken aun 39 47 APPENDIX IV Scale Information ce 48 54 Lists of Graphics Graphic Page 1 Prototype Illustration 22i or eR eae ye Woda eon 3 2 A ystemomplfied Sclemoatie E pease PEE Yea Ud 5 3 Graphical User Interface Screen tero Un Y EEDER RE 7 4 Barcodes in the Produce Aisle css c ove shay re 8 5 Recipe Examples ier teda EA EP xx dE E REG 9 6 B O 3 5 Designated eine 10 Te Simplified Scale veo y axe noo Eye ev y I5 8 Graphical User IBterface nadie dr Dass ep 17 9 Power SUDDIV eee 19 Cart Gharemnp Uns ooo oH DORIA Macks 20 LT Display SOC ation sit rb tenore be axes 21 coser oh ee Eh c ola datas pedet 22 13 Monitor Scale and
5. can be labeled as anti union The decreased need for checkout employees at grocery and other retail stores makes our project business management friendly but also represents the majority of the social political and ethical considerations of our project 2058 Task Descriptions The work tasks needed for the successful completion of the project were shared between the members of the B O S S team the major tasks of each participant can be found below Bill Leslie Designed a graphical user interface GUI worked with the power aspects of the project and cart fabrication Erik Loftis Designed the digital scale from the pic programming to the design on the PCB and worked with the power aspects of the project Dustin Mendes Designed team website worked with the power aspects of the project early work with the digital scale and cart fabrication Brian Momeyer Designed the graphical user interface GUI the backend computer code worked with the power aspects of the project and the product database Design Schedule All major systems developments and project milestones were completed on time which ensured a successful finale to the B O S S A Gantt of our last semester s task can be found below As seen the system in its entirety was completed by our end of semester demonstration This project has taught the members of the B O S S how to set development goals and work towards an end product The members will
6. O S S only designated line OF 2 Once the cashier tells you to click on the button labeled Checkout with the touchpad mouse Recipes 1 Check weige accept weige 3 The cashier will now ask you for your choice of payment 4 You will now be instructed to return the B O S S unit and pick up your deposit 38 Appendix III Callbacks c Brian Momeyer Fall 2004 This is where the magic happens the backend the callbacks These assign functions to all the widgets in the interface define TRUE 1 define UPC_MAX_LENGTH 20 define DESCRIPTION_MAX_LENGTH 90 define 120 define PRICE MAX LENGTH 7 ifdef HAVE CONFIG H include lt config h gt endif include lt gtk gtk h gt include lt stdio h gt include lt stdlib h gt include lt sys types h gt libs for Unix file I O include lt sys stat h gt include lt fentl h gt include lt unistd h gt include callbacks h Glade stuff include interface h include support h const char DATABASE barcode_database txt define MAX_ITEMS 100 change later or not whatever define ITEM_LENGTH 100 seems reasonable const char SESSION_DATABASE_NAME session_database txt Hard drive is going out I probably should use an array to hold the session list FILE session_database float priceLookup char int descriptionLookup int retu
7. O S S to utilize this database file were written in C last semester to be standalone executables but are now integrated into the backend of the B O S S coding to decrease response time When an entry is made into the UPC code text entry box a callback function is executed that first checks to see whether the remove item mode flag is set then executes the pricelookup function returns the price and also adds the description string to the array of items session list already in the cart There are preventative checks to make sure that the UPC code is valid and that a user cannot remove an item not in the cart The session list array is dynamically updated containing only the items currently in the cart We chose to use an array to submit The B O S S hard drive to as little stress as possible and also since an array can be searched much more quickly than a text file residing on the hard drive this results in a faster response time for the user The actual database file is not updated dynamically but can be updated if new items are added or deleted from inventory Being tab delimited the database file can be easily updated using Excel or any other spreadsheet program The total and text view box which lists all items currently in the cart along with a scroll bar if the item list increases past the height of the window are also dynamically updated after each UPC input If an item is removed the item s entry in session list is remo
8. RAM 128 Stack 8 48 22 Analog Pins 5 Data EEPROM 64 Seratch area 20 ID Location 2000 Fuses LP XT HS RC NOWDT WDT NOPUT PUT PROTECT NOPROTECT DEBUG Fuses NODEBUG NOBROWNOUT BROWNOUT NOLVP CPD NOCPD NOWRT LITLI ILLL LLIA TTT TTT TATA TTT TTT TTT TATA TTT IIU 1 0 Discrete I O Functions SET TRIS x OUTPUT x INPUT x PORT B PULLUPS INPUT OUTPUT LOW OUTPUT HIGH OUTPUT FLOAT OUTPUT BIT Constants used to identify pins in the above are define PIN 40 define PIN Al 41 define PIN A2 42 define PIN A3 43 define PIN A4 44 define PIN A5 45 define PIN BO 48 define PIN B1 49 define PIN B2 50 define PIN B3 51 define PIN B4 52 define PIN B5 53 define PIN B6 54 define PIN B7 55 define PIN CO 56 define PIN Cl 57 define PIN C2 58 define PIN C3 59 define PIN C4 60 define PIN C5 61 define PIN ue define HH HH HH HH HM Useful defines define FALSE 0 define TRUE 1 define BYTE int define BOOLEAN short int define getc getch define fgetc getch define getchar getch define putc putchar define fputc putchar define fgets gets define fputs puts VI RR OMS ETAL E A A Control Control Functions RESET CPU SLEEP RESTART CAUSE Constants returned from RESTART CAUSE are define WDT FROM
9. Weight with the touchpad mouse The item and its cost have been added to the grocery list 5 If desired weight was not accomplished return to step two and proceed again 6 To continue shopping click on the desired button with the touchpad mouse Removing a Previously Scanned Item 1 Click on the button labeled Remove Item with the touchpad mouse rz NES Cekwegr apwe meme SS ma E ST Scan item s barcode that you wish to remove with the barcode reader Remove the item from your cart The grocery list and total have now been updated To continue shopping click on the desired button with the touchpad mouse a Recipe Look Up 1 Click on the button labeled Recipes with the touchpad mouse xj rosa ene 2 This will then pull up the recipe look up table 3 Click on the recipe that you wish to see with the touchpad mouse and the ingredients will be displayed wage ete 4 continue shopping click on desired button with touchpad mouse E m Item Locations 1 Click on the button labeled Locations with the touchpad mouse 2 This will then pull up a list where you can select the item that you are looking to locate with the touchpad mouse Checking Out 1 When finished shopping proceed to the B
10. a system that would speed the checkout process In 1967 RCA installed one of the first scanning systems at a Kroger store in Cincinnati The product codes were represented using Silver and Woodland s method of circle styled barcodes The success of the RCA Kroger code led to the food retail industry agreeing on a need for a standard coding scheme that could be adopted by all equipment manufacturers food producers and product dealers In 1969 Logicon Inc by request of the NAFC began working on a design that would standardize the barcode system The results of Logicon s work were Parts 1 and 2 of the Universal Grocery Products Identification Code UGPIC which was presented in the summer of 1970 Based on the recommendations of the Logicon report the U S Supermarket Ad Hoc Committee decided on a Uniform Grocery Product Code Three years later the Committee recommended the adoption of the UPC symbol which is still used in the United States today The UPC symbol was submitted by IBM and developed by George Laurer whose work was a direct outgrowth of Silver and Woodland s earlier idea In 1974 one of the first UPC scanners made by NCR Corporation was installed at Marsh s supermarket in Ohio On June 26 of that year the first product with a bar code was scanned at a check out counter It was a 10 pack of Wrigley s Juicy Fruit chewing gum Today that pack of gum is on display at the Smithsonian Institution s National Museum of American History T
11. kludgy but works break else for i20 i lt pn i ZERO OUT STRINGS OR STRCMP WONT WORK dbase upc i 0 if found 0 printf Item not in database please contact a manager else if the item was found in database 0 while TRUE no conditions will just use a break statement Is this good I don t know nextchar line_string i grab a char put it into a buffer if nextchar dbase price pn 0 description dn 0 break if nextchar t amp amp tabcount lt 2 we want to skip two fields tabcount i skip to next character continue skip this field since it ends in a tab if tabcount 0 description dn nextchar dn if tabcount 2 dbase_price pn nextchar pn i rewind upc_database return atof dbase_price void CloseDialog GtkWidget widget gpointer data gtk_widget_destroy GTK_WIDGET data void ClosingDialog GtkWidget widget gpointer data gtk_grab_remove GTK_WIDGET widget 41 void popup char szMessage static GtkWidget label GtkWidget button GtkWidget dialog_window dialog window gtk dialog new gtk signal connect OBJECT dialog window destroy GTK SIGNAL FUNC ClosingDialog amp dialog window gtk window set title GTK WINDOW dialog window System Message gtk container border width GTK CONTAINER dialog window 5 lab
12. line string 120 upc database NULL amp amp found 0 The contents of each single line is placed into dbase upc character by character until a tab is found as the database is tab delimited The dbase upc string is then compared to the string and the session list is updated with the entire line string from barcode database txt if stremp dbase upc string 0 FROM PRICELOOKUP MATCH in found 1 if remove_item_mode 0 strcpy session_list item_count 1 strcat line_string If the strings don t match the next line is searched until the end of the file If the entire file has been searched and the item has not been found an error message occurs like so if found 0 printf Item not in database please contact a manager n If the found flag is set to 1 then the function returns the price as a floating point value in the database that corresponds to the upc code entered else if the item was found in database 12 pn 0 while TRUE conditions will just use a break statement nextchar line_string i grab a char put it into a buffer if nextchar n dbase price pn 0 description dn NO break if nextchar N amp amp tabcount 2 we want to skip two fields tabcount i skip to next character continue skip this field since it ends in a tab if tabcount 0 description d
13. mnemonic Start gtk widget show button1 gtk container add CONTAINER hbuttonbox3 button WIDGET SET FLAGS buttonl GTK CAN DEFAULT button2 gtk button new with mnemonic Checkout gtk widget show button2 gtk container add CONTAINER hbuttonbox3 button2 WIDGET SET FLAGS button2 CAN DEFAULT button3 gtk button new with mnemonic Check Weight gtk widget show button3 45 gtk container add GTK_CONTAINER hbuttonbox3 button3 WIDGET SET FLAGS button3 DEFAULT button4 gtk button new with mnemonic Accept Weight gtk widget show button4 gtk container add CONTAINER hbuttonbox3 button4 WIDGET SET FLAGS button4 CAN DEFAULT button5 gtk button new with mnemonic Remove Item gtk widget show button5 gtk container add CONTAINER hbuttonbox3 button5 GTK WIDGET SET FLAGS button5 GTK CAN DEFAULT entryl gtk entry new gtk widget show entryl gtk box pack start BOX hbox2 entry1 TRUE TRUE 0 eventboxl gtk event box new gtk widget show eventbox1 gtk box pack start BOX hbox1 eventbox1 TRUE TRUE 0 framel gtk frame new NULL gtk widget show framel gtk container add CONTAINER eventbox1 framel weight gtk entry new gtk widget show weight gtk container add GTK CONTAI
14. place the cursor in the text entry line This is because the barcode reader is recognized by the system as a keyboard input and thus the system needs to be in text entry mode to recognize its input The customer will place the cursor on the text line by ET clicking on the mouse when the cursor is over the text line Through a brief tutorial the customer will learn the system and this should not hinder their ability to use the B O S S The next unique function of the B O S S is the ability to shop for produce with its onboard scale This will allow the user to buy any amount of produce that they desire When the customer wishes to purchase produce they will follow a similar procedure to that of selecting regular items They will first need to scan a barcode for the item that they would like to buy which will be found on the bottom of the produce stand Figure 4 AIR m Produce Barcodes a E 4 gt Ww Figure 4 Barcodes in the Produce Aisle This will search the database for the selected produce price per weight The customer will then place the desired amount of produce onto the onboard digital scale and click on check weight This will then take the output from the digital scale and output the current weight at time of clicking button to the weight section of the GUI If the customer is satisfied with the amount of produce that was weighed they will need to click on the accept weight button This will t
15. some new features to make shopping easier From the ability to look up stored recipes to being able to locate what aisle an item is found on the B O S S will improve the customer s experience By implementing our system into grocery stores supermarkets will be on the cutting edge of technology and will be able to reach out to new customers This will help increase their sales but will also drive down employee costs This system will take the place of previously needed cashiers which will allow the store to save money Completion of the Buyer Operated Shopping System assisted in our professional growth as engineers by providing valuable experience in terms of meeting design criteria and solving problems For more information regarding the Buyer Operated Shopping System you may refer to our website which is located at www sandiego edu dmendes 29 Bibliography Market Research 1 Scan it Yourself Device Allows Shoppers to Eliminate Time in the Checkout Line Symbol Technologies Inc http www symbol com news pressreleases press_releases__miscpr__kroger html 2 Home Depot Reengineers Front end Capabilities 360 Commerce http www 360commerce com itn_a_7 html 02 01 03 General UPC Information 3 Brian Marshall How UPC Barcodes Work How Stuff Works http electronics howstuffworks com upc htm printable PIC Microcontroller Reference 4 Peatman John B Embedded Design with the PIC18F452 Microcontroller Pr
16. 0 22pF ooo 9 PI FEMALE RS 232 22 2 0 5 5 Senior Design Project ooooo 6 Momeyer Leslie Mendes Loftis Digital Scale Fall 2004 Top Copper Layer of PCB 52 RABZANE 79 RALZANL RBS RAEB ANE 5 RA3 hN3 RB PGD RA4 T CKI RCB T1USU RASZAN4 1 1 6 OSC1i CLKIN RCE CCP1 DSC2 CLKDUT MELRAZVPP PCB Layout Schematic 2523
17. LED 0 define T1 INTERNAL 0x85 define T1 EXTERNAL 0x87 define T1 EXTERNAL SYNC 0x83 define T1 CLK OUT 8 define DIV BY 1 0 define DIV BY 2 0x10 define T1 DIV BY 4 0x20 define T1 DIV BY 8 0x30 Timer 2 Timer 2 Functions SETUP TIMER 2 GET TIMER2 SET TIMER2 Constants used for SETUP TIMER 2 are define T2 DISABLED 0 define T2 DIV BY 1 4 define T2 DIV BY 4 5 define T2 DIV BY 16 6 CCP Functions SETUP CCPx SET PWMx DUTY CCP Variables CCP x CCP x LOW CCP x HIGH Constants used for SETUP CCPx are define CCP OFF 0 define CCP CAPTURE FE 4 define CCP CAPTURE RE 5 define CCP CAPTURE DIV 4 6 define CCP CAPTURE 16 7 define CCP COMPARE SET ON MATCH 8 define CCP COMPARE CLR ON MATCH 9 define CCP COMPARE INT define CCP COMPARE RESET TIMER OxB define CCP PWM OxC define CCP_ PLUS 1 Oxic define CCP_ PLUS _ 2 0x2c define CCP PLUS _ 3 Ox3c long CCP_1 byte CCP 1 0x15 byte CCP 1 LOW 0x15 byte CCP 1 HIGH 0x16 PSP PSP Functions SETUP PSP PSP INPUT FULL PSP OUTPUT FULL 2 PSP OVERFLOW INPUT D OUTPUT D PSP Variables PSP DATA Constants used in SETUP PSP are de
18. NER frame1 weight gtk editable set editable GTK_EDITABLE weight FALSE gtk entry set has frame ENTRY weight FALSE gtk entry set width chars GTK ENTRY weight 4 labell gtk label new _ Weight gtk widget show labell gtk frame set label widget FRAME framel labell frame2 gtk frame new NULL gtk widget show frame2 gtk box pack start BOX hbox1 frame2 TRUE TRUE 0 total gtk entry new gtk widget show total gtk container add CONTAINER frame2 total gtk editable set editable GTK_EDITABLE total FALSE gtk entry set has frame ENTRY total FALSE gtk entry set width chars GTK ENTRY total 6 label2 gtk label new Total gtk widget show label2 gtk frame set label widget FRAME frame2 label2 g signal connect gpointer buttonl clicked G_CALLBACK on start clicked NULL g signal connect gpointer button2 clicked on checkout clicked NULL g signal connect gpointer button3 activate checkweight clicked NULL g_signal_connect gpointer button4 clicked G_CALLBACK on_accept_clicked NULL g signal connect gpointer button5 clicked G_CALLBACK on remove clicked NULL g signal connect gpointer entry activate on UPCentry activate NULL 46 Store pointer
19. OT RE1 RE2 REF RA3 0 8 AO Al A2 A5 EO Ref A3 define ANALOG NOT 1 RE2 REF RA2 Ox8B AO 1 A5 EO Ref A2 A3 define A ANALOG RA2 REF 0 8 0 1 5 Ref A2 A3 define RAO RA1 ANALOG RA3 RA2 REF Ox8D AO Al Ref A2 A3 define RAO ANALOG Ox8E AO define RAO ANALOG RA2 REF Ox8F AO Ref A2 A3 Constants used for SETUP ADC are define ADC OFF 0 ADC Off define ADC CLOCK DIV 2 1 define ADC CLOCK DIV 8 0x41 define ADC CLOCK DIV 32 0x81 define ADC CLOCK INTERNAL 0 1 Internal 2 6us Constants used in READ ADC are define ADC START AND READ 7 This is the default if nothing is specified define ADC START ONLY 1 define ADC READ ONLY 6 Interrupt Functions ENABLE INTERRUPTS DISABLE INTERRUPTS EXT INT EDGE Constants used in EXT_INT_EDGE are define L TO H 0x40 define TO L 0 Constants used in ENABLE DISABLE INTERRUPTS are define GLOBAL 0 0 0 define INT_RTCC 0x0B20 define INT RB 0 0 08 define INT_EXT 0x0B10 define INT_AD 0x8C40 define INT TBE 0x8C10 define INT RDA 0x8C20 define INT TIMER1 0 8 01 define INT TIMER2 0 8 02 3 51 define 1 0 8 04 define 55 0 8 08 define INT PSP 0x8C80 define INT BUSCOL 0x8D08 define INT EEPROM 0x8D10 define INT TIMERO 0x0B2
20. SLEEP 0 define WDT TIMEOUT 8 define MCLR FROM SLEEP 16 define NORMAL POWER UP 24 CLARA ENDE TR Timer 0 Timer 0 RTCC Functions SETUP COUNTERS or SETUP TIMERO SET TIMERO or SET RTCC GET TIMERO or GET RTCC Constants used for SETUP TIMERO are define RTCC INTERNAL 0 define RTCC EXT_L_TO H 32 define RTCC EXT H L 48 RTCC DIV 1 8 1 define RTCC DIV 2 0 define RTCC DIV 4 1 define RTCC DIV 8 2 define RTCC DIV 16 3 49 define RTCC DIV 32 4 define RTCC DIV 64 5 define RTCC DIV 128 6 define RTCC DIV 256 7 define RTCC 8 BIT 0 Constants used for SETUP_COUNTERS are the above constants for the 1st param and the following for the 2nd param WP Watch Dog Timer Functions SETUP WDT or SETUP COUNTERS see above RESTART WDT F x define WDT_18MS 8 define WDT_36MS 9 define WDT 72MS 10 define WDT 144MS 11 define WDT 288MS 12 define WDT 576MS 13 W define WDT 1152MS 14 define WDT 2304MS 15 Timex 1 Timer 1 Functions SETUP TIMER 1 GET TIMER1 SET TIMER1 Constants used for SETUP TIMER 1 are or via together constants from each group define T1 DISAB
21. THE 5 5 Buyer Operated Shopping System December 3 2004 Prepared for Dr Kathleen Kramer amp Dr Chuck Pateros EEE 191 Prepared by Dustin Mendes Erik Loftis Bill Leslie Brian Momeyer Table of Contents LIST OF GRAPHICS HA A 2 INTRODUCTION ciee ERR 3 4 PROJECT STATEMENT AND 2 3 4 PROJECT DESCRIPTION ues aa Ace Sage 5 6 55 reves EE 7 23 GRAPHICAL USER INTERFACE 68 7 10 DATABASE FUNCTIONS pene secant 11 14 DIGITAL SC yat vox seg veut peer Daten uo NO 15 16 BARECODE READER 8 04 2 17 18 POWER SUPPLY seo Ni PER 19 20 DISPI AO en awn feo Cb S adt O 21 CART FABRICATION py IR SERRE PERIERE 22 23 BENEFITS AND CONSTRAINTSS eee npn pe eost ae hoe ae Pose poe 24 25 TASK DESCRIPTIONS soy ERE ANE Edu s 26 DESIGN SCHEDULE EURO ND Aa ae ERE EUMD UR RE EUM ARE dE 27 BUDGET COSTS E rinse RUNE Ure 28 CONCLUSION 55545
22. When the user wishes to scan an item they will first need to place the cursor in the text entry location on the GUI Figure 8 This will allow the user to begin scanning items Since the barcode reader is recognized by the system as a keyboard input in order for it function properly the cursor needs to be in text entry mode This is accomplished by placing the cursor in the text field As aforementioned this problem was unable to be fixed through code OC Ero Text Entry Line Figure 8 Graphical User Interface The Barcode Scanner we are using for the B O S S is the Welch Allyn ST3400 Long range decoded out Barcode Scanner The ST3400 has a PS 2 interface with a built in keyboard wedge Its scanning capabilities range from to 8 inches with an 8 inch maximum barcode width The ST3400 has the very convenient characteristic of not needing extra software drivers to operate All barcode scanned input appears as if it was typed by a keyboard It inputs into any program that is expecting type Also the prefix and or suffix of the scanner s output can be easily altered to meet the needs of specific 17 applications The ST3400 can be set up to discriminate UPC EAN Code 39 Code 93 Codabar Interleaved 2 of 5 Code 2 of 5 Matrix 2 of 5 Code 11 Code 128 MSI and Plessey barcode types This scanner is more than capable of handling all the complexities of this system However we initially considered the Digital Convergenc
23. but also at the constraints that were necessary to plan into the design Below you will find a breakdown of the major constraints that were factored into the design of the B O S S Economic Considerations Being college students with definite budget concerns we have decided that 500 00 is a reasonable cost for the duration of the project Hopefully we can be granted at least half by Associated Students or other similar organizations On the macroscopic scale we believe our system is very beneficial in the area of cost efficiency for the retail industry Our system decreases demand for checkout clerks and other retail employees which obviously lowers costs The issue of loss control that is relevant to our type of system is overshadowed by a lessened need for health insurance and workers compensation costs Environmental Considerations The design will not produce any hazardous waste to the environment and the production of the carts components will not be environmentally exhaustive The greatest use of natural resources will come in the way of providing steel to build the metal frame of the shopping cart however certainly using recycled steel will lighten the burden on the environment Manufacturability Considerations Manufacturing the design can be accomplished by contracting out portions of the design For example the Microcontroller unit can be order from a PCB producing company and individuals components can be assembled at an assembly
24. completed independently of team member funds OF ITEM COST PER ITEM ITEMS SUBTOTAL Microcontroller 6 00 3 18 00 Scanner 55 00 1 55 00 Scale Components 75 00 1 75 00 Scale PCB 20 00 3 60 00 Mini ITX Donated 300 00 1 300 00 Display Borrowed 200 00 1 200 00 Cables 12 00 2 24 00 Housing and Hardware 50 00 1 50 00 Battery 75 00 1 75 00 Transmitter Receiver Components 25 00 1 25 00 Grocery Cart Donated 150 00 1 150 00 TOTAL COST 1032 00 Table 1 App B O S S Budget Note as aforementioned we utilized a monitor provided by USD The above budget was what the final design cost the group to fabricate As shown above some items were donated to the group and this made it possible to create the prototype As aforementioned by buying items in bulk the grocery stores and cart manufactures could drive down fabrication costs by purchasing items in bulk Overall the design met cost expectations that the group set at the beginning of the project The group ran into design difficulties and had to seek alternative methods for solving these problems One example of this was an inability to get our first scanner to function properly and had to reorder a different model which will work 28 Conclusion With the Buyer Operated Shopping System complete an all inclusive system was created that allows customers to shop easier The B O S S incorporates all the needed functions necessary to checkout and also gives the consumer
25. cted to the battery leads this would help minimize the possibility of electrical injury A three plug type two mini outlet housing device was fabricated to plug our devices into This allowed us to bypass all power inverters which were needed to convert the 120V AC to the 12V DC needed to power the components monitor CPU and scale The box was then connected to the boat battery to power the components After testing our fabricated power box and power cords using the power supplies and volt meters in the lab it was determined that all fabrications were safe Once determined that the devices were functioning properly we retested them using the actual boat battery To recharge the batteries at night the grocery stores will need to be outfitted with a charging system that is similar to ones found in cart barns at golf courses Figure 10 This will allow them to fully charge multiple B O S S systems during the night The cart was designed to have a hinged battery and CPU compartment to allow easy access to the battery for charging purposes and also to allow the battery to be removed in case of 19 failure However for the purpose of our project a trickle charger will be used to charge our battery iter ER f Figure 10 Golf Cart Charging Units With the cost of the deep cycle boat battery running rather high 75 00 it was realized that this is decreasing the feasibility of deploying this system in grocery stores This was the most reas
26. e PIC is decoupled with a 1uF capacitor The MAX233 is a 20 pin IC Our design uses the MAX233 in its DIP package Our design allows the use of only one capacitor used for decoupling across the power source The MAX233 simply receives our TTL signal from the TX pin of the PIC and converts it to RS 232 serial which connects directly to our 9 pin female RS 232 connector Our design allows the scale to operate off one single 12 volt power supply The scale has also been designed so that it will start and run once power has been supplied to it and requires nothing beyond a power source to begin sampling from the sensor No reset switches are needed in our design and therefore have not been incorporated Our design incorporates two LED s which have been connected so that if the first lights up then the scale has been supplied with a power supply the second LED lights up whenever serial transmission to the 9 pin RS 232 connector takes place resulting in a flashing of the LED These two LED s allow a user to quickly note whether or not power has been supplied to the scale and whether or not the scale is transmitting to the serial database 16 Barcode Reader Functions As stated in the prior sections the B O S S will be outfitted with a handheld scanner device that will allow the customer the ability to scan items found throughout the store They will need to use the barcode reader to scan items ranging from canned goods to meat to produce
27. e com Cat Optical Reader but we were unable to locate drivers that would work with Linux With the Cat Optical Reader unable to function we decided on the Welch Allyn Barcode Scanner After testing the Welch Allyn scanner it was determined to be more than capable for our project 18 Power Supply To power the B O S S components it decided to use a deep cycle boat battery Figure 9 The deep cycle option was selected because deep cycle batteries are designed to be discharged down as much as 80 time after time and have much thicker plates A deep cycle battery is designed to provide a steady amount of current over a long period of time Deep cycle batteries can provide a surge when needed but nothing like the surge a car battery can These batteries are designed to be deeply discharged over and over again which is something that would ruin a car battery Since the B O S S will need a power supply that will be able to handle consistent charging and discharging this was a perfect power source for our project S MARINE A MASTER EXTRA HEAVY DUTY MARINE SERVICE Figure 9 Power Supply With the deep cycle battery selected it was now necessary to figure out how to connect the components to it Keeping safety in mind learned in our Biomedical Engineering course it was decided that the fewer connections made to the battery the better By limiting the number of wires that were directly conne
28. e items from their cart while simultaneously scanning pricing and totaling their purchases A simplified system schematic can be found below Figure 2 LCD Display Store Information Center Linux Based CPU Touchpad Mouse Digital Scale Figure 2 System Simplified Schematic As seen above in Figure 2 the main system will control all the functions of the B O S S The central controlling system is a hard drive based CPU that is housed in a Mini ITX box This will allow the B O S S to have adequate memory storage to allow future upgrades and system overhauls While the system is running the CPU will be receiving input from the digital scale barcode reader and the touchpad mouse The outputs from the CPU are to the LCD to allow the customer to interact with the system and also to the stores database A much more in depth description of the systems functions can be found later in the report The B O S S will be placed in docking stations where they will be available for customers to checkout When a customer enters a store they will check out a system which will be assigned to them with their credit card as a deposit This is to ensure that the customer will return the cart and if not they will be charged for it Following this the customer will then be allowed to take a B O S S unit and begin shopping It is also anticipated that the deposit of a credit card will help reduce shoppers from stealing items by not scanning them d
29. el gtk label new szMessage gtk misc set padding GTK MISC label 10 10 gtk box pack start GTK BOX DIALOG dialog window gt vbox label TRUE TRUE 0 gtk widget show label button gtk button new with label Ok gtk signal OBJECT button clicked SIGNAL FUNC CloseDialog dialog window WIDGET SET FLAGS button CAN DEFAULT gtk box pack start GTK DIALOG dialog window action area button TRUE TRUE 0 gtk widget grab default button gtk widget show button gtk widget show dialog window gtk grab add dialog window void on_start_clicked GtkButton button gpointer user_data if active_session 1 popup There is currently an active shopping session n else active_session 1 GtkWidget total display lookup_widget GTK_WIDGET button total gtk_entry_set_text GTK_ENTRY total_display JIGGA popup Enjoy shopping with The Boss gtk entry set text GTK ENTRY total display 0 00 void on_checkout_clicked GtkButton button gpointer user_data int i 0 while i lt item_count printf n 96s session_list i i 42 void on_accept_clicked GtkButton button gpointer user_data void on_remove_clicked GtkButton button gpointer user_data if item_count 0 popup You have no items to remove else remove_item_mode 1 void on_checkwei
30. entice Hall 5 Program Microchip PIC micros with C Microchip com http www piclist com techref io lcd pic htm C Programming References 6 Dale Nell B Programming and Problem Solving With C Microchip com http www microchipc com 7 Zak Diane An Introduction to Programming with International Thomson Publishing Filter Reference 8 Ludwig Reinhold and Bretchko Pavel RF Circuit Design Theory and Applications Prentice Hall Industry Contacts Larry Smith Lighthouse Computing Systems Ramona CA Larry specializes in POS equipment and has been very gracious to share his knowledge with the Quick Cart group Cary Doris USD Bookstore Shipping and Receiving Supervisor Cary is not an electrical engineer but he is an expert in scanner hardware and POS systems in general 30 Appendix I Background EN The barcode can be traced back to two individuals Bernard Silver and Norman Joseph who were tasked with a design problem presented by a local food chain president The task was to develop a system that automatically read product information during checkout without making the clerks look up the prices manually For their initial design the two engineers used ultraviolet light to read a pattern of concentric circles that would tell them what item was scanned Then in 1966 the Barcode was commercialized when the National Association of Food Chains NAFC challenged equipment manufacturers to develop
31. er their total into the cash register and charge the customer The customer will then be able to pay either by check 9 cash or credit Since this form of checking out will not give feedback to the store as to what items have been purchased we found a different way to do this Each time that the system is totaled the list of items will be downloaded to the from the grocery list and stored on the carts internal hard drive This will be an updated list that will compile all items that have been purchased with that cart and can be downloaded by the grocery store whenever they desire This will give the store feedback as to how many of each item has been purchased by the B O S S carts Figure 6 B O S S Designated Line With the designed GUI the customer is able to easily interact with the B O S S functions and navigate it efficiently during their shopping experience Realizing that however simple a system is there will still be issues with learning how it runs This is also the case with the B O S S so it is recommended that prior to the first use the store will need to give the customer a brief overview This will help alleviate customers not knowing how the functions work and will help customers use the system more efficiently 10 Database Functions The database code found in Appendix III file is a list of tab delimited entries in the following order UPC code item description location and price The functions for the B
32. ew iter gtk text buffer set text buffer second line n third line n fourth line n 1 gtk text view set buffer GTK TEXT VIEW text view buffer printf TEXT VIEW BUFFER IS s n text view buffer gtk entry set text GTK ENTRY total display 0 00 float priceLookup char upc string char line string ILINE MAX LENGTH dbase upc UPC MAX LENGTH dbase desc DESCRIPTION MAX LENGTH dbase loc 2 DEBUG DEBUG dbase price 7 char nextchar int found 0 int i index for characters on any single line in database int pn 0 index for character position in dbase price int dn 0 description int In 0 location int tabcount 0 printf FROM PRICELOOKUP UPC string is s n upc_string FILE upc_database upc database fopen barcode database txt r while fgets line string 120 database NULL amp amp found 0 1 0 0 while TRUE no conditions will just use a break statement Is this good I don t know nextchar line_string i grab a char put it into a buffer if nextchar Xt dbase_upc pn 0 use this to close the strings i pn 0 break else dbase_upc pn nextchar 40 i pn if stremp dbase upc string 0 printf FROM PRICELOOKUP MATCH n found 1 if remove_item_mode 0 strcpy session list item count 1 strcat line_string
33. fine PSP ENABLED 0x10 50 define PSP DISABLED 0 byte PSP DATA 8 5 SPI Functions SETUP SPI SPI WRITE SPI READ SPI DATA IN Constants used in SETUP SSP are define SPI MASTER 0x20 define SPI SLAVE 0x24 define SPI L define SPI H TO L 0x10 define SPI CLK DIV 4 0 define SPI CLK DIV 16 1 define SPI CLK DIV 64 2 define SPI T2 3 define SPI SS DISABLED 1 Constants used in setup_uart are FALSE Turn UART off TRUE Turn UART on define UART ADDRESS 2 define UART DATA 4 TRUE Turn UART on ADC ADC Functions SETUP_ADC SETUP ADC PORTS aka SETUP PORT A SET ADC CHANNEL READ ADC Constants used in SETUP ADC PORTS are define NO ANALOGS 0x86 None define ALL ANALOG 0x80 AO 1 A2 A5 EO El E2 Ref Vdd define ANALOG REF 0x81 0 1 2 A5 EO El E2 Ref A3 define A ANALOG 0x82 AO Al A2 A3 A5 Ref Vdd define A ANALOG RA3 REF 0x83 AO Al A2 A5 Ref A3 define RAO RA1 ANALOG 0x84 AO 1 Ref Vdd define RAO RA1 ANALOG RA3 REF 0x85 AO Al Ref A3 define ANALOG RA3 RA2 REF 0x88 AO Al A5 EO El E2 Ref A2 A3 define ANALOG NOT 1 RE2 0x89 AO 1 A2 A5 Ref Vdd define ANALOG N
34. ght_clicked GtkButton button gpointer user_data void on_UPCentry_activate GtkEntry entry gpointer user_data intr 0 int c 0 int i 0 float price const gchar entry_text entry_text gtk_entry_get_text GTK_ENTRY entry int entry_text_size sizeof entry_text char list upc 20 printf ENTRY TEXT IS 905 entry text DEBUG printf REMOVE ITEM MODE IS 96i remove item mode if remove item mode 1 amp amp item count 0 item_count use this to make array shifting easier DEBUG printf item count is i n item count while lt sizeof session_list sizeof session_list r gives length of row rho roe while lt sizeof session_list r if session_list r c t WE ONLY WANT THE UPC HERE STOP AT A TAB printf BREAKING n c list_upc i 0 break list_upc i session_list r c c i if stremp list_upc entry text 0 printf MATCH n DEBUG aA s total total priceLookup entry_text 1 text_view_update entry while r lt sizeof session_list sizeof session_list r strcpy session list r session_list r 1 r total total priceLookup entry_text text_view_update entry break r c 0 i 0 remove_item_mode 0 DEUG printf ater while loop 905 list else strcpy session list item count entry text item_count total total pr
35. he development of the UPC system made grocer inventory methodology easier smoother consumer store interaction and eventually an explosion of automated systems for all types of consumer applications Most notably larger retail stores such as Ralph s and Home Depot have implemented self checkout systems which allow customers to check bag and pay for their items without the need of a cashier Home Depot specifically started testing self checkout units in early 2002 The home improvement retailer called their system FAST a front end accuracy and service transformation They say the system works to improve speed accuracy and service at checkout locations Working with NCR Corporation Home Depot s system consists of a user friendly touch screen and a GUI based POS Java application It works as follows eats After finishing their run through Home Depot shoppers proceed to a stationary checkout center at the front of the store The shopper scans their items and places them in store bags which are located on a large scale type platform This platform makes sure that bagged items are scanned and eventually paid for As of mid 2003 Home Depot had NCR FastLane self checkout terminals in 55 stores around the country Despite the obvious benefits that this type of stationary self checkout system creates for consumers as well as stores it still tends to result in checkout lines because of its stationary nature While these systems do help speed u
36. hen add the produce and its weight to the running list along with its price However if the customer is unsatisfied with the amount of produce that was on the scale at the time of checking the weight they can either add more or take away the desired amount and then recheck the weight Once they are satisfied with the amount of produce they can select to accept the weight While realizing that it would be very simple for the customer to weigh less than they place in their cart we are relying on the honor system to keep people honest Since this is not available to anyone but rather people who leave a deposit to check out the B O S S we feel that this will help keep people honest The amount of money that the grocery store will save on cashiers will more than offset the minimal amount of money lost to theft In the event that the customer scans accepts an item that they no longer wish to purchase they will be able to remove the item s from their shopping list This will be done by first selecting the remove item button on the GUI and then scanning the item that they wish to remove This will not only remove the item from the shopping list but also remove its cost from the running total We realize that this will be slightly more difficult when the customer wishes to remove produce because they will have to go back to the stand to scan the barcode However this will keep people from just placing fresh produce anywhere in the store when they decide that
37. iceLookup entry_text text_view_update entry DEBUG printf item count is i n entry item is s n total is 3 2f n item count session list item count total r goddamnit printf TOTAL IS 3 2f n total sprintf temp string 93 2 total GtkWidget total display lookup widget GTK WIDGETc entry total gtk entry set text GTK ENTRY total display temp string refresh the total display frame price priceLookup entry_text DEBUG Interface c interface ifdef HAVE_CONFIG_H include lt config h gt endif include lt sys types h gt include lt sys stat h gt include lt unistd h gt include lt string h gt include lt stdio h gt include lt gdk gdkkeysyms h gt include lt gtk gtk h gt include callbacks h include interface h include support h define GLADE_HOOKUP_OBJECT component widget name g_object_set_data_full G_OBJECT component name gtk_widget_ref widget GDestroyNotify gtk_widget_unref define GLADE_HOOKUP_OBJECT_NO_REF component widget name g_object_set_data G_OBJECT component name widget 44 GtkWidget create_window1 void GtkWidget windowl GtkWidget vbox1 GtkWidget scrolledwindow2 GtkWidget textview1 GtkWidget hbox1 GtkWidget hbox2 GtkWidget hbuttonbox3 GtkWidget buttonl GtkWidget button2 GtkWidget button3 GtkWidget button4 GtkWidget button5 GtkWidget entryl GtkWidget even
38. l scale it was needed to somehow integrate this into the design of the cart As seen in Figure 13 the scale was placed near the customer and the mouse This will allow easy access to the digital scale and we could conceal its components A flat bottom vertical scale design was selected which allows the user to load as much of an item as they so desire When integrating the scale it was taken into account that some items like cantaloupe tend to roll around if you place them on a flat surface By insetting the scale bottom in relation to the sides a perimeter fencing was created that will confine all items that are being weighed The printed circuit board and plunger are housed below the scale s bottom This will keep them our of harms way but still allow access to them if needed LCD display Touchpad Mouse Figure 13 Monitor Scale and Mouse To select what option that the customer wishes to perform on the B O S S a touchpad mouse was integrated into the system This type of navigation device was selected because it allows the user to control the cursor without having to move the whole mouse Rather they can simply touch the pad to change cursor location It has also been inset into the system interface panel of the cart This will prevent the mouse s casing from moving around or being stolen Benefits and Constraints When looking at the design of the B O S S it was not only necessary to look at the feasibility of the design
39. ld purchase it was decided to dress this one up Purple carpet for the inside and parts of the outside was selected to give the B O S S that extra bit of sex appeal Realizing that this is not practical for the actual units it was determined that in order to sell this item you need to catch someone s eye first For the organic shape of the screen housing planters foam was shaped and coated it in BONDO to help give it strength The BONDO was then sanded to form the desired shape This dressed up the cart nicely and made it more appealing to the eye In order to give the cart a cohesive feeling it was decided that the cart should be painted all black This gives it a sleek look as a prototype and will help create a buzz for consumers As described in the display section of the report a housing unit was fabricated Figure 13 to hold the 15 inch HP monitor It was designed to hold a monitor with a screen size 222 of 15 inches However enough room was left on the sides that a different brand monitor would also be able to fit into the housing This would allow the grocery store to select the most economically appealing 15 inch LCD monitor As stated above the wood and foam monitor casing has been shaped to form an organic housing structure The foam was then covered in BONDO that was shaped into the final shape as seen in the overall picture This housing provides a sturdy and rigid place to keep the monitor With the system incorporating a digita
40. n nextchar dn if tabcount 2 dbase_price pn nextchar i rewind upc_database return atof dbase_price popup char szMessage This function creates a button that can be passed any text string it can be used as an error message or a helpful dialog on_start_clicked GtkButton button gpointer user_data This function is passed a pointer to the button widget that was pressed and a pointer to the user_data widget It sets the active_session flag updates the total_display to zero and pops up a friendly welcome active_session 1 GtkWidget total_display lookup widget GTK WIDGET button total popup Enjoy shopping with The Boss gtk entry set texi GTK ENTRY total display 0 00 on UPCentry activate GtkEntry entry gpointer user data 13 This function is a callback from the text entry box where a UPC code is entered If an item is being removed it searches the session list array to find an instance of the item and once that item is found it removes one entry from the session list then shifts all items in the session list to eliminate the blank line while r lt sizeof session listysizeof session list r gives length of row while c lt sizeof session_list r if session list r c N ONLY WANT THE UPC HERE STOP AT A TAB printf BREAKING Vi list_upc i 0 break list_upc i session_list r c itt
41. nted in stores nationwide The PSS solution is portable and seemingly simple to use but it does not consider per weight purchases This seems like a design flaw in grocery store application because of the large amounts of fresh produce purchasing that takes place This is where our Buyer Operated Shopping System picks up the loose ends Appendix II User Manual Upon entering the store and checking out a B O S S the user should follow these easy steps to help navigate through the functions of the system Starting the System 1 Click on the button labeled Start with the touchpad mouse This will start the system and allow the user to begin their shopping experience Scanning Items 1 Click on the text entry field with the touchpad mouse x sar eomm Text Entry Field 3 2 Now scan items using the supplied barcode reader The item and its cost have now been added to the grocery list 3 Continue scanning items until you wish to change functions Adding Produce 1 Scan the produce s barcode that can be found on the stand with the accompanied barcode reader m Produce Barcodes Perey gt 34 3 Click on the button labeled Check Weight with the touchpad mouse 4 If the desired weight was added click on the button labeled Accept
42. onable option for us and if the stores decided to use the same battery they could negotiate a bulk discount for the batteries Not having the ability to determine what price could be negotiated if purchased at bulk it was unable to be determined how much this type of battery would ultimately run the manufactures of the B O S S 20 Display When deciding on what type of a display to use it was first necessary to determine where to mount the screen Our initial idea was to mount the screen next to the scale which would place the screen between the customer and the basket of the cart This would be a design error and would get in the way of the consumer The feasibility of a hand held screen was also examined but was decided against due to the chances that this could get broken or damaged The next option that was ultimately selected with was to place the screen at the end of the cart as illustrated in Figure 11 LCD display Touchpad Mouse Figure 11 Display Location This allows the user to easily place items in the cart without having to maneuver around the cumbersome screen However by placing the screen at the end of the cart it became necessary to have a much larger screen With the anticipated screen size of around 7 10 inches it was determined that some users might not be able to read the screen from this distance After a trip to Fry s Electronics it was discovered that a 15 inch monitor was beyond the b
43. or Figure 7 Simplified Scale Schematic 18 The PIC16F870 is a 28 pin microcontroller Our design implements the PIC in its dual inline pin DIP package this package proved easier to work with that a smaller surface mount version The PIC16F870 has the ability to do both ADC and serial transmission two features that were needed for our design Our design uses a high speed crystal in conjunction with two ceramic capacitors to generate a clock with a frequency of a constant 10 24MHz The PIC uses this configuration connected across its and OSC2 pins to effectively generate the clock Our PIC has been programmed so that it receives the analog DC signal off the voltage divider on the ANO pin on the PIC From this the PIC does an 8 bit digital conversion on the signal and samples 100 times before it outputs serially a low high and averaged value The PIC was programmed to allow it to sample and output in such a fashion The programming of the PIC was done using MPLab software where our program was written in C language and then compiled into Assembly language A complete printout of the source and header code used to program the PIC with MPLab can be found in the Appendix The PIC transmits TTL serially off the TX pin with a baud rate of 9600 bytes per second no parity bit and 1 stop bit The Master Clear pin which is a low active is held high by connection to the power source through a resistor The power supply of th
44. p checkout times consumers are limited by the lack of stationary units at a given store Dating back to the 1990 s Symbol Technologies Inc the world standard in bar code driven data transaction systems was developing and applying a portable shopping system In 1997 they had announced an agreement with the Kroger supermarket chain to implement their Symbol Portable Shopping System Symbol s system allowed customers to scan bar coded merchandise in the aisles as they shop Their claim was that this greatly reduced time spent in checkout lines The Symbol Portable Shopping System is simple to use and is user friendly Upon entering the store a shopper inserts an identification card to remove a portable shopping device The lightweight scanner is equipped with plus minus and equal keys as well as a small visual display As the shopper selects merchandise they can scan each item s bar code using the plus key and places the item in a cart If a shopper decides against purchasing any particular item it may be canceled by way of the minus key followed by rescanning the product After this is done its price is subtracted from the shopping total The shopper can obtain a subtotal of purchases by pressing the equals key at any time When shopping is complete the scanner is returned to the rack and the shopper advances to an express pay station Currently Symbol s Portable Shopping System is being increasingly impleme
45. p relatively no space and the onboard system can hold many recipes The last function that we have integrated into the GUI is the item lookup button When the user wishes to locate an item in the store they will first click on the locate button This will then pull up a list that is organized alphabetically by first letter of the items name The user will then scroll the first letter of the item which they wish to find and the list will tell them on what aisle it is located During our initial thought on how the locate of items would work we thought that the most efficient manner in which to do this would be to allow the customer to type in the name of the item they are looking for However we found that the integration of a keyboard into the cart was not practical The keyboard would take up too much space on the cart and so this option was not a design issue for us When the customer has finished their shopping with the B O S S they will need to go to the designated checkout line for users of the B O S S Figure 6 We realize that using the B O S S still demands that the customer enter a checkout line but since the only purpose of this line is to pay and not scan items it will move rapidly Upon entering the line the user will click on the checkout button which will total their purchases and display the final costs of all items they have selected When they enter the B O S S designated checkout line they will be greeted by a cashier who will ent
46. perations before outputting it as an 8 bit serial signal The third component is the MAX233 IC which converts the TTL serial signal output by the PIC into an RS 232 serial signal that can be transmitted serially across an RS 232 port and cable and read by another processing unit Other components that have been incorporated into the design are a voltage regulator an ICD programming port and a 9 pin Female Data Bus port The voltage regulator allows the scale to run off a 12 volt power supply by stepping down this voltage to a constant 5 volts a voltage that will not overpower the sensor and IC s and allow for programming over the ICD port The ICD port allows the PIC microcontroller to be programmed once the PIC has been soldered to the board using MPLab software and a PIC Puck The 9 pin female RS 232 connector allows the serial signal off the MAX233 IC to be retrieved by another computer or processing unit via a RS 232 cable The scale only needs to transmit and has been designed without the ability to receive a RS 232 signal Therefore the scale is always transmitting and the system is always listening no acknowledgement of bits being sent or received is needed This keeps the transmission over RS 232 as simple as possible Below is a simple schematic of the layout of the system Linux Based CPU RS232 contains 1 Max233 Product Database Cart Operations and Main VO Simple Voltage Divider Pressure Sens
47. plant Costs of the electronic components will be for the most part minimal The greatest costs will come in the way of the assembly of the cart Reliability and Sustainability Considerations Because of the nature of the design and its intended monetary use the system must be reliable and error free If it is not there will be obvious Even small miscalculations when compounded can add up to large costs to the customer the business or both It can not be overstated how important reliability is to our project Legal Considerations We have yet to find any significant patent issues that directly relate to our system However the barcode scanner company Symbol makes a similar handheld product that has yet to be implemented in any consumer situation They have also partnered with Palm to manufacture a product that is readily used for inventory and warehouse operations It should also be considered that our investigation of legal considerations is an ongoing process and will continue to grow in depth as the project moves forward 24 Health and Safety Considerations We do not believe that the quick checkout system has any serious health or safety issues A minor cause of concern could be in a situation where the handheld barcode scanner is used as a weapon for children to hit each other with Social Political and Ethical Considerations Our quick checkout system like other automated advancements in retail and inventory operations
48. ratus Figure 1 that consists of four main components a barcode scanner a scale a touchpad mouse and a central processing unit with display LCO display casing Figure 1 Prototype Illustration Actions that are normally done at the checkout line are done by the consumer as they shop The unit displays real time item subtotals on an LCD screen The unit houses an onboard barcode reader to scan items and produce tags A scale is integrated into the system and is used to weigh and price produce and similar items Finally an output is provided from the unit to a designated cashier for customer payments of cash check or other non store account related options The system alleviates the need for long checkout lines while also presenting a more efficient and personalized shopping experience for the 56 customer Along with the added convenience for the shopper the B O S S also helps reduce costs for the grocery store By implementing the B O S S grocery stores will be able to cut back on the amount of cashiers that are needed This will lower operating costs and will in turn pay for the systems Project Description The Buyer Operated Shopping System is a shopping cart contained apparatus that consists of four main components a barcode scanner a scale a touchpad mouse and a central processing unit with display Actions that are normally done at the checkout line are done by a consumer as they shop The user is able to add and remov
49. rn pointer to a character array int locationLookup int char session_listI MAX_ITEMS ITEM_LENGTH char description DESCRIPTION_MAX_LENGTH char location 2 char upe RUPC MAX LENGTH char temp string 10 char text view buffer 100 float price total 0 int active session 0 set this bad boy to 1 to keep active files from being overwritten etc int remove item mode 0 int item count 0 void text view update GtkEntry entry int i 0 c 0 r 0 while r lt item_count while lt sizeof session_list r 1 if remove_item_mode 1 0 amp amp r item count 1 changes the output for an item removal text view buffer i i C continue 39 Il Il Il Il if session list r c 0 these string terminators make me want to strangle someone perhaps Bill text view buffer i i c break text_view_buffer i session_list r c printf TBV c text_view_buffer i i C text_view_buffer i i r c 0 text_view_buffer i 0 GtkWidget text_view lookup_widget GTK_WIDGETCentry textview1 GtkTextBuffer buffer text view g object new TYPE TEXT VIEW havoc rules NULL buffer 2 gtk text buffer new NULL gtk text buffer set text buffer text view buffer 1 gboolean gtk text view forward display line GtkTextView text vi
50. s to all widgets for use by lookup widget GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU GLADE HOOKU return windowl P OBJECT NO REF windowl window windowl P OBJECT windowl vbox1 vbox1 P OBJECT windowl scrolledwindow2 scrolledwindow2 P OBJECT windowl textviewl textview1 P OBJECT windowl hbox1 hbox1 P OBJECT windowl hbox2 hbox2 P OBJECT windowl hbuttonbox3 hbuttonbox3 P OBJECT windowl button1 button1 P OBJECT windowl button2 button2 P OBJECT windowl button3 button3 P OBJECT windowl button4 button4 P OBJECT windowl button5 button5 P OBJECT window entry1 entry1 P OBJECT windowl eventbox1 eventbox1 P OBJECT windowl framel frame1 P OBJECT windowl weight weight P OBJECT windowl label1 1 P OBJECT windowl frame2 frame2 OBJECT window l1 total total P OBJECT windowl label2 label2 sd Appendix Parts List For Scale L1 3 3 Pressure Sensor j Digkey 102 1227ND 4 SENSOR EM ey a Oe 0 E 1 _ 3 3 PIC microcontroler 8 70 12 L1 3 3 5 232 Maxim MAX233 3 pr
51. take away the ability to forecast work and stick to a schedule Task Name Start Finish Sun Aug 29 Thu Sep9 Sep 20 Fri Oct 1 Tue Oct12 Sat 23 Wed Nov 3 Sun Nov 14 Thu Nov 25 Mon Dec 4 Fall Semester Mon 816 04 Fri 12 10 04 Li nn Develop GUI Mon 9504 Mon 10 4 04 Ee Finish Database 9 65 04 Thu 9 23 04 Code Backend Mon 9504 Tue 11 16 04 NE SOSY Design Digital Scale Mon 9504 9 27 04 Write Pic Program Mon 9 27 04 Tue 10 12 04 EE Program Pic Tue 10 12 04 Mon 10 18 04 Create PCB Mon 10 18 04 10 22 04 E Build Final Scale Fri 10 28 04 Mon 11 29 04 Fabricate Cart Mon 9504 Fri 14 26 04 Powering of System Fri 10 29 04 11 19 04 EE Help Button Receiver Tue 10 49 04 Tue 11 16 04 Help Button Tranmitter Tue 10 9 04 Tue 11 16 04 CDR Report Fri 10 2204 Fri 10 22 04 B CDR Demo Fri10 29 04 10 29 04 B Final Demonstration Fri1240 04 Fri 1240 04 B Internal Desmonstration Tue 12 7 04 Tue 12 7 04 B Figure 14 Project Schedule in Gantt Chart Form Budget Costs Below you will find the approximate budget for the B O S S All the required hardware needed to complete this project was easily obtained commercially and with the help of a grant provided to us from the Associated Students here at USD the project was
52. tbox1 GtkWidget framel GtkWidget weight GtkWidget labell GtkWidget frame2 GtkWidget total GtkWidget label2 window1 gtk_window_new GTK WINDOW TOPLEVEL gtk_window_set_title GTK_WINDOW window _ window1 vbox1 gtk_vbox_new FALSE 0 gtk widget show vbox1 gtk container add CONTAINER windowl vbox1 scrolledwindow2 gtk scrolled window new NULL NULL gtk widget show scrolledwindow2 gtk box pack start BOX vbox1 scrolledwindow2 TRUE TRUE 0 gtk widget set size request scrolledwindow2 622 357 textviewl gtk text view new gtk widget show textviewl gtk container add CONTAINER scrolledwindow2 textview1 gtk widget set size request textview1 495 351 gtk text view set editable GTK TEXT VIEW textview1 FALSE gtk text view set justification TEXT VIEW textview1 GTK JUSTIFY FILL gtk text view set wrap mode GTK TEXT VIEW textview1 GTK WRAP CHAR gtk text view set cursor visible GTK TEXT VIEW textview1 FALSE hbox1 gtk hbox new FALSE 0 gtk widget show hbox1 gtk box pack start BOX vbox1 hbox1 TRUE TRUE 0 hbox2 gtk hbox new FALSE 0 gtk widget show hbox2 gtk box pack start BOX hbox1 hbox2 TRUE TRUE 0 hbuttonbox3 gtk hbutton box new gtk widget show hbuttonbox3 gtk box pack start BOX hbox2 hbuttonbox3 TRUE TRUE 0 buttonl gtk button new with
53. the cart has been returned the customer will no longer be responsible for it and they may have their deposit back Project Components Graphical User Interface To allow the customer to interact with the functions of the B O S S a user friendly graphical user interface GUI was needed In order to generate a GUI that would allow the user to successfully navigate the functions of the B O S S we decided to use the Glade GTK program to develop it This program allowed us to select how the GUI would look and also how it would function on the front end To incorporate the totality of the B O S S functions we decided on the GUI layout that is found in Figure 3 As you can see from the Figure we have selected a layout that allows the user to select from seven different buttons These buttons control the functions of the stored recipes location of items starting the system checking out checking the produce weight accepting the produce weight and removing a previously scanned item r T v OTE BOSS 1234567890 BectSou Al 150 2349678901 2349678901 Figure 3 Graphical User Interface Screen Capture The system is designed so when a customer wishes to begin shopping they will need to click on the start button with the accompanied touchpad mouse This will then allow the user to begin their shopping experience The GUI has been set up in such a manner that when the customer wishes to scan an item they need to
54. they no longer want it The next unique function of the B O S S is the recipe lookup button By clicking on the recipe button the user will pull up a list of preloaded recipes which show the ingredients and amount of each needed Figure 5 Toffee chunk Cheesecake INGREDIENTS 2 cups vanilla wafer crumbs 6 tablespoons butter melted 14 ounces Midas wrapped caramels unwrapped 1 cup semisweet chocolate c ips 5 ounce can evaporated milk 1 4 ounce bars chocolate covered English toffee 8 ounce packages cream cheese 1 2 cups white sugar NJ NJ 4s Js eggs egg yolks tablespoons all purpose flour 1 3 cup heavy whipping cream 2 teaspoons vanilla extract 1 4 ounce bars chocolate covered toffee chopped Sausage Casserole INGREDIENTS 1 pound sage flavored breakfast sausage 3 cups shredded potatoes drained and pressed 1 4 cup butter melted 12 ounces mild Cheddar cheese shredded 1 2 cup onion shredded 1 16 ounce container small curd cottage cheese 6 jumbo eggs Figure 5 Recipe Examples This is designed to help customers remember what they need to purchase to make certain dishes The ability to lookup dish ingredients will help speed up the shopping process which will in turn generate a faster turnover of carts While having only included a few recipes into our database the actual grocery stores would benefit from loading as many recipes as possible Since these are simply text files they take u
55. udget for this project so it was decided that the B O S S would use the HP LCD monitors that our found in our lab A screen box was fabricated to fit the HP 15 inch monitor perfectly and the monitor will be able to be inserted on the day of demonstration It is understood that this sized monitor is highly expensive but it is believed that if the grocery store was to order them in bulk they would be able to negotiate a lesser cost Had budget not been an issue for our group the option of a touch screen LCD would have been explored This would alleviate the need for a touchpad mouse and would open up different mounting options for the screen 21 Cart Fabrication With components of the B O S S needing a place to live it was necessary to fabricate a cart that could house these items in the most efficient manner The fabrication dimensions were created to fit the cart used in this project only As seen in Figure 12 a stock grocery cart was greatly modified to house the totality of the B O S S LCD display casing Touchpad Mouse Barcode scanner wl holster CPU and power source casing Figure 12 Cart Design To fabricate the components housing on the cart 1 4 inch masonite board was used to design each part L brackets were used in all box fabrications and only nuts and bolts were used to hold parts together This will allow us to disassemble any part if necessary Since this is a prototype of the actual B O S S that grocery stores wou
56. uring checkout As the customer begins to shop they will use either the barcode reader to add items to their cart or the scale to add produce items As items are scanned weighed they are added to the cart s subtotal which is dynamically updated on the screen At anytime while shopping the user may remove items from their cart by clicking the remove button on the screen and scanning the item they wish to discard If the customer wishes to remove a produce item they will have to select remove item then scan the produce barcode tag One of the key features of the B O S S is the integration of a digital scale Users will be able to take pay per weight items such as produce and weigh them on the cart s scale in order to select the desired amount of produce This is done by first scanning an item s barcode then weighing the item or items on the scale After adding the desired amount of produce to the scale the user will click on the acquire button on the screen that will then take the weight output from the scale The screen will then show the item and its grand total cost in the subtotal area on the screen of the B O S S Once the user has added all their items to the cart they may then checkout by selecting a key labeled checkout Once the customer has selected the checkout option they will need to proceed to the B O S S only checkout line Here they will be charged for the items they have selected and will also return the cart Once
57. ved and the total is updated database functions have been tested and have been demonstrated to work successfully Below you will find a detailed description of the primary functions of the code While this is just a description of the main functions of the B O S S code you can review the full code along with its comments in Appendix III Function Summary text view update GtkEntry entry text view update is passed a pointer to the GtkEntry widget allowing the programmer to use lookup widget GTK WIDGETC entry textview1 to find the pointer to the text view widget text view buffer is filled one character at a time until it reaches a string terminator VO then it inserts a space and continues until the end of the line A text buffer widget is created with GtkTextBuffer buffer buffer gtk text buffer new NULL The buffer widget is assigned text with 11 gtk_text_buffer_set_text buffer text_view_buffer 1 And the text_view widget is finally displayed with gtk_text_view_set_buffer GTK TEXT VIEW text view buffer priceLookup char upc string priceLookup is passed a character array from the UPCentry activate callback A pointer to the file barcode database txt is initialized with FILE upc database upc database fopen barcode_database txt r And the text is searched line by line by using the fgets function grabbing a max of 120 characters per line while fgets

Download Pdf Manuals

image

Related Search

Related Contents

LA COMMISSION D`ÉQUIVALENCE DE DIPLÔMES  Untitled  Emerson 299H Installation Instructions  EPRO-RACK 1.1K – 3.4KVA  BOLETIN DE SERVICIO OBLIGATORIO  User Manual  Laura Ashley PXX166 Instructions / Assembly  Asoni CAM6681FIR-POE surveillance camera  Ares - Inicio  Philips Car audio system CEM3000  

Copyright © All rights reserved.
Failed to retrieve file