Shop OBEX P1 Docs P2 Docs Learn Events
OpenCV De0 Nano (P1 Emulated) Webcam Object Tracker — Parallax Forums

OpenCV De0 Nano (P1 Emulated) Webcam Object Tracker

GarethGareth Posts: 278
edited 2014-09-03 18:31 in Propeller 1
This is a Tracking system using a De0 Nano (P1 Enabled).
[video=youtube_share;2mKJPRd_rLg]

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) to add to a collection of growing services over at MyRobotLab open source Java service based framework.

The ground implementation was 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 this amazing 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).
FPGA_MRL.jpg
The Robotic Tracking system :-
Consists of a Webcam mounted on my Plexi "PlankOTilt" camera gimbal.
Picture_66_-_Copy.png
PlankOTilt :-
IMG_20120304_190902.jpgIMG_20120304_191045.jpg
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.
Picture_68.png
The interlink cable was spliced from an IDE hard drive cable (pin4pin perfect)
Picture_70.png
The MRL software uses an OpenCV service to extract and process the webcam video stream.
Picture_69.png
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.....
1024 x 709 - 117K

Comments

Sign In or Register to comment.