Embedded systems

A.Y. 2020/2021
Overall hours
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
Course syllabus and organization

Single session

Lesson period
Second semester
Online lessons (zoom), Telegram chat for Q&A
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, multitasking cooperatives, interrupts, race conditions, watchdogs, FSA, tasks&events
- "Operating systems" in the embedded context (eg NodeMCU, OpenWrt, DD-WRT, FreeRTOS)
- Open hardware
- Recalls 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)
- 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 (eg 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
Teaching Resources
Sistemi Embedded: teoria e pratica

(in italian)

Alexjan Carraturo, Andrea Trentini

Second Edition (2019)

ISBN: 9788867059430

Assessment methods and Criteria
Oral exam with presentation of a project.
The exam consists of a mandatory oral discussion that focuses on the topics covered or mentioned in the course, in addition each student (possibly in small groups) will have to carry out a project hardware + software on a topic previously agreed with the teacher.
The presentation / demonstration of the project will be an integral part of the evaluation.
INF/01 - INFORMATICS - University credits: 6
Lessons: 48 hours