Omnibot 5402: Adding LED matrix eyes and computer vision

The next important thing was to give the robot more personality and I found one or two chaps in the internet that worked on LED matrix eyes. But I also wanted to get computer vision to Omnibot so that it could see things or people and potentially speak to them, grab them or move towards them.

So let’s start with the decomposition of the original eyes which basically had a little lamp build in:

Omnibot 5402 head plate with reflectors, lamps, distortion plate and color filter

I decided to just keep the head plate and the black adapter and replace all other parts. Next I soldered the two 8×8 LED matrices, they are chainable and adapted the code from the above link.

Minimal expressive eyes (MEE) for the Omnibot 5402 powered by a Raspberry Pi 3.

This was very satisfying as there was a quick success. However, as you can see, the MAX7219 controller chip is standing out of the black adapter, making it impossible to build the eyes into the adapter. So the next iteration was to desolder them again and rotate them 90 degrees…

Rotated LED matrices and a 3d printed adapter from square to round.

I also decided to design a 3d printed adapter to keep the squared matrix in the round hole.

Original black Omnibot 5402 eye plate with black 3d printed adapters and the 8×8 LED matrices in place.

I also had to connect the two LED matrices differently as the pins would look downwards now. I decided to use a perf-board that I had in my cupboard from since my teenage years, so it would match the Omnibot in age 😀

Two LED matrices on perf-board and cable to the Raspberry Pi.

A little software experiment yielded this:

When I was working on the Omnibot’s eyes, the high resolution Raspberry Pi cameras were launched and I had to buy them immediately. I don’t really like the flimsy design on the original Pi cams.

The two objectives for the two 10 MP Raspberry Pi cams.

I decided to use the fish eye lens as it is small enough and would broaden the Field of View of the Omnibot.

I realised that the original black Omnibot adapter certainly has no hole for the objective, but I definetly wanted to have the camera very close to the LED eyes. So I decided to do away with the adapter altogether and re-designed the whole adapter to keep the objective as well. This was not too easy as the diameter is really huge and I wanted to keep the matrices at a maximum in size.

10 MP Raspberry Pi cam with fish eye lens in the next iteration of the Omnibot 5402 adapter.

Finally, I also had to match the PCB with the matrix PCBs which also was not too easy. But luckily, it worked out:

LED matrices, fish eye lens as well as all three PCBs in the 3d designed adapter.
PCB view of the Omnibot 5402 eye adapter.
Optimisation in height vs overlap was hard work.

Finally, I had to buy a longer cable to connect the camera to the Raspberry Pi that was mounted on the Omnibot 5402’s tape recorder base plate in the meantime.

Hardware stack of the Omnibot 5402: Raspberry Pi 3, relais board to switch components, servo controller for the arms and motor control board for the wheels.
Eyes adapter connected to the hardware stack including the power management: current sensor, bucket converter for the wheel motors and 5V bucket converter for the Raspberry Pi.

So, finally, all pieces come together in under the dome of the head part. The dome is dimming the picture a bit, so experiments will show whether computer vision works well enough. The manual focus of the Pi cam is helping here.

Eyes incl LED matrices and Pi Cam built into the head of the Omnibot 5402.

See the currently final setup here:

All parts of the current hardware setup in place. Now it’s a matter of software.

Leave a Reply

Your email address will not be published. Required fields are marked *

7 + = eleven