This device works to train the user to hold their pen correctly. If the user holds their pencil incorrectly they face consequences.

box device with 3 LEDs and a spray bottle, there is a drawing of a hand writting with two rings and wires connected. The same rings and wires can be seen in front of the device connecting to it.

The back reads “learn to hold your pen the correct way, simply place on the rings and get to writing. Pen-Correct will make sure to keep you on track!”

box opened up so you see Arduino and wires inside. a servo is sticking out of the left side.

The red box half is 3D printed and holds the servo motor tightly against the bottle cap. The bottle can be taken in and out from the bottom. The right side is foam core housing the rest of the electronics

The device works through a switch connected to your ring and pointer finger. When they connect you get a strike. Your strikes are counted on the lights displayed on the box. After three strikes, a servo is triggered and water is sprayed on your work! After three strikes the count resets and you can continue.

Process images and review

notebook page with notes from the first critique. There is a crude sketch of the box in front of a hand attached to it with wires

notes from the first crit

One of the main decisions points in my process was deciding what I wanted the consequence to be for holding your pen incorrectly. At first I was thinking a whole cup of water would spill on you and your work, but I decided that would be a bit excessive. During our first feedback session my group gave me a lot of good ideas, one of which included a spray bottle. I liked the spray bottle because it would ruin your work and be high stakes, but be more contained and more subtle. I has a few ideas for pressing down on the spray bottle, but I was surprised on how much force it took to do so successfully. First I tried a solenoid, but that wasn’t strong enough so I though a linear actuator, but that was too big, so then I landed on a servo motor which was perfect.

two rings made of copper take attached to wires attached to a switch layout on a breadboard

This is my first iteration of the switch activated sensor. The copper rings would flip a switch when ring and pointer finger connect (a sign that you hold your pen wrong)

final finger switch layout with more flexible wires, and a Velcro around the wrists

final finger switch layout with more flexible wires, and a Velcro around the wrists

Discussion

From the feedback in our first critique, one of the major things we talked about was how I would pursue the consequence of one holding their pen incorrectly. We talked first about water as a consequence, whether or not I should target the user or the work, as well as other methods pertaining to sound or vibration. Everyone was in agreeance that a whole cup of water might be excessive. One critique suggested I use a spray bottle which I ended up using. Another discussion came up about wire placement on the fingers. at first I was thinking they would be placed on the middle phalanx, but this might cause false positives even when holding the pen correctly, so from this point I learned it would be better if I moved them up to rest on the distal phalanx, that way the pen would be in-between the two figures increasing accuracy. Finally we talked about ergonomics. A lot of people were concerned on how I would manage the wires on the hand. I ended up just having two rings so orientation wasn’t important, and then had them connect to a wrist band that was Velcro. I attached the wires to the machine on the right side so they would go around the outside of your work space, but they might get in the way for a left handed user.

Overall, I am happy with the outcome of the project. It was accurate enough in sensing the fingers touching together and the servo worked well in spraying the water bottle onto your work. I think although I may not use this device everyday, it could be a fun training device for children or others who are learning to hold their pens correctly. I simply wish I had done so in my youth for the hand pain it has caused me today, but I think the chances are low that I will ever actually learn to correct this bad habit. I enjoyed working on this project because it was light hearted and relatively simple allowing room for creativity.

Throughout this project I really liked working with physical devices. I am jealous of other’s projects that had more satisfying physical responses and interactions like switches or buzzers. I only wish that mine had more of this response, especially when counting strikes. Besides this, I had a lot of time exploring the physical form for the project, making everything neat, and color matching all the components. On the more technical side, I found that my java script coding knowledge came in handy as they bases of the languages were similar. When coding different responses for different strikes I made different variables that were counted and then wrote conditional statements for each stage.

Like I mentioned above, If I could make this again I would make for more response when gaining strikes. During the final crit someone had mentioned that by moving the servo when you had a strike, not enough to trigger the bottle, but enough to make a sound, that that would be a great way of having and auditory feedback to the strikes without having to add other components. I also like this idea because it would instill fear in the user when they get a strike because they wouldn’t be sure or not if their work was going to get prayed or not. I would also try to be neater with the wire, heat shrinking them might have been nice, but I am unsure if this would effect their flexibility.

Technical information

 

//PEN CORRECT 
//evette LaComb - physcial computing project 2 
//

//      Servo Motor Control using the Arduino Servo Library
//            by Dejan, https://howtomechatronics.com

int light1 = 5;
int light2 = 4;
int light3 = 3;
int finS = 8; //fingure switch

#include <Servo.h>
int strike;
Servo myservo;  // create servo object to control a servo

void setup() {
  myservo.attach(9,600,2300);  // (pin, min, max)
  myservo.write(90);

  pinMode(finS, INPUT);
  pinMode(light2, OUTPUT);
  pinMode(light1, OUTPUT);
  pinMode(light3, OUTPUT);
}

void loop() {

//if there are no strike, lights off
  if (strike == 0){
    digitalWrite(light2, LOW);
    digitalWrite(light1, LOW);
  }

//if strikes go over 3 reset
  if (strike >= 3){
      strike = 0;
  }
  
//if switch is low aka holding pen incorecty add a strike  
  if (digitalRead(finS) == LOW){
    strike += 1;
    delay(1000);
  }  

//if strike is one turn the first light on 
  if (strike >= 1){
    digitalWrite(light1, HIGH);
  }  

//if strike is two turn on the second light
  if (strike >= 2){
    digitalWrite(light2, HIGH);
  } 

//if 3 strikes then turn on the third light and spray 
  if (strike == 3){
    digitalWrite(light3, HIGH);

    myservo.write(180);              
    delay(1000);
    myservo.write(90);
    delay(1000);

    digitalWrite(light3, LOW);
    
  } 

  Serial.println(strike);
          
}