Skip to content

Repository files navigation

CS476: Embedded System Design

Instructors:
Prof. Dr. Theo Kluter

Doctoral Assistant Canberk Sönmez

Authors:
Thomas Lenges

Menzo Bouaïssi


Project Goal

The aim of this project is to implement movement detection using the Sobel edge detection algorithm. The standard software implementation of Sobel edge detection is not suitable for the board’s CPU frequency (74.24 MHz), as it does not provide acceptable performance. Therefore, both hardware and software optimizations are necessary to achieve real-time and efficient movement detection on the GECKO5EDUCATION board.

Repository Contents

  • report.pdf
    Complete project report.

  • presentation.pptx
    Slides for the project defence.

  • modules/
    Verilog modules developed and used in the project.

  • programs/
    C programs, Makefiles, and related source files to compile and run main.c, etc.

  • Step folders (1/ through 7/)
    Each numbered subfolder corresponds to a project development step: 1 . Fully software movement detection 2 . SobelCI 3 . DMA basic 4 . DMA rotating 5 . C code optimization
    6 . SobelCI inputs formatting with additional CI: Final image pipeline (recommended for most testing — balanced performance vs. quality)
    7 . Same as step 6 plus filters to chose from to expel isolated “fixels” in the final images (higher quality but significantly more cycles)

  • systems/
    Scripts to build/synthesize the hardware design, plus the top‐level Verilog module.


Usage

This project uses a GECKO5EDUCATION board with a CPU frequency of 74.24 MHz and a OV7670 camera.

To run the project, follow these steps:

  1. Connect the Board

    • Connect your GECKO5EDUCATION board to your computer.
  2. Synthesize the Hardware

    • Navigate to the verilog directory:
      cd systems/singleCore/verilog
      
    • Run the synthesis script:
      ../scripts/synthetize.sh top_level.v
      
  3. Build the Program

    • Go to the directory containing your program's Makefile:
      cd <your_program_directory>
      
    • Build the memory file (uses OpenRISC gcc-cross-compile toolchain):
      make mem1420
      
  4. Upload the Program

    • Use a graphical serial terminal (such as CuteCom) to upload the program onto the board.
  5. Start Camera Capture

    • Open a multi-platform camera capture application (such as Webcamoid) to begin capturing video.
    • The user can use the ALCO ADE08S buttons to change the Sobel edge detection threshold.
    • The user can modify the FAST_FILTER option in 7_filtering/

Note: Adjust paths and commands as needed for your setup.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages