Monday 27 August 2012

Adventures into OpenCV

Over the years I have worked with several open source projects, but now seems to be the time when Open Source has matured and can really provide a great working environment and great products.  It seems to me that the advances in the Open Source communities are beginning to out pace the efforts of individual companies.  Today at home I use Ubuntu exclusively although I admit that like some forgotten curiosity I do have a virtual machine with Windows.  Dont get me wrong, I seem to be living a double life because at work exclusively I use Windows as a development platform but of course the company uses virtual machines running Linux.

Today I want to write about OpenCV the Open Source Computer Vision Library originally started by Intel, but now developed and used by many.  It seems to me to be one of the most exciting projects available to anyone who uses Windows, IOS, Ubuntu or Android.  In a very short space of time I was able with OpenCV and other open source projects to build a simple application to process pictures taken from different angles and reconstruct a 3D image.  Not only did the project work on Ubuntu but also worked on Windows.  That is the sort of image processing that ten years ago I dreamed about!

Today I am working on an Android / Windows / Linux application that extends my camera operation to allow long exposure photos to be taken.  I am experimenting with motion detection so that I can stack multiple images with automatic alignment.  The end result should be an application that can take reasonable photographs of the stars.  It seems that for Open Source the sky is the limit, thank you Linus Torvalds and the rest!

Thursday 28 June 2012

Arduino Telescope Setting Circles

I have a telescope with a Dobsonian mount and need to create a simple digital setting circle to make it easy to work out where the telescope was pointing.  The Arduino micro controller was the perfect choice to get something running quickly:
Sensors
ADXL345 3-Axis Digital Accelerometer is used to measure the angle.
HMC5843  3-Axis Digital Compass IC provides the azimuthal angle of the object.

These use I2C interface to connect to the Arduino, my next version is likely to have a display module to display the results.

Software
I develop my projects for multiple platforms so the Qt user interface for this works on PC and Linux and soon I will have an interface running on Android.  For now the application is used to enter the co-ordinates of known starts and display the resulting measurements and is connected to the Arduino board with a USB cable.

The Arduino software is where all the calculations are performed.  Using some simple maths to work from calibration points, at known positions, to derive the horizontal co-ordinates for an unknown position.  The Arduino code keeps track of Siderial Time so the known co-ordinates can be entered from the star chart and when the calibration is performed position is calculated.

Contact
If you are interested then please contact me and I can share more.