Course Outline for Electronic Systems Technology 55
IoT & Microcontroller Systems

Effective: Spring 2021
SLO Rev: 04/29/2020
Catalog Description:

ESYS 55 - IoT & Microcontroller Systems

3.00 Units

As IoT connects the world, explore its benefits, applications and challenges. Architecture, programming, application and troubleshooting of single-chip microcontroller electronic systems as well as complex programmable logic device (CPLD) electronic systems. Digital building blocks, number systems, Includes programming in VHDL. Digital building blocks, number systems, Boolean algebra, combinational and sequential logic, integrated logic families, digital circuit measurement techniques and instrumentation, troubleshooting techniques.
Strongly Recommended: ESYS 50.
0934.00 - Electronics and Electric Technology*
Letter Grade Only
Type Units Inside of Class Hours Outside of Class Hours Total Student Learning Hours
Lecture 2.00 36.00 72.00 108.00
Laboratory 1.00 54.00 0.00 54.00
Total 3.00 90.00 72.00 162.00
Measurable Objectives:
Upon completion of this course, the student should be able to:
  1. trace timing, inputs, and outputs of a single-chip microcontroller with appropriate test equipment and schematic diagrams;
  2. create simple programs in high-level and assembly language for practical and diagnostic purposes;
  3. demonstrate communications between IoT devices;
  4. use test equipment to troubleshoot microprocessor-based electronic systems;
  5. analyze the operation of automated tasks of IoT systems;
  6. use test equipment to troubleshoot digital electronic systems;
  7. analyze the operation of digital logic systems;
  8. apply binary, octal, decimal and hexadecimal numbering systems to digital systems.
Course Content:

Course Content, Lecture

  1. Introduction to IoT
    1. Overview of IoT, scope and applications
    2. Setting up Workflow
  2. Programming in C++
    1. Microcontroller programming using Arduino
  3. Programming in Python
    1. Installing Python
    2. Learn Python by coding
  4. Building IoT applications with Raspberry Pi
  5. Basic principles of digital systems
    1. Numbering systems: decimal, binary, octal, hexadecimal
    2. Basic Logic Gates:  AND Gate, OR Gate, NOT Gate
      1. Electronic equivalents of AND, OR and NOT Gates
      2. Practical examples of AND, OR and NOT Gates
    3. Other Logic Gates: NAND, NOR, XOR and XNOR Gates
      1. Electronic equivalents of NAND, NOR, XOR and XNOR Gates
      2. Practical examples of NAND, NOR, XOR and XNOR Gates
  6. Boolean Algebra for analyzing and simplifying digital (logic) circuits
  7. DeMorgan’s Theorems for resolving digital (logic) circuits
  8. Microcontroller architecture
    1. CISC = complex instruction set computing
    2. RISC = reduced instruction set computing
  9. Microcontroller Memory
    1. Volatile memory vs non-volatile memory
    2. Accessing memory
  10. Digital I/O (input/output)
  11. Analog I/O (input/output)
  12. Interrupts
    1. Interrupt Control
    2. Interrupt Handling
    3. Interrupt Service Routine
  13. Timers
  14. Software for microcontrollers
    1. Active-HDL
    2. Xilinx
  15. Microcontroller Math Functions
    1. Addition, subtraction, multiplication and division
  16. MUX = Multiplexing with microcontrollers
  17. DMUX = Demultiplexing with microcontrollers
  18. Decoding with microcontrollers

 

Course Content, Laboratory

  1. Introduction to IoT
    1. Overview of IoT, scope and applications
    2. Setting up Workflow
  2. Programming in C++
    1. Microcontroller programming using Arduino
  3. Programming in Python
    1. Installing Python
    2. Learn Python by coding
  4. Building IoT applications with Raspberry Pi
  5. Basic principles of digital systems
    1. Numbering systems: decimal, binary, octal, hexadecimal
    2. Basic Logic Gates:  AND Gate, OR Gate, NOT Gate
      1. Electronic equivalents of AND, OR and NOT Gates
      2. Practical examples of AND, OR and NOT Gates
    3. Other Logic Gates: NAND, NOR, XOR and XNOR Gates
      1. Electronic equivalents of NAND, NOR, XOR and XNOR Gates
      2. Practical examples of NAND, NOR, XOR and XNOR Gates
  6. Boolean Algebra for analyzing and simplifying digital (logic) circuits
  7. DeMorgan’s Theorems for resolving digital (logic) circuits
  8. Microcontroller architecture
    1. CISC = complex instruction set computing
    2. RISC = reduced instruction set computing
  9. Microcontroller Memory
    1. Volatile memory vs non-volatile memory
    2. Accessing memory
  10. Digital I/O (input/output)
  11. Analog I/O (input/output)
  12. Interrupts
    1. Interrupt Control
    2. Interrupt Handling
    3. Interrupt Service Routine
  13. Timers
  14. Software for microcontrollers
    1. Active-HDL
    2. Xilinx
  15. Microcontroller Math Functions
    1. Addition, subtraction, multiplication and division
  16. MUX = Multiplexing with microcontrollers
  17. DMUX = Demultiplexing with microcontrollers
  18. Decoding with microcontrollers
Methods of Instruction:
  1. Lecture/Discussion
  2. Laboratory
  3. Online Assignments
  4. Distance Education
Assignments and Methods of Evaluating Student Progress:
  1. Write a Python program to use a Raspberry Pi as an IoT temperature control system, monitoring a temperature sensor and controlling a fan to maintain a stable temperature.
  2. Analyze the functions of a CPLD logic circuit with graphic gate design.
  3. Program a microcontroller with a given program and verify the operation of the system meets specifications.
  4. Manually solve digital arithmetic problems and verify the result with the arithmetic function implemented in VHDL.
  1. Exams/Tests
  2. Quizzes
  3. Papers
  4. Class Participation
  5. Homework
  6. Lab Activities
  7. Skills performance examination
Upon the completion of this course, the student should be able to:
  1. interpret manufacturers' data sheets and reference documentation and apply principles of digital and microcontroller systems to describe the operation of a given microcontroller system.
  2. use standard test equipment, system documentation, and software program listings to measure and verify timing, inputs, and outputs of a given basic microcontroller system.
  3. build an IoT microcontroller project that encompasses inputs and outputs, programming for repetitive function, modifying that programming for cause and effect. The project will culminate with a verbal demonstration presentation to the class and constructing an e-portfolio to showcase the project on the Internet.
Textbooks (Typical):
  1. Sweigart, Al (2020). Automate the Boring Stuff with Python (2nd). No Starch Press.
  1. Turbo C++. https://www.javatpoint.com/cpp-installation, (/e).
  2. Python 3.8.2. https://www.python.org/downloads/release/python-382/, (/e).
Abbreviated Class Schedule Description:
As IoT connects the world, explore its benefits, applications and challenges. Architecture, programming, application and troubleshooting of Arduino and Nexys FPGA microcontroller electronic systems. Digital building blocks, number systems, programming in high-level language. Semester microcontroller project.
Strongly Recommended: ESYS 50.