Course Outline for Electronic Systems Technology 255
IoT & Microcontroller Systems

Effective: Fall 2022
SLO Rev: 09/17/2021
Catalog Description:

ESYS 255 - IoT & Microcontroller Systems

90.00 Hours

May be repeated 99 time(s)
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. Includes programming in VHDL, digital building blocks, number systems, Boolean algebra, combinational and sequential logic, integrated logic families, digital circuit measurement techniques and instrumentation and troubleshooting techniques. This course is free and students may repeat this course until mastery of the skills is met. This course is a noncredit course that is equivalent to the ESYS 55 credit course of the same title. Both options cover the same content and students will be enrolled in the same class at the same time. If a student chooses to move from noncredit to credit courses, please meet with ESYS faculty to discuss assessing equivalency and credit by exam. This course is part of a Certificate of Completion. Available Certificates can be found in the Chabot College Catalog.
Strongly Recommended: ESYS 250 or ESYS 50.
0934.00 - Electronics and Electric Technology*
Pass/No Pass/Satisfactory Progress
Type Hours
Lecture 36.00
Laboratory 54.00
Total 90.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. Distance Education
  3. Laboratory
  4. Online Assignments
Assignments and Methods of Evaluating Student Progress:
  1. Write a high-level program to use a microcontroller as a 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 a 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 eportfolio to showcase the project on the Internet.
Textbooks (Typical):
  1. Blum, Jeremy (2019). Exploring Arduino: Tools and Techniques for Engineering Wizardry (2nd). Wiley.
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 250 or ESYS 50.