2024-Group 2


Caption:
Project Open-House Display. Includes software display with
targets, slingshot haptic device, and Likert scale for user feedback.

2 DoF Virtual SlingShot

Project team members: Jack Bernardo, John Hong, Khuyen Nguyen, and Shaleen Thiengmany

Inspired by the popular game "Angry Birds", the goal of our project was to bring joy and engagement from this virtual environment into an impactful, real-life experience for players. Our haptic feedback device tracks angular displacement in two degrees of freedom — one for drawing and one for aiming the slingshot — and outputs displacement to an Arduino board and Processing software to apply feedback forces to the user as well as output a matching display: targets in a field. To create the most realistic experience, we incorporated a linear virtual spring for resistance as the user draws back the sling and velocity tracking to capture the speed of the handle’s release for the ball’s initial shooting velocity. From our open-house demonstration, the device’s haptic experience averaged 7.6/10, and we identified adding graphics to aid in aiming and increasing the draw’s range and feedback force as areas of improvement.

Introduction

The objective of this haptic device is to deliver a fun gaming experience to the user whose objective is to aim and shoot a virtual ball in a predetermined target range. This concept will take great advantage of a virtual spring system, allowing the user to feel the force they apply pulling back on them as they wind back the slingshot. Additionally, once the rope of the slingshot passes through the arms, it will go slack, removing the spring force and taking advantage of damping to slow down the arm’s motion.

Background

Haptic feedback is critical for creating realistic and engaging interactions in various applications, from gaming to professional training. While traditional haptic systems primarily used vibration motors to simulate tactile sensations, modern advancements have introduced more sophisticated mechanisms, such as skin stretch, pneumatic pressure, and force feedback, to provide richer and more nuanced tactile experiences.

One such advanced system is QuadStretch, a wearable skin stretch device designed to deliver multi-dimensional haptic feedback. The QuadStretch system employs a counter-stretching mechanism, utilizing multiple tactors to generate detailed and continuous stretch feedback around the user's forearm. This device's compact and flexible design allows it to provide spatially accurate and intensity-varied feedback, which is crucial for realistic and engaging interactions​​. [1]

Interactive haptic systems have been developed to enhance user engagement by providing realistic tactile feedback. These systems leverage advanced haptic technologies to simulate physical activities and experiences accurately. For instance, an immersive haptic system for traditional archery aims to replicate the sensations and mechanics of shooting different types of ancient bows. This system uses a customized haptic interface to mimic the force characteristics of real bows, including the draw weight and elasticity, providing users with a realistic and engaging archery experience​​. [2]

The archery simulator incorporates a detailed force feedback mechanism using a MAXON EC-Powermax 30 electric motor, which adjusts the tension on the bowstring in response to the user's actions. This setup ensures that the haptic feedback accurately reflects the physical properties of different bows, allowing users to experience the distinct characteristics of each type. The focus on haptic feedback enhances the user's engagement by providing a tactile experience that closely mimics real-world interactions​​.

The insights from the studies on QuadStretch and the immersive haptic archery system are directly applicable to the development of our slingshot simulator project. The QuadStretch system demonstrates the effectiveness of multi-dimensional feedback in creating immersive tactile experiences. Similarly, the archery simulator showcases the importance of accurate force feedback in enhancing user engagement and realism. By integrating advanced haptic feedback mechanisms into our project, we can simulate the tension and release of a slingshot with high fidelity, providing users with a physically engaging and realistic experience. These studies underscore the potential of haptic feedback to elevate interactive simulations, making our virtual slingshot game not only a compelling and immersive activity but also a valuable tool for understanding the mechanics and sensations associated with using a slingshot.

Methods

Hardware Design and Implementation

To enable the 2 degrees of freedom (DoFs) required for our slingshot, we adapted the 1-DoF haptic device provided to our class: the HapKit (shown below). It features a handle with a sector at the bottom that the capstan wire feeds through. The handle/sector component is driven by a motor with a magnet attached to the end of its shaft. The hall effect sensor soldered to the back of the Arduino is used to measure the angular displacement of the handle.

---

As a whole, our design stayed true to our initial sketches (see Appendix) where we had one DoF in the handle — which allowed the user to “draw” back the slingshot — and the second DoF in the turntable or “Lazy Susan” — which allowed the user to rotate or “aim” the slingshot. Our initial CAD design is shown below in the left image, and our final version of the CAD post testing is shown to the right.

---

From the original HapKit design, we made the following design changes:

  • Drawing HapKit —
- Extend the vertical Arduino mount and add through holes for a screw to help secure the Arduino
- Add the slingshot handle to the design with holes to connect it to the HapKit handle using a string
- Shift the sector angles from being centered with the handle, to allow one-sided “draw” or angular displacement to one side
  • Aiming HapKit —
- Rotate the HapKit on its side such that the handle rotates about an axis directly below the drawing HapKit handle
- Merge the handle with the drawing HapKit base and extend the outline to form a circular Lazy Susan
- Add wedge cutouts on either side of the Lazy Susan sector and change the wire/screw holes as necessary for the capstan drive
  • Base —
- Extend the horizontal Arduino mount into the base using the original spacing between the motor and Arduino (for the hall effect sensor to work properly)
- Add a hole for a heat-set threaded insert to the Arduino mount (to secure the Arduino in place)
- Add legs to the base that are tall enough to allow a second motor to be screwed in underneath
- Add through holes for rubber feet, wiring, and adjusting the octagon wire tightening washer

---

Between our initial and final CAD iterations, we made the following design changes:

  • Drawing HapKit —
- Merge the handle and sector parts to make 3D printing and assembly easier and prevent wobble between the parts
- Change the shape of the handle to encourage users to pull back using their finger tip (which facilitates a flicking motion for quick and easy release)
- Remove the slingshot handle since it gets in the way of drawing back the handle and runs into the wiring between the two Arduinos (generally clearing up space and minimizing obstructions to movement)
- Lower the vertical Arduino mount and have it only support one side with a through hole for a screw
  • Aiming HapKit —
- Add clearance between the horizontal Arduino mount and the Lazy Susan
- Flip the horizontal Arduino’s orientation for easier wiring between the two Arduinos
  • Base —
- Extend a large circle from the base to stabilize the Lazy Susan as it rotates (acts as a large washer)
- Extend the length of the base to allow space for the user to push down on the corner (top left in the photo) and secure the base in place while playing
- Remove rubber feet (no changes to the CAD, but found that the base was more secure without them during testing)

---

Below are images of our final CAD components: HapKit Handle (top left), Lazy Susan (top right), Base (bottom).

Software

The software for this project was run on a single Hapkit Arduino board, and was constructed as a state-based program to ensure an indefinite running time. The device has 3 states: Idle, Drawing, and Firing. By default, the device begins in the Idle state, where no force is applied. As the handle passes a set threshold, the device enters the Drawing state, where its output force is proportional to the handle’s distance from the threshold, making this a virtual wall. Finally, as the user releases the handle, it accelerates through the threshold, and records the handle speed and angle as it passes through, entering the Firing state and damping its motion.

The Arduino then simulates the flight of the projectile in real time, while sending positional information to a Processing program which handles the contact of projectiles and targets. This Processing program simply moves a drawing of a ball to the calculated position of the projectile, while calculating the distance of the ball from each target set up on the playing field. Full programs will be included in the files section of this report.

Electronics

The electronics for this system are pretty simple, despite using two arduinos simultaneously. The aiming arduino is used almost entirely for its Hall effect sensor, and will therefore be referred to as the "Hall" arduino (naturally, our other arduino is named "Oates"). Both arduinos are hooked up to USB power, while Oates also receives power through a barrel connector for its motors. The A2 pin of Hall, which is hard wired to its Hall effect sensor, is connected to the A5 pin of Oates, allowing Oates to read the values of both sensors at the same time. A simple wiring diagram is included below showing how to connect the arduinos together.

---

System Analysis and Control

Analysis of ball's projectile motion relative to the handle_position after launch whereby our "wall" is at approximately 0

The behavior of the device changes greatly between its various states. In the Draw state, it acts with a simple virtual spring. This system is obviously unstable, but by design, as it allows the handle to accelerate faster and faster as it approaches the threshold. A block diagram of the device's functioning in the draw state is included below.

In its Firing state, the device has a simple damping system, guaranteeing its stability. However, due to limitations of the Hapkit's hardware, too high a damping gain can cause real-world stability issues. However, the added slowing effect of the damping prevents the system from sustaining heavy mechanical damage, and allows the device greater longevity. A block diagram of the device's functioning in the firing state is included below.

Demonstration / Application

Results

We used the Likert scale (see image below) to evaluate the effectiveness of our design. First, users were asked to rank on a scale of 1 to 10, how closely does our setup resemble the experience of using a real slingshot. On this scale, one was "not at all like a slingshot" and 10 was "exactly like a slingshot". Users were then asked to give feedbacks on improvements they would like to see. We gathered 19 responses of users at the open-house. On average, users rated the slingshot haptic experience as a 7.63.

In terms of feedbacks, users wanted to see:

  1. More force feedback (in this case, resistance) as they are pulling the handle back to prepare for launch. One way we can address this is increasing the K-constant of our springs-based force feedback equation
  2. Users wanted more graphics development - particularly the implementation of an aiming line to see where they are aiming relative to the UI screen
  3. Users wanted an increase in range where you can pull the handle all the way back so the launched ball can travel a greater distance

Future Work

Given our users' feedbacks during the open-house demo, we want to target the three main points in the future:

  1. Increase force feedback as the user is drawing the handle back to prepare for launch. This could be done by either increasing the K-value of the springs-force equation or getting a new motor that could output a higher torque.
  2. Incorporate the an aiming-line in our graphics/UI so users can track where they are aiming
  3. Increasing the range of handle so users can pull the handle further back to amplify the effect of drawing back a long rubber band on a slingshot

We would follow up with more user testing after these changes are made to evaluate the effectiveness of the device in imitating a real-life slingshot. Moreover, we encourage future groups to add mechanical hard stops to the "drawing" HapKit to ease the strain on the provided hardware with repeated testing, in particular the capstan wire. The application of this haptic game device could aid the goal of entertainment such as computer games by making the experience more realistic/enjoyable given the force feedback. It could also extend serious applications such as education and training.

Acknowledgments

We would like to acknowledge the teaching team of ME327, for all their assistance in the design of the base Hapkits and the code templates to provide a framework for our project. We would also like to thank the Room 36/AMPS staff for letting us use their resources and space to work on our project.

Files

Code:

Links to CAD Files (.step):

Other Documentation:

References

[1] Shim, Y. A., Kim, T., & Lee, G. (2022, April). Quadstretch: A forearm-wearable multi-dimensional skin stretch display for immersive vr haptic feedback. In CHI Conference on Human Factors in Computing Systems Extended Abstracts (pp. 1-4). https://doi.org/10.1145/3491101.3519908

[2] Butnariu, S., Duguleană, M., Brondi, R., Gîrbacia, F., Postelnicu, C., & Carrozzino, M. (2018). An interactive haptic system for experiencing traditional archery. Acta Polytechnica Hungarica, 15(5), 185-203.


Appendix: Project Checkpoints

Checkpoint 1

Check point goal:

  • Meet for preliminary test (of integrating components and testing sensor functionality/accuracy). (Can bump to early Week 9 depending on weekend availability.)
  • Finalize mechanical implementations for device set-up to begin CAD
  • Progress check-in: Initially, we planned to incorporate a gyroscope into our device for angle rotation detection.

However, our plan has changed and we are now using a hall effect sensor with the same set-up as that of the HapKit. After brainstorming how to implement a gyroscope successfully, we found out that it would be more timeefficient and effective to use the hall-effect sensor and angle calibration steps done previously. We plan to move forward with implementing two hall effect sensors: (1) for our sling-shot rotation feature and (2) for our sling-shot launch feature. Note that the motor for the slingshot launch feature will be powered and the rotation feature will not. This is because we don't plan to provide force feedback for the slingshot rotation-and-aim feature to imitate a free-aiming experience that you would get with a real slingshot.

Given our new mechanical set-up plan, we will begin to implement the design in CAD and integrate the hardware components in the upcoming week. We plan to finish our box diagram, iterate on hardware/software as needed, and seek help from teaching team as needed. Our upcoming goal is to finish haptics software and rendering by the end of the week.

Checkpoint 2

Goals Defined in Project Proposal

  • Early Week: Iterate on hardware/software as needed. Seek help from teaching team as needed. Goal is to finish haptics software by start of the week."
  • Mid Week: Fabricate any new and final versions of parts. Goal is to finish visual rendering by end of the week.
  • Weekend: Make final adjustments. Start preparing for project demo.

Updates This week we finished integrating the custom 3D-printed parts with hardware components. Our 2 DOF slingshot has been set up so that the user can rotate to aim and move the handle to launch the ball. Moving joints are secured with shoulder bolts and washers and powered by a capstan drive. We are using two HapKit boards and one powered motor for this device. One HapKit is simply used for its MR sensor to read the rotational changes of the user when they are aiming the "slingshot"; this readout is then sent to our other Hapkit, which receives the signal. We connect one Hapkit to another to avoid having two serial-monitor readouts since the two MR sensors' readouts will be received by the one HapKit.

On the software front, we've made great progress. Our device utilizes 2 Hapkit, which are connected through their analog pins to communicate the hall effect sensor value of one to the other. The code is written in a state-based format, with transitions from an idle state to a draw state to a firing state, before resetting. In each state, the form of haptic feedback is slightly different, with a virtual wall in the draw state to simulate an elastic drawstring, and damping in the firing state to slow down the slingshot arm. Aim angle and draw position are determined from 2 hall effect sensors, with calibrated mapping for each to convert to degrees and linear measurements. In the upcoming days, we will work on refining our graphics and iterating on code such that the haptic experience feels realistic.