Architecture: “The more it’s simple, the more it’s simple”

First, the work of some students

We spend a whole week working with just a few responses from Alexis, so we try on our own to find out how to make our architecture. This is what it would look like

We spend a lot of time exploring the best components, as you may have seen it in our previous posts.

We would have to make a lot of FPGA programming for the I/O expander, but we thought it was our unique solution.

We spend some times looking for a sensitive captor touch with only one key and the way to use it because we wanted to use the sensitive captor touch of an ESP32-WROOM-32D.

Then, destroy everything with a single Alexis and build again

We had a meeting with Alexis yesterday. He explained to us that the sensitive captor touch of the ESP32 wouldn’t do the job through the wood. One component to change. Fortunately, we already found a 3-key sensitive captor touch, we just have to make sure it will have enough strength to work through the wood.

Then, we spoke about the price and the length of the device. With 64 I/O expanders, Touch would be too expensive for funding it, that’s why we choose to make only a 16×16 grid of marbles.

The next step was the I/O expander: we cannot use them for our hall effect sensor because they are analogic and not numeric. We thought to change for numeric ones but we will come back to them later

We still need a lot of I/O expander, that’s why we need to find a better architecture for our H-bridge. Alexis first thought to make something similar to the architecture of a digicode. One half H-bridge by line, and one by column. If we want to activate the third coil of the fourth line, we would put VCC on the third half H-bridge and the ground for the fourth half H-bridge.

Finally, taking a look at our H-bridge gave us the best solution. This H-bridge can be controlled by an I2C bus, and we can give each of them a special address, so they can be on the same bus: instead of 32 pins, we just need to use three pins. Two for the I2C bus and one for the address, that we will link to some shift registers to control their address.

Now, are we happy? Not exactly, we still need to find how to control our hall effect sensors. A brief look at component gives us our last solution. We would use some analog multiplexers. So, here is our new architecture.

And now?

We are waiting for some coils and Hall effect sensors, and we will begin our tests.

Choosing our components: “We are dwarfs on the shoulders of giants”

For our project, we need to test our components in order to find the best way to control our marble. Good news, our project has been done in other ways before. That’s why we take a look at this webpage: (in French)

Diameter of the marbles

Our first idea was to choose the smaller marbles, which have a diameter of 5mm. I have some of these marbles at home, so I tried to make a prototype with some cardboard.

Conclusion: my biggest fear was that a marble would move the other marbles when we rolled it (because of a too big magnetic field), but with my prototype, they don’t. If no, we would have to always create a magnetic field with our coils and that’s impossible. We would have to change our project for toroids, which are uglier. The other thing is the fact that 5mm marbles are not really easy to roll. That’s why we choose to order 6mm, 8mm and 10mm marbles for our test

The coils

The other project also uses coils. The main difference is the fact that our coils are not hand-made, and our coils are under the marbles, not around them. However, they should have the good range for the coil. We just have to do a little calculation we learned when we were in Classe Préparatoire, with the value given by the other project.

60 turns, 50mA, 6mm circle and a distance equal to almost 0: the coil is about 0,6mH

With a 0,1mm diameter wire and a typical resistance of 5A/mm², we find an RMS current of almost 400mA

We choose bigger coils because they would ask less current from our processor for working. We finally ordered ten coils of 3mH, ten of 1mh and three of 680µH (the last stock, if we choose theses ones, we would take an equivalent) for our test

Hall effect sensor

For this sensor, we have to choose which type we want. Understanding the different type is not easy, but you can find plenty of web articles about this. The best thing is to have a linear sensor because we will have a better idea of the state of a marble. When it will be on one way, the field will be negative and the sensor’s tension under 1,75V and on the other way, it will be positive and the tension over 1,75V. We also choose a directional sensor that gives the field in the three directions of space. It might be harder, but we could choose only one sensor for four or nine marbles if it works well and if the fields are easy to distinguish

I/O expander

Finally, my last contribution for today is the I/O expander. First, we look at the possibility given by the project Datapaulette: shift register. After a short time of reflexion and the help of Alexis, we understand that it was a bad idea because we cannot control as much as we want the current in the coils. We will have to choose an FPGA that will give us enough I/O for our device. We need a total of 2048 I/O pins (one for the value of the Hall effect sensor and one for the current on the coils, the others will be linked to the ground or to VCC). We will wait for the end of the tests to choose our expander, but it should be one of these expanders. We just have to choose which number of ports we want by expander.