Time Lapse photography/filming is a technique to show very slow processes. It is the opposite of high speed video. Everything is shown a lot faster then it actually happens. To make a time-lapse video you take a picture every n seconds and merge them to a video. If you take a picture every 5 seconds and put them in a 25fps video the speed increase is 5×25 = 125x. More information on Timelapse can be found on Wikipedia.
Timelapse video of clouds. Made using MFTimelapse with 5 second interval and a Samsung ES15.
There are camera’s that have a time-lapse function build in. This is of course the easiest method. There is only one drawback. Making a time-lapse video is not good for your camera. For a short video you’re making thousands of photos, for each photo the shutter has to open and close. Therefore your camera will wear out very vast.
The main language for .NET Micro Framework is managed C# code (altrough with some thinkering people got other .NET languages like VB.NET to work). Which is a powerfull yet easy to use language. In combination with Visual Studio this is what makes .NET Micro Framework unique.
The only drawback of this solution is that the managed code is interpreted while running. This takes some time. Therefore it isn’t as fast as running native code. The people at GHI found a solution for this called RLP.
You see them more and more, on phones, computers, MP4 players, etc. Widgets. And I think it’s logical becouse the user can now choose what he or she has on her display.
I tought it would be usefull to have some sort of Widget system on .NET Micro Framework. An example: a termostat has multiple sensors for humidity, min/max/current temperature, etc. Some users find the humidity very important but others are more interested in the minimum temperature. With Widgets they can choose what to see directly.
I know there are more SHA classes arround for C# but I needed a class that I could incorporate in a program without licence/copyright problems so I’ve written my own class from scratch.
The class supports SHA-1, SHA-224 and SSH-256. The HMAC versions with key are also supported. The comments in the code are the same as the pseudocode found on the Wikipedia page about SHA helping to understand what the code is doing.
Demo code:
// Outputs: SHA-1: 6CD1F13BA07759CCB56D904C02C5509FCDEC30E2 Debug.Print(”SHA-1: ” + HexDisplay.bytesToHex(SHA.computeSHA1(
Encoding.UTF8.GetBytes(”The quick brown fox jumped up the fence and fell down”)
)));
// Outputs SHA-224: 475F234AC83E68834716DFF035A018AEFF5D575560B694EDD5FD40DE Debug.Print(”SHA-224: ” + HexDisplay.bytesToHex(SHA.computeSHA224(
Encoding.UTF8.GetBytes(”The quick brown fox jumped up the fence and fell down”)
)));
// Outputs SHA-256: 8A1C5C14E24F5EA8F04061CA96A389DF77F838D0BEAD3253CFFEF8C880F912AA Debug.Print(”SHA-256: ” + HexDisplay.bytesToHex(SHA.computeSHA256(
Encoding.UTF8.GetBytes(”The quick brown fox jumped up the fence and fell down”)
)));
// Outputs HMAC SHA-1: A31FBA759E7E25430CCC746800DFBA9926D3AAB9 Debug.Print(”HMAC SHA-1: ” + HexDisplay.bytesToHex(SHA.computeHMAC_SHA1(
Encoding.UTF8.GetBytes(”testkey”),
Encoding.UTF8.GetBytes(”The quick brown fox jumped up the fence and fell down”)
)));
// Outputs HMAC SHA-224: A36AA9599671BFA825BF8B1444F52E7266E4B0E2C30FD5D920EEA980 Debug.Print(”HMAC SHA-224: ” + HexDisplay.bytesToHex(SHA.computeHMAC_SHA224(
Encoding.UTF8.GetBytes(”testkey”),
Encoding.UTF8.GetBytes(”The quick brown fox jumped up the fence and fell down”)
)));
// Outputs HMAC SHA-256: 5AF95A03C056CED859AE31BB320BD620997544102BBFA487FB36CB4731B5A385 Debug.Print(”HMAC SHA-256: ” + HexDisplay.bytesToHex(SHA.computeHMAC_SHA256(
Encoding.UTF8.GetBytes(”testkey”),
Encoding.UTF8.GetBytes(”The quick brown fox jumped up the fence and fell down”)
)));
Download: You can download the class with test program: MF_SHA.zip
I introduced it before, MFBrix, a simple ball game written to test out the new board from GHI, The ChipworkX. It uses the onboard acceleration sensor and onboard MP3/Midi decoder.
The object of the game is to remove all purple bricks by bumping into them. But you have limited time to do this. And if you would bump into a red block you loose 5 seconds.. The game has 5 levels/rounds. Each level getting a little harder.
Ofcourse there is some room for improvement, so if you find this a fun project you could add new levels, add a highscore system, download levels from the internet, you name it!
Youtube movie:
You can watch a movie of the game below:
Download:
You can download the Visual Studio 2008 solution: MFBallV2.zip
Somebody asked if I could make a Twitter Client for .NET Micro Framework. Afcourse I said, so I started building and within a few hours it’s ready. A simple but yet usefull Twitter Client.
This Twitter client allows you to view your “friends” timeline. This is the timeline that you see when you go to your startpage. It’s shows your Twit’s and the Twit’s of the friends you follow.
The program consists of two parts. The Twitter library (It’s less fancy than it’s sound. It has only one function ) and the WPF display program.
It has some known impovements and issues, as this program is something in between it’s your task to fix it if you want
Twitter Username and password are stored in code, impovement can me made with an onscreen keyboard
The XML response is parsed “in order” so when fields are outputted in an different order
the parser has to be changed
The XML response is parsed “in order” so when fields are outputted in an different order the parser has to be changed
The somewhat strange datetime format of Twitter is parsed without checking the UTC offset. I don’t think this is a problem. It seems that Twitter always returns Date/Time with UTC +0000
It doesn’t check if Twit’s are removed. It just removes the last one when the list gets bigger then 25
Profile images cache could be better
Many more
Video:
You can whatch a Youtube video below. The interface is fluwent but Windows Media Encoder screwed it up a little. Maybe I will make a new version with my camera and a real device:
Download:
And last but not least you can download the code for Visual Studio 2008: MFTwitterClient.zip
I want to write a simple but fun app that could showcase/test the functions of the new ChipworkX board. I tought of a simple ball game that could be controlled by moving the board. This is done trough the onboard BMA020 accelerator sensor.
It took me some time to figure out how to do the collision detection but I have an initial version ready. The idea of the game? You have to blast away the purple bricks in the game without touching the red bricks. I’ve done some testing and it’s harder then you think
The game isn’t ready yet. The video/source is as demonstration only! The red walls don’t harm you yet and there is only one level. When it’s finished I will upload it to microframeworkprojects.com
You can whatch a YouTube video below:
And download the Visual Studio 2008 solution: MFBall.zip
In the time that I have been away the .NET Micro Framework community made great progress. The first device running the new 4.0 framework beta comes from GHI Electronics. It’s called ChipworkX and has some impressive features:
200 Mhz 32-bit ARM 9 Processor
64MB SDRAM
256MB NAND FLASH (seen as an internal drive)
8MB NOR FLASH (For user deployment and EWR)
480×272 4.3″ TFT Display with touch screen.
2 SPI (8/16bit), I2C, 3 UART, 1 PWM
One-wire interface
SD/MMC card connector
USB Device port
Dual USB Host ports
XBee module connector for wireless communications
3D Accelerometer BMA020
MP3 & MIDI decoder chip VS1053 with Stereo Speakers and audio jack
Real Time Clock Battery
Power over USB
Net Micro Framework 3.0 hosted, V4.0 ready
Windows SideShow
SQLite Database Support
Native Procedure (RLP)
PPP Stack
With the RLP feature you can write native C++ code that can be called from .NET MF without using the MF porting kit (GHI has used this to make a MPEG decoder!) also a database system is provided in the form of a SQLite Database system.
Maybe everybody knows already but the Dare to Dream Different Challange finalists have been announced! Unfortunatly I’m not one of them but still I find it very cool that people put so much and usefull effort into their .NET Micro Framework project.
Here is the list of the finalists (from the contest website)
Hobbyiests
Initial
Last Name
City
Country
A
Inochkin
Moscow
Russia
T
Fogg
Wallington
Australia
T
Scherrer
Novo Hamburgo
Brazil
R
Stropek
Traun
Austria
E
Percival
Hatfield
United Kingdom
Professionals:
Initial
Last Name
City
Country
G
Aasgaard
Bergen
Norway
D
Schaffer
Rockville, MD
United States of America
S
Vassiliev
Moscow
Russia
B
Fisher
Shiner, TX
United States of America
J
Ng
Seattle, WA
United States of America
I whish everybody the best of luck and congatulations!!
You may have noticed that I’ve been away for a while. But I’m back. Due to several problems with my landlord refusing to do necessary work on my appartment I’ve decided to move to my parents until I find a new appartment. Al the complications involved with this caused that I had very little time.
But I’ve been on holiday and have a lot of fresh energy! There have been a lot of developments in the mean time, some new MF products, Dare to Dream different finalists announced and a lot more. So I have to dive in these things, expect some more blog items soon!
Recent Comments