#Last Updated: 04/23/2023
#Description: This Github link contains the User Interface for MechSense (CHI'23) as well as an example fishing game.
---Folder Structure---
-
MechSense UI (Folder).
a) MechSense_UI.pde (File, processing file that hosts the UI).
b) utils.pde (File, has the polynomial coefficients for equation used in MechSense_UI.pde).
c) assets (Folder, houses the graphics used for the fishing game). -
FDC2214 (Folder, FDC2214 Arduino compatible Capacitive Sensing library-- required for code to run)
-
MechSense_CapSense (Folder, Arduino code that sends capacitive sensor values to Serial/Processing-- required to upload to microcontroller)
---Requirements---
- Processing 2
- Arduino/ microcontroller with MechSense code run on it (see "MechSense_CapSense" file)
- FDC2214 Arduino Library installation (see "FDC2214" folder)
- FDC2214 Sensing Board
- MechSense 3D printed object with stator connected to CH0, CH1, CH2 on FDC2214.
---How to Use---
- Upload MechSense_Capsense code to Arduino (ensuring that the FDC2214 library is also installed)
- Run the processing file 'MechSense_UI.pde" (Note that the processing file will not run unless it is connected to a microcontroller, otherwise you will get a grey screen)
- Press on the calibration button (you may change calibration specifics in the code)
- As it's calibrating, you can toggle to see the waveforms through "draw_waveforms"
- Once calibration is finished, a UI with direction of motion, angular position, speed (rpm) will appear
- Waveform button, allows you to see the wavforms and segmentation (can toggle)
- Fishing Game button, allows you to enter fishing game mode (can toggle)
---Notes---
- Rotating at higher speeds is more likely to produce error as it changes the shape of the polynomial graph (see paper* for more details)
- Recommended if using laptop to have it connected to ground, as that establishes a more stable ground
- Any Wires in the system must not be moving and hand proximity should be reasonable to avoid noise (see paper*)
- The vertical distance between stator and rotor must be kept constant, otherwise errors might accumulate
--- Any Questions/ Notes ---
If you have any questions or feedback, please contact [email protected]
--- Paper* ---
Marwa AlAlawi, Noah Pacik-Nelson, Junyi Zhu, Ben Greenspan, Andrew Doan, Brandon Wong, Benjamin Owen-Block, Shanti Mickens, Wilhelm Schoeman, Michael Wessely, Andreea Danielescu, Stefanie Mueller. MechSense: A Design and Fabrication Pipeline for Integrating Rotary Encoders into 3D Printed Mechanisms https://dl.acm.org/doi/10.1145/3544548.3581361