Sky Watcher ( C++ )
I have an interest in photography and wanted to write a motion detector for a webcam. I wrote SkyWatcher in C++ and advertised it as applicable to assist astronomers detect any motion in the sky using any webcam. Moving objects are detected and illustrated with a bounding box. Video snapshots are stored in a user specified directory.
Scene 1 - introduces the user to Sky Watcher and how to use it
Scene 2 - Requires the user to select the correct webcam and directory for storing captured images.
Scene 2 - Demonstration showing BLOB detection as the cloud moves. The software creates a bounding box around the moving target.
​
The sensitivity of Sky Watcher to movement can be adjusted as we as to objects of various sizes.
HelpingHands (Corona SDK, Lua )
In collaboration with Dr Prash Jesudason, Orthapaedic consultant at Ysbyty Gwynedd, I wrote this mobile application to assist the patient perform hand exercises after hand surgery
I developed HelpingHands using the Lua programming language to assist with patient hand rehabilitation for Ysbyty Gwynedd, Bangor. The application has games for hand exercises and measures finger responses. In this way patient recovery can be assessed and data visualised on the app and sent to the doctor.
Registration view
Hand exercises menu
Sample game level
Main Menu
Statistics view
Doodle App (iOS, Swift)
​
Based on an online tutorial by Aaron Caines, Geeky Lemon Development.
I wanted to build an interactive app that makes use of some basic GUI building blocks which pass messages to the update the UIImageView.
​
The app is composed of two view controllers that are accessed with buttons; a settings and back button. Touch coordinates on the UIImageView are stored into a before and after coordinate. This in turn allows a line to be drawn on the view with the selected colour. Since many small lines are drawn on the view it makes it look like a doodle.
Business App Prototype (iOS, Swift)
​
The prototype lists the views in the easily accessible tab bar. A table view lists social service platforms on twitter, Facebook and others.
​
Queries can be sent using the UITextView contained in a stack view. Clients can also find how to travel to the council office using MapKit if required and other contact details are included in the app.
​
Some improvements: (i) make sure the view titles correspond to the tab bar icons; (ii) Make the table view look more professional by putting a buffer between the table view cells.
​
​
Services
Social links
Contact us
Welsh Castles (iOS, Objective-C)
This app is meant to assist tourists find Welsh castles on their site-seeing journeys around Wales. It annotates a list of castles using the iOS MapKit framework. Each castle name and coordinate is hard coded into the applications property list file. Once an annotation (pin) is selected, the application opens a browser to Apple maps with the users current location and selected destination.
Each Castle is annotated using its corresponding latitude and longitude.
//iterate through each castle
for (int i = 0; i<[locations count]; i++) {
MKCoordinateSpan span = MKCoordinateSpanMake(0, 0);
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(0, 0);
pinRegion = MKCoordinateRegionMake(center, span);
//MKCoordinateRegion pinRegion = {{0.0, 0.0}, {0.0, 0.0}};
MapPin *pin = [[MapPin alloc] init];
pinRegion.center.longitude = [locations[i][0] doubleValue];
pinRegion.center.latitude = [locations[i][1] doubleValue];
pin.title = names[i];
pin.coordinate = pinRegion.center;
[self.mapView addAnnotation:pin];
}
Code Snippet
Segmented control for choosing different map views
Arduino Tracking Device ( C )
There are many examples of person tracking using computer vision but not many using accelerometer-gyroscope combinations. This is understandable since the computer vision method uses remote tracking so that the user person being tracked does not need to wear te sensor.
​
I came across an interesting article by 'Geek Mom Projects' discussing the use of the MPU-6050 sensor for the Arduino for tracking objects and decided to see if I could do something similar using the same sensor module.
The MPU 6050 module for the Arduino contains a microelectromechanical systems gyroscope and accelerometer. The module has an integrated digital motion processor (DMP) for combining the accelerometer and gyroscope data to reduce errors inherent to both sensors. The DMP outputs the resulting sensor data as quaternions or Euler angles. It performs a 16 bit analog to digital conversion for the x, y, and z axes channels at the same time, making it fast and able to resolve very small 3D movements. This is good for me since the module itself does most of the hard work in combining both sensor data.
​
The resulting sensitivity of the Arduino-sensor module combination is sensitive enough to detect small motions of the body; even vibrations due to heart beats. This makes it ideal for small motion tracking but also susceptible to noise by unwanted movements. A simple bespoke threshold filter is programmed into Arduino to reduce this noise.
The Arduino and sensor are packaged together with a DSD Tech HC-05 bluetooth module and a 9V battery within a laser-cut case (See my laser cutter on the services link) which fits into a Cycling bag to be carried by the person.
Image Compressor ( VB.NET)
I am following an online tutorial for an image compressor so that i can better understand the .NET framework. The application loads multiple files of various formats and can compress them according to the user specification. I have not finished following the tutorial yet and more details will be added once I have made my own changes and additions to the software.