Go Down

Topic: Record Changes in Height of Book Stack - Best Sensor? (Read 2 times) previous topic - next topic


For a school project I need to track the use of a study aid book.  Students can take 1 book home with them at the end of the day and are to return them the following day.  The dimension of the books is uniform and they are stacked vertically in a wooden box.   Access to them is from the top of the box only.  On the left and right inner sides of the box there is a 2 inch gap with vertical slats running the height of the box so as to keep the books neatly stacked on one another.   

In order to track the number of books that are taken and returned from day to day I am supposed to engineer a device that senses the height of the stack of books as it changes.  The only stipulation is that I cannot use any sort of scale or pressure system to determine the change.   I have some experience with the Arduino board and thought that I might utilize it along with a sensor to monitor the height of the stack as it changed from day-to-day.   

Maybe an IR sensor mounted on the left or right inner side of the box in the 2 inch gap?   I'm not sure if the 2 inch clearance on either side of the book stack would be enough distance from the IR?   Given that the point of the project is to monitor the change in height of a stack of books in a confined space would an IR sensor work or would another type of sensor work better?


Mar 05, 2013, 07:18 am Last Edit: Mar 05, 2013, 04:40 pm by astrofrostbyte Reason: 1
I'm also thinking a strip equal to the height of the box with (IR) reflective sensor every other inch (depending on book thickness)
Mount a strip of IR transmitters on left side of box,  and a strip with receivers on right side of box.

Control and enable each element seperatly and scan through the height of the box.

If you have got a bit of budget you can make custom PCB strips, and maybe coat them in a thick transparent resin for durability.
Gear: Arduino- Uno,Due,Ethernet,  OLS, Buspirate, J-Link, TDS1002, Rigol DG1022


The idea of two strips of transmitters/receivers sounds good, but if the box doesn't get moved you may also consider a ping ultrasonic sensor placed above the stack.


There is a type of plate rack often used at serving counters which consists of a vertical tube with a sprung platform in it. The spring free length is such that the platform is exactly level with the top of the tube when it is unloaded, and the spring rate is chosen so that the weight of a plate compresses it by exactly the height of a plate. This means that no matter how many plates it's holding, the top plate is just at the top of the tube.

You could do something similar for your book stand. As well as showing the curious some interesting physics, it means that you could sense the number of books from the bottom of the pile rather than the top, which you could do using a string/pot or whatever other type of distance sensor you like. Of course you could have read from the bottom of the stack anyway using a force sensitive resistor to measure the weight of the pile, and that would be my second choice, but that's far less fun.
I only provide help via the forum - please do not contact me for private consultancy.


Ah, that suggests an approach.

Rather than having to fish around for a set of springs that are just right, use a stepper? motor and screwthread drive
to raise and lower the platform so that the top of the stack is level with some dual light-beam detector.   By counting the
steps needed each time is changes you can count the number of books.

By using a screwthread drive the motor can be powered down between uses.  When both beams are blocked or neither
are blocked (for more than a few seconds), you power up motor and step till just the bottom beam is blocked, simple!

An alternative with less heavyweight engineering is to use one light beam detector than is motor driven.  To measure
the pile of books it just goes to the bottom and scans upwards till the beam gets through - even a simple DC motor can be
used if the speed is nice and constant - just time the motor travel!
[ I won't respond to messages, use the forum please ]

Go Up