CprE 288 Introduction to Embedded Systems (Project and Platform Overview) Instructor: Dr. Phillip Jones http://class.ece.iastate.edu/cpre288 1
Overview of Today s Lecture Announcements What are Embedded Systems Project Timeline Platform Overview http://class.ece.iastate.edu/cpre288 2
Announcements Find an article on an embedded system application you are interested. (will be part of Homework 1) What needs does the User have? How does the application help meet the User s needs? http://class.ece.iastate.edu/cpre288 3
EMBEDDED SYSTEMS http://class.ece.iastate.edu/cpre288 4
What are Embedded Systems? Your Definition? Quadcopter Micro SD Card? What are some properties of an Embedded System? Blu-Ray / Remote Programmable Thermostat Roomba http://class.ece.iastate.edu/cpre288 5
What are Embedded Systems? Your Definition? Quadcopter Micro SD Card? What are some properties of an Embedded System? Blu-Ray / Remote Programmable Thermostat Roomba http://class.ece.iastate.edu/cpre288 6
LAB PROJECT http://class.ece.iastate.edu/cpre288 7
Project Timeline Your Interest Real World ES Apps Platform Overview Submit Proj Ideas & ID Users Project Teams Assigned Project Proposal Code Review 1 Code Review 2 Project Documentation Thanksgiving WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16 Lab1 Lab2 Lab3 Lab4 Dev Tools Move Interrupts Time Digital I/O Sensor Processing Lab5 Lab6 Lab7 ADC Sensor I/F Communications Lab8 Timer Sensor I/F Project Integration Testing Timer Servo Motor Project Demo http://class.ece.iastate.edu/cpre288 8
Project Lab Summaries (Lab 1) WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16 Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8 Project Integration & Testing Lab 1: Getting to know your Development Tools: Verify your home drive setting are working correctly Become familiar with the Code Composer Dev. Environment Write your first Embedded program to have the Cybot platform display information to a human according to a given specification. http://class.ece.iastate.edu/cpre288 9
Project Lab Summaries (Lab 2) WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16 Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8 Project Integration & Testing Lab 2: Moving the platform: Become familiar with how commands get sent to/from Cybot Move the platform based on interactive User commands Develop an Embedded System application for simple pattern navigation, and simple object avoidance http://class.ece.iastate.edu/cpre288 10
Project Lab Summaries (Lab 3) WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16 Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8 Project Integration & Testing Lab 3: Simple interactions with the Outside World: Learn how the Cybot platform receives General Purpose Input. Process General Purpose Input Analyze sensor data http://class.ece.iastate.edu/cpre288 11
Project Lab Summaries (Lab 4) WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16 Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8 Project Integration & Testing Lab 4: Asynchronous interactions/events: Make use of Polling to detect events for which your program does not explicitly know when will occur Make use of Interrupts to detect events for which your program does not explicitly know when will occur Start to learn about how time is used within the Cybot platform http://class.ece.iastate.edu/cpre288 12
Project Lab Summaries (Lab 5) WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16 Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8 Project Integration & Testing Lab 5: Communications (Sending/ Receiving commands): Learn the detailed mechanisms used to communicate to the Cybot platform from a device such as a Desktop computer UART (Universal Asynchronous Receive and Transmit) Develop an Embedded system application to enable Cybot communications. Leverage processing command experience from Lab 2 http://class.ece.iastate.edu/cpre288 13
Project Lab Summaries (Lab 6) WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16 Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8 Project Integration & Testing Lab 6: Measuring the outside world: Learn the detailed mechanisms used by Cybot to interface to sensors using an Analog to Digital Converter (ADC) Implement ADC functionality Leverage sensor analysis work from Lab 3, to help verify the correctness of you implementation. http://class.ece.iastate.edu/cpre288 14
Project Lab Summaries (Lab 7) WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16 Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8 Project Integration & Testing Lab 7: Using time to help understand your Environment Learn the detailed mechanisms used by Cybot to measure the time at which event occur Develop functionality to allow the Cybot platform to determine how far an object is using a Ultrasonic sensor. http://class.ece.iastate.edu/cpre288 15
Project Lab Summaries (Lab 8) WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16 Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8 Project Integration & Testing Lab 8: Using time to control the outside world Learn the detailed mechanisms used by Cybot that allow application developers to define the time events occur Develop functionality to allow the Cybot platform to control a servo motor. http://class.ece.iastate.edu/cpre288 16
Project Lab Summaries (Project integration) WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16 Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8 Project Integration & Testing Lab 8: Using time to control the outside world Learn the detailed mechanisms used by Cybot that allow application developers to define the time events occur Develop functionality to allow the Cybot platform to control a servo motor. http://class.ece.iastate.edu/cpre288 17
Course Overview Example Problem Mars Exploration: NASA needs a way to investigate the surface of Mars. ESI solution: The Cybot platform will be used to develop a prototype of a Mars Rover that can: 1) Avoid obstacles 2) Collect data about the Martian terrain 3) Stay within a radiation safe zone 4) Navigate to a communication rely station to send findings back to Earth Prototype: Fully Autonomous Mars Rover http://class.ece.iastate.edu/cpre288 18
Project Platform CyBot: is the codename for ESI s embedded systems platform. It is a programmable mobile system composed of various sensors for solving embedded system problems http://class.ece.iastate.edu/cpre288 19
Course Overview irobot Create List of Sensors Omnidirectional IR sensor Left & Right bump sensors Four cliff sensors along the front Wall sensor All three wheels have drop sensors 2 wheels for movement Students program the MCU on the LaunchPad Communication between the MCU and irobot Create 2 occurs over a serial interface We will use an API (Application Programming Interface) called Open Interface to communicate Omnidirectional IR sensor Power button / Power LED Left & Right bump sensor http://class.ece.iastate.edu/cpre288 20
Course Overview TI LaunchPad TI s LaunchPad (EK-TM4C123GXL) Break-out board for the microcontroller (µc) ARM-based microcontroller (Cortex-M4) http://class.ece.iastate.edu/cpre288 21
Microcontroller Essentially a microprocessor with on-chip memories and I/O devices Designed for specific functions All in one solution - Reduction in chip count Reduced power consumption Reduced cost Examples MC68332, MC68HC11, PPC555, Atmel family (e.g. Atmega128) More details of components later A/D converters, temperature sensors, communications, timing circuits, many others 22
TM4C123 I/O Ports 64 package pins http://class.ece.iastate.edu/cpre288 23
TM4C123 I/O Ports 64 package pins Allows Software to access the world outside of the chip http://class.ece.iastate.edu/cpre288 24
TM4C123 I/O Ports 64 package pins 6 GPIOs Ports(A F) Each 8-bits http://class.ece.iastate.edu/cpre288 25
TM4C123 I/O Ports 64 package pins 6 GPIOs Ports(A F) Each 8-bits PORT A http://class.ece.iastate.edu/cpre288 26
PORT B TM4C123 I/O Ports 64 package pins 6 GPIOs Ports(A F) Each 8-bits PORT B PORT B http://class.ece.iastate.edu/cpre288 27
PORT C TM4C123 I/O Ports 64 package pins 6 GPIOs Ports(A F) Each 8-bits PORT C http://class.ece.iastate.edu/cpre288 28
PORT D TM4C123 I/O Ports 64 package pins 6 GPIOs Ports(A F) Each 8-bits PORT D PORT D PORT D http://class.ece.iastate.edu/cpre288 29
TM4C123 I/O Ports 64 package pins 6 GPIOs Ports(A F) Each 8-bits PORT E PORT E http://class.ece.iastate.edu/cpre288 30
TM4C123 I/O Ports 64 package pins 6 GPIOs Ports(A F) Each 8-bits PORT F PORT F http://class.ece.iastate.edu/cpre288 31
Microcontroller / System-on-Chip (SoC) Program Memory CPU Microcontroller Data Memory Outside World Private Peripheral Bus NVIC UART CFG DATA STATUS ADC CFG DATA STATUS Timers CFG DATA STATUS GPIO http://class.ece.iastate.edu/cpre288 32
Reflection Question Take 2 minutes to think about and respond these questions: What is your view of the role of CPRE 288 in your curriculum objectives? What do you believe will be the biggest challenge in this class for you? http://class.ece.iastate.edu/cpre288 33