This project origins from the Workshop "Embedded Systems Engineering - IoT Applications Prototyping" that is offered by the TAE Esslingen in cooperation with the Brunel University of London.
To many people, shopping at a grocery is time consuming and means stress to them. To organize themselves, people use classical shopping lists or apps that offer the same functionality. There are two main drawbacks of classical shopping lists and list-applications that the presented project targets on:
- The ordering of the list's items has to be done manually and does not reflect the sequence of the grocery's departments. Forgotten items and additional walks through the supermarket arise from that.
- List-applications are mostly controlled by pushing on the items that are displayed on the screen. This means that the user either has to deal with the difficult control by one hand or he has to use both hands to control the application.
Smart Cart faces these drawbacks by offering two main features to its user.
Ordering the shopping list
The app recognizes a shop that is entered via the user's GPS-position. The sequence of departments is then retrieved from a server and the item on the shopping list are put in the right order. The recognition of a shop is done with the help of the Microsoft here API.
In addition, OneDrive could be included for the user being able to modify it's shopping list with another device than its smartphone. The backend including the data store could be realized with Microsoft Azure and its capabilities.
To collect the huge amount of data about the supported supermarkets, a collaboration with their owners has to take place. If the owners provide information about their sequence of departments, they might place gratis ads in the app for a certain time. If a user enters their store, these ads are then displayed. The placement of ads might be supported by implementing an IFTTT-Interface.
Since the acquisition of data about different groceries would exceed the scope of the workshop, this feature is abandoned in the first step.
Simplified Control by Gesture Recognition
The first focus is set on offering a new and simple way of controlling a list-application. The use case of going shopping requires two actions to be available to the app’s user:
- Marking an item as "added to cart"
- Switching the items on the list
These actions should be triggered via gestures that are performed by the user. The used gestures are:
- Marking an item as "added to cart" - User moves its phone in a circle clockwise
- Switching the items on the list - User moves its phone in a circle counter-clockwise
To recognize the chosen gestures, the acceleration sensor and the magnetic field sensor are used. The retrieved acceleration values are used to determine the movement that is made. The magnetic field sensor serves to recognize the orientation of the smartphone and to be able to subtract out its influence out of the acceleration values.
Mathematical Basics
The complete derivation of the equations that are necessary to retrieve acceleration values that are independent from the handy's orientation can be found in the attachment "MathBasics.pdf".
Application of the mathematical Basics
If the acceleration values are measured when performung an circular gesture and the orientation of the smartphone is not subtracted out, one receives inconstant results as it can be seen in the topmost two figures. When applying the equations from the PDF, the results always exhibit the that can be seen in the lower figure.
Recognizing a circular Gesture
To recognize a circular gesture, the gesture is splitted into parts (states of the recognition) and milestones that can be retrieved from the previous measurements. For the case of a gesture not being finished properly, these states have a reset condition that will leave the statemachine of the circle-recognition. The states / milestones and the reset conditions are described below:
The final application that brings togehter all the presented steps is presented in the following video:
Comments
Please log in or sign up to comment.