Embedded Systems

A.Y. 2018/2019
6
Max ECTS
48
Overall hours
SSD
INF/01
Language
Italian
Learning objectives
Provide the knowledge to design and implement an embedded prototype system on Arduino/ESP8266, Linux/OpenWRT, FreeRTOS platforms.
After an overview of the existing F/L/OSS 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. The laboratory will focus on the Arduino environment.
Expected learning outcomes
Undefined
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

Milan

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, 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
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