Arduino Based USB Paper Gesture Mouse

5.6K4525

Intro: Arduino Based USB Paper Gesture Mouse

Please vote for me in the conests

I have always been pretty amazed by the Capacitive sensor library of Arduino, It makes me feel like a super human, I can make any non conductive material to act like a touch enabled controller for various use cases, So here I thought of controlling my PC with the power of Capacitive Sensors and build a mouse using an Arduino Pro Micro and some home built Capacitive Sensors and a sheet of paper, So let's start...

STEP 1: Material Required to Build Something Awesome!

(You can get a cheap deal for these components on AliExpress but I would only recommend that if you can wait for more than 30 days for the item to be delivered.)

  • An Arduino Pro Micro or A Leonardo.
  • 5x 1MΩ Resistors.
  • Single strand insulated wire.
  • A Bread Board(Or you can directly solder all the components on a PCB).
  • A Sheet of foil paper.
  • Electrical tape.
  • 2x A4 size paper sheets.
  • A Printer.
  • Lots of love and enthusiasm for DIY ❤️??(Mandatory).

STEP 2: Making the Capacitive Sensors.

  • Cut 5 pieces of aluminium foil. 2 pieces of size(70 X 35)MM, 2 pieces of size(36 X 86)MM and 1 piece of size(150 X 19)MM (Or you can simply print the back side layout provided in the next step on a fresh sheet of paper and cut the aluminium foil sheet using the printed layout as template) I don't have a Cricut Maker but I think that if I had one it would have made this step easy as pie and I hope I win the Paper contest and win a Cricut Maker ❤️.
  • Add a wire to each of the foil using an electrical tape.
  • Our sensors are now complete, so let's move on to the next step...

STEP 3: Making the Paper Mouse

  1. In the Paper_Mouse.zip file attached bellow, you can find 2 design files in it, print them on both the sides of an A4 size sheet of paper (The name of the design files are according to how they are supposed to be printed i.e. The file which is supposed to be printed on the front side consists of the keyword "(Front)" in it's file name and the file which is supposed to be printed on the back consists of the keyword "(Back)" in it's file name).
  2. Stick the Capacitive Sensors we made in the previous step according to their size on the back side of the printed A4 size sheet using the electrical tape.

STEP 4: Setting Up the Arduino to Wrap Up the Awesome Work!

Connecting The Pins

  • Plug in the 1MΩ resistors to the following pins: (4 , 2) (5 , 3) (8 , 6) (9 , 7) (15 , 16) As shown in the image above.
  • Connect all the Capacitive sensors to the following pins:
  1. Top Sensor to Pin- 2.
  2. Right Sensor to Pin- 3.
  3. Left Sensor to Pin- 6.
  4. Bottom Sensor to Pin- 7.
  5. Select Sensor to Pin- 16.

Setting Up The Code

Extract the Paper_Mouse.zip file, or clone the project Github repo from here. Edit the code if you make any changes with the pins else keep it as it is and upload the code on to your Arduino Pro micro Or Leonardo board.

STEP 5: Finally Testing Our Awesome Work!


You can follow all the instructions on my blog http://www.jugadu.in/arduino-based-usb-paper-gesture-mouse/technology/By-admin/and Check out some other cool stuff out there on jugadu.in

STEP 6: Known Issues and Future Capabilities (To Make This Awesome Work Even Better)

Known Issues:-

  • After uploading the code when we replug the USB sometimes, the Paper Mouse begins to respond very slowly(Like, really very slow!) and if we re-upload the code it starts to respond normally back again.
  • The paper sometimes moves here and there along with user's finger which oftenly gets very annoying (Possible solution: We can stick the bottom of the A4 sheet to an ivory sheet or some other heavier object.)

Future Capabilities:-

  • 4 more sensors can be added for all 8 directions(i.e. Top, Top Right, Right, Bottom Right, Bottom, Bottom Left, Left, Top Left) to make the mouse more user friendly.
  • 2 Sensors can be added in the middle to add the scroll feature.
  • Right Click button can also be added(Actually I forgot to do that?).
  • A matrix arrangement of Sensors can be used to implement all these features together which would use lesser pins and lesser wires.
  • We can add bluetooth capability to make the whole system wireless (This video by Evan Kale can be helpful to achieve this goal.)
  • The wires and Arduino should be hidden.
  • The design can be further improved but I like mine to be minimalistic.

I hope to come up with a newer version of the Paper Mouse to overcome all the issues and with added features as discussed above, ASAP.

And Please vote for me in the Paper Contest so that I can win a CricutMaker and come up with better and high end projects.

(Please drop in your comments below and let me know how can I overcome these issues or if you have some other suggestions)

14 Comments

The moment of the cursor is continuous it is not moving in the direction that we have given .what should be the problem
Please share more details. Make sure you have connected all the sensors on correct pins. Also take a close look at Step 4 in order to better understand how the connections have been made. Please let me know if you need any other assistance.
Have a look at Step 2, that might help you understand better

The code that you have provided doesn't compile. It gives error "Mouse not found" after adding mouse.h library.

Hi there, I can see here that you are using an arduino uno which doesn't supports HID capabilities for which you have to use Arduino pro micro or leonardo board. Also please check that you have the mouse.h Library installed and If not then you can download it from here --> https://github.com/arduino-libraries/Mouse

Please let me know if you get any luck.

Got to make one of these. I already have a little arduino project with an IR range sensor that sends WIndow L and hence locks the computer when I walk away. Regarding the issue with wandering paper, I wondered if something could be done with a paper laminator

I am sorry I don't get it what do you mean by a paper laminator?

you have done a great job! I will definitely vote for you. All the best! <3

Wow Great innovation thanks for your efforts

Thank you so much AmarjitV

Very nice but you're statement "I can make any non conductive material to act like a touch enabled controller" isn't possible... The material must be conductive to act like a touch enabled controller!!

Thank you so much Floris!❤️ By the way, You can actually do that... In fact that is what I did here, I made a paper to act like a touchpad mouse. and that is possible because we are using an aluminium foil as a capacitive sensor (Here's a video to describe that). Also as quoted by the official website of Arduino...

"Capacitive sensing may be used in any place where low to no force human touch sensing is desirable. An Arduino and the library may be used to sense human touch through more than a quarter of an inch of plastic, wood, ceramic or other insulating material (not any kind of metal though), enabling the sensor to be completely visually concealed. A capacitive sensor covered with paper or other insulator also acts as fairly good (human touch) pressure sensor with an approximately logarithmic response. In this regard it may surpass force sensing resistors in some applications."

The link to which can be found here.

(Please correct me if I am wrong anywhere.)