Shigang Li and Ying Hai are genius. This post is an answer an issue raised by Sam this afternoon. The question was “Is there a format to represent spherical images ?” At least it is not standard, but that’s is not the subject. I found a paper which deals with this. The authors take advantage of the tessellation of the sphere and the flatten representation of a geode to store the pixels in a simple 2D array. With good properties, this latter forms a clever datastructure in which you can retrieve the neighbors from a pixel for example.
It is only an idea but I think it is a good way to explore. Even all the assets of this representation, it is not perfect. It limits the number of LEDs to 252 because of the regularities and the subdivisions of a geode. Moreover, it leads us to place the LEDs precisely. But I like the idea of representing a spherical image by a 2D array. We may be able to adapt it. I hope so.
This concept is the first step of a long process. After the implementation, we have to automatize the transformation of images. Simply because they can not be found under this format currently.
Today was mostly about WiFi! I got to know our WiFi module (AckMe AMW006) with its development board. I can now configure it to be a TCP server and to be used in stream mode (everything from the UART gets sent through WiFi and vice versa). I also coded a TCP and UDP client on the computer in Java. Why in Java? Because it will be easy to transfer into an Android application! I haven’t been able to test all this yet as our first complete PCB was just ready this afternoon. We have to test all the components one after the other and check if there are any issues. That will be tomorrow!
Until next time!
It took only 55 minutes to print out first element. The result is great. The surface and the parts to fit the different elements together are clean. We are currently printing another one to check that the fitting is correct.
Results announcement in 50 minutes…
As expected, the design is over. Nothing really new compared to yesterday. We started to print an element of sphere. It will take about an hour. Thus, there may be a few modification to fit the 3D printer constraints. Like yesterday, here are the 3D models.
Element of sphere
PCB and its support
I agree, it looks a bit like a mine.
This is it, Expelliarose’s magic wand is about to be real. We have concieved with Aïmen a simplist prototype to carry the PCB, Leds, IR emitter and recievers…
It would be in 3 pieces :
– A tube around which we will put the leds (on the upper part of the wand).
– Another tube surrounding the first one (#inception) for protection and beauty.
– A handle with indications where to put your fingers.
Seems a bit abstract now, but I will publish a picture as soon as it will be printed with 3D printer from Telecom Robotics (thanks!).
While Aïmen is finishing the design, I’m now taking care of IR transmission and building debug tools to see how far the signal can reach.
After the intense challenge we had on Friday, i had many things in my head to clarify and to assimilate, but this was clearly a good experience, a good way to learn how to think an issue, and how to solve it.
Today we worked on the basics of our project. We first wrote our board.h, fortunately all information was quite easy to find in our documents.
I then installed the library needed to run the pololu’s program, and tried some test to run Flo’s program to command the pololu.
Now I’m working on the IR diodes, I’m implementing some basic features to command them, can’t wait to test it on our PCB ! I also worked on the IR protocol, there were things that needed to be added to our wiki in order to implement the code.
After the challenge and the practical work on ChibiOS, we are back on the design of the sphere. As we have already said and thanks to Loki, we are going to use two spheres. The internal one will carry the LED strips, the PCB and the battery. The external will provide a smooth shape.
This latter is not going to be printed. We bought a PVC-injected one. We found transparent balls with a diameter of 18 centimeters in a creative hobbies shop. This way, we maximize the usage of the 3D printer. The internal sphere will have a 16 centimeter diameter, the maximal one the printer is able to build. This gives us a 1cm-margin to place the LED strips.
As there are components on both surfaces of the PCB, we can’t “paste” it on a surface. We designed a sandwich-like support. We also put empty spaces to make the USB connector and the switches available. In the end, the LEDs will be carried by 3D grids which will make them easier to install. We won’t be forced to paste them. This makes the determination of the strips position easier.
Here are a few links to the model (3D PDF viewer required). The design is not completed yet. That’s why you can’t see any grid. We ‘ll see what is technically possible with the printer. There’s no hole for the micro usb connector too. The last point is to build a “system” to carry the battery and determine its precise position.
PCB and support
Element of sphere
You’ll see the final version tomorrow.
Today was 100% about HeRos! We started by defining our board.h file for our PCB, which isn’t complicated, but takes some time. Then I worked on setting up the basic functionalities of our HeRos: blinking leds, serial over USB, and Pololu control. The leds and serial over USB were just about transferring what we had done in the practical work on STM32. I had already coded some controls for the Pololu and I just had to implement them for our HeRos, in order to control them via the keyboard of the computer.
It will be fun to test all that and what Charles and Rico have worked on tomorrow on our PCB.
Until next time!
I’m proud to present our case for StabilorRose. We haven’t discussed about it wet. It won’t likely be transparent. Its diameter is 18 cm.
Hi everyone !
I realize it’s been far too much time since I last posted. Sorry about that.
But I’ll try to make up for it by posting all the dumbest things I did during the challenge and the “TP” itself, hoping it might help someone.
- First, don’t forget to plug in your ethernet cable. Might really get things going.
- Put your main to sleep when you’re done with it, an infinite loop will block low-priority threads.
- In a HTTP request, the “/” actually means root, it isn’t a common separator.
- When GDB says “backtrace corrupted”, it’s likely a stack overflow, so remove that array from your automatic memory.
- In fact don’t put anything or the stack (or on the heap for that matter).
- By the way, if a thread makes a stack overflow, the others can (and will!) be affected. Given that, the most insignificant operation may lead to erratic behavior.
- KISS, or Keep It Simple, Stupid ! It’s better to have multiple modules that do one thing and do it right, than a gigantic module of gibberish.
- Parsing strings in C ain’t easy. Better focus and take time to have a robust code than rewrite it every bloody minute.
This list could easily be broaden, but I think that’ll do for now. I just hope I’ll learn how to C by the end of ROSE ! :/