CprE 288 – Introduction to Embedded Systems (Project and Platform Overview)
http://class.ece.iastate.edu/cpre288 1
Instructor:
Dr. Phillip Jones
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?
• What are some properties of an Embedded System?
http://class.ece.iastate.edu/cpre288 5
Blu-Ray / Remote
Programmable Thermostat Roomba
Micro SD Card? Quadcopter
What are Embedded Systems?
• Your Definition?
• What are some properties of an Embedded System?
http://class.ece.iastate.edu/cpre288 6
Blu-Ray / Remote
Programmable Thermostat Roomba
Micro SD Card? Quadcopter
LAB PROJECT
http://class.ece.iastate.edu/cpre288 7
Project | Timeline
http://class.ece.iastate.edu/cpre288 8
WW1 WW2 WW3 WW4
Your Interest Real World ES Apps Platform Overview
WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16
Lab1
Dev Tools
Lab2
Move
Lab3
Digital I/O Sensor Processing
Lab4
Submit Proj Ideas & ID Users
Interrupts Time
Project Teams Assigned
Lab5
Communications
Lab6
ADC Sensor I/F
Lab7
Timer Sensor I/F Timer
Servo Motor
Project Proposal
Lab8
Code Review 1
Code Review 2
Project Integration Testing
Project Documentation
Project Demo
Thanksgiving
Project | Lab Summaries (Lab 1)
http://class.ece.iastate.edu/cpre288 9
WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16
Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8
• 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.
Project Integration & Testing
Project | Lab Summaries (Lab 2)
http://class.ece.iastate.edu/cpre288 10
WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16
Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8
• 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
Project Integration & Testing
Project | Lab Summaries (Lab 3)
http://class.ece.iastate.edu/cpre288 11
WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16
Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8
• Lab 3: Simple interactions with the Outside World:
– Learn how the Cybot platform receives General Purpose Input.
– Process General Purpose Input
– Analyze sensor data
Project Integration & Testing
Project | Lab Summaries (Lab 4)
http://class.ece.iastate.edu/cpre288 12
WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16
Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8
• 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
Project Integration & Testing
Project | Lab Summaries (Lab 5)
http://class.ece.iastate.edu/cpre288 13
WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16
Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8
• 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
Project Integration & Testing
Project | Lab Summaries (Lab 6)
http://class.ece.iastate.edu/cpre288 14
WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16
Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8
• 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.
Project Integration & Testing
Project | Lab Summaries (Lab 7)
http://class.ece.iastate.edu/cpre288 15
WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16
Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8
• 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.
Project Integration & Testing
Project | Lab Summaries (Lab 8)
http://class.ece.iastate.edu/cpre288 16
WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16
Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8
• 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.
Project Integration & Testing
Project | Lab Summaries (Project integration)
http://class.ece.iastate.edu/cpre288 17
WW1 WW2 WW3 WW4 WW5 WW6 WW7 WW8 WW9 WW10 WW11 WW12 WW13 WW14 WW15 WW16
Lab1 Lab2 Lab3 Lab4 Lab5 Lab6 Lab7 Lab8
• 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.
Project Integration & Testing
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
http://class.ece.iastate.edu/cpre288 20
Omnidirectional IR sensor
Power button / Power LED
Left & Right bump sensor
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
22
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
TM4C123 I/O Ports
•64 package pins
http://class.ece.iastate.edu/cpre288 23
TM4C123 I/O Ports
•64 package pins
http://class.ece.iastate.edu/cpre288 24
Allows Software to access the world outside of the chip
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
PORT A
•64 package pins
• 6 GPIOs Ports(A – F)
–Each 8-bits
http://class.ece.iastate.edu/cpre288 26
TM4C123 I/O Ports P
OR
T B
PORT B
PO
RT
B
•64 package pins
• 6 GPIOs Ports(A – F)
–Each 8-bits
http://class.ece.iastate.edu/cpre288 27
TM4C123 I/O Ports
PO
RT
C
PORT C
•64 package pins
• 6 GPIOs Ports(A – F)
–Each 8-bits
http://class.ece.iastate.edu/cpre288 28
TM4C123 I/O Ports
PO
RT
D
PORT D
PORT D
PORT D
•64 package pins
• 6 GPIOs Ports(A – F)
–Each 8-bits
http://class.ece.iastate.edu/cpre288 29
TM4C123 I/O Ports
PO
RT
E
PORT E
•64 package pins
• 6 GPIOs Ports(A – F)
–Each 8-bits
http://class.ece.iastate.edu/cpre288 30
TM4C123 I/O Ports
PORT F
PORT F
•64 package pins
• 6 GPIOs Ports(A – F)
–Each 8-bits
http://class.ece.iastate.edu/cpre288 31
Microcontroller / System-on-Chip (SoC)
http://class.ece.iastate.edu/cpre288 32
CPU Data Memory
Program Memory
Microcontroller Outside World
NVIC
UART
ADC
Timers
Private Peripheral Bus
CFG|DATA|STATUS
CFG|DATA|STATUS
CFG|DATA|STATUS
GPIO
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