SlideShare a Scribd company logo
Linux For Embedded Systems
ForArabs
Ahmed ElArabawy
Cairo University
Computer Eng. Dept.
CMP445-Embedded Systems
Lecture 1:
Course Overview
The Lecturer
• Ahmed ElArabawy
• Education:
• BSc Alexandria University (1992)
• MSc Alexandria University (1994)
• PhD SMU University, TX, USA (2001)
• Work
• Faculty Staff @ Alexandria Univ.
• Faculty Staff @ Cairo Univ.
• Microsoft, SySDSoft (Egypt)
• Ericsson, Broadcom, Solectek, WiLan Labs (USA)
• Embedded Systems Initiatives
• Linux for Embedded Systems
http://linux4embeddedsystems.com/
https://www.facebook.com/groups/linuxforEmbeddedSystems/
• Raspberry Pi for Arabs
https://www.facebook.com/groups/linuxforEmbeddedSystems/
• More Details
https://www.linkedin.com/in/ahmedelarabawy
This Course
• This is an introductory hands-on course in the area of Embedded
Systems
• We will be using the Raspberry Pi to learn about the basic aspects of
Embedded Development
• We should come out from this course with a decent level of knowledge
and hands on experience with embedded systems
• Although the course addresses embedded systems in general, we will be
focusing on the use the Raspberry Pi Board throughout the course
Why The Raspberry Pi ??
• The reason of selecting the Raspberry Pi for this Course:
• The Raspberry Pi is a very capable board, and can demonstrate all
the aspects of embedded systems that we will study in this
course (ARM Processor, Linux Support, … )
• The Raspberry Pi is very rich in its interfaces (USB, Ethernet,
GPIO, I2C, SPI, UART, CSI, DSI, ….)
• The Raspberry Pi has strong support of different programming
and scripting languages (Bash, Python, Java, C/C++, ..)
• The Raspberry Pi comes with a huge community and tons of
tutorials and projects on the Internet
• The Raspberry Pi is less Expensive than other comparable board
• The Raspberry Pi is more available in local market than other
boards
What About Other Platforms ?
• A lot of the materials in this course is useful for other
embedded system boards
• It is advisable to focus now on the Pi to avoid distractions in
the boards differences, and to have a common platform
• Later, you can apply the same course material on a lot of other
platforms
Course Objectives
• The Internet is full of tutorials, guides, and videos for different projects
on the Pi
• So this course will not try to add to this pile with more projects
• The Objective of this course is to perform a structures and organized
study on Embedded Systems using the Pi and its associated capabilities
• Each lecture will cover one concept in Embedded Systems using the Pi
• I will be building mini-projects in the lecture to apply the concepts of
the lecture
• Then I will be referring to some of the online projects that utilize the
discussed topic
Course Projects
• Most of the projects used in this course are simple projects that
consider a single concept
• Connecting to a specific sensor
• Controlling a specific Motor
• Interfacing to a specific Display
• In real world projects, the system will contain multiple of these
aspects
• So consider the projects in this course as building blocks, for bigger
projects
• You will be assigned to do more projects on your own
Course Logistics
The Course Web Site
• It is not enough to watch the video lectures
• The Course Web Site includes much more resources
• List of applicable Projects
• Useful Links
• More Reading Material
• FAQ
• Assignments
• Quizzes and grading
http://linux4embeddedsystems.com/
Course Project Code
• All code used in this course will be available on the course GitHub
Repository
https://github.com/Linux4EmbeddedSystems
• You will need to have your own GitHub account, so if you don’t have one already,
create one…. It is free
https://github.com/
• You will need the GitHub account to deliver code and associated
documentation for all assigned mini-projects
Course Pre-requisites
• Good Understanding of Linux and its command Line Interface, if you need to refresh
your knowledge on this topic, attending the course C-102 Understanding Linux in
the public section of the website is highly recommended (I will be referring to
specific lectures throughout the course when needed )
• Have access to a Raspberry Pi Board is needed (you will be provided with one)
• Other hardware accessories will be mentioned in each lecture
• This course will use different computer programming and scripting languages:
• It will use some Bash Scripts, no previous advanced knowledge of Bash Scripts are
needed
• It will use some Python Scripts, so it will be useful to have some knowledge about
Python, but it is not a must since python is very easy to learn as we go
• Some parts of the course will be using C Code
• Other parts will be using Java Code
Communication Channels
Course WebSite
• All Students will need to create an account in the course website
http://linux4embeddedsystems.com
• Students will need also to create a GitHub Account
https://github.com/
• Students need to send me the email (used in the course login) and their GitHub
username by Midnight today
• I will enroll you in the course, and send you instructions by email
• Announcements from the lecturer will be put on the website, and sent by email
• The course website will contain,
• Access to the lecture videos, note that the videos will be on youtube, so you can
download them if you need to
• Access to the lecture slides in pdf format
• A list of required reading material. These are part of the course, and will be
included in the midterm and final exams
• A list of optional reading material. These are recommended for those who are
interested in the topic, and they are not going to be part of the exam
• Any course related announcements
• Weekly assignments/mini-projects description
• Quizzes and grades
• Discussion forums
Communication Channels
Discussion Forum
• All student questions should be placed on the discussion
forum in the course website
• Both the Lecturer and the course TAs will be monitoring the
discussion forum to answer course related questions
• Other students are encouraged to respond to their colleague
questions
• You can also post ideas, interesting articles, interesting
embedded news on the discussion forum
• It is highly encouraged to keep the discussion forum active
with students/TAs/Lecturer interaction
Communication Channels
Lecturer Availability
• It is highly recommended to use the discussion forum for
student questions
• However, if you need to address the lecturer directly, you can
communicate to him via email
aelarabawy.cmp445@gmail.com
• Lecturer should be responding to your emails, or will ask you
to post your question on the discussion forum (if the question
does not require a private answer)
• The Lecturer will be available online for interactive
communication with the students on a specified time on
weekly basis (time will be specified via a course
announcement)
Student Groups
AssigningGroups
• Some of the course assignments will be assigned on an
individual basis
• However, most of the course assignments will be assigned on
team/group basis
• Students will need to form teams/groups of 3-4 students per
group
• Each group will need to pick a name to their group (must be a
name related to embedded Systems)
• Each group will need to assign a group leader for their group
• Each group leader will need to send to the Lecturer and TAs
the group name and team member names by midnight
Monday
Project Assignments
• Throughout the course there will be a lot of mini-projects assigned for
students
• Projects will be assigned on group basis
• Sometimes all groups will have the same project, other times, each
group will have their own project
• Each group will be handed over a hardware kit at the beginning of the
course (A Raspberry Pi + Accessories)
• This hardware will remain with the students throughout the full term,
and they will need to return it in a working condition at the end of the
term
• The provided hardware will include most of the required material for
the assigned projects, however, sometimes minor additions may be
required by the students
• Project deliverable will be:
• Showing the TA the project outcome
• Commit the project code and associated documentation to the group leader
GitHub Account
• Send the lecturer an email to inform him of the readiness of the project
Course Grading
• Course Grade will be based on the following:
• Final exam: 70%
• Midterm exam: 10%
• Projects and Assignments: 20%
• All exams will be open book, open notes (all you can bring)
• Exams will cover:
• Lecture material
• Mandatory Reading material
• Assignments and Projects
Course Contents
Course Contents
Overview on Embedded Systems
Course Contents
Overview on Embedded Systems OSs
Course Contents
Unwrapping the Raspberry Pi
Course Contents
Preparing the Raspberry Pi
Course Contents
The Pi as a Linux Box
Course Contents
The Pi Control Arm
Course Contents
Accessing the Pi GPIO
Course Contents
The I2C Interface
Course Contents
The SPI Interface
Course Contents
The 1-Wire Interface
Course Contents
The UART Interface
Course Contents
Using PWM Control
Course Contents
Handling Analog Signals
Course Contents
Motor Control Using the Pi
Course Contents
Using Sensors
Course Contents
Closing the Loop
Course Contents
LED Displays
Course Contents
LCD and Touch Screens
Course Contents
Interfacing to Cameras
Course Contents
The Pi and the Web
Course Contents
Using OpenCV with the Pi
Course Contents
Using FFMPEG With The Pi
Course Contents
Using Matlab with the Pi
Course Contents
Emulating the Pi
http://Linux4EmbeddedSystems.com

More Related Content

What's hot

What's hot (20)

Study Notes: Facebook Haystack
Study Notes: Facebook HaystackStudy Notes: Facebook Haystack
Study Notes: Facebook Haystack
 
Course 102: Lecture 19: Using Signals
Course 102: Lecture 19: Using Signals Course 102: Lecture 19: Using Signals
Course 102: Lecture 19: Using Signals
 
The e820 trap of Linux kernel hibernation
The e820 trap of Linux kernel hibernationThe e820 trap of Linux kernel hibernation
The e820 trap of Linux kernel hibernation
 
Course 102: Lecture 25: Devices and Device Drivers
Course 102: Lecture 25: Devices and Device Drivers Course 102: Lecture 25: Devices and Device Drivers
Course 102: Lecture 25: Devices and Device Drivers
 
Course 102: Lecture 10: Learning About the Shell
Course 102: Lecture 10: Learning About the Shell Course 102: Lecture 10: Learning About the Shell
Course 102: Lecture 10: Learning About the Shell
 
File systems for Embedded Linux
File systems for Embedded LinuxFile systems for Embedded Linux
File systems for Embedded Linux
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at Netflix
 
Continuous Go Profiling & Observability
Continuous Go Profiling & ObservabilityContinuous Go Profiling & Observability
Continuous Go Profiling & Observability
 
Embedded Linux Basics
Embedded Linux BasicsEmbedded Linux Basics
Embedded Linux Basics
 
Linux Interrupts
Linux InterruptsLinux Interrupts
Linux Interrupts
 
07. Mainboard (System Board, Motherboard)
07. Mainboard (System Board, Motherboard)07. Mainboard (System Board, Motherboard)
07. Mainboard (System Board, Motherboard)
 
Boot process
Boot processBoot process
Boot process
 
Linux
Linux Linux
Linux
 
5 p9 pnor and open bmc overview - final
5 p9 pnor and open bmc overview - final5 p9 pnor and open bmc overview - final
5 p9 pnor and open bmc overview - final
 
Course 102: Lecture 17: Process Monitoring
Course 102: Lecture 17: Process Monitoring Course 102: Lecture 17: Process Monitoring
Course 102: Lecture 17: Process Monitoring
 
Networking in linux
Networking in linuxNetworking in linux
Networking in linux
 
Course 101: Lecture 1: Introduction to Embedded Systems
Course 101: Lecture 1: Introduction to Embedded SystemsCourse 101: Lecture 1: Introduction to Embedded Systems
Course 101: Lecture 1: Introduction to Embedded Systems
 
Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU
 
Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
 

Viewers also liked

Egypt Startups Ecosystem 101 - Country Overview Dec 2015
Egypt Startups Ecosystem 101 - Country Overview Dec 2015Egypt Startups Ecosystem 101 - Country Overview Dec 2015
Egypt Startups Ecosystem 101 - Country Overview Dec 2015
Ameer Sherif
 

Viewers also liked (20)

C 102 lec_29_what_s_next
C 102 lec_29_what_s_nextC 102 lec_29_what_s_next
C 102 lec_29_what_s_next
 
Embedded Systems: Lecture 7: Unwrapping the Raspberry Pi
Embedded Systems: Lecture 7: Unwrapping the Raspberry PiEmbedded Systems: Lecture 7: Unwrapping the Raspberry Pi
Embedded Systems: Lecture 7: Unwrapping the Raspberry Pi
 
Embedded Systems: Lecture 5: A Tour in RTOS Land
Embedded Systems: Lecture 5: A Tour in RTOS LandEmbedded Systems: Lecture 5: A Tour in RTOS Land
Embedded Systems: Lecture 5: A Tour in RTOS Land
 
Course 102: Lecture 8: Composite Commands
Course 102: Lecture 8: Composite Commands Course 102: Lecture 8: Composite Commands
Course 102: Lecture 8: Composite Commands
 
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)
 
Embedded Systems: Lecture 4: Selecting the Proper RTOS
Embedded Systems: Lecture 4: Selecting the Proper RTOSEmbedded Systems: Lecture 4: Selecting the Proper RTOS
Embedded Systems: Lecture 4: Selecting the Proper RTOS
 
Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)
Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)
Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)
 
Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)
Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)
Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)
 
Embedded Systems: Lecture 6: Linux & GNU
Embedded Systems: Lecture 6: Linux & GNUEmbedded Systems: Lecture 6: Linux & GNU
Embedded Systems: Lecture 6: Linux & GNU
 
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
 
Embedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi AP
Embedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi APEmbedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi AP
Embedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi AP
 
Embedded Systems: Lecture 13: Introduction to GNU Toolchain (Build Tools)
Embedded Systems: Lecture 13: Introduction to GNU Toolchain (Build Tools)Embedded Systems: Lecture 13: Introduction to GNU Toolchain (Build Tools)
Embedded Systems: Lecture 13: Introduction to GNU Toolchain (Build Tools)
 
Course 102: Lecture 5: File Handling Internals
Course 102: Lecture 5: File Handling Internals Course 102: Lecture 5: File Handling Internals
Course 102: Lecture 5: File Handling Internals
 
Course 102: Lecture 11: Environment Variables
Course 102: Lecture 11: Environment VariablesCourse 102: Lecture 11: Environment Variables
Course 102: Lecture 11: Environment Variables
 
Egypt Startups Ecosystem 101 - Country Overview Dec 2015
Egypt Startups Ecosystem 101 - Country Overview Dec 2015Egypt Startups Ecosystem 101 - Country Overview Dec 2015
Egypt Startups Ecosystem 101 - Country Overview Dec 2015
 
Course 102: Lecture 12: Basic Text Handling
Course 102: Lecture 12: Basic Text Handling Course 102: Lecture 12: Basic Text Handling
Course 102: Lecture 12: Basic Text Handling
 
Course 102: Lecture 20: Networking In Linux (Basic Concepts)
Course 102: Lecture 20: Networking In Linux (Basic Concepts) Course 102: Lecture 20: Networking In Linux (Basic Concepts)
Course 102: Lecture 20: Networking In Linux (Basic Concepts)
 
Course 102: Lecture 22: Package Management
Course 102: Lecture 22: Package Management Course 102: Lecture 22: Package Management
Course 102: Lecture 22: Package Management
 
Embedded Systems: Lecture 8: The Raspberry Pi as a Linux Box
Embedded Systems: Lecture 8: The Raspberry Pi as a Linux BoxEmbedded Systems: Lecture 8: The Raspberry Pi as a Linux Box
Embedded Systems: Lecture 8: The Raspberry Pi as a Linux Box
 
Course 102: Lecture 27: FileSystems in Linux (Part 2)
Course 102: Lecture 27: FileSystems in Linux (Part 2)Course 102: Lecture 27: FileSystems in Linux (Part 2)
Course 102: Lecture 27: FileSystems in Linux (Part 2)
 

Similar to Embedded Systems: Lecture 1: Course Overview

Preparing faculty for change in learning management systems
Preparing faculty for change in learning management systemsPreparing faculty for change in learning management systems
Preparing faculty for change in learning management systems
Brett Creech
 
Edu614 session 4 summer 14
Edu614 session 4 summer 14  Edu614 session 4 summer 14
Edu614 session 4 summer 14
Kathy Favazza
 
Task 4 final: Consultants-E E-Moderating Course Oct 2015
Task 4 final: Consultants-E E-Moderating Course Oct 2015Task 4 final: Consultants-E E-Moderating Course Oct 2015
Task 4 final: Consultants-E E-Moderating Course Oct 2015
brendawm
 
Online recording series 10.19
Online recording series 10.19Online recording series 10.19
Online recording series 10.19
marilyngonzo
 

Similar to Embedded Systems: Lecture 1: Course Overview (20)

Tips for using Brightspace in the Development and Delivery of a Fully Online ...
Tips for using Brightspace in the Development and Delivery of a Fully Online ...Tips for using Brightspace in the Development and Delivery of a Fully Online ...
Tips for using Brightspace in the Development and Delivery of a Fully Online ...
 
Lec01_Course_Overview.ppt
Lec01_Course_Overview.pptLec01_Course_Overview.ppt
Lec01_Course_Overview.ppt
 
MOOCs
MOOCsMOOCs
MOOCs
 
Preparing faculty for change in learning management systems
Preparing faculty for change in learning management systemsPreparing faculty for change in learning management systems
Preparing faculty for change in learning management systems
 
Movingto moodle2 v1 1
Movingto moodle2 v1 1Movingto moodle2 v1 1
Movingto moodle2 v1 1
 
Edu614 session 4 summer 14
Edu614 session 4 summer 14  Edu614 session 4 summer 14
Edu614 session 4 summer 14
 
Week2 lesson final-collab
Week2 lesson final-collabWeek2 lesson final-collab
Week2 lesson final-collab
 
Management of Distance Learning Systems in China - Designing vle
Management of Distance Learning Systems in China - Designing vleManagement of Distance Learning Systems in China - Designing vle
Management of Distance Learning Systems in China - Designing vle
 
2CPP01 - Intro to Module
2CPP01 - Intro to Module2CPP01 - Intro to Module
2CPP01 - Intro to Module
 
KTD e-learning solutions
KTD e-learning solutionsKTD e-learning solutions
KTD e-learning solutions
 
BbWorld 2010 notes
BbWorld 2010 notesBbWorld 2010 notes
BbWorld 2010 notes
 
How online design_training_works
How online design_training_worksHow online design_training_works
How online design_training_works
 
Instructional Designer Support Model Faculty Development Model - Competency-B...
Instructional Designer Support Model Faculty Development Model - Competency-B...Instructional Designer Support Model Faculty Development Model - Competency-B...
Instructional Designer Support Model Faculty Development Model - Competency-B...
 
Task 4 final: Consultants-E E-Moderating Course Oct 2015
Task 4 final: Consultants-E E-Moderating Course Oct 2015Task 4 final: Consultants-E E-Moderating Course Oct 2015
Task 4 final: Consultants-E E-Moderating Course Oct 2015
 
DevOps as an emerging university discipline
DevOps as an emerging university disciplineDevOps as an emerging university discipline
DevOps as an emerging university discipline
 
PLUTO Institute: Accessibility and Universal Design
PLUTO Institute: Accessibility and Universal DesignPLUTO Institute: Accessibility and Universal Design
PLUTO Institute: Accessibility and Universal Design
 
Feeding and Captivating OU Students
Feeding and Captivating OU StudentsFeeding and Captivating OU Students
Feeding and Captivating OU Students
 
Using SPOCs/MOOCs to transform traditional training in the Language Service I...
Using SPOCs/MOOCs to transform traditional training in the Language Service I...Using SPOCs/MOOCs to transform traditional training in the Language Service I...
Using SPOCs/MOOCs to transform traditional training in the Language Service I...
 
ATS-High-level design document
ATS-High-level design documentATS-High-level design document
ATS-High-level design document
 
Online recording series 10.19
Online recording series 10.19Online recording series 10.19
Online recording series 10.19
 

More from Ahmed El-Arabawy

More from Ahmed El-Arabawy (13)

Course 102: Lecture 26: FileSystems in Linux (Part 1)
Course 102: Lecture 26: FileSystems in Linux (Part 1) Course 102: Lecture 26: FileSystems in Linux (Part 1)
Course 102: Lecture 26: FileSystems in Linux (Part 1)
 
Course 102: Lecture 24: Archiving and Compression of Files
Course 102: Lecture 24: Archiving and Compression of Files Course 102: Lecture 24: Archiving and Compression of Files
Course 102: Lecture 24: Archiving and Compression of Files
 
Course 102: Lecture 18: Process Life Cycle
Course 102: Lecture 18: Process Life CycleCourse 102: Lecture 18: Process Life Cycle
Course 102: Lecture 18: Process Life Cycle
 
Course 102: Lecture 14: Users and Permissions
Course 102: Lecture 14: Users and PermissionsCourse 102: Lecture 14: Users and Permissions
Course 102: Lecture 14: Users and Permissions
 
Course 102: Lecture 13: Regular Expressions
Course 102: Lecture 13: Regular Expressions Course 102: Lecture 13: Regular Expressions
Course 102: Lecture 13: Regular Expressions
 
Course 102: Lecture 7: Simple Utilities
Course 102: Lecture 7: Simple Utilities Course 102: Lecture 7: Simple Utilities
Course 102: Lecture 7: Simple Utilities
 
Course 102: Lecture 6: Seeking Help
Course 102: Lecture 6: Seeking HelpCourse 102: Lecture 6: Seeking Help
Course 102: Lecture 6: Seeking Help
 
Course 102: Lecture 4: Using Wild Cards
Course 102: Lecture 4: Using Wild CardsCourse 102: Lecture 4: Using Wild Cards
Course 102: Lecture 4: Using Wild Cards
 
Course 102: Lecture 3: Basic Concepts And Commands
Course 102: Lecture 3: Basic Concepts And Commands Course 102: Lecture 3: Basic Concepts And Commands
Course 102: Lecture 3: Basic Concepts And Commands
 
Course 102: Lecture 2: Unwrapping Linux
Course 102: Lecture 2: Unwrapping Linux Course 102: Lecture 2: Unwrapping Linux
Course 102: Lecture 2: Unwrapping Linux
 
Course 101: Lecture 6: Installing Ubuntu
Course 101: Lecture 6: Installing Ubuntu Course 101: Lecture 6: Installing Ubuntu
Course 101: Lecture 6: Installing Ubuntu
 
Course 101: Lecture 4: A Tour in RTOS Land
Course 101: Lecture 4: A Tour in RTOS Land Course 101: Lecture 4: A Tour in RTOS Land
Course 101: Lecture 4: A Tour in RTOS Land
 
Course 101: Lecture 2: Introduction to Operating Systems
Course 101: Lecture 2: Introduction to Operating Systems Course 101: Lecture 2: Introduction to Operating Systems
Course 101: Lecture 2: Introduction to Operating Systems
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 

Embedded Systems: Lecture 1: Course Overview

  • 1. Linux For Embedded Systems ForArabs Ahmed ElArabawy Cairo University Computer Eng. Dept. CMP445-Embedded Systems
  • 3. The Lecturer • Ahmed ElArabawy • Education: • BSc Alexandria University (1992) • MSc Alexandria University (1994) • PhD SMU University, TX, USA (2001) • Work • Faculty Staff @ Alexandria Univ. • Faculty Staff @ Cairo Univ. • Microsoft, SySDSoft (Egypt) • Ericsson, Broadcom, Solectek, WiLan Labs (USA) • Embedded Systems Initiatives • Linux for Embedded Systems http://linux4embeddedsystems.com/ https://www.facebook.com/groups/linuxforEmbeddedSystems/ • Raspberry Pi for Arabs https://www.facebook.com/groups/linuxforEmbeddedSystems/ • More Details https://www.linkedin.com/in/ahmedelarabawy
  • 4. This Course • This is an introductory hands-on course in the area of Embedded Systems • We will be using the Raspberry Pi to learn about the basic aspects of Embedded Development • We should come out from this course with a decent level of knowledge and hands on experience with embedded systems • Although the course addresses embedded systems in general, we will be focusing on the use the Raspberry Pi Board throughout the course
  • 5. Why The Raspberry Pi ?? • The reason of selecting the Raspberry Pi for this Course: • The Raspberry Pi is a very capable board, and can demonstrate all the aspects of embedded systems that we will study in this course (ARM Processor, Linux Support, … ) • The Raspberry Pi is very rich in its interfaces (USB, Ethernet, GPIO, I2C, SPI, UART, CSI, DSI, ….) • The Raspberry Pi has strong support of different programming and scripting languages (Bash, Python, Java, C/C++, ..) • The Raspberry Pi comes with a huge community and tons of tutorials and projects on the Internet • The Raspberry Pi is less Expensive than other comparable board • The Raspberry Pi is more available in local market than other boards
  • 6. What About Other Platforms ? • A lot of the materials in this course is useful for other embedded system boards • It is advisable to focus now on the Pi to avoid distractions in the boards differences, and to have a common platform • Later, you can apply the same course material on a lot of other platforms
  • 7. Course Objectives • The Internet is full of tutorials, guides, and videos for different projects on the Pi • So this course will not try to add to this pile with more projects • The Objective of this course is to perform a structures and organized study on Embedded Systems using the Pi and its associated capabilities • Each lecture will cover one concept in Embedded Systems using the Pi • I will be building mini-projects in the lecture to apply the concepts of the lecture • Then I will be referring to some of the online projects that utilize the discussed topic
  • 8. Course Projects • Most of the projects used in this course are simple projects that consider a single concept • Connecting to a specific sensor • Controlling a specific Motor • Interfacing to a specific Display • In real world projects, the system will contain multiple of these aspects • So consider the projects in this course as building blocks, for bigger projects • You will be assigned to do more projects on your own
  • 10. The Course Web Site • It is not enough to watch the video lectures • The Course Web Site includes much more resources • List of applicable Projects • Useful Links • More Reading Material • FAQ • Assignments • Quizzes and grading http://linux4embeddedsystems.com/
  • 11. Course Project Code • All code used in this course will be available on the course GitHub Repository https://github.com/Linux4EmbeddedSystems • You will need to have your own GitHub account, so if you don’t have one already, create one…. It is free https://github.com/ • You will need the GitHub account to deliver code and associated documentation for all assigned mini-projects
  • 12. Course Pre-requisites • Good Understanding of Linux and its command Line Interface, if you need to refresh your knowledge on this topic, attending the course C-102 Understanding Linux in the public section of the website is highly recommended (I will be referring to specific lectures throughout the course when needed ) • Have access to a Raspberry Pi Board is needed (you will be provided with one) • Other hardware accessories will be mentioned in each lecture • This course will use different computer programming and scripting languages: • It will use some Bash Scripts, no previous advanced knowledge of Bash Scripts are needed • It will use some Python Scripts, so it will be useful to have some knowledge about Python, but it is not a must since python is very easy to learn as we go • Some parts of the course will be using C Code • Other parts will be using Java Code
  • 13. Communication Channels Course WebSite • All Students will need to create an account in the course website http://linux4embeddedsystems.com • Students will need also to create a GitHub Account https://github.com/ • Students need to send me the email (used in the course login) and their GitHub username by Midnight today • I will enroll you in the course, and send you instructions by email • Announcements from the lecturer will be put on the website, and sent by email • The course website will contain, • Access to the lecture videos, note that the videos will be on youtube, so you can download them if you need to • Access to the lecture slides in pdf format • A list of required reading material. These are part of the course, and will be included in the midterm and final exams • A list of optional reading material. These are recommended for those who are interested in the topic, and they are not going to be part of the exam • Any course related announcements • Weekly assignments/mini-projects description • Quizzes and grades • Discussion forums
  • 14. Communication Channels Discussion Forum • All student questions should be placed on the discussion forum in the course website • Both the Lecturer and the course TAs will be monitoring the discussion forum to answer course related questions • Other students are encouraged to respond to their colleague questions • You can also post ideas, interesting articles, interesting embedded news on the discussion forum • It is highly encouraged to keep the discussion forum active with students/TAs/Lecturer interaction
  • 15. Communication Channels Lecturer Availability • It is highly recommended to use the discussion forum for student questions • However, if you need to address the lecturer directly, you can communicate to him via email aelarabawy.cmp445@gmail.com • Lecturer should be responding to your emails, or will ask you to post your question on the discussion forum (if the question does not require a private answer) • The Lecturer will be available online for interactive communication with the students on a specified time on weekly basis (time will be specified via a course announcement)
  • 16. Student Groups AssigningGroups • Some of the course assignments will be assigned on an individual basis • However, most of the course assignments will be assigned on team/group basis • Students will need to form teams/groups of 3-4 students per group • Each group will need to pick a name to their group (must be a name related to embedded Systems) • Each group will need to assign a group leader for their group • Each group leader will need to send to the Lecturer and TAs the group name and team member names by midnight Monday
  • 17. Project Assignments • Throughout the course there will be a lot of mini-projects assigned for students • Projects will be assigned on group basis • Sometimes all groups will have the same project, other times, each group will have their own project • Each group will be handed over a hardware kit at the beginning of the course (A Raspberry Pi + Accessories) • This hardware will remain with the students throughout the full term, and they will need to return it in a working condition at the end of the term • The provided hardware will include most of the required material for the assigned projects, however, sometimes minor additions may be required by the students • Project deliverable will be: • Showing the TA the project outcome • Commit the project code and associated documentation to the group leader GitHub Account • Send the lecturer an email to inform him of the readiness of the project
  • 18. Course Grading • Course Grade will be based on the following: • Final exam: 70% • Midterm exam: 10% • Projects and Assignments: 20% • All exams will be open book, open notes (all you can bring) • Exams will cover: • Lecture material • Mandatory Reading material • Assignments and Projects
  • 20. Course Contents Overview on Embedded Systems
  • 21. Course Contents Overview on Embedded Systems OSs
  • 24. Course Contents The Pi as a Linux Box
  • 25. Course Contents The Pi Control Arm
  • 37. Course Contents LCD and Touch Screens
  • 39. Course Contents The Pi and the Web