Embedded Systems

A.Y. 2022/2023
6
Max ECTS
48
Overall hours
SSD
INF/01
Language
Italian
Learning objectives
Provide the knowledge to design and implement an embedded prototype system.
After an overview of the existing platforms on the market the bases of electricity/electronics will be provided, to master interfacing with the physical world. Next, embedded platforms software development approaches will be discussed.
Expected learning outcomes
Grasp the knowledge on: how to choose the embedded platform suitable for a purpose/project; how to design and implement the software to upload to MCU; limits and possibilities of interfacing with the external world; how to choose sensors and actuators for a specific purpose; how to read an electrical diagram; how to choose between communication protocols (sensors and actuators, network); how to manage embedded platforms with/without an operating system
Single course

This course cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.

Course syllabus and organization

Single session

Responsible
Lesson period
Second semester
Course syllabus
# Syllabus

- Classification of embedded systems
- Genesis and history of microcontrollers
- Aspects: limited resources (CPU, RAM, etc.), power consumption, harsh environments, real-time, costs, dimensions, construction techniques, I/O (levels, protection, types of sensors, actuators, multiplexing)
- Programming styles: no-MMU, cooperative multitasking, interrupts, race conditions, watchdogs, FSA, tasks&events
- "Operating systems" in the embedded context (e.g., NodeMCU, OpenWrt, DD-WRT, FreeRTOS)
- Open hardware
- Recall of electricity/electronics: voltages, currents, Ohm's law, passive components, use of measuring instruments, personal safety considerations
- Timing
- Interrupt management
- Memory types (EEPROM, flash memory, etc.)
- "low-level" communication protocols: RS232, I2C, 1-Wire, CAN, etc.
- "hig-level" communication protocols: MQTT, OSC, etc.
- Bit banging
- Pulse Width Modulation
- AD/DA conversion
- How to read datasheets
- Platforms on the market: Arduino, Texas MSP430, ESP8266, RaspberryPI, Beaglebone, Olimex, Alix, ARM, etc.

# Lab

- Arduino architecture: features of the various hardware versions (from Arduino UNO to Arduino YUN/NUY, ESP8266/32)
- development cycle, programming phases: code writing, cross-compilation, upload, program execution
- the basic mechanism of operation of Arduino: the "setup" and "loop" methods
- variables, expressions, data types, operators ("+", "-", "*", etc.)
- Input/Output through the ports available on the board: how to read information from sensors and how to activate actions on the real world through actuators
- flow control
- definition of functions
- shields: cards for standardized functions (e.g., DC and stepper motors, relays, ethernet network, cellular network, wifi, bluetooth, etc.)
- comparisons with other platforms
Prerequisites for admission
programming concepts, physics concepts
Teaching methods
lessons + "hands on" labs

attendance is strongly recommended
Teaching Resources
Sistemi Embedded: teoria e pratica

(in italian)

Alexjan Carraturo, Andrea Trentini

Second Edition (2019)

ISBN: 9788867059430

http://sistemiembedded.cc
Assessment methods and Criteria
Oral exam with presentation of a project.
The exam consists of a compulsory oral discussion that focuses on the topics covered or cited in the course, furthermore each student will have to create (and therefore present) a hardware+software project on a topic previously agreed with the teacher.
The presentation/demonstration of the project will be an integral part of the evaluation.
The following parameters will be considered for the evaluation:
- completeness in the presentation of the project
- critical reasoning skills on the topics of the course
- ability to generalize and apply to the real world
- correct use of terminology
- quality in hardware+software implementation
Evaluation: vote out of thirty
INF/01 - INFORMATICS - University credits: 6
Lessons: 48 hours
Professor(s)
Reception:
to schedule a meeting please send an email
room 4007, via Celoria 18, MI