Showing posts with label Embedded Systems. Show all posts
Showing posts with label Embedded Systems. Show all posts

Sunday, 16 December 2012

How to Make a Robot


This a series of 10 lessons that will teach you how to make your own robot. This tutorial is aimed at anybody willing to get started in robotics and have a basic understanding of terms such as “voltage”, “current”, “motor”, and “sensors”. Although this might seem pretty basic, even people with previous robot building experience might find useful information regarding the general method of building a robot.

You can download these lectures here

Lesson 1 – Getting Started. (Download)
Lesson 2 – Choosing a Robotic Platform. (Download)
Lesson 3 – Making Sense of Actuators. (Download)
Lesson 4 – Understanding Micro-controllers. (Download)
Lesson 5 – Choosing a Motor Controller. (Download)
Lesson 6 – Controlling your Robot. (Download)
Lesson 7 – Using Sensors. (Download)
Lesson 8 – Getting the Right Tools. (Download)
Lesson 9 – Assembling a Robot. (Download)
Lesson 10 – Programming a Robot. (Download)

This tutorial is presented by the Grand RobotShop.

Please feel free to leave a comment if there is a dead link or a problem with the links.
Read more ...

Tuesday, 6 November 2012

Computer Architecture and Organization Book Slides

In computer science and engineeringcomputer architecture refers to specification of the relationship between different hardware components of a computer system.

Here are the slides for the great book :
"Computer Architecture and Organization : Designing For Performance", by William Stallings, 7th Ed.


Chapter 1 - Introduction. (Download)
Chapter 2 - Computer Evolution and Performance. (Download)
Chapter 3 - System Buses. (Download)
Chapter 4 - Cache Memory. (Download)
Chapter 5 - Internal Memory. (Download)
Chapter 6 - External Memory. (Download)
Chapter 7 - Input/Output. (Download)
Chapter 8 - Operating System Support. (Download)
Chapter 9 - Computer Arithmetic. (Download)
Chapter 10 - Instruction Sets : Characteristics and Functions. (Download)
Chapter 11 - Instruction Sets : Addressing Modes and Formats. (Download)
Chapter 12 - CPU Structure and Function. (Download)
Chapter 13 - RISC (Reduced Instruction Set Computers). (Download)
Chapter 14 - Instruction Level Parallelism and Super Scalar Processors. (Download)
Chapter 15 - IA - 64 Architecture. (Download)
Chapter 16 - Control Unit Operation. (Download)
Chapter 17 - Micro-programmed Control. (Download)
Chapter 18 - Parallel Processing. (Download)


Please feel free to leave a comment if there is a dead link or a problem with the links.

Read more ...

Sunday, 4 November 2012

Digital Design Using VHDL Course


Course Outlines

  • Introduction to VHDL
  • Statements in VHDL
  • Sequential Statements
  • Concurrent Statements
  • Data Objects
  • Data Operators
  • Data types
  • FSM finite state machines
  • Structural Description
  • Testbench
  • Introduction to FPGA
  • Implementation on FPGA

Tools Used during course


You can download this course here :


- Introduction to VHDL
- ASIC & FPGA Design flow
- How to read and write VHDL code
- Library and package
- Entity
- Basic data types
- Architecture

- Combinational vs Sequential 
- Data Objects
     - Signals
VHDL Statements
     - Sequential Statements
        - What is Process 
        - IF Statement
        - CASE Statement
- Combinational Logic
- Sequential Logic


- Concurrent Statements
      1-Assign Statement 
      2-Process
      3-When-else
      4-With-select
- Data Objects
      1-Signals
      2-Variables
      3-Constants


- Data Operators
      - Aggregate
      - Concatenation
      - Attributes


- Data Types
      - Scalar
      - Composite
      - User defined


- Finite State Machine
      - What is FSM?
      - Moore machine
      - Mealy machine
      - FSM in VHDL


- Structural Description
- Generic Statements
- Packages
- Generate Statements
            -For Generate


- Arithmetic Circuits
- Tutorial [2] 
        - IP Cores
        - ISIM Simulator
        - Language Templates
- VHDL Coding TIPS


- Sequential Statements
      - Loops For-While
      - Next-Exit Statements
      - Wait Statement
      - Null Statement
      - Assert Statement
      - Functions
      - Procedures 
- Test Benches
- Dealing with Files
- Modelsim and Do Files


- Test bench example
- ASIC & FPGA Design flow
- implementation phases 
- FPGA Architecture
      - Demo programming FPGA SP3
- FIFO

Please feel free to leave a comment if there is a dead link or a problem with the links.

Read more ...

Friday, 2 November 2012

VHDL Course

introduction to VHDL

The VHSIC (Very High Speed Integrated Circuits) Hardware Description Language is an industry standard language used to describe hardware from the abstract to the concrete level. In 1986, VHDL was proposed as an IEEEstandard. It went through a number of revisions and changes until it was adopted as the IEEE 1076 standard in December 1987, Then VHDL 1076-1993 and the latest VHDL 1076-2002.

Here I introduce an easy introduction Course to VHDL divided in 6 parts :

Part-1 : Introducing VHDL. (Download Here)
  • Introduction.
  • Levels of representation.
  • Structure of a VHDL file.
Part-2 : Modeling in VHDL. (Download Here)
  • Behavioral Modeling.
  • Sequential Modeling.
Part-3 : Concurrent Statements. (Download Here)
  • Simple Concurrent Signal Assignments.
  • Conditional Signal Assignments.
  • Selected Signal Assignments.
  • Structural Modeling.
  • Component Declaration.
  • Component Instantiation.
Part-4 : Data objects. (Download Here)
  • Constants.
  • Variables.
  • Signals.
  • Signals vs. Variables.
Part-5 : Combinational Circuit Design Example. (Download Here)
  • Full Adder Circuit.
Part-6 : Sequential Circuit Design Example. (Download Here)
  • Counter using JK Flip-Flops.

ALTERA VHDL Online Course

Altera made a nice presentation for learning the basics of the VHDL language in just 1.5 hours and it's for free, you need only to register and you can run the course online .

>> Objectives of the course :
  1. Construct complete VHDL models .
  2. Generate Logic functions using the VHDL .
  3. Create hierarchical VHDL designs.
>> Course outlines:
  1. VHDL introduction.
  2. Design units.
  3. Architecture modeling fundamentals.
  4. VHDL logic synthesis.
  5. Hierarchical designing.

Please feel free to leave a comment if there is a dead link or a problem with the links.
Read more ...

Wednesday, 24 October 2012

Introduction to PLC book slides

A programmable Logic Controller, usually called a PLC or programmable controller, is a solid-state, digital, industrial computer. Simply, a programmable controller is a computer, much like a desktop personal computer. A PLC is an industrially hardened computer.

These are the slides of the book :
" Introduction to Programmable Logic Controllers, 3e by Gary Dunning "



Chapter 01 : Welcome to PLCs. (Download Here)
Chapter 02 : Micro PLCs. (Download Here)
Chapter 03 : Programming a PLC. (Download Here)
Chapter 04 : Number Systems. (Download Here)
Chapter 05 : Digital and Analog Interface. (Download Here)
Chapter 06 : Intro to Logic. (Download here)
Chapter 07 : Input Modules. (Download Here)
Chapter 08 : Output Modules. (Download Here)
Chapter 09 : Modular PLC. (Download Here)
Chapter 10 : PLC Processors. (Download Here)
Chapter 11 : Intro to ControlNet. (Download Here)
Chapter 11 : Intro to DeviceNet. (Download Here)
Chapter 12 : Data Organization. (Download Here)
Chapter 13 : Basic Relay Instructions. (Download Here)
Chapter 14 : Understanding Relay Instructions. (Download Here)
Chapter 15 : Documentation. (Download Here)
Chapter 16 : Timers and Counters. (Download Here)
Chapter 17 : Comparison and Data-handling. (Download Here)


ADVANCED :

Please feel free to leave a comment if there is a dead link or a problem with the links.

Read more ...

Saturday, 20 October 2012

Arduino Tutorial (Videos)



Arduino is an open source physical computing platform based on a simple input/output (I/O) board and a development environment that implements the Processing language (www.processing.org). Arduino can be used to develop standalone interactive objects or can be connected to software on your computer (such as Flash, Processing, VVVV, or Max/MSP). The boards can be assembled by hand or purchased pre-assembled; the open source IDE (Integrated Development Environment) can be downloaded for free from www.arduino.cc.

Here is a tutorial series to learn arduino in a simple and easy way :


Tutorial 01 for Arduino: Getting Acquainted with Arduino. (Video)

Tutorial 02 for Arduino: Buttons, PWM, and Functions. (Video)

Tutorial 03 for Arduino: Electrical Engineering Basics. (Video)

Tutorial 04 for Arduino: Analog Inputs. (Video)

Tutorial 05 for Arduino: Motors and Transistors. (Video)

Tutorial 06 for Arduino: Serial Communication and Processing. (Video)

Tutorial 07 for Arduino: I2C Communication and Processing. (Video)

Tutorial 08 for Arduino: SPI Interfaces. (Video)

Tutorial 09 for Arduino: Wireless Communication. (Video)

Tutorial 10 for Arduino: Interrupts and Hardware Debouncing. (Video)

Tutorial 11 for Arduino: SD Cards and Datalogging. (Video)

Tutorial 12 for Arduino: RFID Card Reading. (Video)

Tutorial 13 for Arduino: Liquid Crystal Displays (LCDs). (Video)

Tutorial 14 for Arduino: Holiday Lights and Sounds Spectacular!. (Video)

Tutorial 15 for Arduino: GPS Tracking. (Video)

Please feel free to leave a comment if there is a dead link or a problem with the links.

Read more ...

Monday, 15 October 2012

Atmel Microcontroller Course

Atmel Microntroller Course

Here are Lecture notes for Atmel microcontroller course. This course is focused on Atmega16 microcontroller (AVR Family). The programming language used in this course is "C" and the compiler (editor) used is codevision avr compiler.

You can download the lecture notes (slides) here :

Lecture-1 : Introduction on Microcontrollers and Embedded Systems. (Download Here)
Lecture-2 : Memories of ATmega16 Microcontroller. (Download Here)
Lecture-3 : Digital Input/Output Ports (I/O Ports). (Download Here)
Lecture-4 : External and Internal Interrupts. (Download Here)
Lecture-5 : Timers of ATmega16 Microcontroller. (Download Here)
Lecture-6 : Clock Sources and Sleep Modes. (Download Here)
Lecture-7 : Reset Sources and Watch-Dog Timer. (Download Here)
Lecture-8 : Communication Modes of ATmega16. (Download Here)
                 - Serial Peripheral Interface (SPI).
                 - Universal Synchronous and Asynchronous Receiver and Transmitter (USART).
                 - Two-Wire Serial Interface (TWI) also Known as (I2C).
Lecture-9 : Dealing With Analog Signals. (Download Here)
                 - Analog to Digital Converter. (A/D)
                 - Analog Comparator.
Lecture-10 : Lock Bits, Fuse Bits and Boot Loader. (Download Here)

Also you can download the data-sheet of ATmega16 from the following link :

Programs used in this course are :

NOTE :

 You need to know basics of C language ( you can see this link : Summary of C language )

Please feel free to leave a comment if there is a dead link or a problem with the links.
Read more ...

Thursday, 11 October 2012

8086 Assembly Language Lectures

Assembly Language course


Assembly Language is a low level programming language. You must know the architecture of the processor you are working with to program it but the Assembly language let's you take control of everything in the processor.




This is an undergraduate course to learn how to program the 8086 processor using Assembly language :

Lecture-1 : Introduction. (Download Here)
Lecture-2 : Assembly Language Programming. (Download Here)
Lecture-3 : Arithmetic and Logic Instructions. (Download Here)
Lecture-4 : Addressing Modes. (Download Here)
Lecture-5 : Data Movement Instructions. (Download Here)
Lecture-6 : Signed Numbers, Strings and Tables. (Download Here)
Lecture-7 : 8088, 80286 and Other Microprocessors. (Download Here)
Lecture-8 : 8087 Math co-processor and DMA (Direct Memory Access). (Download Here)


References :

  • The Intel Microprocessors, Barry B. Brey, Any Edition.
  • The 80x86 IBM PC Compatible Computers (Volumes I & II) - Assembly Language, Design and Interfacing, Muhammad Ali Mazidi, 4th Edition.
Advanced Course :
See the 8086 Microprocessor interfacing Course.  (Click Here)

Please feel free to leave a comment if there is a dead link or a problem with the links.
Read more ...

Tuesday, 9 October 2012

8086 Microprocessor Interfacing Lectures

8086 microprocessor interfacing lectures

Course Objective :

To familiarize students with embedded system design. Students will have a thorough understanding of hardware, software and system integration.
  • Introduce the basics of subsystems organization, timing and interfacing.
  • Help the student to understand various aspects of hardware design, such as addressing, bus structures of memory interfacing.
  • The students will also learn addressing, bus structures of different I/O devices interfacing.
  • Help the student to understand the interrupt mechanisms.
  • To provide experience to write software in machine or assembly language for embedded system applications.

Course Topics:

  1. Revision to microprocessors.
  2. Multiplexed pins. 
  3. Memory interfacing. 
  4. The programmable peripheral interface 8255.
  5. The programmable interval timer 8254.
  6. The programmable communication interface 8251.
  7. The keyboard interface 8051.
  8. The display interface 8279.
  9. The interrupt controller 8259.
Lecture-1 : Introduction. (Download Here
Lecture-2 : 8086 Hardware Specifications. (Download Here)
Lecture-3 : Memory Interfacing. (Download Here)
Lecture-4 : Programmable Interval Timer. (Download Here)
Lecture-5 : 82C55 programmable peripheral interface. (Download Here)
Lecture-6 : 16550 programmable communication interface. (Download Here)
Lecture-7 : ADC and DAC. (Download Here)
Lecture-8 : Interrupts. (Download Here)

Textbook:
“The Intel Microprocessors 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, and Pentium Pro Processor Architecture, Programming, and Inter- facing”

References:
- James L. Antonakos . Prentice Hall, 3ed Edition, 1999  The 80x86 Family : Design, Programming and Interfacing by John Uffenbeck, Third Edition, Prentice Hall.
- M. Sargent III and R. L. Shoemaker, The IBM Personal Computer From the Inside Out, Addison-Wesley.
- Douglas V . Hall, Microprocessors and interfacing: programming and hardware, McGraw-Hill.

Pre-requests :
You must know about Assembly Language Programming, see the following Link :
Click Here

Please feel free to leave a comment if there is a dead link or a problem with the links.
Read more ...

Wednesday, 3 October 2012

Embedded Systems Lectures (Videos)

Embedded Systems Course

An embedded system is a computer system designed for specific control functions within a larger system, often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts.

Source : Wikipedia





Here are video lectures of Embedded Systems Course :

Lecture -1 Embedded Systems: Introduction 

Lecture - 2 Embedded Hardware 

Lecture - 3 PIC: Instruction Set 

Lecture - 4 PIC Peripherals On Chip 

Lecture - 5 ARM Processor 

Lecture - 6 More ARM Instructions 

Lecture - 7 ARM: Interrupt Processing 

Lecture - 8 Digital Signal Processors 

Lecture - 9 More on DSP Processors 

Lecture - 10 System On Chip (SOC) 

Lecture - 11 Memory 

Lecture - 12 Memory Organization 

Lecture -13 Virtual Memory and Memory Management Unit 

Lecture - 14 Bus Structure

Lecture - 15 Bus Structure 2 

Lecture - 16 Bus Structure - 3 Serial Interfaces 

Lecture - 17 Serial Interfaces 

Lecture - 18 Power Aware Architecture 

Lecture - 19 Software for Embedded Systems 

Lecture - 20 Fundamentals of Embedded Operating Systems 

Lecture - 21 Scheduling Policies 

Lecture - 22 Resource Management 

Lecture - 23 Embedded - OS 

Lecture - 24 Networked Embedded System 

Lecture - 25 Networked Embedded Systems - II 

Lecture - 26 Network Embedded System III 

Lecture - 27 Network Embedded System IV 

Lecture - 28 Designing Embedded Systems 

Lecture - 29 Designing Embedded Systems - II

Lecture - 30 Designing Embedded Systems- III

Lecture - 31 Embedded System Design - IV 

Lecture - 32 Designing Embedded Systems - V 

Lecture - 33 Platform Based Design 

Lecture - 34 Compilers for Embedded Systems 

Lecture - 35 Developing Embedded Systems

Lecture - 36 Building Dependable Embedded Systems 

Lecture - 37 Pervasive & Ubiquitous Computing 

These videos are available on the following link:
CLICK HERE


Please feel free to leave a comment if there is a dead link or a problem with the links.
Read more ...

Fuzzy Logic and Systems Lectures

Fuzzy Logic  is a form of many-valued logic or probabilistic logic; it deals with reasoning that is approximate rather than fixed and exact. In contrast with traditional logic they can have varying values, where binary sets have two-valued logic, true or false, fuzzy logic variables may have a truth value that ranges in degree between 0 and 1. Fuzzy logic has been extended to handle the concept of partial truth, where the truth value may range between completely true and completely false.

Source : Wikipedia



Here are lectures slides for Fuzzy Logic and Systems for undergraduate students.

Lecture-1 : Introduction to Fuzzy Logic and Systems. (Download Here)
Lecture-2 : Classical and Fuzzy Sets. (Download Here)
Lecture-3 : Crisp and Fuzzy Relations. (Download Here)
Lecture-4 : Membership Functions. (Download Here)
Lecture-5 : Fuzzy Numbers, Arithmetic, and the Extension Principle. (Download Here)
Lecture-6 : Fuzzy Rules. (Download Here)
Lecture-7 : Decision Making. (Download Here)
Lecture-8 : Classifiers and Pattern Recognition. (Download Here)
Lecture-9 : Fuzzy Control Systems. (Download Here)

Reference used in Fuzzy Logic and Systems are :

  1. Fuzzy Logic for Embedded Systems Applications, Ahmad M. Ibrahim

Please feel free to leave a comment if there is a dead link or a problem with the links.
Read more ...