My Final Project¶
The SHOULD-YOU-TALK-TO-ME-O-METER¶
Description¶
This device is a stim toy that can also be used to allow the user to share their state of mind with the people around them.
Designed for people with difficulties in social interactions (such as those with ASD, anxiety disorders, etc.), the idea is to draw their attention to their state and needs and facilitate the expression of these needs while minimizing the necessary engagement in the relationship.
A stim-toy¶
Fidgets and stim toys are pretty commons and became extremely popular with the hand spinner but they existed long before in numbers of form (worry beads,Stress Ball,…). They are used to release stress, to help focus or for “stimming”.
My design is a bit inspired by the Fidget Cube that has multiple fidgets on it especially for proprioceptive and tactile stiimming.
I wanted it to be enjoyable to use from a sensory perspective, and thus I chose interactions for their sensory properties.
Thus, the rocker switches have a slight resistance when pressed and make a small clicking sound when they change position. The rotary encoder, on the other hand, has small steps that can be felt slightly when turned and also makes a noise (different from the switches) when pressed.
The overall shape of the object has been designed for a comfortable and ergonomic grip. The choice of colors and contrasts has also been carefully considered to be sensorially stimulating and facilitate the distinction of interactions.
All these features aim to make it a pleasant and enjoyable stim toy.
A communication tool¶
In addition to being a stim toy, this device also serves as a tool to facilitate social interactions by allowing the person to share their state of mind. When the device is turned on, the encoder allows you to define your mood, and the number of toggled switches defines the desired level of social interaction acceptance. This information is displayed on a screen worn by the person (phone or dedicated screen) in the form of smileys. By pressing the button on the rotary encoder, a third smiley, a fusion of the previous two, is shown to validate the ‘state of mind’. I used an online tool called emojikitchen to get all the smileys for this device.
I choose to display this informations that seems essentials to me.
The mood¶
Sharing mood seemed essential for me (and not only for people with disability) to help communication. Sharing one’s mood allows others to understand how they are feeling, especially if they’re lacking in non-verbal communication skills. Also, it can help people who can’t communicate verbally or struggle to share feelings. By this, it also helps to develop empathy and reduce misunderstandings. This also helps anticipate the type of interaction that the mood may prompt (such as support, consolation, or conversely, laughter, casual conversation). A person might choose to avoid interaction to prevent a mismatch in mood alignment that could exacerbate the situation. Someone more suitable can then intervene if desired and requested. Also expressing and sharing mood encourages self-awareness and emotional regulation. It allows individuals to recognize their own feelings and triggers, leading to better self-management of emotions.
The range of moods is extremely vast, and I choose to focus on five levels (very bad, bad, neutral, good, and very good) to avoid the complexity between sadness, anger, overexcitement, amazement and others.
The interaction acceptance¶
For individuals with social skills disorders, social interactions are both a need, a necessity, but also a challenge. However, solitude is often a necessary refuge for rejuvenation. Forced interactions can lead to unintended mistreatment by the interlocutor and/or provoke inappropriate reactions from the individual. On the other hand, being unable to initiate interactions when desired can lead to painful feelings of loneliness.
For these reasons, sharing the desired level of social interaction can facilitate communication of one’s needs, reduce anxiety, and promote autonomy in establishing social interactions. It encourages those around to better respect personal needs and makes social participation more inclusive.
I also choose a scale of interaction acceptance based on 5 levels with smileys acording to it. I didn’t find an existing scale for this topic so I defined it as I feel it, but obviously, it should be adapted to the person using the device.
I chose these different levels :
- “I don’t want to see anyone”
- “I don’t want to talk (or be talked to)”
- “I don’t care”
- “I’d like to”
- “I need to”
The Display¶
The display on a screen seemed to me the most effective yet least intrusive way to share this information, although it remains quite noticeable and unusual, and therefore somewhat stigmatizing. On the other hand, it makes an invisible disability visible and thus helps prevent inappropriate behaviors.
The choice to use emojis was obvious because they have become universal, effective, and fun communication tools. They also allow communication without relying on reading and writing.
I choose the phone to display it as it’s the most common screen used and allows other people to connect to the webpage to have access to the informations displayed. The phone has to be connected to a WiFi network. I secondly programmed an autonomous tft screen for the users to keep access to his phone and not rely on WiFi access as in this case the communication occurs directly between the remote control and the screen.
Functionning¶
Turning the rotary encoder change the image displyed to represent the mood on the top left of the screen. The top right images figuring the interaction acceptance level is set by the number of rocker switches turned on. Pushing on the rotary encoder will display underneath a mixed images figuring the actual state of mind of the person using it. Another switch (a black one) permits to turn off the fidget. The last image is still displayed on the screen until the page is refreshed (phone) or the screen is turned off (TFT)
Creation¶
Electronics¶
Using KiCAD, the PCB has been designed around en ESP32WROMM32UE Microcontroller chosen for its wireless properties. The rotary encoder has its own micro-board to connect with it. It’s powered by 3.7V Lithium battery. The battery holder has been 3d printed and the wiring have been assemblied specifically with crimping connectors.
The shell¶
The shell and the knob has been designed around the electronics in Fusion 360 and then printed with PLA.
Information on the Fidget has been realised with Inkscape and vinyl cutted.
The Screen¶
The screen is embedded with its own board named ESP32-2432S028 or Cheap Yellow Display (CYD).
The case for the screen and its battery has also been design with Fusion 360. The strap has been made by sewing fabrics and 3d printed buckles
Programming¶
The program displays various emojis images. The emojis came from emoji-kitchen/emoji-supply and is free to use under MIT License :
Copyright (c) 2022 Nicholas Jitkoff
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Programming has been made in Arduino IDE. Two versions has been made.
The first one is for phone, and there is only one code in the Fidget ESP32. It displays an html interface on IP address. The code must be modified with Wifi SSID and password. The IP adress will be available in serial monitor through UART communication. Also, the images needs to be uploaded on the microcontrollers using ESP32 FS and had to be reduced size dute to small memory on the chip. Check ESP32FS tutorial to know how to do it. The code mixes C++, html and javascript.
Code is available here.
Reduce sized PNG archive is available here.
The second one don’t need to be modified as it creates it’s own communication with ESPNow.
The fidgets send informations to the screen board that use them to display the correct images from SD card.
The codes are only C++. It uses a code for the fidget and one for the screen. The image has to be uploaded on an SD card and are available here
Cost¶
Here is the bill of materials used for this project :
Fidget¶
Nb | Element | Link | Price (Units) | Price (total) | Remarks |
---|---|---|---|---|---|
1 | Micro-controller ESP32-WROOM-32UE | digikey | 2.50$ | 2.50$ | |
1 | KY-040 Rotary Encoder | Amazon | ~1.50$ | 1.50$ | |
5 | Rocker Switch | e-bay | ~1$ | 5$ | Cut-out 19x13mm |
1 | Button | Digikey | ~1$ | 1$ | |
1 | Regulator 3.3V 1A | Digikey | 0.51$ | 0.51$ | Nolonger manufactured. Prefer [this one(https://www.digikey.com/en/products/detail/diodes-incorporated/AZ1117IH-3-3TRG1/5699682)] |
1 | vertical connector SMD 1x05 2.54mm | Digikey | 0.68$ | 0.68$ | suppressed for direct soldering |
1 | horizontal connector SMD 1x06 2.54mm | Digikey | 0.93$ | 0.93$ | FTDI |
1 | vertical connector SMD 2x05 2.54mm | Digikey | 0.84$ | 0.84$ | for switches |
3 | JST connector 2 pins + sockets | Digikey | 0.54$ (8.95$for 100 pins kit) | 0.54$ | 1 modified to be soldered SMD |
1 | resistor 10k | Digikey | 0.10$ | 0.10$ | |
1 | resistor 1K | Digikey | 0.10$ | 0.10$ | |
2 | resistor O ohm | Digikey | 0.10$ | 0.20$ | |
1 | LED Clear Blue | Digikey | 0.38$ | 0.38$ | |
1 | capacitor 0.1 uF | Digikey | 0.33$ | 0.33$ | |
1 | capacitor 1 uF | Digikey | 0.25$ | 0.25$ | |
1 | capacitor 10 uF | Digikey | 0.60$ | 0.60$ | different packaging in the lab |
1 | switch slide | Digikey | 1.39$ | 1.39$ | |
15 | cable 1.27mm*10 | Digikey | ~0.012$ (88.32$ for 30.48m) | ~ 0.17$ | ~ 4cm length each |
10 | single dupont connectors + sockets | Amazon | 0.03$ (12.59$ for 400 pins) | 0.30$ | |
5 | Hook-up Wire Red and Black | RS components | 0.03$ (8.67$/100m) | 0.03$ | ~ 6 cm medium length |
1 | CCL FR1 5.00” x 4.00” | Digikey | 2.56$ (64.04/25pcs) | 2.56$ | |
1 | electrical tape | Digikey | 0.12$ (140.16$ the tape of 54’) | 0.12$ | 1/2” used for battery holder |
10 | heat shrinkables tube D:4.8mm * 20 mm | PVN | ~0.04$ (14.21€ for 85*100mm pcs) | ~ 0.40 $ | about 2 x 100mm tubes |
1 | PLA black | MatterHackers | 0.8$ (57$/kg) | 0.8$ | 14g - local reference missing |
1 | PLA-PHA yellow | colorFabb | 5.75$ (19.86$/750g) | 5.75$ | 217g |
1 | screw M4 12mm | RS components | 0.18$ | 0.18$ | to fix the knob |
1 | nut 4mm | RS components | 0.03 $ | 0.03$ | included in the knob print |
Display part¶
Nb | Element | Link | Price (Units) | Price (total) | Remarks |
---|---|---|---|---|---|
1 | ESP32-2432S028 | AliExpress | 19.84$ (18.47€) | 19.84$ | usb cable included |
1 | Powerbank | Leclerc | 15.72$ (14.64€) | 15.72$ | From Mall. Dim: 62.5 x 14.5 x 9.9 |
1 | Micro SD Card | Digikey | 3.61$ | 3.61$ | 3 Mo needed |
1 | PLA black | MatterHackers | 1.54$ (57$/kg) | 1.54$ | For holder and screen case - 27g - local reference missing |
1 | PETG black | Colorfabb | 0.04$ (158.15$/8kg) | 0.04$ | For clips(*2) - 2g |
1 | Fabrics 50*6cm | Mondial tissus | 0.15$ (7.62$ for 1*1.50m) | 0.15$ | cutted part from curtains |
1 | Sewing thread | Mondial tissus | >0.01$(4.47$/2743m) | >0.01$ | less than 1m |
Total¶
All components are provided by the Fablab and most of them came from Digikey and RS Components.
The total cost for it is ‘27.19 $’ for the fidget and ‘40.90 $’ for the tft display
Possible improvements¶
battery management¶
Actually, the battery deploys rapidly and brownout signals occurs after a few time. Replace 3.7V battery with multiple 3V battery could partially solve this problem. A charging system would also be a good improvement. The TFT screen actually use a powerbank. A better integrated power supply with an on/off button should be better.
Feedbacks¶
Initially planned and visible in the schematic, feedback on the fidget should be a great improvement. I removed them to facilitate the PCB design and gain time on my schedule. For now, users have to check the screen to verified if the right image is displayed. Also it will add another visual stimulation that could benefit some people.
E-paper display¶
Also, initially planned, I ran out of time to test and program e-paper. I t should be a great improvement as the image could still be displayed even when power’s off. However, this would prevent using multiple colors.
Material used¶
I make a test at PETG printing and Epoxy curing and the result was very smooth despite a less esthetic render. More working with materials should ended with better finished object visually and tactily.
Size and shape¶
Due to PCB size and battery, The Fidget is bigger than I expected. Some improvement in the electroncics design could help to reduce it. Also, I thought at first to add a casted layer around the shell for a more flexible and ergonomic shape.
The screen case and the strap¶
This part of the project has been designed in the last days. A better 3d Design of the holder should be great. The strap also need improvement, as it’s not easy to put on the arm.
Android app¶
An android application should help connect with the phone version, share the webpage with friends or family, and why not manage the images library.
Programming¶
The programming could probably be improved. For exemple, the TFT version could use Zigbee or blue tooth communication. The TFT screen could also display some text to help understanding.
Archive¶
3D models :
2D models :
Electronics :
Codes :
Copyright and License¶
All the contents of the project are open source with Creative Commons license Attribution-ShareAlike 4.0 International (CC BY-SA 4.0).