A few months ago, we made a Book reader powered by the BrickPi which had the ability to read pages from your Kindle. There was a huge response to the project. But what everyone really wanted was a bookreader that could read a real paper book.
Here we present to you the BrickPi Bookreader 2 which can read aloud a real book (the voice becomes a bit irritating after a while) and also turn the pages of the book (we are really proud of this).
Step 1: Background
After completing the first book reader, we really wanted to get the real book reading, and push out our example. But there was a slight problem with that. There was not a good way available for turning the pages, something which could turn the pages of a real book efficiently without missing a lot of pages.
For the first time Google failed to deliver. For almost every project out there, there is always a good place to start with. You can find all the parts of the project already implemented somewhere and after a bit of fiddling and hacking, you can can get a decent project together. But for the page turning mechanism, there was nothing that you could build easily.
We found a good post on DIY Book scanner with a cool video of a page turning mechanism but it was too much for us to build. We also found a video of the Google Book Scanner on Hackaday which is probably the best thing available, but it was an overkill.
We even thought of using the LEGO Pneumatics but settled on something else. Something we had a plenty of lying around: LEGO Blocks.
Step 2: Working
Since we already had the software with the character recognition and text to speech part worked out, the only thing that we needed to develop was a good page turning mechanism and synchronize everything properly.
We accomplished the page turning by using two EV3 motors, and a LEGO wheel.
The page turning mechanism works as follows. A wheel, which is a bit heavy, rotates for a fixed time and pushes the page up (this is much easier said than done), our friends friction and gravity help a lot here (it required a lot of fine tuning the variables like motor speed, wheel placement, time etc to get it to work properly). Once the page is up, another motor rotates an arm 360 degrees and it turns the page over.
Then the Raspberry Pi takes a picture of the page, Tesseract OCR converts it to text and espeak speaks it aloud through speakers connected to the Raspberry Pi. And the whole process is repeated again.
Step 3: Parts Required
- RaspberryPi (Preferably Model B)
- Raspberry Pi Camera
- BrickPi Power Pack
- SD Card with Raspbian Wheezy installed
- Wifi Dongle
- 2 LEGO EV3 Motors
- LEGO Wheel
- LEGO beams to construct the platform
Step 4: Setting up the camera
The first thing to get our Bookreader up and running is to get the Raspberry Pi camera working. The Raspberry Pi camera packs a lot of punch, there are a lot of options, it’s easy to set up, and the image quality is acceptable for our project.
After connecting the camera, there is one more thing to do: change the focus of the Raspberry Pi camera. The Raspberry Pi camera comes with its focus fixed at infinity, and since it is a fixed focus camera you have to manually change it. Here are some helpful links to do focus the camera:
After setting up the camera, take a test image to see that it is properly focused. In rig we built, we have the camera about 10 inches above the book(choose a height which is comfortable for you and take a few test images to check if the images are clear and the whole page is captured).
Now fix the camera into it’s adapter next to the Ethernet Jack. Here is a great guide to setting up the Raspi Camera. It should be helpful in setting up both the hardware and software.
For more detail: BrickPi Bookreader: Digitize Books With Mindstorms and Raspberry Pi