ROBT305 – Embedded Systems

Fall 2019 Semester

Course Instructor: Dr. Almas Shintemirov  

Class Times:   Tuesdays, Thursdays 12.00 – 1.15 pm

Prerequisite:  ROBT206 – Microcontrollers with Laboratory

Course Overview
Embedded systems control everything from space robot rovers to home electronics. Any system that responds at the pace of relevant events has real-time requirements and constraints whether the timescale is short like the airbag controls for an automobile or longer like the flight scheduling system for an airline. This course introduces underlying scientific and engineering principles behind embedded multitasking systems. Students can expect to learn how to program on an embedded architecture and apply real-time principles that are used to drive critical embedded systems like robotics, automobiles, avionics, medical equipment, etc. Topics covered include embedded architecture; process concurrency; multitasking, process communication and synchronization, fundamentals of mechatronics design, robot operating systems (ROS) etc. Through a series of practical projects with state-of-the-art system-in-chip microprocessor boards students will acquire skills of embedded Linux programming using C/C++ programming tools and libraries. The course will have a team-based final project requiring students to learn and apply topics and methods beyond the lecture material.

Course Textbooks

  • Real-Time Embedded Systems: Open-Source Operating Systems Perspective by I. C. Bertolotti and G. Manduchi, 2012
  • Logic and Computer Design Fundamentals by M.M. Mano and C.R. Kime, 5th edition, 2018
  • Exploring BeagleBone: Tools and Techniques for Building 

    with Embedded Linux, 2nd edition, by D. Molloy, 2018

Course Topics

– Embedded Systems Hardware:  Simple CPU Architecture, RISC and CISC architectures, Pipelining, Interrupts, I/O interface, Direct Memory Access, Analog-Digital Conversion;
– Operating systems, Multithreading, Real-Time Systems;
– Intertask Communication and Process Synchronization: Mutex, Semaphores, Messages
– Deadlocks, Task Priority Inversion; 
– Embedded Linux, POSIX Pthreads library programming practice
– Cyclic Task Scheduling, Preemptive Task Scheduling (Round-Robin);
– Mechatronics Design

Selected Final Projects

Task: Design an embedded PWM control system for a Dagu Rover mobile robot chassis with DC motors and encoders using a 2 -channel motor driver board and a BeagleBone Black board. Implement servo (PID position) and/or joystick based robot controls.