This is a Tracking system using an FPGA altera IV chip set.

FPGA := Field Programmable Gate Array

To explain a long chain of events that led to this project.


Pre_Cursor ....Early Summer :-

I offered to write a Parallax Propeller serial communication system (codenamed GroGoProP) for respected Elf  elder to add to his collection of growing services on his open source Java service based framework.

The ground implementation is accomplished with control for  I/Os , Analogues and PWM , great fun was had experimenting with GroGs database of accompanying services.


Late Summer :-

I received a De0 Nano development board from Newark and was having great difficulty getting my head around the Verilog code_ing.

Then luck and great fortune... Parallax opened up a "Jar of Grubs" by releasing a Propeller Emulator for FPGA systems.

It was not long before realised that I could load my FPGA with the MyRobotLab propeller communication service and give the De0 Nano an easy way to access the outside world, using Java and Python code_ing. (It still confuses me as too which language I aught to be programming this whole thing in).

So with 0% extra work the MyRobotLab framework is also accessible too FPGA systems (via the Propeller Emulator). (three birds with one stone).


The Robotic Tracking system :-

Consists of a Webcam mounted on my Plexi "PlankOTilt" camera gimbal. 

 

PlankOTilt :-

I designed these a while back and they were laser_ed in plexi_glass by  Chris the Carpenter, as ctc is ctc he also sent multiple variations so the planko system would fit any type of kitchen sink webcam on the market.

Its designed so that the webcam is at a central pivot giving best tracking possibilities.

The De0 Nano running the Parallax Propeller Emulator.

As you can see the MRL communication system takes 4 cogs to run, yes the FPGA by default supports parallel processing.

 

The interlink cable was spliced from an IDE hard drive cable (pin4pin perfect)

 

The MRL software uses an OpenCV service to extract and process the webcam video stream.

The tracking service can detect points in the video stream,it also is able to detect faces/bodies/colours/floors etcetc. 

A small bite of Python code is used to extract the tracking details and processes them to drive the servo gimbals.

MRL has PID (Proportional Integral Derivative) services that allow the servo movements to tuned for best speed and control. 

The end result is the camera centres on the object not letting it out of its sight. 

 End comment := Having a camera following you is scary ....... disassemble.....


 

GroG

9 years 6 months ago

Great Post and history Gareth..

The whole FPGA thing is still bending my brain - but it's impressive to see it emulate an existing Prop ! Kudos !

So its a hardware changling .. is the native language so cryptic no elf would attempt to make runes from it ?