Embedded Systems
A.Y. 2018/2019
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.
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
Lesson period: Second semester
Assessment methods: Esame
Assessment result: voto verbalizzato in trentesimi
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
- 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
Professor(s)
Reception:
to schedule a meeting please send an email
room 4007, via Celoria 18, MI