The whole PHM (Prognosis and Health Management) system for the avionic EMA (Electro-Magnetic Actuator) works steadily. I've been working day and night on this project for the past three months! No time for play indeed. But now the simulink data matches perfectly with the actuator data and the particle filter algorithm works! Next mission is to finish my master's degree thesis and wait, just wait...
Take a glance of the sensor signal acquisition board (Click it to see the full image). You may see the EMA on the topleft, and the acclerometer sensor (it's on the left of the picture, in the middle). Acclerometer sensor is temporarily not functional so I have to detach it from the actuator.
Below is the fault diagnosis and prognosis result (The turn-to-turn winding fault is detected and the actuator's remaining useful life--RUL is calculated and shown).
There is still a slight problem: I calculated the PDFs (Probability Density Function) according to the particles in PF algorithm, and tried to show them in a TeeChart Winform control. However, the result seemed not good at all. Former PDFs are partially shadowed by newer PDFs. There must be a better way of showing them with something else.
That is REALLY AMAZING!!! I nearly cannot believe it when I heard the news. The game was developed by three people including me, the other two are programmer Zhao and game artist Liu from Infiworks Inc.
I had been working in the company for an internship, and later we decided to made the "Dudu Rush". Mr.Zhao provided us with the game engine and I used Lua to adjust the game logic to make it enjoyable, while Mr.Liu did most of the game art. I thought it would be somehow successful because the idea is not too bad and Mr.Liu's drawings are REALLY perfect, but I have never expected the game to be so popular. Anyway, this is the first iPhone app I designed myself. Much thanks to Mr.Zhao and Mr.Liu, Cheers!
Think of what I learned from Infiworks: Some advanced UI design skill, Some code optimization techniques for Cocoa platform, and the most important thing: I got familiar with Lua. The language is really cool and I will use it in my lab projects:)
Types of key can only be number or string, however values can be a table. Self reference (Loops) is supported.
function serialize(t)
local parents={}
local newbies={}
local function genstring(tbl,parent)
parents[tbl]=parent
local t_tmp={}
for e_key,e_value in pairs(tbl) do
local key= type(e_key)=="number" and "["..e_key.."]" or e_key
if type(e_value)=="table" then
local cckey= parent..(type(e_key)=="number" and key or "."..key)
if parents[e_value] then
table.insert(newbies,cckey.."="..parents[e_value])
else
table.insert(t_tmp, key.."="..ser_table(e_value,cckey))
end
else
table.insert(t_tmp, key.."="..e_value)
end
end
return "{"..table.concat(t_tmp,",").."}"
end
return "do local ret="..genstring(t,"ret")..table.concat(newbies," ").." return ret end"
end
Badapple is a famous doujin shadow play animation inspired by Touhou Project. Since the first day of its release, various techniques (even a real apple) has been involved to reproduce it. Some marvellous works can be found here.
Look, the original animation is monocolored, and so is the WQX's LCD screen! So epcsoft and I decided to make our own version: A Badapple on WQX:)
Quite eye-catching, isn't it? We just converted the whole animation into frames of black and white dots, and rendered them on LCD screen while playing the audio file. It really took us some time on the video-audio synchronization. All codes were running on my version of WQX OS written in 6502 assembly, which partially supported multi-threading (2 threads only). One thread rendered the video while another played the sound.