Embedded Systems

A.Y. 2024/2025
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 (the list of questions is available online), 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
Shifts:
Turno
Professor: Trentini Andrea Mario
Professor(s)
Reception:
to schedule a meeting please send an email
room 4007, via Celoria 18, MI