Embedded Computing

for Mechanical Engineers

This page contains the Embedded Computing for Mechanical Engineers manuscript, which is used as the text for the course MME 577 and EE/ME 477.

For corresponding source code (C, Matlab, Python, etc.), see the source page.

Single file

A single pdf with all lectures can be downloaded here.

Individual lecture files

Click the thumbnails on the notes below to get a pdf version.

000.00 Orientation

00.00 Introduction to embedded computing

00.01 Embedded control of mechanical systems

00.02 Computer architectures

00.03 Numeral systems

00.04 Binary and hexadecimal arithmetic

00.05 Exploring C building a sandbox

00.06 Exercises for Chapter 00

00.07 Lab Exercise 00 Getting started

00.08 Resource R1 High level embedded system

01.00 Memory

01.01 Processing

01.02 A CPU programming model

01.03 Exercises for Chapter 01

01.04 Lab Exercise 01 High level io drivers

01.05 Exploring C and mid level io

02.00 A paper computer

02.01 Exploring C operators

02.02 Exploring C constants

02.03 Exploring C pointers

02.04 Exercises for Chapter 02

02.05 Lab Exercise 02 Keypad mid level primitives

02.06 Digital com. and io

03.00 Digital communication

03.01 UARTs

03.02 Digital signals

03.03 Exploring C structures

03.04 Lab Exercise 03 Low level character io

03.05 Timing Threads and Finite State Machines

04.00 Pulse width modulation

04.01 DC motor driving

04.02 Measuring motor velocity

04.03 Finite state machines

04.04 Exercises for Chapter 04

04.05 Lab Exercise 04 FSM motor control

04.06 Resource R9 Saving myRIO C data to a Matlab file

05.00 Processing threads

05.01 Interrupts

05.02 Boolean algebra on digital signals

05.03 Debouncing switches

05.04 Lab Exercise 05 Introduction to interrupts

05.05 Resource R11 Interrupt functions documentation

06.00 ADC and DAC

06.01 Difference equations

06.02 Discrete transfer functions

06.03 The biquad cascade

06.04 Resource R12 Timer interrupts

06.05 Resource R13 Discrete time controllers

07.00 DC motor velocity control

07.01 Designing a PI controller

07.02 Exercises for Chapter 07

07.03 Lab Exercise 07 DC motor velocity control

07.04 Resource R15 A table editor for the myRIO

08.00 Path planning

08.01 Designing a PID controller

08.02 Exercises for Chapter 08

08.03 Lab Exercise 08 DC motor position control

08.04 Resource R16 C function Sramps for position path planning

A.00 Resources

B.00 Bibliography

R10.00 Threads and interrupts

R11.00 Feedback Control of Mechanical Systems

R12.00 Lab Exercise 06 Transfer function generator

R13.00 Resource R14 Analog input and output

R14.00 Closed loop control

R15.00 Path planning

R16.00 Resource R17 Matlab function sos2header for converting controllers to C

R17.00 Embedded Computing Laboratory

R1.00 Resource R2 Embedded computer and development environment subsystem

R2.00 Resource R3 User interface hardware subsystem

R3.00 Resource R4 Motor driver subsystem

R4.00 Resource R5 Motor and mechanical apparatus subsystem

R5.00 Resource R6 Sourcing and costs

R6.00 Resource R7 Setting up the C Development Tool for myRIO

R7.00 Resource R8 Suggested reading

R8.00 The User Interface

R9.00 Resource R10 Copley 412 analog amplifier setup

\contentsline.00 Contents

{chapter.00 Preface