A Device That Simply Turns Pages
by NovemberKou in Circuits > Arduino
64 Views, 2 Favorites, 0 Comments
A Device That Simply Turns Pages




When I created this one-handed controller, I thought I had simply made something convenient. I never imagined that it would become the most frequently used item among the things I had created.
The controller can be used for the following purposes.
- Turning pages in Kindle books with Kindle for Mac
- I haven't checked, but it should also work with Kindle for PC.
- Turning pages when reading web novels
- I have never read web novels in languages other than Japanese, so I cannot give any specific examples.
You can check in advance whether this controller is suitable for your purposes. Press the PgUp or PgDn key on your keyboard in the situation you want to use it. This is the same as turning the controller's wheel.
I think this controller is useful when reading long texts on a desktop PC. The advantage is that you can take your hands off the mouse and keyboard, so it is not useful for applications that require a mouse and keyboard. The only situation I can think of is reading Kindle books or web novels.
Does this seem useful to you? If you want to try it, please proceed to the next step.
Supplies

Things to print with a 3D printer
Please print one copy of each.
- board ... See Step 2
- case
- grip
- lid
- shaft ... See Step 1
- wheel
Purchases
- ProMicro: 1
- 10 mm high mouse wheel encoder: 1
- https://www.amazon.co.jp/dp/B0C2V17MLF
- 12-pin pin socket: 2
- Bolt M3x8mm: 1
- Nut M3: 1
Shaft Adjustment

The hexagonal hole in the mouse wheel encoder is very small, making it difficult to 3D print the shaft. On my 3D printer, reducing the hexagonal rod to 90% worked well.
This can be adjusted using the shaft_scale parameter. If you can use Fusion, please adjust this parameter.
For those who cannot use Fusion, I have created models with hexagonal rod sizes of 80%, 85%, 90%, 95%, and 100%, so please try these out.
If the shaft is loose, it will spin freely and the pages will not turn.
Board Adjustment


Since there are few parts and wiring, I omitted the design and manufacture of the printed circuit board. Instead, I 3D-printed a board to serve as the base for attaching the parts.
There are 24 holes for attaching pin sockets to this board, but because the hole diameter is small, my 3D printer cannot make holes that match the design specifications. After adjusting the size of the holes so that they are neither too loose nor too tight, the diameter became 1.4 mm. This is specific to my 3D printer, so adjustments may be necessary depending on the printer being used. The hole size can be adjusted using the “board_hole_diameter” parameter.
Another option is to print with smaller holes and then drill them to the appropriate size.
“board.step” is a model with a hole diameter of 1.4mm, “board_12.step” is a model with a hole diameter of 1.2mm, and “board_10.step” is a model with a hole diameter of 1mm.
Attaching Components to the Board



Attach one mouse wheel encoder, two 12-pin pin sockets, and one M3 nut to the board.
Next, solder the following three wires.
- Encoder pin 1 to ProMicro pin 11 (silk: 8)
- Encoder pin 2 to ProMicro pin 12 (silk: 9)
- Encoder pin 3 and ProMicro pin 23 (silk: GND)
Insert the ProMicro into the pin sockets.
Connecting the Board and Lid

Secure the board and lid with an M3x8mm bolt. Turn the bolt all the way in so that the head does not protrude.
Attach the Grip

As shown in the photo, screw the grip into the case.
Insert the Shaft Into the Wheel

As shown in the photo, insert the shaft into the wheel, paying attention to the position of the keyway.
Insert the Shaft Into the Mouse Wheel Encoder




As shown in the photo, insert the hexagonal rod of the shaft into the mouse wheel encoder.
Insert Into the Case




Insert the assembly from the previous step into the case as shown in the photo.
As it is, the parts inside the case will come loose or rotate. To prevent this, align the case so that the M3 bolts are visible through the holes, then loosen the bolts and pull them out. Once the bolt heads are caught in the holes and secured, the hardware is complete. Please refer to the second and third photos.
Writing Software to ProMicro

Connect the controller to your computer using a USB cable. Then, use Arduino IDE to upload “KindlePageTurner_ver_1_0_0.ino” to ProMicro.
However, this software uses brianlow's “Rotary Encoder Arduino Library,” so you must first install this library.
Locate “HALF_STEP” within “Rotary.h”. Uncommenting this line enables page turning with a single click, making it more intuitive to use. However, occasionally the page may turn in the opposite direction.
If you comment out “HALF_STEP”, it is less likely to malfunction, but you will need to click twice to turn the page.
If you want to change the rotation direction of the wheel, modify lines 19 and 20.
Downloads
Give It a Try
Connect the controller to your computer with a USB cable and try turning the wheel. The software running on your computer should respond in the same way as when you press the Page Up or Page Down keys. Enjoy reading without a mouse.