5 ms·
Seems some pixels are not displaying correct colours on the live feed (most visible as white pixels when displaying the black background of the F21 logo). I gu
by jcwilde 11y ago
Seems some pixels are not displaying correct colours on the live feed (most visible as white pixels when displaying the black background of the F21 logo).
I guess the spool belts have run out of alignment? I would have guessed they'd have implemented closed-loop positioning for the colour-belt, but it appears not to be the case.
- msandford 11y agoAnd ideally not just using an encoder to detect skipped steps or something. But using some kind of vision to close the loop using color since you're making an image. At the very least put a Gray code on the back of every fabric loop to get actually accurate positioning.
- joezydeco 11y agoCoding on the underside crossed my mind too, but then you'd need a multi-sensor tx/rx board for each ribbon, mounted inside and under the moving parts. And it looks like this mech doesn't have a lot of space to begin with.
- msandford 11y agoThat's why using a high res camera to image the entirety of the spools and make adjustments as necessary seems like the best way to close the loop. It won't be able to make minor adjustments but if something is really wrong it wouldn't be hard (algorithmically) to locate which spool is totally bonkers and get it much closer to right.
- mattiasgunneras 11y agoIt would have been nice with some kind of closed loop feedback system for all positions around the ribbons, but it became a cost problem. What we did instead was to put an IR sensor on the motor controller behind each motor. The fabric ribbons are fitted with a retroreflective strip for homing. This gives us one absolute starting point on each pixel and then each color is just at a fixed ustep offset from zero. But as you pointed out, some of the ribbons are slipping a little bit so they are a color our two out of cal. The ribbons are real fabric ribbons, not timing belts so that's why we do have some slip. We periodically run the strip over the IR sensor to zero out the calibration so bad pixels should re-align at least a little bit over time. If they are really bad, we take them down and swap in a spare 32 pixel module while tightening the belt on the bad ones.
- tdicola 11y agoVery cool, have you thought about using a RGB color sensor (like a TCS34725) to detect the color of the ribbon instead of finding an IR homing strip? That might help with slip since you know the order of all the colors and could move exactly until the right one is being displayed.
- mattiasgunneras 11y agoYes! we actually prototyped that.. didn't have great success unfortunately, because of space constraints in our particular application, we have to have our sensors look down a 1/8" passage (passed the motor) down onto the ribbons. I feel like I tested every single optical sensor from digi-key before we finally had to settle with an IR sensor. We use a pretty strong IR LED and bouncing that off of a reflector on the ribbon. We simply could not separate the signal from noise trying to read the actual color of the ribbon. Moving the sensor off the PCB (closer to the ribbon) would have worked, but the cost increase for 6400 pixels.. yeah, couldn't do it.
- kevin_thibedeau 11y agoYou could have printed a quadrature pattern on the back for not much more complexity. Just one additional sensor per strip. Even that wouldn't be an absolute necessity since you know which direction the rotation is going. A single series of bars with one skipped or widened for home would suffice. Then you'd be able to compensate more readily for slippage and stretching.
- modeless 11y agoAny reason why you didn't use a camera looking at the front of the display? That way you'd only need one sensor and the ribbons wouldn't need to be instrumented in any way.
- Serow225 11y agoHow bad would it be to to always run the ribbon past the homing strip each time a move is called for? In the worst case you'd have to make just over a full loop instead of a small move, but the stepper motors could probably make the full loop pretty quickly at full blast. Awesome project, congratulations!