Last time I have shown stereo vision from two (very small) synthetic images computed on a FPGA. It is working quite well, however from the very beginning I knew the FPGA I am using does not have enough RAM to store 3 images (2 input and 1 output, but ideally it would need 1 intermediate image as well). Just for that reason we have selected dev board that is equipped with external SDRAM.
And ever since the last post about my master thesis I was trying to get this SDRAM to work. Because hardware interface for SDRAM is quite complicated I have decided to use some library implementation and thankfully I have found suitable one on http://opencores.org/. It took me a while to understand it; to create simulation projects for tests; finally to prepare test project for hardware…
…and another month to get the (otherwise correct and valid) project to communicate with the SDRAM. I guess it was to be expected since I had only occasional experience with hardware on such a low level, but still. Needless to say, I got very frustrated with this over the last few weeks and I am glad I am somewhat closer to the finish.
As for the video, the clip above illustrates sequence of 16 writes to the RAM and 18 reads from the memory. First character on the display indicates the direction of the operation. “I” stands for input (that is — writing to the memory) “O” stands for output (reading from the memory). The numbers are displayed in hexadecimal base. What actually happens:
first I press the “next operation” button 16 times to write to the memory,
then I press the “change direction” button to switch to reading mode,
finally I press 18 times “next operation” button to read memory contents.
Note that the last two values are from reading contents of the memory that was not initialized.
Last but not least, the science team would like to welcome VaultBoy into its ranks. ;)
A tuned mass damper, also known as a harmonic absorber, is a device mounted in structures to reduce the amplitude of mechanical vibrations. Their application can prevent discomfort, damage, or outright structural failure. They are frequently used in power transmission, automobiles, and buildings.(source:Wikipedia)
This 728 tons steel pendulum is installed in one of the world’s tallest buildings, the taipei 101 in Taiwan. It helps stabilize the building in case of strong winds and earthquakes, through simple mechanics, when the building moves in a direction it swings in the opposite direction reducing movement by 40%. You can understand how it works by looking at the small GIF image.
It cost $4 million to install the huge damper in the skyscraper but architects and engineers said it had to be done. It spans across 4 of the building’s stories and it was assembled on site because it couldn’t be lifted by a crane, due to its enormous weight.
Here’s a video of the damper in action, on May 12th,2008, when a horrific earthquake hit one of China’s provinces and the tremors reached as gar as Taipei. As the building started to shake, people ran towards the center to see the damper in action, it did it’s job.
I’ve been working on my master thesis and I’m finally seeing some progress in my project. I’m implementing a stereovision algorithm in a FPGA and it’s killing me.
Pictures shows results for synthetic images hard coded into the program. In the first picture there is a waveform taken from the simulator. Highlighted values match values displayed by hardware showed in the next three pictures.
The past two days I’ve spent on fixing interface part of this project (that is: handling buttons and display output and pausing the algorithm so I can read the results). The algorithm itself appears to be working correctly ever since it was valid for synthesis. :)
There is still a lot to do since presented algorithm operates on synthetic images (9 pixels wide and 9 pixels high) rather than from digital cameras. Also I need to use external RAM memory and said cameras. Some machine readable output would be nice too.
Finally, both Red Angry Bird/Luke Skywalker and Hedgehog are important parts of the science team ;)
The Controllino is a Kickstart project for an Arduino-based and compatible industrial programmable logic controller (PLC). The DIN rail mounted Controllino comes in three different varieties and can be programmed using the usual software, including Arduino sketches. It has connectors for direct access to MCU ports and you may use your old Arduino shields to expand its functionality.
I hope the founders can make this into a reality, expand its support and add an open-source hardware ecosystem and the marketing people at SIEMENS might just start to cry blood.