Hi, My name is Joshua. I'm a programmer, researcher and cubesolver. These are some of my projects.

lock

We successfully created a system which allowed you to wirelessly lock and unlock a deadbolt using an Android based application and an Arduino based controller.

Abstract

In this project we investigate how to wirelessly lock and unlock a door with off the shelf parts. The goal of this project is to create a system that is both affordable and secure for future homes. We used an Arduino, Arduino Wi-Fi Shield with Android as our platform. We designed a protocol that utilizes the transport layer protocol UDP for communication between an Android smartphone and the platform. We are able to successfully lock and unlock a door wirelessly. There are issues remaining to be resolved. The form factor needs to be reduced for better integration with the user’s door. Integrating with the Touch-ID API for added security in case of a lost device must be accomplished as well. This will be a step towards avoiding the storage of the key on the mobile device, increasing safety.

The goal of the project is to research how to implement a modular, customizable system that will be able to secure a future home. We choose a two-part system, integrating with the user’s phone as the key and an Arduino as the lock mechanism. A method of symmetric encryption was chosen for securing communication between the smartphone and the receiver.

We investigate how to wirelessly lock and unlock a door with off the shelf parts. We first survey the existing systems on the market. We will then discuss the difficulties we encountered in the research and methodology, and how to overcome each obstacle. We then present our experiments and findings in the Implementation section. Finally, we present our conclusion.

This has been an insightful project. We have learned a lot about practical application of computing concepts in networking, automation and security. We found that using Wi-Fi communication provides an adequate layer for our networking to be built upon and that the speed of transmission was swift. By using the Arduino modular prototyping platform for the receiver we were able to create a customizable networking system.

get the code

gacman

An Object Oriented Pacman inspired game. An exercise in inheritance

All entities that move inherit from the Actor class. This class has a Point with an x and y for current position, methods that return information on what to display the Actor as and a virtual move method. The virtual move() will allow the player and monsters their own implementation for it, yet take advantage of the functionality that is in the parent class.


You can email me at my name at this domain.