This is a summary of the development on phase 2.

Central module bought

The central module box was purchased. It’s called a “caixa hermética”, a box designed for telecommunication applications so as to keep electronic equipment outdoors in a safe way. Mercadolivre

Untitled

Installation of components on turnstile structure

The components were installed on the turnstile structure. This was not exactly an easy task, because there were some small flaws in our previous planning, such as some estimated measurements being slightly wrong or the structure reinforcements making it so installing some components was a bit trickier.

Below are images with a few components installed, some in a first iteration of assemblement:

Untitled

Untitled

Untitled

Untitled

Peripheral controllers development

Webcam

The webcam controller was developed using OpenCV for both image capturing and QR code detection and reading. This approach was tested on multiple QR code sizes and in some different scenarios and even webcams, and seems to work reliably.

Numeric Keypad

The numeric keypad required a slightly more complex approach than what could be expected initially - though we already had that planned before. The reason for that is because the OS uses keyboards directly, it’s not as easy to exclusively and directly control it in a specific process.

So, in order to implement the controller, we had to use the Linux evdev interface, which allows interpreting input events individually and also grabbing a device for exclusive use. This means the implementation was pretty much manual event polling and parsing, but this comes with the undeniable pro of making sure we’d only be using the keyboard in our process.

Display

The display controller was an easier one. Still, as the 16x2 display uses an I2C adapter, there are not that many implementations available, and we needed to add one or two things in order to use a base open-source library in a cleaner way.

Alarm

Controlling the alarm is mostly controlling the relay, so in fact this is a relay controller. The main detail here is ours is an active false relay module, so this had to be taken into account for this.

Fingerprint scanner