VOOZH about

URL: https://www.coursera.org/learn/real-time-project-embedded-systems

⇱ Real-Time Project for Embedded Systems | Coursera


Real-Time Project for Embedded Systems

Real-Time Project for Embedded Systems

3,638 already enrolled

Included with

β€’

Learn more

Ask Coursera

Gain insight into a topic and learn the fundamentals.
Advanced level

Recommended experience

5 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace
Build toward a degree

Gain insight into a topic and learn the fundamentals.
Advanced level

Recommended experience

5 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace
Build toward a degree

What you'll learn

  • Real-time system design concepts and decomposition of functions and indentification of key services

  • De-coupling of I/O from real-time processing to avoid response time over-runs

  • Using AMP design principles with Rate Monotonic policy, analysis and theory

  • Using AMP design principles with best-effort and parallel real-time co-processing

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

3 assignments

Taught in English

Build your subject-matter expertise

This course is part of the Real-Time Embedded Systems Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate

There are 5 modules in this course

This course can also be taken for academic credit as ECEA 5318, part of CU Boulder’s Master of Science in Electrical Engineering degree.

The final course emphasizes hands-on building of an application using real-time machine vision and multiple real-time services to synchronize the internal state of Linux with an external clock via observation. Compare actual performance to theoretical and analysis to determine scheduling jitter and to mitigate any accumulation of latency. The verification of the final project will include comparison of system timestamp logs with a large set of images which can be encoded into a video. The final report will be peer reviewed and the captured frames and video uploaded for scripted assessment. Course Learning Outcomes: ● Outcome 1: Decompose a problem and set of basic real-time requirements into software modules and Linux POSIX real-time threads ● Outcome 2: Analyze services in terms of C (execution time), T (request period), and D (deadlines for completion) to establish feasibility and margin for meeting requirements ● Outcome 3: Design and construct a solution for a native Linux system equipped with a webcam to verify and demonstrate system synchronization using machine vision processing This course includes specific hardware and software requirements. Please review the FAQ below for complete details.

This module provides background on the RTES project including the concept of a "visual synchronome", where a camera is used to synchronize time between an external clock and an embedded computer. The project requires synchronization at both 1 Hz and 10 Hz, where the real-time services must acquire camera frames, select stable (non-blurred) frames and write them to a flash file system. The project requires a good understanding of RMA, real-time scheduling, and design principles for multi-service real-time systems.

What's included

14 videos14 readings1 assignment1 peer review1 discussion prompt

14 videosβ€’Total 189 minutes
  • Course Goals and Learning Objectivesβ€’6 minutes
  • Course Detailed Overview with Assumed Prior Knowledgeβ€’13 minutes
  • Background Concepts Used for RTES Projectβ€’30 minutes
  • Detecting External Clock "Tick" with Machine Visionβ€’12 minutes
  • Final Peer Review Assessment of RTES Projectβ€’32 minutes
  • Verifying Frame Synchronization to External Clock on Every Frameβ€’0 minutes
  • RTES Project Demonstration of 1 Hz Solutionβ€’4 minutes
  • RTES Project Demonstration of 10 Hz Solutionβ€’7 minutes
  • Design Notations Used for Software Servicesβ€’9 minutes
  • Code Walkthrough: V4L2 (Video for Linux 2) Camera Interface Demonstrationβ€’18 minutes
  • Code Demonstration: Frame Difference Interactive OpenCV Exampleβ€’0 minutes
  • Use of Cheddar for Timing Analysisβ€’18 minutes
  • General Methods for Tracing and Profiling RT Embedded Systemsβ€’27 minutes
  • Linux Syslog, GNU Profiling, and HTOP for RTES Projectβ€’13 minutes
14 readingsβ€’Total 181 minutes
  • Course Updates and Accessibility Supportβ€’1 minute
  • Non-Credit Students: Welcome and Where to Find Helpβ€’10 minutes
  • Hardware & Software Requirementsβ€’10 minutes
  • EXTRA HELP: Home Lab Set Upβ€’10 minutes
  • Textbook: RTECS with Linux and RTOSβ€’10 minutes
  • CODE: CU Boulder Linux Example Code - Publicβ€’10 minutes
  • Guidelines for Code Quality Peer Reviewsβ€’10 minutes
  • Code Walkthrough for Peer Reviewsβ€’10 minutes
  • POSIX Pthread Programming Resourcesβ€’10 minutes
  • Basic Makefile Skills by Exampleβ€’10 minutes
  • Printable RTES Project Peer Review Rubricβ€’10 minutes
  • Run with "sudo" and/or Check File Permissionsβ€’10 minutes
  • More Software Design Methods and Notationsβ€’60 minutes
  • Using a Linux RAM Disk and/or Software RAIDβ€’10 minutes
1 assignmentβ€’Total 30 minutes
  • Basics of Real-Time Systemsβ€’30 minutes
1 peer reviewβ€’Total 360 minutes
  • Peer Review of Initial Services, RMA and Timing Diagramsβ€’360 minutes
1 discussion promptβ€’Total 10 minutes
  • Introduce Yourselfβ€’10 minutes

Different design approaches for the RTES project are reviewed in this module including the "shot gun" start, where clock ticks are detected once at the start, the full synchronome continuous tick detection approach, and different options for implementation. RTES project designers must decide on a camera interface, for example a V4L2 (Video for Linux 2) interface to UVC (Universal Video Controller) driver, or an OpenCV interface to a camera.

What's included

7 videos4 readings1 assignment1 peer review

7 videosβ€’Total 98 minutes
  • Simple Design that Does Not Work and Whyβ€’26 minutes
  • Better Design Example, But Not Fault Tolerantβ€’13 minutes
  • Better Design Somewhat Fault Tolerantβ€’10 minutes
  • Best Practice Design Exampleβ€’17 minutes
  • External Clock Tick Detection Starter Code Walk-throughβ€’9 minutes
  • Simple Frame Capture of 1800 Frames in One Processβ€’13 minutes
  • Sequencing RT Services Using a Software Interval Timerβ€’11 minutes
4 readingsβ€’Total 40 minutes
  • Request for Proposal - Goals and Objectives for the Projectβ€’10 minutes
  • Download RTES Project Starter Code and Build and Reviewβ€’10 minutes
  • Notes on Clocks to Use for RTES Projectβ€’10 minutes
  • A few Important Notes on Jetson Nanoβ€’10 minutes
1 assignmentβ€’Total 30 minutes
  • Project Design, Implementation, and Functional Testingβ€’30 minutes
1 peer reviewβ€’Total 360 minutes
  • Code Walkthrough of Project Starter Codeβ€’360 minutes

To ensure that a real-time design is properly implemented, timing analysis based upon system logging and tracing must be used to verify that actual timing compared to theoretical RMA. This module provides and overview of methods and suggests the most efficient methods to debug and verify timing of the RTES project. The module includes a 1 Hz peer review of design and code to assist with RTES project improvement for external clock synchronization using camera images with a ticking analog clock.

What's included

3 videos1 reading1 programming assignment1 peer review

3 videosβ€’Total 25 minutes
  • Coding Tips and Debuggingβ€’3 minutes
  • Analysis: Methods of Multi-Service Timing Verificationβ€’8 minutes
  • Review of Common Mistakesβ€’14 minutes
1 readingβ€’Total 10 minutes
  • Most Common RTES Project Errors - A List to Considerβ€’10 minutes
1 programming assignmentβ€’Total 180 minutes
  • Final Project Operation at 1 Hzβ€’180 minutes
1 peer reviewβ€’Total 360 minutes
  • Peer Review of 1 Hz Monotonicity and Glitch Free Operationβ€’360 minutes

This module covers methods of tracing and profiling for the overall RTES project platform including networking, system profiling, and methods to trace real-time services in particular. The module includes a 10 Hz peer review of design and code to assist with RTES project improvement for external clock synchronization with a digital stopwatch at this higher rate compared to 1 Hz.

What's included

3 videos1 programming assignment1 peer review

3 videosβ€’Total 20 minutes
  • Using Sysprof and Kernel Shark on Linuxβ€’9 minutes
  • Wireshark Network Transport Tracing with Linuxβ€’4 minutes
  • Code Walkthrough: Demonstration of Syslog for Timing Analysisβ€’7 minutes
1 programming assignmentβ€’Total 180 minutes
  • Final Project Operation at 10 Hzβ€’180 minutes
1 peer reviewβ€’Total 360 minutes
  • 10 Hz Design Walkthroughβ€’360 minutes

The overall RTES project should be completed for this module. Students can review tips and examples for how to prepare their design materials, their RMA, and code for review. The process for inspection to verify and validate the design based upon the RTES project rubric is defined here as well.

What's included

3 videos1 reading1 assignment1 peer review

3 videosβ€’Total 61 minutes
  • Example Peer Review Design Demonstration - V4L Exampleβ€’22 minutes
  • Example Peer Review Design Walk-through - OpenCV Exampleβ€’25 minutes
  • Take-Away and Final Notes for Courseβ€’14 minutes
1 readingβ€’Total 10 minutes
  • More Creative RTES Project Examplesβ€’10 minutes
1 assignmentβ€’Total 30 minutes
  • Project and Final Take-Away Major Conceptsβ€’30 minutes
1 peer reviewβ€’Total 540 minutes
  • Final Design and RTES Solution Presentationβ€’540 minutes

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.

Build toward a degree

This course is part of the following degree program(s) offered by University of Colorado Boulder. If you are admitted and enroll, your completed coursework may count toward your degree learning and your progress can transfer with you.ΒΉ

Instructor

Instructor ratings
4.5 (5 ratings)
University of Colorado Boulder
4 Coursesβ€’25,839 learners

Explore more from Electrical Engineering

Why people choose Coursera for their career

πŸ‘ Image

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
πŸ‘ Image

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
πŸ‘ Image

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
πŸ‘ Image

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Frequently asked questions

System Requirements

● A Windows or Mac computer for remote access to the Raspberry Pi

● Home network with internet access and a router that allows the Raspberry Pi to be reached on the local network (Wi-Fi or Ethernet)

● SSH enabled on the Raspberry Pi (required)

● VNC enabled on the Raspberry Pi (optional, for remote desktop access)

Hardware Requirements

To complete this specialization, you will need a home lab setup based on a supported embedded Linux platform. The following configuration is required and tested for all course activities.

Required Hardware

● Embedded Linux hardware platform - Recommended: Raspberry Pi 3B+ (Raspberry Pi family or equivalent)

● MicroSD card (16 GB minimum; 32 GB recommended)

● 5V / 2.5A power supply with switch

● UVC-compatible USB camera (USB 2.0 or better)

● HDMI cable

● HDMI monitor + keyboard + mouse (for initial setup only)

● Network connection between the Raspberry Pi and your home router (Wi-Fi or Ethernet)

Recommended Hardware Configuration

Raspberry Pi 3B+, which may be sourced from:

● SparkFun(~$44, board only) or

● CanaKit Raspberry Pi 3 Model B+ Starter Kit(~$125, includes board) plus:

● MicroSD card (preloaded with NOOBS or Raspberry Pi OS)

● Heat sinks

● Case

● 5V / 2.5A power supply with switch

● HDMI cable

● UVC-compatible USB Camera (USB 2.0 or better)

Alternative Hardware Configurations

While the Raspberry Pi 3B+ is the officially supported platform, you may use other Linux-capable embedded platforms at your own risk:

● Raspberry Pi 4 (offers USB 3.0, 2+ GB RAM, and Gigabit Ethernet)

● Jetson Nano, DE10-SoC, or similar boards (advanced users only; self-support required)

Note: All starter code provided in this specialization is tested and verified on the Raspberry Pi 3B+ with Raspberry Pi OS (formerly Raspbian).

Software Requirements

Ability to install and use one of the following remote-access tools on your computer:

● MobaXterm (recommended for Windows)

● PuTTY

● VNC Viewer

To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.

When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.

Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

Financial aid available,