02. Circuits on pages: A severely limited sketch
Updated on April 10, 2014.
Updated on April 10, 2014.
Returning to the original goal of making a book "know" which page it is on, it seems clear that top-edge resistance is not going to do the trick with the equipment I currently have. More conductive paint and better contacting are obvious improvements, but I will save those for later.
Instead, I re-examined Waldek Wegrzyn's Elektrobiblioteka project (see presentation video and the actual digital part of the work), which drew upon the idea of circuits inside the book. It seems clear that it would offer better precision. However, I got the impression that he had settled for a construction with one dedicated signal per spread (16 of them, in his case). This was certainly adequate for his needs, but it hardly scales to books with more pages.
My idea was instead to construct page circuits to code the spreads as binary numbers where, e.g., seven signals plus ground would in theory be enough for a 256-page book with 128 spreads.
As a first step, I settled for a limited solution where the book "knows" which spread it opens to when it is opened at the bookmark flap. If pages are turned, the book is completely ignorant and needs to be closed with the flap inside in order to update its idea of the current spread.
The reason is that it is much more straightforward to measure a circuit in a closed book. The current function prototype CB02 works like this:
Three signals (b0–b2) plus ground (GND) are used to yield a "book" that reports being opened to spread 1 through 7. The signals and the ground are connected from an Arduino Uno to the inside of the flap via wires, paperclips and glued-on strips of aluminum foil. When the book is closed with the flap inside, lines of conductive ink on the right page of the current spread connect one or more of the signals on the flap to ground using straightforward binary encoding. A simple program for the Arduino Uno measures which of the signals are grounded, calculates the corresponding spread, and displays it when the book is opened.
The Arduino output console on the screen reads "Open to spread 4."
"Open to spread 6."
This technique seems to work reliably even with my crude materials, and it is easy to see how it scales to normal page ranges with eight signals covering 256 spreads, i.e., a book of 512 pages. Using proper conductive ink rather than BarePaint, it should be straightforward to reduce the dimensions of the on-paper contacts, and transparent conductive ink would minimize the visual intrusion on the pages of the book. Similarly, the connections on the flap can be hidden between the flap and the hard cover of the book.
The main drawback is, of course, the limited functionality of only being able to report the current spread when the book is opened to the location of the flap. It is hard to come up with convincing uses for such a book, beyond simple demo or exhibition scenarios.
I have some ideas on how to apply a similar binary-coding technique to the general case of measuring current spread in an open book, by forming circuits through the pages rather than using a flap to close the circuits, but more experimentation is needed before I have anything to report.