I am going to build a new staircase with 15 stairs. I'll have an LED strip for each step controlled via DMX (I have DMX elsewhere so this is easy). Next I want to use load cells to trigger animating the step LEDs.
I think I'll fasten the stair treads at the rear and let the front corners rest on 2 load cells. Ideally I'd be able to replace sensors without destroying the staircase, but I'm not sure that'll be possible.
At the very least I'll use load cells on the first and last steps. That's 4 sensors and I can do it exactly like this:
If I want to go nuts, I'll use them for every step. This project is already nuts, so why not go all out? That would be super cool, but it's 30 sensors! How would I best wire so many sensors? I'm good with construction, soldering, and coding, but I'm almost completely lost with electronics.
I'm also open to other ideas. Here are some I've investigated:
Using eg a Hue motion sensor embedded in the drywall banister with a shroud to reduce the detection area. The shroud edge and a hole for the sensor would be visible. I'd need to position it back from the start of the stairs to avoid triggering when walking past the staircase, which means it may not trigger until you reach the 2nd or 3rd stair -- not very good.
Using distance (time of flight) sensors at the top and bottom. The sensors would be visible, each requiring at least 2 small holes. It could work, but is not as cool as sensors for every stair. Also I don't have a guide that shows how to do it with PoE like the link above.
Do you mean like the distance sensors or Hue motion sensors I mentioned? Those are an option, but 1) aren't as stealthy, and 2) don't tell what stair is in use. I think the effect will be a lot cooler when the lighting reacts as each step is taken. That takes it to the next level and is something I've not seen before. Kind of like those giant synthesizer keyboards where you jump from key to key!
Yep, I can build the stairs however is needed. I don't mind spending on this project, so budget is not a constraint. More important that it's as cool as possible! That's why I'm looking for how to make it work using load cells for every step.
I looked at vibration briefly, most people seem to not find it super useful, lots of false positives. It might work for stairs, since it's uncommon to stop on the stairs. I didn't look at knock sensors, I'll take a peek.
AI would be cool, and ensures I never have to demo the stairs to replace a sensor! I'm not confident I could make it work well though.
@hammy Searching on pressure pads comes up with some interesting results. I'll keep looking. It's true I don't actually need a weight measurement, just a binary switch.
If I did use 30 load cells, can anyone describe how I'd wire them? I understand they create resistance when stepped on and that needs to be processed into a more usable signal. That's usually done by an HX711. Can I wire all 30 load cells in series to a HX711? If so it seems like I can still use the stuff from the Github link above.
EDIT: This pressure mat looks cool! Very simple: 2 wire switch, normally open. It's 3mm (1/8") and requires 25kg (55lb) to trigger. I think it should be reasonable to build stairs with this in it. Standard size is 595x170mm (23.4"x6.7"). I wonder if that will do, as my stairs are 939x279mm (37"x11"). Custom sizes can be ordered.
Load cells change resistance when, well, loaded. The signal need some serious preprocessing before being read and used by the Arduino. Usually.
Since you are looking for a binary signal not a precise mass, you might be able to get away with somewhat less than the HX711, of which BTW you would need 30 or some kind of switching mechanism to scan them.
Is it that the resistance is additive and he only cares about the total weight? If so then I'd need to do that for each step, so 15 HX711. Better than 30 HX711, but still a lot.
I like the idea to read the resistance some other way. What's a good way to detect when the resistance is higher than some threshold, considering I have 15 inputs?
Thinking more on the pressure mat idea, to trigger it needs 25kg on a 50mm disc (55lb on a 2" disc). That implies it may need more pressure over a larger area. I'm thinking of construction like this:
However, the pressure pad's tech specs go on to say that "in reality the mat placed under a carpet will always be sensitive enough to detect a person walking over it". I guess I'd need to buy one and test it.
If that pad can be made to work, access to replace the sensor seems pretty reasonable. I'm not sure yet how to securely attach the rear, but it is likely easier access than load sensors, which have to be between the tread and the stringer -- it's open space between the stairs, no risers. That's why the LED track is so close to the front edge, so it can shine on the step below.
From my (limited) knowledge of load cells, they are finicky because you have low-level signals. This might not be a big deal since you aren't trying to accurately measure weight, but I'm pretty sure there are better-easier pressure sensors.
I know they make floor mats for alarm systems but I don't know if they make them to fit stairs.
If you want to go that route, no... You'd simply have a "beam" with an IR transmitter on one side and a receiver on the other. It's triggered when the (invisible light) beam is broken. (Obviously, one set for each step.) This should be reliable, cheap, and simple.
Garage doors have these so the door doesn't close on a person or a car, and some stores have these to activate a chime when a customer enters. (These are sometimes visible light with a tube to keep-out indirect light.)
Suggest looking into force sensitive resistors (FSR) in lieu of load cells. An example:
^^ the price is for four. Much less expensive FSRs are available. I mention this brand because I've used them and had good luck with them.
FSRs are often a good sensor for answering the "load" or "no load" question.
You may be able to use each one in a simple resistor divider configuration and poll them all (one at a time) with digitalRead. If you have 30 sensors (two per step), an Arduino Mega could read them all.
Build a mock-up of a stair tread to test the best location for the sensors, resistor divider values, noise on long wires, check for the effect of drift, etc.
Be sure to get and read the Tekscan FlexiForce Integration Guides, too (regardless of the FSR brand you use).
If you want to use a board with fewer GPIO pins than the Mega, you can use multiplexers: they allow one pin to read 8 (or 16 or more) sensors.
I know they make floor mats for alarm systems but I don't know if they make them to fit stairs.
Yep, I linked one above! The black rectangle in my SketchUp drawing is a pressure pad.
You'd simply have a "beam" with an IR transmitter on one side and a receiver on the other. It's triggered when the (invisible light) beam is broken.
Ah, gotcha. I guess a distance sensor is the same but with the advantage that the emitter and receiver are both on one side.
FSRs are often a good sensor for answering the "load" or "no load" question.
This looks awesome, thanks! The one you linked would be $650 for 30, which is OK. I'll dig into this more ASAP!
Plain old microswitches would be the most durable and simple to wire.
I considered this, but I couldn't find microswitches specifically for stepping on. The stair would need to flex just right and somehow allow the switch to return to the up position. I don't have high confidence that it would be reliable.
I bet just one FSR per tread would do the job, unless your stair is very wide. I'm picturing the sensor centered on the width and located between the tread and riser. On either side of the sensor, the small gap between the tread and riser (required to fit the sensor and puck [*] ) could be filled with soft foam (like open cell-type weatherstripping), so it will easily compress and allow most of the load to go to the sensor.
[*] puck = thin, stiff, round disk, slightly smaller than sensor area = required. See Tekscan Flexiforce integration guide.
Same criterion clearly applies to all suggestions.
Does it? A microswitch requires movement, it has to be pressed down and won't trigger again until it moves back up. With FSRs or load cells no movement is necessary and they cannot get stuck on.
I bet just one FSR per tread would do the job, unless your stair is very wide.
The stairs are 36" (91cm) wide. 3M double sided tape + sensor + puck is roughly 1/16" (1.6mm) high. I think it's reasonable to put weatherstripping on either side to prevent rocking.
I've ordered the FlexiForce A201 sensors to play with! I also got pucks and connectors.
I got the integration PDFs and see there's 3 ways to wire: inverting op-amp (recommended), non-inverting op-amp, and voltage divider. Since I care only for presence, voltage divider is probably fine. That's pretty straightforward for wiring one sensor, but how would I wire multiple? Do I repeat the circuit for each sensor, wired to a different GPIO pin? I'd have 15 of those, one for each stair.
Yes...repeat the circuit and wire to separate pins.
Since a Mega has 16 analog pins, you could analogRead the 15 sensors. That (vs digitalRead) would give you flexibility for tuning the "load" vs "no load" transition point.