IMG_20191208_175054.jpg

A household aroma system that emits customizable scents when you are in different emotional states, trying to help regulate your mood.

The system consists of an electric scent diffuser, a collection of scent oils and several small cameras distributed around home.

 
AdobeStock_170402838.png

By collecting personal data including video of face and voice, as well as context data such as time and surroundings, the system is able to recognize your current emotion using bespoke algorithms.

 

A scent plate with three recesses for scent pads is fixed to the vent. The plate is rotatable over a micro servo controlled by Arduino Uno.

 

To train my model on my facial expressions, I created an image project using TeachbleMachine based on picture taken by the webcam.

The model uses a technique called transfer learning. There’s a pretrained neural network, and when I create my own classes, I can sort of picture that my classes are becoming the last layer or step of the neural net.

 
屏幕快照 2019-12-18 下午3.46.05.png

In the prototype, I created five classifications which are “excited”, “fatigue”, “anxious” and “no face in the image”, then label them with number 1 to 4.

Through uploading my faces in different scenes and iterated training, the model finally comes more accurate in classifying my emotion.

 

As a Javascript implemetnation of the Processing drawing framework, p5.js provides a novice-friendly framework for drawing to canvas in the browser. To facilitate using my micro-controllers with the p5.js library, I need to setup a layer between Arduino and p5.js. For this prototype, I used the p5.serialcontrol application and p5.bot library. p5.bot works as the glue-code to allow a micro-controller running firmata to talk to a browser and vice versa, so users can draw with buttons and control motors from the browser.

 

Credit

https://medium.com/@yyyyyyyuan/tutorial-serial-communication-with-arduino-and-p5-js-cd39b3ac10ce

https://teachablemachine.withgoogle.com/train/image

https://github.com/sarahgp/p5bots

https://github.com/p5-serial/p5.serialcontrol/releases

https://editor.p5js.org/