what you should do is make the input levers independent of current state. so, as the servo slides by, it'd pas cleanly over a dot that was already in the right place, but index one that wasn't. like a pin in a track, using the lead screw's own motion to slide through
Replacing the servos with magnets seems a good idea, less moving parts, just have to time it right. A controlled polarity on the moving side, and a fixed polarity on the dots, you just have to dial in the magnets to be able to reliably pull/push the dots. Also a belt driven axis on a smooth rod seems way more efficient in terms of speed. If you want to go overkill and use only two motors, you could build something like a coreXY motion system like a 3d printer but instead of a nozzle you have an electromagnet/servo that switches the dot matrix, this could be scanning row by row, or just go to only the neccessary positions if programmed right
Magnets have issues as their strength is directly related to how close to other things it is. Could be two magnet per, one for on to off, the other for off to on, and have them end up close to the thing.
In the 1970s or 1980s I saw a display like that in the baggage area of the airport in Milwaukee, WI. The display appeared to be backlit by fluorescent tubes, and would be erased when a dark silhouette moved behind it right to left, and would then be drawn as that silhouette moved left to right. Probably about 8 rows by 20 characters.
Looking at the display made of ping pong balls, I kind of want to see someone do a creepy art project version of one where each ball has a set of black eyelids that can open and close.
I think the flipping part should be 90° flipped, the middle point should be free to pass the hole at any state, while the small diviation in the angle would flip it to the correct side as it passes by. It would make your life a lot simpler.
I think that would even let it flip them on the move, just scan the lead screw back and forth twiddling the servos as you go. 180 the servo horn when you get to the end and your idea even works in both directions. I'd live to see how fast he can get the thing going.
I like the cached current state method - but for me use the actual balls and a small inclined plane - drive the ball pusher/holder up and down the plane from the back - then you can do primitive grey scale leaving them at 1/4 1/2 etc too!
A belt drive would make it faster too. And if the switches were ramped, all you would have to do is set the position as you pass and the switch would slide into the correct position.
@@bkuker Indeed, as it currently stands it is mechanically flawed, being easily externally driven and probably unable to deal with the fact - the arms might manage to bulldoze the linkage back to the expected state, but its clearly not designed to do so. But move to something very much harder or even impossible to back drive and having a remembered current state means no mechanical reset, clutch/ratchet or sensing type system required. So on my inclined plane idea - I was thinking driven by screw thread - you can set the height up the slope and need no reset to change it correctly to the next grey level you desire.
If you use a belt drive on the linear motor instead of a lead screw it would work a lot faster also you could make one that instead of moving horizontally it moves in a circle I’m not sure what it could be used for but someone would find a use for it in the comments
Great video again! It is impressive that each week you manage to design and build another complicated project. Are you doing this alone, or you have a team, for example to help with video editing?
You could do faster switching if you made a ramp mechanism that the servo selected and moved across the balls (like a railroad switch, but the switch/rail is what is moving through the row of balls) ... Would also probably eliminate jamming as well since the servo would be selecting the ramp between the balls, and the ramps would self-align. (Designing the ramps as 2 alternating contours on a cylinder would probably make for a compact design) ... would have most the advantages of the electromagnet idea.
Ah, I just realized you can build the ramps into the flip-dots instead of the servo, so basically what you have but with angled slots, and have the servo pre-position and move through them! Ideally, no jamming, and no stopping!
James, that works awesome! The white ping-pong ball completely disappears and reappears as if by magic! I've been toying with similar idea but trying to do gray scale. Instead of black or white, each pixel is a cylinder of black to white gradient. Pixel axis is vertical as to take advantage of gravity and friction to maintain its rotational position. As the gantry moves at constant speed horizontally, the servo arm would catch a half disc on top of the cylinder to rotate it. By retracting the servo arm just at the right time, each pixel could be set to desired gray scale. To rotate the pixel the other way, we would rely on the gantry moving the other way and again using the servo arm to catch that pixel to rotate it the opposite direction. I've only modeled it in Fusion and have not printed them. I suspect there are tons of issues that I have not tought of yet. When I saw your black/and white pixel, I realized that's what I should have done before tacking gray scale. Very nice. I love it!
this is literally the perfect video I need. I plan on building an automated spice rack, and I ideally don't want a ton of servo motors to open and close each shelf door because that is expensive. I'll definitely try to integrate this design into the product.
Cool idea. There's no need to remember last positions if you leave gap for servos to be in the middle always, then the walls for on/off can be in reach of servos arm, turning all the way right or all the way left. The no need for intermediate step, just return to center previous to move them.
You make so many interesting things. I learn a lot just listening to you describe your thought-process during the different stages of a project. One of my favorite channels. Good luck hitting 1MM subs!!
I really like these sorts of projects, it's the kind of clever engineering you'd see on those really interesting early electromechanical devices from the early 1900's.
To make the refresh rate faster, try adding an offset like on a Verner caliper. You can have multiple "flippers' attached to each servo. In each position the only one flipper and ball is aligned at a time.
id like to see a clock made of two rings of this kind of display, each with 12 dots, where the inner dot represents the hour and the outer dot represents the minute in increments of 5.
this is the first video from you i have watched in years. boi, has your presentation style changed :D i was quite shocked ^^ also rocking the gray hair now :D man, time goes by so fast...
With a gear fixed to each ball you could pass at high speed and engage a stationary gear on the carriage when you want to flip "on", then engage in the return jointed to flip "off". (Relatively weak) Magnets on the "east" and "west" pole of the ball can attract a magnet in the side frame to hold the ball in place.
i was hoping youd do something like a combination lock where only one rotational input can set different discs to different angles when i saw in the thumbnail "one servo" but this is still pretty cool
This is PERFECT for my antenna tower project where I need to be able to point multiple different yagis in different directions and will never move more than one at a time.
3:08 I believe that is a parallelogram linkage as opposed to a 4 bar linkage, as a 4 bar linkage has 4 bars on a rotating square to another rotating square and it perfectly transfers the rotation.
A court of suggestions: 1. Implement the servo with 3 states - switch to on, no change, switch to off. 2. Make the ball mechanisms latch when the carriage is not at that column. 3. Implement a sprung/naturally 'off' state to the balls. This could also be used to do a global clear all action
James, if you turn each of those lever slots into an hourglass shape (turned on its side and open on each end) so that it catches the servo horn as it passes by, you don't need to pause in between each - you can just fly across them quickly. This also solves any issue of them being in an unknown state if manually changed while the actuator isn't directly over and the physical model mismatching the data model. If you're worried about catching/jamming - should be easy to put a small ball bearing on the tip so that it rolls across the hourglass shape.
Instead of flipping the levers each time to current position of the column, it suggests itself to put several levers on each servo in every possible positions. Kinda like a gear
One idea could be a spinning bristle brush instead of servos, the rack could slide sideways through all of the levers without moving anything, but have them quickly spin one way or another and they could influence the display. Small motors might be cheaper and easier to drive than servos too. Great video!
Free idea for a design that can be extended in the other dimension as well: Cylinders with black on one half and white on the other half, with paddles on each side that interface with each other like a safe lock / combination lock does. So you have a motor at the bottom that turns 2 spins to the left, sets the top pixel, turns 1 spin to the right, sets the second pixel, and turns to the left, to set the bottom pixel. Then moves across to the next column (somehow).
Would be cool to do a big display running Conway's Game of Life with randomised or semi-random seeds. Could even do a cylindrical version that wraps around
I’ve always wanted to try making a fishing line based grid display. Each row and each column having a servo controlled fishing line. If both the row and the column are engaged a third “actuation input” connected to all the dots could do the actual flipping. This way multiple dots could be flipped simultaneously with each tick of the clock. Writing the prioritization algorithm would be a delightful hell.
Another nice example for mechanical multiplexing mechanism can be numbered wheels to make numeric combinations by rotating numbered wheels with a multiplexer mechanism it uses 2 motors, 1 for linear displacement and the other to rotate the wheels which will have a geared perimeter. So when you align the selector mechanism with each wheel it engages the teeth of the selected wheel, then turn the selector shaft, selecting a number (could be a letter or any other thing)
If you want the display to always update left to right, a second vertical actuator line could be used to have two. Each goes from one end to a maximum extent in the middle. While one is flipping the other is resetting (carriage return?) So the right can take over once the left reaches the middle. You can gear it so only one motor is required as they can move in tandem!
Have the flipping axis of each dot perpendicular to the main motor axis. Flip to black in one direction, white in the other. Have one solenoid per row that extends out to do the flipping, which can be very low power as all it needs to do is extend / retract the flipping pawl while it has no load on it. You need to extend the pawl whenever an element needs to be flipped. If it's already the correct colour it doesn't matter if you extend it or not. A linearly moving pawl should be able to drive a maltese cross / geneva type driven element through 90 degrees, which should be enough (you'd only need one slot instead of a whole ring of slots though.)
If the angular distance to flip were an even division of a full rotation (e.g. 90, 70, 60 degrees) you could make the bit attached to the servos a full wheel with spokes. Then it would essentially always be in the same position after each rotation because of rotational symmetry.
One advantage of a setup like this is that the actuators can be higher quality and do things that a grid of electro magnets can't do. Each "pixel" could rotate to 4 different positions to show a different shape or color. Or perhaps they could be some kind of cone shape that could be moved in and out to any position to make the dot appear larger or smaller - sort of like a newsprint photograph.
In my mind I want the back slots that the servos actuate to be cams that allow the servo to pass a 'keep the same' slot, 'flip the dot' slot such that the servo arm never needs to stop moving, it just needs to choose the next state after it passes the current bank. It would be the horizontal movement of the carriage that would do the actuation in the cam slots.
I once saw a window display in the Museum of Digital Art in Zurich that has an interesting vertical column of rotatable cells. Each column has multiple dots, each having two sides. Each column is driven with only one motor and the linking mechanism is similar to a flip display. With only one motor, it is able to index the entire column (despite very slowly) to a given pattern. I'll leave the exactly implementation down to your imagination.
Belt drive for the carrage. Some kind of sliding wedge arrangment so the carrage motor sets/resets the dots. Use solenoids not servos (not to push/pull but to select set/reset). If you stagger the actuation point of the dot in a coloumn, you could get way with only one solenoid per coloumn.
You could create a 'crane' component for your Great Ball Machine, using the multiplexer to control x, z and grip axes, with the sequence: x-> ball pickup x z-> ball pickup z grip-> closed z-> travel z x-> ball release x z-> ball release z grip -> open z-> travel z repeat
You might consider updating the servo motor's wiper from a single lever to a spoked wheel. It might have six spokes at 60 degree separation. As long as you orient any spoke in between the connectors, you're good to go; just rotate clockwise or counterclockwise from your stored knowledge of the last bit position.
What if the servos had a "gear" on them instead of an arm? You could pass cleanly through all states of the actuator at that point and just rotate clockwise or anticlockwise as you need, since the gear has equidistant teeth all around!
This is the best idea I've read in the comments yet. This allows you to move much faster as you both don't need to pause or have a gap for the servo to reset as you described, it also lets you move the motor off of the moving carriage. They could sit right next to the ball screw motor. Those gear teeth could simply run on a splined shaft.
You might want to rotate a ball. If it is polarized, then an electromagnet (kind of motor coil) can rotate it. Also it would be nice to have some snap-on-position, on the two end points to have a consequent draw.
Nice concept. If you make the "U" larger so the servo can have a "zero" point where it always can pass and then only move when in position for a tenth of a second then back it could do it while moving. Like a momentary switch. Forget what it was, just put in what it should be while passing in high speed.
Suggestion: swap the "slots and levers" for ferromagnetic rods (on each pixel) and a pair of electromagnet "slots" (one forward, one to the back) that can pull the rod in either direction. This way you don't need to match the previous state for each pixel, and you can always "set" a pixel to either state, with nothing happening if you "overwrite" With this solution, you're combining the best of both worlds: mechanically multiplexing the electromagnetic part of a solenoid (keeping wiring simple and power draw consistent and controlled), whilst keeping the "actuator" fixed to each pixel, allowing scaling up with minor cost
Core-xy gantry moving on the back of the entire system, single servo flipping bi-stable dots by giving em a push without potential of binding. Would be fun. Updates a single dot at a time.
if you had two "u" slots you could pass the horn through either "U" since the state is fully open or fully closed not in between. this would allow you to move the ball from either state and pass through without jamming.
The folk shaped thing that is used to flip the "balls" could be made to work like a ramp. If you set the servo in the on position before that arm on the servo gets to the fork, it just slides on the ramp and moves it to the new position. You could also have an X screw, a Y screw and only on servo. This would be much slower but only need a total of three motors to do a huge number of dots.
Very clever! I'd like to suggest an idea to eliminate the need to move the levers between each column. If the flip mechanism were replaced with one that could be driven by a cam rather than a lever, you could use the same gear design you had in the previous build and just give each one a half turn to toggle between white or black. Since the teeth on the last design meshed nicely as it moved, this could eliminate the jamming concern and also make the code simpler since it would only need to rotate a half turn in any direction regardless of whether it needs to turn a pixel on or off.
It is possible to use spring preload servo arm or some type of cam to active the two state (1 or 0), this way, you won't have to remember the previous state. This will avoid crash in case the actual state mismatch the memory state. (someone touch the ball...etc)
@JamesBruton if you design the size of the slot and the throw of the actuator such that there is a position in the middle of the throw where the sides of the actuator cannot reach, you'd have a home position for the servos where they can pass through any column. That would make things a little simpler and hopefully up the refresh rate
Nice idea! I'd love to see a version with free horizontal movement on each row, so 3 lead screws if you have 3 rows. That way, the servo/magnet can jump to the position it wants to update much faster.
The old Radio Shack Armatron used a mechanical multiplexer to allow a single motor to control the gripper and the joints and rotation. It would be neat to have a replica Armatron.
Interesting concept! I would design the linkage interface so that it can flip to 2 states but with clearance for a servo middle state which leaves it unchanged. Perhaps that just requires you widen the gap that the servo horn slots into. *Arbitrary numbers* say the action requires 60 degrees of servo stroke, let the final 10 degrees in either direction be the flip action, but the middle 40 degrees to be the neutral state. This way your algorithm doesn’t need to save a memory of the column and change state to it as it passes (especially if they are to be left unchanged). The runtime can greatly improved if the algorithm goes: index to next column->flip necessary dots->back to neutral->index (repeat)
I would go with the ramp idea, combined with placing multiple modules on the same leadscrew - you use electronic multiplexing to set the servos to what each characters next column will be, then move the leadscrew forwards and the ramps will flip the dots. That way, while you would use more servos, you would only need one extra IO pin per character and you could build a lot longer display with a much faster refresh rate. Could work as a subscriber counter behind you on the wall too (though that doesn't need the refresh rate, but you get the idea :) )
I really like the mechanical Multiplexer, but if I had to solve a problem the mechanical Multiplexer can solve I would have jused one motor with several gears on one axis engaged with a clutch for every gear. I think when you would have a heavy load on the gears of the mechanical Multiplexer, the gears wouldnt last very long when they slide together. But still really entertaining to watch, keep going :)
2:09 Why would you put the gears outside the radius of the pingpong ball like that? There's loads of air just on the other side of that wall they are attached too at this timestamp.
Ya could put another long twirly thing on the Y axis an do away with needing so many servos.. an have different coloured sides to the pixels.. then it's 3 motors an a lot of plastic an it's a colour display! Great vids man your awesome.
you could flip the lever by 90° in the back. so that the servo lever has to push up for one state and down for the other. if there is no change, it can pass in the middle
To increase efficiency and speed, you can connect strings to each of the flip-dot pixels where the other end of the strings are attached to a smaller matrix of mechanisms so that the servo motors travel less distance horizontally to flip each pixel. Basically, the large display gets projected to a smaller display. In the current design, a major limiting factor for efficiency is the size of each pixel and as the overall display it is scaled up in size, the efficiency will decrease by a lot. Thus even if you make a much larger display, with this new design, you can actually make it faster than it is with the current smaller display. It would be kind of like a projector that outputs pictures and videos onto a much larger screen. Since the strings can only be used in tension, the ping pong balls will have to be defaulted to one position using extra weight so they are not balanced. Then you can 3D-print a small and simple bi-stable mechanism for each pixel in the small projected matrix that is switched using the lever arm of the servo motor. The bi-stable mechanism is so that when the pixel is white, it will be in one position and when the other position is chosen, the pixel will flip. The weight is there so that the pixel will flip back to white using gravity. Since the string would not be able to push the pixel to flip back to the other side, gravity will automatically pull it down when the bi-stable mechanism is switched by the servo. In conclusion, you would still be using the same mechanism to move the motors, but at a smaller scale so it is more efficient and faster even for a larger display.
Was thinking of a slightly different approach. The idea would be for the lever in the back to have an angled surface, such that as the control plane in the back passes by, it only needs to have a "finger" held out. If the finger is held out high, it would push the lever away revealing white (and, if the lever is already away, there's no contact so we're good). Or, if the controller held out the finger in a lower position, it would drag the lever back towards the controller revealing black (and again, if the lever is already back then there's no contact). Couple of things I like about this. First, you no longer need to know the prior state of the display, because the action is idempotent: you only need to know where you want each pixel to be. And the individual fingers need only bear load primarily sideways: they can be weak and geared for fast travel. Which means you can invest in only the one big motor to push the control bar itself, and that thing can shoot the control bar quickly from edge to edge. With careful design, you could cause the fingers to work correctly when engaged in either direction. Think of the lever as just a popsicle stick: on the top plane of the lever is an arrow head pointing towards the control bar, such that hitting it as you pass by either way will push it away. And there's an arrow head on the bottom as well, facing inwards towards the pixel; the finger on the bottom would be crooked upwards like an L, to engage that arrow head.
The mechanism on the dots should only have one cam pointing down, not a hole that the servo needs to fit. The problem is if the dot is not in expected position, the mechanism will jam. By using a only one cam, you can position the servo lever outside of the area where it can hit the cam and just move it to hit the cam, and flip the dot.
You could build it with a mechanical OR gate or AND gate and combine two adjacent Dots. This should effectively cut it into half. This would also be a good way to look into how mechanical computing works and would be a fun way to show logic and how you can do computing calculations and displays.
One of the solutions is to have large beveled teeth in a gear arrangement for the small servos that have a wide spacing so you can never go too far actuating in any one direction. Then you put extremely small distances between actuation of the ball lever so that this gear has to travel a smaller distance (or none at all) to mesh with the levers. The levers could even be converted into a rack to mesh with your "scanning" pinion. A particularly slick idea would be to have cloudy, partially transparent white "keycaps" with a black interfacing duplicate underneath, not unlike the "They Keep Multiplying" math keyboards from grade school. Then, you have an continuum between white and black depending on how deep the black insert is to overcoming the cloudiness of the white keycap, which can be controlled from this hypothetical rack and scanning pinion idea.
What about having the actuators having long arms that are actuated from a centrally located point? In that way you reduce the travel distance of the column of servos. For example, each actuator would "reach" towards the middle, instead of being actuated in line with its column.
What about a "core memory" technique, were whatever impulse you provide is half of what is necessary to flip the bit, so you have to hit both the right column & the right row to flip a particular bit. Then the actuators could slide up and down the sides activating as they go. Well, one would have to flip back and forth real quick one cycle for each step of the other. I'm thinking maybe some kind of air pressure system, but maybe a physical bump would work too. Could be an interlock where the top slider unlocks a column so that the side slider can knock the correct ones in or out.
If you had a triple hook on the back, the servo arm would always line up with one of the hooks, regardless of position. The servo would also have 3 positions. This might get complicated programming as you would not only have to remember what state the display is in but also what state the servo is in and which way it would have to move.
More vertical rows could be supported w/ the same number of servos if u put extended levers on the second set of rows and position them at the halfway point between current levers. Or really, if such vertically extended levers are workable, u can at least triple the # of rows with same # of servos by adding rows both above and below and putting them at the 1/3rd and 2/3rd points.
I'd put a magnet on each dot and move coils pass them. No servos needed. Most flippy dots use two coils or a coil and a permanent magnet for each dot and muliplex the drivers.
Two mechanical options that may be easier than a travelling carriage, instead coding the pattern in a column in the position or sequence of positions of a single shaft. (i) a mechanism like a single-dial combination lock (stretched out) to set the angular position of a string of elements - either the balls directly or some levers or gears attached to them. The pattern of black/white is then achieved by some back/forward at one end of the chain, setting the furthest ball through clockwise rotation, then the next by ccw rotation, etc. (ii) gear each ball to spin at half the speed of the one below it. Say with 4 balls, black on one side, white on the other. As the bottom ball is rotated 16 times, the sides facing the front go through good approximations of 16 possibilities. To make it better, add some mechanical persistency to each unit, such as in a flip-clock. (I.e. make a binary flip-clock)
Easier would just be to have extension levers from a single servo that could hit any of the three rows, but stagger their horizontal placemen so that at any particular horizontal position the servo would only hit one of them.
Before hydraulics, old machinery like cranes and diggers used the mechanical force of the engine pull a series of linkages and cables, with a series of clutches. You could do something similar
I think having a magnet on each pixel and an electromagnet to move them on the carriage would be easier as you would not have to worry about the existing state. It would also better allow recovery if the controller loses power and doesn't know what the pixels currently are
"i'm using ping pong balls because i have a lot of them"
*prints a fake half-ball anyway*
Yeah, I don't get it, why not just cut ping pong balls?
@@Bruhsty1234 a half ball could look bad on camera with all the light because of the black background and the thin white plastic.
Yeah, why not just have a black and white slate?
I hate this about the channel, he always prints A LOT of things that can be made much more easily, cheaply and quickly in other ways
@@Bruhsty1234 Would be way more effort!
Have you considered using ramps on the lever, to flip the dot while "swipe past" the dots. No jamming, no waiting?
And no need to know the previous position, especially if some external influence messes with it.
that was my first thought as well
Well yes and you could simply build kind of centering ramp, then from there you could assign either go fully open or fully closed
I was thinking in same direction also.. In addition, servo can have a park position if need to just pass through without touching the flips
You could also 3D print them as compliant devices so there's only a single moving part for each pixel and spring is built in.
what you should do is make the input levers independent of current state. so, as the servo slides by, it'd pas cleanly over a dot that was already in the right place, but index one that wasn't. like a pin in a track, using the lead screw's own motion to slide through
Absolutely this.
yup, better idea
I’m very curious of how many miles of filament you’ve used over the years.
I'm more interested in how many kilometers he's used
Enough to go to the moon and back a few times
500 miles. Perhaps even 500 more.
You ll eat it with your food in some years, like all plastic
@@matthewgoodman434 5 miles, 2 kilometers and 1 smoot
Replacing the servos with magnets seems a good idea, less moving parts, just have to time it right. A controlled polarity on the moving side, and a fixed polarity on the dots, you just have to dial in the magnets to be able to reliably pull/push the dots. Also a belt driven axis on a smooth rod seems way more efficient in terms of speed.
If you want to go overkill and use only two motors, you could build something like a coreXY motion system like a 3d printer but instead of a nozzle you have an electromagnet/servo that switches the dot matrix, this could be scanning row by row, or just go to only the neccessary positions if programmed right
I was just thinking that I would want to see a version of this that uses an x y type thing
Magnets have issues as their strength is directly related to how close to other things it is. Could be two magnet per, one for on to off, the other for off to on, and have them end up close to the thing.
In the 1970s or 1980s I saw a display like that in the baggage area of the airport in Milwaukee, WI. The display appeared to be backlit by fluorescent tubes, and would be erased when a dark silhouette moved behind it right to left, and would then be drawn as that silhouette moved left to right. Probably about 8 rows by 20 characters.
Looking at the display made of ping pong balls, I kind of want to see someone do a creepy art project version of one where each ball has a set of black eyelids that can open and close.
I think the flipping part should be 90° flipped, the middle point should be free to pass the hole at any state, while the small diviation in the angle would flip it to the correct side as it passes by. It would make your life a lot simpler.
I think that would even let it flip them on the move, just scan the lead screw back and forth twiddling the servos as you go. 180 the servo horn when you get to the end and your idea even works in both directions. I'd live to see how fast he can get the thing going.
I like the cached current state method - but for me use the actual balls and a small inclined plane - drive the ball pusher/holder up and down the plane from the back - then you can do primitive grey scale leaving them at 1/4 1/2 etc too!
@@foldionepapyrus3441 Unless I am mistaken, the current method would fail mechanically if you snuck in and changed the state of one ball by hand.
A belt drive would make it faster too. And if the switches were ramped, all you would have to do is set the position as you pass and the switch would slide into the correct position.
@@bkuker Indeed, as it currently stands it is mechanically flawed, being easily externally driven and probably unable to deal with the fact - the arms might manage to bulldoze the linkage back to the expected state, but its clearly not designed to do so.
But move to something very much harder or even impossible to back drive and having a remembered current state means no mechanical reset, clutch/ratchet or sensing type system required. So on my inclined plane idea - I was thinking driven by screw thread - you can set the height up the slope and need no reset to change it correctly to the next grey level you desire.
"If it has a screen, it can play Bad Apple!!, if it doesn't have a screen, make one."
If you use a belt drive on the linear motor instead of a lead screw it would work a lot faster also you could make one that instead of moving horizontally it moves in a circle I’m not sure what it could be used for but someone would find a use for it in the comments
Oh! If you snake wound the belt, and had the servo follow a zigzag, maybe you could update any number of rows and columns with 1 servo!!!
@@brantwedel the proper design, clearly, would be a space-filling Hilbert Curve, of course!
@@strictnonconformist7369 this is not a square its 3x5
Great video again! It is impressive that each week you manage to design and build another complicated project. Are you doing this alone, or you have a team, for example to help with video editing?
Sky!
You could do faster switching if you made a ramp mechanism that the servo selected and moved across the balls (like a railroad switch, but the switch/rail is what is moving through the row of balls) ... Would also probably eliminate jamming as well since the servo would be selecting the ramp between the balls, and the ramps would self-align. (Designing the ramps as 2 alternating contours on a cylinder would probably make for a compact design) ... would have most the advantages of the electromagnet idea.
Ah, I just realized you can build the ramps into the flip-dots instead of the servo, so basically what you have but with angled slots, and have the servo pre-position and move through them! Ideally, no jamming, and no stopping!
James, that works awesome! The white ping-pong ball completely disappears and reappears as if by magic!
I've been toying with similar idea but trying to do gray scale. Instead of black or white, each pixel is a cylinder of black to white gradient. Pixel axis is vertical as to take advantage of gravity and friction to maintain its rotational position.
As the gantry moves at constant speed horizontally, the servo arm would catch a half disc on top of the cylinder to rotate it. By retracting the servo arm just at the right time, each pixel could be set to desired gray scale. To rotate the pixel the other way, we would rely on the gantry moving the other way and again using the servo arm to catch that pixel to rotate it the opposite direction.
I've only modeled it in Fusion and have not printed them. I suspect there are tons of issues that I have not tought of yet. When I saw your black/and white pixel, I realized that's what I should have done before tacking gray scale. Very nice. I love it!
"I wanted to use ping pong balls because I have a lot of them..."... Prints ping pong balls anyways.
I love ping pong balls!
We've noticed! : )
make an even larger display 😜
this is literally the perfect video I need. I plan on building an automated spice rack, and I ideally don't want a ton of servo motors to open and close each shelf door because that is expensive. I'll definitely try to integrate this design into the product.
Cool idea. There's no need to remember last positions if you leave gap for servos to be in the middle always, then the walls for on/off can be in reach of servos arm, turning all the way right or all the way left. The no need for intermediate step, just return to center previous to move them.
You make so many interesting things. I learn a lot just listening to you describe your thought-process during the different stages of a project. One of my favorite channels. Good luck hitting 1MM subs!!
I really like these sorts of projects, it's the kind of clever engineering you'd see on those really interesting early electromechanical devices from the early 1900's.
You are cool and smart
You haven't even seen the whole video it's only 1 minute after upload
@@fatgamer919fan4 they're not wrong though
Were you paid to say that?
@@DylanLisansky I wasn't paid to not say that either
@@baronofclubs I agree
To make the refresh rate faster, try adding an offset like on a Verner caliper. You can have multiple "flippers' attached to each servo. In each position the only one flipper and ball is aligned at a time.
make the servo horn like a ramp, flipping the lever by passing by.
this could be pivoted in to the most excessively over engineered game of guess who ever created!
Or connect four lol
id like to see a clock made of two rings of this kind of display, each with 12 dots, where the inner dot represents the hour and the outer dot represents the minute in increments of 5.
this is the first video from you i have watched in years. boi, has your presentation style changed :D
i was quite shocked ^^
also rocking the gray hair now :D
man, time goes by so fast...
Thanks - I changed the format at the start of the year. Views are a little better!
Why not paint one half of the ball black and rotate them with a screw gear or rack gear?
With a gear fixed to each ball you could pass at high speed and engage a stationary gear on the carriage when you want to flip "on", then engage in the return jointed to flip "off".
(Relatively weak) Magnets on the "east" and "west" pole of the ball can attract a magnet in the side frame to hold the ball in place.
i was hoping youd do something like a combination lock where only one rotational input can set different discs to different angles when i saw in the thumbnail "one servo" but this is still pretty cool
Always amazing what you can do. Im still fighting my way through one of your other arm projects, you make it look so easy :)
This is PERFECT for my antenna tower project where I need to be able to point multiple different yagis in different directions and will never move more than one at a time.
Oh and I could even add a tilt axis to each of them without thinking about motor costs!
Just extremely cool. The pace with which you output this intricate projects is astonishing.
Man, I don't do robotics or electronics at all but this is such great content I can't but watch.
3:08 I believe that is a parallelogram linkage as opposed to a 4 bar linkage, as a 4 bar linkage has 4 bars on a rotating square to another rotating square and it perfectly transfers the rotation.
A court of suggestions:
1. Implement the servo with 3 states - switch to on, no change, switch to off.
2. Make the ball mechanisms latch when the carriage is not at that column.
3. Implement a sprung/naturally 'off' state to the balls. This could also be used to do a global clear all action
James, if you turn each of those lever slots into an hourglass shape (turned on its side and open on each end) so that it catches the servo horn as it passes by, you don't need to pause in between each - you can just fly across them quickly. This also solves any issue of them being in an unknown state if manually changed while the actuator isn't directly over and the physical model mismatching the data model. If you're worried about catching/jamming - should be easy to put a small ball bearing on the tip so that it rolls across the hourglass shape.
Instead of flipping the levers each time to current position of the column, it suggests itself to put several levers on each servo in every possible positions. Kinda like a gear
One idea could be a spinning bristle brush instead of servos, the rack could slide sideways through all of the levers without moving anything, but have them quickly spin one way or another and they could influence the display. Small motors might be cheaper and easier to drive than servos too. Great video!
Free idea for a design that can be extended in the other dimension as well: Cylinders with black on one half and white on the other half, with paddles on each side that interface with each other like a safe lock / combination lock does. So you have a motor at the bottom that turns 2 spins to the left, sets the top pixel, turns 1 spin to the right, sets the second pixel, and turns to the left, to set the bottom pixel. Then moves across to the next column (somehow).
Would be cool to do a big display running Conway's Game of Life with randomised or semi-random seeds. Could even do a cylindrical version that wraps around
I’ve always wanted to try making a fishing line based grid display. Each row and each column having a servo controlled fishing line. If both the row and the column are engaged a third “actuation input” connected to all the dots could do the actual flipping. This way multiple dots could be flipped simultaneously with each tick of the clock.
Writing the prioritization algorithm would be a delightful hell.
_”Maybe a clock or something? 🤔”_
_”That’s a great idea! Yes, I _*_will_*_ build a dot-matrix display!! 🤗”_
It would be interesting to use two motors for X and Y axis control and then a single motor as the "change" actuator.
Another nice example for mechanical multiplexing mechanism can be numbered wheels to make numeric combinations by rotating numbered wheels with a multiplexer mechanism it uses 2 motors, 1 for linear displacement and the other to rotate the wheels which will have a geared perimeter. So when you align the selector mechanism with each wheel it engages the teeth of the selected wheel, then turn the selector shaft, selecting a number (could be a letter or any other thing)
This is awesome, subbed. Look forward to seeing your previous videos and seeing what you come up with in the future.
If you want the display to always update left to right, a second vertical actuator line could be used to have two. Each goes from one end to a maximum extent in the middle. While one is flipping the other is resetting (carriage return?) So the right can take over once the left reaches the middle. You can gear it so only one motor is required as they can move in tandem!
Have the flipping axis of each dot perpendicular to the main motor axis. Flip to black in one direction, white in the other. Have one solenoid per row that extends out to do the flipping, which can be very low power as all it needs to do is extend / retract the flipping pawl while it has no load on it. You need to extend the pawl whenever an element needs to be flipped. If it's already the correct colour it doesn't matter if you extend it or not. A linearly moving pawl should be able to drive a maltese cross / geneva type driven element through 90 degrees, which should be enough (you'd only need one slot instead of a whole ring of slots though.)
whenever you do sponsors its like you have a gun to your head lol
@Ankit Meher Just the way he speaks i guess
I guess he's just too monotone, it looks like unmotivated ad
A new vid!! Love the robotics stuff man… helping me formulate my own plans for the future!
If the angular distance to flip were an even division of a full rotation (e.g. 90, 70, 60 degrees) you could make the bit attached to the servos a full wheel with spokes. Then it would essentially always be in the same position after each rotation because of rotational symmetry.
Wow. That's brilliant! Nicely done.
One advantage of a setup like this is that the actuators can be higher quality and do things that a grid of electro magnets can't do. Each "pixel" could rotate to 4 different positions to show a different shape or color. Or perhaps they could be some kind of cone shape that could be moved in and out to any position to make the dot appear larger or smaller - sort of like a newsprint photograph.
I know you said why you didn't just have it move continuously and try to time the flips.... but I really wanted to see it :D
Great video as always :)
In my mind I want the back slots that the servos actuate to be cams that allow the servo to pass a 'keep the same' slot, 'flip the dot' slot such that the servo arm never needs to stop moving, it just needs to choose the next state after it passes the current bank. It would be the horizontal movement of the carriage that would do the actuation in the cam slots.
Absolutely brilliant.
And then mixes up 4 and 5 xD
I once saw a window display in the Museum of Digital Art in Zurich that has an interesting vertical column of rotatable cells. Each column has multiple dots, each having two sides. Each column is driven with only one motor and the linking mechanism is similar to a flip display. With only one motor, it is able to index the entire column (despite very slowly) to a given pattern.
I'll leave the exactly implementation down to your imagination.
Belt drive for the carrage. Some kind of sliding wedge arrangment so the carrage motor sets/resets the dots. Use solenoids not servos (not to push/pull but to select set/reset). If you stagger the actuation point of the dot in a coloumn, you could get way with only one solenoid per coloumn.
You could create a 'crane' component for your Great Ball Machine, using the multiplexer to control x, z and grip axes, with the sequence:
x-> ball pickup x
z-> ball pickup z
grip-> closed
z-> travel z
x-> ball release x
z-> ball release z
grip -> open
z-> travel z
repeat
You might consider updating the servo motor's wiper from a single lever to a spoked wheel. It might have six spokes at 60 degree separation. As long as you orient any spoke in between the connectors, you're good to go; just rotate clockwise or counterclockwise from your stored knowledge of the last bit position.
What if the servos had a "gear" on them instead of an arm? You could pass cleanly through all states of the actuator at that point and just rotate clockwise or anticlockwise as you need, since the gear has equidistant teeth all around!
This is the best idea I've read in the comments yet. This allows you to move much faster as you both don't need to pause or have a gap for the servo to reset as you described, it also lets you move the motor off of the moving carriage. They could sit right next to the ball screw motor. Those gear teeth could simply run on a splined shaft.
You might want to rotate a ball. If it is polarized, then an electromagnet (kind of motor coil) can rotate it. Also it would be nice to have some snap-on-position, on the two end points to have a consequent draw.
Excellent work man thanks 🙏
James, you are like a techno-drug.
Nice concept. If you make the "U" larger so the servo can have a "zero" point where it always can pass and then only move when in position for a tenth of a second then back it could do it while moving. Like a momentary switch. Forget what it was, just put in what it should be while passing in high speed.
I love it, a great challenge would be to get down to one servo on a 10 by 10 display!
Belt might be a better solution than the lead screw, alowing for faster travel ans refresh rate
Suggestion: swap the "slots and levers" for ferromagnetic rods (on each pixel) and a pair of electromagnet "slots" (one forward, one to the back) that can pull the rod in either direction. This way you don't need to match the previous state for each pixel, and you can always "set" a pixel to either state, with nothing happening if you "overwrite"
With this solution, you're combining the best of both worlds: mechanically multiplexing the electromagnetic part of a solenoid (keeping wiring simple and power draw consistent and controlled), whilst keeping the "actuator" fixed to each pixel, allowing scaling up with minor cost
Core-xy gantry moving on the back of the entire system, single servo flipping bi-stable dots by giving em a push without potential of binding. Would be fun. Updates a single dot at a time.
If you flipped your matrix, you could make a 7-segment display !
Why is the L298N a bad old motor driver? I've been using them but don't seem to have any problems
if you had two "u" slots you could pass the horn through either "U" since the state is fully open or fully closed not in between. this would allow you to move the ball from either state and pass through without jamming.
The folk shaped thing that is used to flip the "balls" could be made to work like a ramp. If you set the servo in the on position before that arm on the servo gets to the fork, it just slides on the ramp and moves it to the new position.
You could also have an X screw, a Y screw and only on servo. This would be much slower but only need a total of three motors to do a huge number of dots.
Very clever! I'd like to suggest an idea to eliminate the need to move the levers between each column. If the flip mechanism were replaced with one that could be driven by a cam rather than a lever, you could use the same gear design you had in the previous build and just give each one a half turn to toggle between white or black. Since the teeth on the last design meshed nicely as it moved, this could eliminate the jamming concern and also make the code simpler since it would only need to rotate a half turn in any direction regardless of whether it needs to turn a pixel on or off.
It is possible to use spring preload servo arm or some type of cam to active the two state (1 or 0), this way, you won't have to remember the previous state. This will avoid crash in case the actual state mismatch the memory state. (someone touch the ball...etc)
@JamesBruton if you design the size of the slot and the throw of the actuator such that there is a position in the middle of the throw where the sides of the actuator cannot reach, you'd have a home position for the servos where they can pass through any column. That would make things a little simpler and hopefully up the refresh rate
Nice idea! I'd love to see a version with free horizontal movement on each row, so 3 lead screws if you have 3 rows. That way, the servo/magnet can jump to the position it wants to update much faster.
Great as always James! 👊 I think that the best practical example of a mechanical multiplexer I’ve seen is the MMU2 by Prusa
The old Radio Shack Armatron used a mechanical multiplexer to allow a single motor to control the gripper and the joints and rotation. It would be neat to have a replica Armatron.
Interesting concept! I would design the linkage interface so that it can flip to 2 states but with clearance for a servo middle state which leaves it unchanged. Perhaps that just requires you widen the gap that the servo horn slots into.
*Arbitrary numbers* say the action requires 60 degrees of servo stroke, let the final 10 degrees in either direction be the flip action, but the middle 40 degrees to be the neutral state. This way your algorithm doesn’t need to save a memory of the column and change state to it as it passes (especially if they are to be left unchanged). The runtime can greatly improved if the algorithm goes: index to next column->flip necessary dots->back to neutral->index (repeat)
I would go with the ramp idea, combined with placing multiple modules on the same leadscrew - you use electronic multiplexing to set the servos to what each characters next column will be, then move the leadscrew forwards and the ramps will flip the dots. That way, while you would use more servos, you would only need one extra IO pin per character and you could build a lot longer display with a much faster refresh rate. Could work as a subscriber counter behind you on the wall too (though that doesn't need the refresh rate, but you get the idea :) )
I really like the mechanical Multiplexer, but if I had to solve a problem the mechanical Multiplexer can solve I would have jused one motor with several gears on one axis engaged with a clutch for every gear. I think when you would have a heavy load on the gears of the mechanical Multiplexer, the gears wouldnt last very long when they slide together. But still really entertaining to watch, keep going :)
2:09 Why would you put the gears outside the radius of the pingpong ball like that? There's loads of air just on the other side of that wall they are attached too at this timestamp.
Ya could put another long twirly thing on the Y axis an do away with needing so many servos.. an have different coloured sides to the pixels.. then it's 3 motors an a lot of plastic an it's a colour display!
Great vids man your awesome.
you could flip the lever by 90° in the back. so that the servo lever has to push up for one state and down for the other. if there is no change, it can pass in the middle
It takes balls to make a display like that
7 and a half balls, to be precise.
To increase efficiency and speed, you can connect strings to each of the flip-dot pixels where the other end of the strings are attached to a smaller matrix of mechanisms so that the servo motors travel less distance horizontally to flip each pixel. Basically, the large display gets projected to a smaller display.
In the current design, a major limiting factor for efficiency is the size of each pixel and as the overall display it is scaled up in size, the efficiency will decrease by a lot. Thus even if you make a much larger display, with this new design, you can actually make it faster than it is with the current smaller display. It would be kind of like a projector that outputs pictures and videos onto a much larger screen.
Since the strings can only be used in tension, the ping pong balls will have to be defaulted to one position using extra weight so they are not balanced. Then you can 3D-print a small and simple bi-stable mechanism for each pixel in the small projected matrix that is switched using the lever arm of the servo motor. The bi-stable mechanism is so that when the pixel is white, it will be in one position and when the other position is chosen, the pixel will flip. The weight is there so that the pixel will flip back to white using gravity. Since the string would not be able to push the pixel to flip back to the other side, gravity will automatically pull it down when the bi-stable mechanism is switched by the servo.
In conclusion, you would still be using the same mechanism to move the motors, but at a smaller scale so it is more efficient and faster even for a larger display.
creativity at its finest
Was thinking of a slightly different approach. The idea would be for the lever in the back to have an angled surface, such that as the control plane in the back passes by, it only needs to have a "finger" held out. If the finger is held out high, it would push the lever away revealing white (and, if the lever is already away, there's no contact so we're good). Or, if the controller held out the finger in a lower position, it would drag the lever back towards the controller revealing black (and again, if the lever is already back then there's no contact).
Couple of things I like about this. First, you no longer need to know the prior state of the display, because the action is idempotent: you only need to know where you want each pixel to be. And the individual fingers need only bear load primarily sideways: they can be weak and geared for fast travel. Which means you can invest in only the one big motor to push the control bar itself, and that thing can shoot the control bar quickly from edge to edge.
With careful design, you could cause the fingers to work correctly when engaged in either direction. Think of the lever as just a popsicle stick: on the top plane of the lever is an arrow head pointing towards the control bar, such that hitting it as you pass by either way will push it away. And there's an arrow head on the bottom as well, facing inwards towards the pixel; the finger on the bottom would be crooked upwards like an L, to engage that arrow head.
Very interesting, had not studied mechanical multiplexing prior to this.
The mechanism on the dots should only have one cam pointing down, not a hole that the servo needs to fit.
The problem is if the dot is not in expected position, the mechanism will jam. By using a only one cam, you can position the servo lever outside of the area where it can hit the cam and just move it to hit the cam, and flip the dot.
You could build it with a mechanical OR gate or AND gate and combine two adjacent Dots. This should effectively cut it into half. This would also be a good way to look into how mechanical computing works and would be a fun way to show logic and how you can do computing calculations and displays.
One of the solutions is to have large beveled teeth in a gear arrangement for the small servos that have a wide spacing so you can never go too far actuating in any one direction. Then you put extremely small distances between actuation of the ball lever so that this gear has to travel a smaller distance (or none at all) to mesh with the levers. The levers could even be converted into a rack to mesh with your "scanning" pinion.
A particularly slick idea would be to have cloudy, partially transparent white "keycaps" with a black interfacing duplicate underneath, not unlike the "They Keep Multiplying" math keyboards from grade school. Then, you have an continuum between white and black depending on how deep the black insert is to overcoming the cloudiness of the white keycap, which can be controlled from this hypothetical rack and scanning pinion idea.
What about having the actuators having long arms that are actuated from a centrally located point? In that way you reduce the travel distance of the column of servos. For example, each actuator would "reach" towards the middle, instead of being actuated in line with its column.
You have a burnt ping-pong at 10:45 ... :-D
What about a "core memory" technique, were whatever impulse you provide is half of what is necessary to flip the bit, so you have to hit both the right column & the right row to flip a particular bit. Then the actuators could slide up and down the sides activating as they go. Well, one would have to flip back and forth real quick one cycle for each step of the other. I'm thinking maybe some kind of air pressure system, but maybe a physical bump would work too. Could be an interlock where the top slider unlocks a column so that the side slider can knock the correct ones in or out.
If you had a triple hook on the back, the servo arm would always line up with one of the hooks, regardless of position. The servo would also have 3 positions. This might get complicated programming as you would not only have to remember what state the display is in but also what state the servo is in and which way it would have to move.
You could add a curved edge to the tops of the 'doors' which would help block out more of the white ball peeping out of the gap?
More vertical rows could be supported w/ the same number of servos if u put extended levers on the second set of rows and position them at the halfway point between current levers. Or really, if such vertically extended levers are workable, u can at least triple the # of rows with same # of servos by adding rows both above and below and putting them at the 1/3rd and 2/3rd points.
I'd put a magnet on each dot and move coils pass them. No servos needed. Most flippy dots use two coils or a coil and a permanent magnet for each dot and muliplex the drivers.
Two mechanical options that may be easier than a travelling carriage, instead coding the pattern in a column in the position or sequence of positions of a single shaft.
(i) a mechanism like a single-dial combination lock (stretched out) to set the angular position of a string of elements - either the balls directly or some levers or gears attached to them. The pattern of black/white is then achieved by some back/forward at one end of the chain, setting the furthest ball through clockwise rotation, then the next by ccw rotation, etc.
(ii) gear each ball to spin at half the speed of the one below it. Say with 4 balls, black on one side, white on the other. As the bottom ball is rotated 16 times, the sides facing the front go through good approximations of 16 possibilities. To make it better, add some mechanical persistency to each unit, such as in a flip-clock. (I.e. make a binary flip-clock)
Can you do a mechanical multiplexer on the vertical axis as well? I can see that working if you use electro magnet
Easier would just be to have extension levers from a single servo that could hit any of the three rows, but stagger their horizontal placemen so that at any particular horizontal position the servo would only hit one of them.
Before hydraulics, old machinery like cranes and diggers used the mechanical force of the engine pull a series of linkages and cables, with a series of clutches. You could do something similar
I think having a magnet on each pixel and an electromagnet to move them on the carriage would be easier as you would not have to worry about the existing state. It would also better allow recovery if the controller loses power and doesn't know what the pixels currently are