Low Resolution Programmable Matter

Cube shaped objects that will attach to each other and move each other which will result in a low resolution programmable matter (LRPM).

Similar projects worth following
The LRPM can be divided into two parts.

The hardware is all about making sure that each cube can connect and move another cube.

The software is all about path finding. Path finding for the messages so it can reach the correct cube and path finding so when the LRPM has acquired one shape, when you want it to acquire another shape, how will each cube know how to move? The software will answer that and guide each cube to it's final destination.

When both of those are functional, it's time to make a lot of cubes and then you can shape the world to your liking. Imagine 10^3 cubes, you could build houses, with 10^5 you could maybe make villages.

The size of each individual cube is planned to be around 8x8x8 cm, because that is not too small in order to fit all the mechanical parts inside, and it's not too big, like in the game Minecraft where each block is like half the size of the player.

The blocks always keep their orientation.

Not going to patent it.

<No, I will not collaborate with anyone, the team is just me, sorry>

The thumbnail for this project illustrates how, yes that is supposed to be a human, moves inside a virtual reality made of LRPM.

The background image shows how a couple of cubes can move each other to make two connected 3D-printers.

Keep in mind that each cube will look identical to every other cube, the different colors in the images is just to clarify what is what and where they've been.

Another thing to understand is that the strength of each cube doesn't have to be miraculously strong, like a 300W BLDC motor, as long as they can lift themselves, all you need to do is connect more cubes in parallel which will sum all the forces and in the end move whatever you want to move.

The cubes are dynamic, meaning that they are supposed to be able to change shape whenever, however, and also be able to stay stationary.

  • Connectors, skeleton, basic communication

    Harry Svensson04/13/2017 at 21:49 0 comments

    b . (I had to move around the handles so it's one female and one male handle per side, rather than two males / two females on a side. Because this way the motors are distributed in a better way, as can be seen in the youtube link below. It's getting... pretty tight in there. There's a mouse encoder strapped on the motor along with reduction gear for the yellow gears that will move the cubes around. In other words, I'll know with a very high resolution how far I've pushed another cube.

    And then it's a question about "Well... how will everything get its energy?". My teacher proposed using Qi, which is like a wireless charger, I did not like that idea because it would be too inefficient and make every cube pretty expensive. So I'm "forced" to use some kind of slip contacts.

    Here's one solution, I know the colors are horrible and that the male handle flashes in the video, but I'm not a director or a film producer.

    I realized afterwards that when there's 3 cubes arranged so there's two on the ground and the third cube resting on top. Then the cube on top can move from one cube to the next. So in other words the slip contact / handle connector have to give VDD and GND during the entire movement, or else the motors die. So therefor I have a minimum width of the contacts. But the communication contacts will short an entire row. Like if the 3rd cube that rests on the 2 other cubes, as in the scenario, then if it's half between the two cubes, then I'll short the communication pins horizontally. That is not acceptable, so I've made the 2 pins in the middle of the handle shorter, meaning that if the 3rd cube above is half way through it's movement, then there's no way of talking to that cube. However, if communication is needed then it's possible to put a fourth cube on the side, and a 5th below that one, moving a quarter and keeping the communication between the 2 below and the 3rd. I don't know how much you, the reader understood of that I just said, but I don't have time to make an animation of that. Just pointing out future "problems" that can be solved in numerous ways.

    Either way, I modified the cube so it matches what I said. So I removed a couple of contacts on the female handle and made a chassi. In the center of the cube there's a 24x24x24mm cube (dark blue in picture below) which is hollow, in there I will place circuit boards stacked on each other. It will be custom made circuit boards containing the processor and 18 full bridges. It will... be tight... I might have to put some PISO shift registers in there for the sensors that measure end points of the handles. It won't look pretty, not pretty at all. The encoders will have to be wired directly to the atmega onto the interrupt pins.

    And that brings me to the next part which is how is ONE atmega supposed to communicate with 6 other cubes (neighbors)?. There's only one TX/RX port, and I am not going to use a multiplexer on that channel, I have to think of something clever. And there's no clock pin. So I'll have to implement a protocol in software that can work with codes that looks a little bit like Manchester code.

    And that can be done with a circuit that I came up with like this below. It's just the right side that I need to communicate through 1 wire:

    • 10k
    • 330nf
    • XOR
    • 10k
    • 100nf

    The left hand side of the circuit is just to simulate data being sent.

    So in other words, the communication will not be the fastest, the reason for why I'm not using anything more "normal" is because I need to solve the communication in software which is slow. So I'm sadly fine with using a slow solution like the circuit above.

    Oh well, another problem that I came across was what you see in the first video in this project log. It shows how a male handle is gripping a female handle. If the cube with the female handle is stationary and the...

    Read more »

  • Motor-multiplexer is a no go, in future versions that won't be a problem

    Harry Svensson04/07/2017 at 13:17 0 comments

    The reason for why I was thinking about using a motor-multiplexer was because I wanted to save:

    • weight
    • cost
    • volume

    I gained nothing from going from 12 motors to 4 motors with 2x motor-multiplexer. So I'll for now use (6 sides) x (2 handles per side) + (2-dimensional movement between 2 cubes => 1-dimensional movement per side) = 6x2+6 = 18 motors. It does not sound that good, but it beats the idéa I had a couple of month's ago when I thought I'd use 36 motors. And for now 18 motors will have to do, to show a proof-of-concept.

    Once I win the hackaday-prize I'll be able to release a version two that has small piezomotors instead, because they weigh much less, and has less volume than a normal DC-motor. Sadly they are very expensive. But I'm planning to do what happened to solar-panels, make something expensive, less expensive. Right now the supply and demand of piezomotors are mainly for medical equipment, and you know what medical equipment usually cost.

    So for version 1, I'll use DC-motors, in version 2 I'll use piezomotors, the reason for why I don't use piezomotors right now is because I'm a student and I'm not made of money. Hopefully in version 3 I'll use electrostatic forces, the reason for why I'm not doing that now is because I don't have time to research about it, if its feasible or not.

    Proof of concept comes first, optimizing and improving comes second hand.

    Here's a couple of animations showing that I successfully managed to make a motor-multiplexer and how it would maybe work in practice.

    And here comes another animation of the same thing but from another angle:

    And here comes the third and last animation for the motor-multiplexer showing the reason for why it's not feasible.

    I know it's in the wrong corner, but it doesn't matter, the amount of cogs and metal rods would still have been absurd. The motor in the lower left corner is supposed to be able to do the movement it applies on the top female handles, to all the white handles. It's... yeah, just placing a motor at every place needed saves space, design-time and money. Oh well, at least I saw it through.

    In the last project log I showed the handles in still images, well here's a video showing how they would hold on to each other in a video, in a more practical way.

    Next on my agenda:
    Moving some ideas I have to Blender that will actually move the cubes around and how the electrical signals and power will interconnect the cubes. I have a couple of good ideas, and we'll see them soon next week probably. I've said it a couple of times now, that I'm going to 3D-print some stuff, trust me. I will once I cement the designs.

  • Handles and Geneva gears as a motor-multiplexer

    Harry Svensson04/03/2017 at 21:07 0 comments

    Tiny update regarding how the handles will look for the cubes.

    The bullet list refers to the two first images below.

    • The white objects can only move 2 mm in the direction toward the blue object
    • The red objects can only move 4 mm in the direction out from the cube
    • When the red handle of one cube is extended 4 mm out, then it will be inside of another cube, that other cube can then hold onto it with its white handle.
    • The electrical signals (Vdd, Gnd, signal out, signal in) will go through the handles.
    • The handles allow for only one dimensional movement, if all handles on a side are used then two cubes are locked.

    See the image below

    all grippers without motors

    On every side there are two handles, either it's two female handles (white) or two male handles (red). Every handle needs to move a couple of mm, so (6 sides) x (2 handles per side) = 12 actuators are needed. I tried solving it with voice coils, but it turns out they eat amperes like crazy, so that is out of the question. So I'll use the next best thing, small DC-motors with planetary gears connected to threaded rods (M2).

    That looks like this:

    all grippers with their individual motors

    In my opinion it is not acceptable because each of those motors costs roughly 1$, and that's 12$ per cube just for the handles, plus the weight is unnecessary. No, I need to solve it in a similar way that cars shifts gears works. But in this case motor shifting or whatever you want to call it. One motor shifts the "state" of another motor which acts on only one handle. For this geneva gears are excellent since they make continues motion to discrete-ish motion, which is perfect for "states".

    So I'm going to use 3 major states and put the motor-multiplexer in a corner of the cube, then I will do the same in the opposite corner of the cube which will take care of the other 3 sides. It works very good in the simulation for 2 dimensions, and it looks like this:

    Geneva gear working in two dimensions gif [4.2MiB]

    But I don't want it to be flat, like a plane, I want it to be in the corner of the cube like this:

    Geneva gear working in three dimensionsgif [4.9MiB]

    If you have some sharp eyes you can see that it shouldn't work at all because the red object has the wrong shape, so that's what I'm working on right now. The same goes for the white object as well, I think it should have 4 cuts, not 3.

    Oh well, soon it's time for 3D-printing and verifying it. And then the fun part comes, which is to make it replace the 12 motors and also cover the moving part of the cube. Fun fun fun.

View all 3 project logs

Enjoy this project?



peter jansen wrote 04/04/2017 at 06:11 point

I've been interested in the idea of programmable matter for ages.  Interested seeing what you come up with!  There were the electropermanent magnets used by the MIT group, but it looks like there's essentially no source for these -- you have to manufacture your own.  (and, probably make a machine that manufactures them for you, if you want to make enough for a series of cubes)

  Are you sure? yes | no

Harry Svensson wrote 04/04/2017 at 13:13 point

I assume you're not talking about the EM-Cube, but rather the robot pebbles. And yeah, the electropermanent magnets are very attractive. It's pretty weird that no manufacturer has stolen their design and mass produced them considering they are "good enough" for many applications. As far as I am aware, no one sells them. And they are not the cheapest to make yourself if I remember correctly, you needed some glue, some soft iron, one permanent magnet and the last piece was hard iron or something, something with magnetic hysteresis. 

But I've done some wiring of my own. Or rather, I've done a coil winder and let it do a couple of hundred turns for me. After all the wiring I've come to the conclusion that it's not worth it to do it myself. Especially if you're like me and don't have any iron nearby, which is more or less needed to keep the permeability high & reluctance low, sure I could go and buy some... but then the cubes would weigh more.

If you do it yourself you'll always have amateurish coils, the winding will probably have bumps on it, and once you've put the coil where it is supposed to be there will be unnecessarily big air gaps. Or it's just me.

At the moment I plan to use bought DC-motors for all the mechanical movement. Sure, I can be swayed, but at the moment I feel that there's a reason for why all the RC-toys share one, among many others, common thing. And that is rotary motors.


Robot Pebbles:

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates