Yo Jabba Jabba is the first-of-its-kind Jabbawockee pet management app! This app manages all dietary and emotional needs for your pet Jabbawockee and automatically feeds and waters your pet. The app is connected to 3 sensors - food, water, and happiness. The food and water sensors measure the amount of food and water left in the pet’s bowls, respectively. The happiness sensor is attached to the Jabbawockee’s body and measures satisfaction level (dopamines!) The app has an automatic, user-adjustable feeding and watering schedule that refills the pet’s bowls at the start of each day. The user can also do manual refills of food and water, as well as play music for the pet and allocate time for the pet to play with friends. The user can monitor all data and values from the app and a very helpful alerts center tracks bad changes in the pet’s health/happiness and alerts the owner.
First, the simulator is a BLL device simulator I built in Kinoma to simulate having actual sensors on food/water bowls and the pet’s body and facilitate feeding hardware sensor data to the companion app. The device simulator consists of three sliders. The bottom-most slider is for food weight level (1 means the bowl is full, 0 means it is completely empty), the middle slide is for water weight level (1 means the bowl is full, 0 means it is completely empty), and the top-most slider is for happiness level (1 means the pet is ecstatic, 0 means the pet is very sad). The sliders can be set on varying frequencies or can be adjusted manually using the sliders; I usually use the sliders to test the companion app because the the way the sliders provide discontinuous data most matches the way the data would be collected in real-life. (see below)
Next, the app interacts with the device simulator to obtain data from the sensors and display it to users, as well as allow users to interact with the sensors in other ways. On request, the device simulator sends data to the application. The application sends out requests, reads the data it receives from the simulator, and updates itself accordingly. Using cross-device communication, the app receives data about water level, food level, and happiness level from the device simulator in real-time (and updates about every 3 seconds). (see below)
The first way the app displays the data collected from the device simulator in the form of pink bars. The bars are filled to the level of the corresponding data value collected, so users can easily see the visualization for a half-full bowl of food, water, etc. Similarly, the happiness value is displayed as a pink bar that fills up more when the pet is happier. The pink bars are accompanied by printed concrete numbers so users can see concrete numbers of data alongside the visualizations, eliminating the need for any guesstimating. These numbers are written as percentages, so 100 means a 100% full bar (and full bowl, happiness capacity, etc) and a 0 means a 0%, empty bar. (see below)
The second way the app displays data is through more detailed time-based bar graphs. These graphs display the changes in the data levels over time. For example, as the Jabbawockee eats food throughout the day, a new bar will be added to the food bar graph each time the pet eats some food so that the owner can see the changes in the food bowl throughout the day. This helps catch health problems like binge-eating and uneven eating schedules (i.e. the pet binge-eating the entire bowl of every night or the pet only having an appetite in the mornings) by tracking the over-time changes. These graphs are available for all three sensors (food, water, and happiness) and are updated in real-time. To view the graphs, the user holds down on the respective colored bar to see the graph and releases his/her finger to hide the graph again. This instruction is located right below the app title so users can easily see it, since such an action may not be intuitive. (see below)
The application also allows users to control the hardware simulator by triggering refilling of the bowls, scheduling of the food, and other actions by interacting with the app. The user can press the refill button to refill the food or water bowls manually outside of the schedule (for example, in case the user would like the pet to have some extra water or food that day) and the schedule button to change the automated schedule of how much and how often the Jabbawockeee currently gets fed and watered. In addition, the user can press the Music and Friends buttons to play music for the pet and allocate time for the pet to play with friends; these actions will increase the pet’s happiness level. Because the hardware sensors haven’t yet been prototyped, currently, all of these actions are simulated by the tester going to the BLL and manually changing the sliders (Wizard of Oz style). The sensors for this project should be small and non-intrusive, so as a design decision, I decided not to allow any of the sensors to have a display or screen, since users will not find it convenient to search a pet bowl for displayed feedback and pets do not do well with sensors that are too large, intrusive, or have distracting displays. Therefore, the feedback for these commands occurs on the application. When the user presses refill or schedule or music or friends, the respective bar displays text letting the user know that the command was received and carried out. Then, the bar updates itself with the most recent data (Wizard of Oz style). This lets the users see on their application immediately and conveniently that their interaction with the hardware simulator was registered and carried out correctly. (see below)
An additional feature the app has for convenience and health of the pet is the alerts section. The bottom-most colored box is an alerts box that keeps track of patterns in the data and alerts the owner if any negative changes have occurred recently. For example, if the pet has been low on happiness lately, the alerts section lets the owner know the pet has been sad lately. Similarly, if the pet did not finish his/her food or water yesterday, upon the bowls being refilled, the app tracks the data and the alerts section lets the owner know the pets did not eat enough the day prior. This makes owners more aware of the pet’s habits and makes sure the owners can correct for things like missed meals before they happen too often in a row and have detrimental effects on the Jabbawockee’s health. (see below)
Overall, this app is convenient, easy-to-use and extremely helpful in making sure your pet Jabbawockee is healthy because happy, healthy Jabbawockee = happy, healthy owner!
Extra Credit Options:
Creative data visualization - the two types of data visualizations (filled bars and bar graphs) were creative and very helpful in helping users visualize the data coming from the sensors.
Include other information about the sensing behaviors such as health tips, warnings - the alerts section of the app keeps track of negative patterns in the data and alerts users if the pet is skipping meals, unhappy, etc.
Extra attention to design - the app is very good about giving correct, up-to-date feedback. The aesthetics are pleasing and the app is easy to use and self-intuitive.
Disclaimer #1: Despite the misleading title, this app is not suitable for owners of Jabba the Hut. Use at your own risk.
Disclaimer #2: The name is misspelled Jabbawockee on purpose, instead of Jabberwocky, as a tribute to this Yo Jabba Jabba app creator's love for hip hop and one of her favorite dance crews, the Jabbawockeez.
NOTE:
Parts of this code are from the Kinoma Forum, CS160 Piazza, the Analog Graph example, the Analog Drawing Toy example, and the Analog Graph Example
All parts of this code pertaining to the bar graph are taken from Will Dimmit (the K4 Chart Project)
Video: The YouTube video link is posted below:
https://youtu.be/ByGgMsxzhDk
Source Code (see note below please):
*****Note: The source code is split into 2 different sections. To work properly, the project names need to have the .app extension; however, the .app extension prevents further viewing of the source code from the folder. Therefore, there are two copies of my code in the zip folder. The two .app files in the petfeeder_final zip folder can be run together in Kinoma to see the working final product. The petfeeder_code zip file within the petfeeder_final zip folder contains the viewable code files for opening and inspection. However, note that running these files will not yield a working product because these files are lacking the .app extension. To see the working product, run the .app files instead. Sorry for the confusion, but I wanted to make sure my code was thoroughly included on here in a way that makes looking through everything easier for the graders. Thanks!



Comments