Introduction: 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.)
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
- 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).
- 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:
- Top Sensor to Pin- 2.
- Right Sensor to Pin- 3.
- Left Sensor to Pin- 6.
- Bottom Sensor to Pin- 7.
- Select Sensor to Pin- 16.
Setting Up The Code
Extract the Paper_Mouse.zip file, 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!
Step 6: Known Issues and Future Capabilities (To Make This Awesome Work Even Better)
- 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.)
- 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.
(Please drop in your comments below and let me know how can I overcome these issues or if you have some other suggestions)
We have a be nice policy.
Please be positive and constructive.