top of page

Week 18: November 19 - November 29, 2020

 

This week, the team finished the power generating system and did some trial runs to make sure the system was working properly.​

​

​

Power generating system

The following videos are trial runs of the power generating system, one with the system by itself and the other with system on  the cart.

Video: Power system with drill test

Video: Power system on cart test

The data below shows our trial and results for the battery with and without the power generating system

Battery life without power generator

Battery life with power generator

The two videos below show the smart cart fully assembled and operational.

Smart Cart installation

Smart Cart Demo

 

Week 17: November 12 - November 19, 2020

 

This week, the team did system trials with the system  in the shopping cart. The team was able to fix last weeks's issue with the email receipt, now the email receipt will have the two pictures taken attached. The team also completed the manual entry payment method  for the checkout process.

​

below is a demo of one of the trial runs performed with the system on the cart.

The picture below is the how the dynamo system will be assembled to generate power.

Below is a picture of the payment page to input the card information manually.

PayManually.PNG

Below there is a picture of the email being sent with a picture before the customer started shopping and after the customer finished shopping.

email.PNG

Week 16: November 5 - November 12, 2020

 

This week, the team continued assembly of the GUI casing finishing about 75% of it. The team also worked on adding the the picture taking function to the system to provide an extra layer of security. The camera will take a picture at the beginning when the customer presses "Start shopping" button, the system will check that the camera is is in the camera holder on top of the GUI. When the switch inside the camera hold is pressed down it will take the picture of the customer otherwise it will prompt a message to put the camera back in the holder . The same will be repeated when finishing the checkout process, before finishing the payment process the system will take one more picture of the customer. The 2 pictures will be attached to the email receipt.

Below is a full system test without the 2 pictures included in the email due to the team no being able to finish that part in time. The fist video is the system starting and items being scanned.

The next video shows the payment process via the card reading function.

The final video shows the payment process being completed and the email receipt being received.

Also, manage to scale the app to fit the touchscreen and editing it a bit to make it look nicer. Below are some pages added and updated such as a warning page of being monitor, instructions page, scan page, and the alternative checkout page for a credit card. There is also a video of what the pages in the app currently look like for now.

2020-11-12.png
2020-11-12 (1).png
2020-11-12 (2).png
2020-11-12 (3).png

For the Dynamo part of the system we made a  piece that would spin as the cart wheel is spun to generate power. We realized that the current motor we had took to much force to generate the power we needed to charge the battery. Below is the concept we have.

Week 15: October 29 - November 5, 2020

 

This week, the team continued assembly of the GUI casing and had it painted. The team also finished assembly of the scale and had it painted. Below is a video of the GUI casing with the LCD, GUI not yet fully scaled, attached to it with about half of the assembly completed.

The team also worked on incorporating the scanning and weighing code for the produce. To incorporate the produce the team had to make a many changes to the code to add produce. We also added the buzzer and LED to the system. Below is a demonstration of the program starting with the LED changing to green when then the shopping process is begun, produce being weighed and added, and the buzzer ringing when the an item is scanned.

Next, we have the LED changing to blue indicating the customer is in the checkout process. The final part of the checkout, which includes sending an email with the receipt to the customer, is still being worked on and is the last part of the system.

The team managed to get the camera to read the credit card and print. However, there are some errors while using the laptop camera. This could be because of low camera resolution. Also, have an email code that works by itself but still hasn't successfully manage to get it incorporated into the main code.

Video of the credit card reader and picture of the email are shown below.

EmailPic.PNG
codeEmail.PNG

Week 14: October 22 - October 29, 2020

 

This week, the team had to redesign the scale due to fluctuating weight values. The team also worked on troubleshooting the code to work properly on the raspberry pi and incorporating the buzzer, which will activate anytime an item is scanned, into the system. The casing for the GUI system was alo started and about half way complete  Below is the design for the new scale.

The next 2 pictures show both the scale and GUI on the cart and how the GUI casing will hold the components on it.

For the dynamo we ran into some issues with current motor due to how the shaft was shaped. We had difficulties obtaining a piece that would properly grip onto the shaft to properly spin it. Below is the schematic of the dynamo system.

Next is a demonstration of the remove function working on the raspberry pi

The spacing for the Listbox got fixed so Treeview is no longer needed. The credit card code is still in the process of being implemented into the current code. Currently working on the code to email, it needs to take some steps to allow python to email. Below is the email page with a working onscreen keyboard.

Capture.PNG

Week 13: October 15 - October 22, 2020

 

This week, the team incorporated the remove function, dynamo, and the camera feed to the system. Shown below is a picture if the GUI with the camera feed added.

Next, have the remove function being demonstrated below. The first two pictures show represent two items on the scale and their respective prices on the GUI.

DSC_0394.JPG
22222.JPG

Then next the pictures represent the process of selecting an item on the list, clicking the remove button, removing the selected item from the scale, and the scale confirming the item has been removed via weight verification

333333.JPG

Below we have a picture of the fully assembled scale.

For the dynamo part of the system we did a test with the motor, buck converter, and small battery pack. The video below shows the battery being charged when the motor is spun.

Worked on editing the listbox to put the list into columns. Editing the Listbox on GUI to give enough space to create the appearance of columns was difficult since tab(\t) did not work on Window OS and inserting space made the Listbox looks awkward. It was decided to try to use TreeView to put the items and prices in columns. Worked on credit card OCR (optical character recognition) to put inside the payment page. The credit card OCR will use the camera to read the card and print out the data.

For the GUI, created the starting page and checkout page as shown below.

Week 12: October 8, 2020

 

This week, the team combined both the codes for the weight scale system and the GUI. After troubleshooting through the code, we where able to get the core of the system working properly and do a test run.

Also, the GUI now outputs the subtotal, tax, and total price. The outputs are shown in boxes below the Receipt.

For the dynamo part of the project, we realized we are going to use a boost converter/voltage regulator. The power generator circuit will also have a diode connected to it to stop current from flowing into the dynamo.

​

Below are some resource we used to research DC generators.

Week 11: October 1, 2020

 

This week, the team finished working on the scale assembly, the scale layout is shown in the picture below. 

After fixing the soldering issues with the scale we proceeded to do a test run on the scale with multiple items. The next 2 pictures show the scale taking the weight if a can of peanuts (approximately 635 grams).

peanut.JPG

Next, we have a cup of ramen (approximately 90 grams) added to the scale and the total weight being shown.

Finally, we have a test for 3 items with the last item being a bottle of rubbing alcohol (approximately 191 grams).

Below are some test runs with the items in different positions on the scale.

Peanut box tests

Ramen Cup tests

After completing the scale, the team had to revise the code to make the scanning portion of the code interact correctly with the weight values the Arduino was reading. Below we have a picture of the Arduino and Raspberry pi interacting by first scanning the barcode, then the scale takes the weight measurement, and then adding the item to the list once it confirms the selected item is within the weight threshold.

Also, worked on the while loop for the GUI. The code continues to print only once in the terminal and would not add up the items to produce subtotal, tax, and total. Will be meeting a tutor for help to discuss the issue with the while loop inside of Tkinter. Currently working on threading to see if it can run the while loop with Tkinter main loop. Worked on coding the LED indicators so the LED would turn green when start shopping, blue when checking out, yellow for warning if the weight of the items did not match, and red for problem during the transaction period.

Week 10: September 24, 2020

 

This week, the team continued working on the scale. We ran into a lot of issues with the scale calibration. The output values were fluctuating between postie and negative values when running the weighing program. After troubleshooting and doing some further research we pinpointed the issue was due to wiring contacts. After wiring the components in many different ways we were still receiving the same varying output values. To fix the issue we need solid soldering points on the 24-bit ADC. The issue we were having was that when the program is running, even the slightest movement in the wiring would cause our output values to vary from positive to negative.

​

Also, worked on the GUI interface to transfer pages with the different classes and functions. The demo transfer pages file got corrupted and a new one had to be made. There is currently an error with transferring pages that are currently working on being resolved. The calculations for tax, subtotal, and total is still in progress of being fixed. For the LED, the code is currently in progress of being created.

​

This is a picture of the errors the code is receiving. There is also a video of the barcode input shown below.

error1.PNG

​

For the power generator part of the system, we are using a DC motor(dynamo) to convert mechanical energy into electrical. Down below is a figure that uses a dynamo on a bicycle to power a light or charge battery. This is the concept were are looking to apply to the system.

dynamo.JPG

Week 9: September 17, 2020

 

This week, the team worked on the receipt to have items and prices listed. An on-screen keypad is added to the GUI to be able to input the barcode so it can no longer depend on a physical keyboard from the laptop. The transferring pages function was temporarily removed to be able to troubleshoot the code. Fixed the errors in the code such as window freezing, input issues with the keypad and physical keyboard, and issues with the variables. Also, researched programming with an LED and python. There are issues with the tax, subtotal, and total since it does not calculate all the items on the list. It takes a single item and only inputs the new item. This is due to the removal of the infinite while loop since it interferes with tkinter's main loop and causes the window to freeze.

​

Below is a picture of the barcode number being inputted:

screen.PNG
repeat.PNG

Week 8: September 10, 2020

​

This week, the team began working on the scale module. We tested each sensor with the amplifier to make sure each individual sensor was working correctly. Below are pictures of an individual sensor and the output weight of a phone weighing approximately 285 grams.

DSC_0370.JPG
weight.JPG

After soldering wires to the amplifier we ran into some issue with weight reading. This could be due to a mistake made during the soldering process, we are currently doing more troubleshooting for the scale.

​

Also, worked on this week was the receipt to list items and prices. There are issues with items and prices showing up on the text box. Edits are being made to the code to have the items show and calculated.

Week 7: September 3, 2020

 

This week, the team focused on finishing the scanner part of the system. We added weight parameters for each item in the system so that when an item weight does match the parameters, it will not be added to the shopping list. We also designated each item a barcode in order for the system to recognize the items. We created more GUI layouts, able to transfer pages, and create a pop-up window for the help button. Currently, the receipt and library are being created to display on the GUI.

​

The picture on the left side shows the barcode being scanned and added to the list when the weight parameters are met. The picture on the left side shows the item being scanned but not matching the weight parameters, this prompts the message "Weight does not match item" to warn the customer.

bar.JPG
peach.JPG
bar.JPG
scan_no_match.JPG

The pictures below show the current GUI layouts. The first one on the left is the window that is shown to customers when they first interact with the GUI. The one next to is the main window where the receipt will be located and will be used to navigate to input barcode, vegetables and fruits, and checkout. The bottom left is the checkout process with buttons use to choose the choice of payment or return to scan items. The bottom right is the popup window for the help button. Tkinter was used to create the GUI.

Capture1.PNG
Capture3.PNG
Capture2.PNG
Capture4.PNG

Week 6: August 27, 2020

​

This week, the team focused on researching how to recognize and read barcodes and QR codes using a webcam. We made a program that would recognize barcodes for different products. The team also focused on further research on dynamos and how they can be implemented into the shopping cart to recharge the battery while the cart is in motion. We will make a dynamo using a DC motor that will be spun by one of the cartwheels when in motion, to recharge the battery of the system. Also, continued working on the GUI and how to organize the layout to make it easy to use for customers.

​

the image on the right side displays our program recognizing and reading a barcode using a webcam. The video on the left one reference video we used to get an idea of how we can implement the dynamo into our system. Below is the rough draft of the GUI layouts in PDF.

Week 5: August 20, 2020

​

This week, the team focused on researching object recognition. The team started working on getting constant video feed running and object tracking. A majority of the work this week was focused on Convolutional neural networks (CNN) and how to train an algorithm to recognize objects. The team worked on different GUIs such as TkInter, Kivy, and PyQt, that operate with Python for comparison.

​

Due to the difficulties of the object recognition prototype program and the limited time for the project, it was decided the camera would be used for barcode scanning. The group researched dynamo generators to possibly add it to the Smart Cart on at least one wheel to generate power for the power bank while the customer is moving.

​

Below are some resources the team used.

Week 4: August 13, 2020

​

This week, the team began learning  OpenCV and its functions. The team also researched different GUIs available with Python such wxPython, Qt, TkInter, Kivy, and Pyside.Pi OS.

​

Below are some resources the team used.

​

https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html

https://wiki.python.org/moin/GuiProgramming

https://blog.resellerclub.com/the-6-best-python-gui-frameworks-for-developers/

https://www.digikey.com/en/maker/blogs/2018/the-best-gui-widgets-for-raspberry-pi

​

Week 3: August 6, 2020

​

 week, the team continued learning how to use python and its functions . A shopping cart was brought for the project to take measurements and design three different casings for the modules. Testing was done on some of the components to see to check they are were working properly, such as the LCD display reading touch inputs and raspberry pi.

​

Below is the shopping cart that is brought and the 7"LCD Display running on the Raspberry Pi OS.

WhatsApp Image 2020-08-03 at 5.42.46 PM.

Week 2: July 30, 2020

​

This week the team learned about Python and its functions to get started on programming for the project. The group used tutorials on Youtube, an app called SoloLearn, Python website, and professor Ejaz's PDF file of the Python class. All components needed have been brought and delivered to begin the project.

​

Below are some resources the team used.

​

https://docs.python.org/3.8/index.html

Week 1: July 23, 2020

​

Project was restructured ( as shown in the Block Diagram tab) due to adding object recognition to the system. Object recognition was researched and the team decides to go with OpenCV software. OpenCV is mostly used for real-time vision applications, these can include facial recognition, motion tracking, object identification, etc.. OpencCV is compatible with python which is our programming language of choice. Using YOLO( you only look once) algorithm we quickly and accurately detect objects.

​

The video below gave us more insight into the YOLO algorithm.

bottom of page