Difference between revisions of "ME 333 Readings, Videos, and Sample Code"

From Mech
Jump to navigationJump to search
Line 239: Line 239:
----
----


===Chapter 11: UART===
===UART===
** [[Media:UART_loopback.c|UART_loopback.c]]
** [[Media:UART_loopback.c|UART_loopback.c]]
** [[Media:UART_pic_to_pic.c|UART_pic_to_pic.c]]
** [[Media:UART_pic_to_pic.c|UART_pic_to_pic.c]]
Line 252: Line 252:
----
----


===Chapter 12: SPI Communication===
===SPI Communication===
** [[Media:SPI_loopback.c|SPI_loopback.c]]
** [[Media:SPI_loopback.c|SPI_loopback.c]]
** [[Media:SPI_pic_to_pic.c|SPI_pic_to_pic.c]]
** [[Media:SPI_pic_to_pic.c|SPI_pic_to_pic.c]]
Line 263: Line 263:
----
----


===Chapter 13: I2C Communication===
===I2C Communication===
** [[Media:I2C_loopback.c|I2C_loopback.c]]
** [[Media:I2C_loopback.c|I2C_loopback.c]]
** [[Media:I2C_pic_to_pic.c|I2C_pic_to_pic.c]]
** [[Media:I2C_pic_to_pic.c|I2C_pic_to_pic.c]]
Line 272: Line 272:
----
----


===Chapter 14: USB===
===USB===
** [[Media:USB_HID.zip|USB_HID.zip]]
** [[Media:USB_HID.zip|USB_HID.zip]]
** [[Media:USB_CDC.zip|USB_CDC.zip]]
** [[Media:USB_CDC.zip|USB_CDC.zip]]
Line 279: Line 279:
----
----


===Chapter 15: Input Capture===
===Input Capture===
** [[Media:IC_loopbackPWM.c|IC_loopbackPWM.c]]
** [[Media:IC_loopbackPWM.c|IC_loopbackPWM.c]]
** [[Media:IC_readRemoteControl.c|IC_readRemoteControl.c]]
** [[Media:IC_readRemoteControl.c|IC_readRemoteControl.c]]
Line 285: Line 285:
----
----


===Chapter 16: Comparator===
===Comparator===
** [[Media:COMP_internal.c|COMP_internal.c]]
** [[Media:COMP_internal.c|COMP_internal.c]]
** [[Media:COMP_output16values.c|COMP_output16values.c]]
** [[Media:COMP_output16values.c|COMP_output16values.c]]
Line 292: Line 292:
----
----


===Chapter 17: Watchdog Timer===
===Watchdog Timer===
** [[Media:WDT_enableReset.c|WDT_enableReset.c]]
** [[Media:WDT_enableReset.c|WDT_enableReset.c]]
** [[Media:WDT_checkPreviousReset.c|WDT_checkPreviousReset.c]]
** [[Media:WDT_checkPreviousReset.c|WDT_checkPreviousReset.c]]
Line 298: Line 298:
----
----


===Chapter 18: Storing Data in Flash Memory===
===Storing Data in Flash Memory===
** [[Media:FLASH_write.c|FLASH_write.c]]
** [[Media:FLASH_write.c|FLASH_write.c]]


----
----


===Chapter 19: Power Saving===
===Power Saving===
** [[Media:PWR_sleep.c|PWR_sleep.c]]
** [[Media:PWR_sleep.c|PWR_sleep.c]]


----
----


===Chapter 20: Real-time Clock and Calendar===
===Real-time Clock and Calendar===
** [[Media:RTCC_set.c|RTCC_set.c]]
** [[Media:RTCC_set.c|RTCC_set.c]]


----
----


===Chapter 21: Controller Area Network (CAN)===
===Controller Area Network (CAN)===
** [[Media:CAN_pic_to_pic.c|CAN_pic_to_pic.c]]
** [[Media:CAN_pic_to_pic.c|CAN_pic_to_pic.c]]


----
----


===Chapter 22: Direct Memory Access===
===Direct Memory Access===
** [[Media:DMA_adc.c|DMA_adc.c]]
** [[Media:DMA_adc.c|DMA_adc.c]]
** [[Media:DMA_spi.c|DMA_spi.c]]
** [[Media:DMA_spi.c|DMA_spi.c]]
Line 324: Line 324:
----
----


===Chapter 23: Sensors and Signal Conditioning===
===Sensors and Signal Conditioning===


----
----


===Chapter 24: Digital Signal Processing===
===Digital Signal Processing===

----

===Chapter 25: Brushed Permanent Magnet DC Motors===


----
----

Revision as of 23:41, 24 February 2014

Readings, videos, exercises, and sample code for ME 333 Introduction to Mechatronics.

You can download the most updated version of the class readings here.

Appendix: A Crash Course in C

Reading: A Crash Course in C, C Compilers

Videos:

  1. Writing your first program in C, HelloWorld.c (5:09). Chapter A.1. Exercises: 1.
  2. Differences between C and MATLAB (7:30). Chapter A.2. Exercises: 2, 3.
  3. Binary and hexadecimal (Base 2 and 16) (4:47). Chapter A.3.1. Exercises: 4, 6.
  4. Data types (5:30). Chapter A.3.1. Exercises: 8, 10.
  5. Using the data types (3:49). Chapter A.3.1. Exercises: 11.
  6. Representations of data types (5:15). Chapter A.3.1. Exercises: 12, 13.
  7. Pointer basics (5:54). Chapter A.3.2. Exercises: 14, 15.
  8. Sample program: printout.c (5:55). Chapter A.4. Exercises: 16 (not covered in video, reading only) 17, 18.
  9. Sample program: datasizes.c (2:57). Chapter A.4. Exercises: 9.
  10. Sample program: overflow.c (2:43). Chapter A.4. Exercises: 19.
  11. Sample program: typecast.c (5:43). Chapter A.4. Exercises: 20.
  12. invest.c, part 1/5: intro to a typical C program (4:18). Chapter A.4. Exercises: 23.
  13. invest.c, part 2/5: overview (3:58). Chapter A.4. Exercises: 24, 25.
  14. invest.c, part 3/5: sections 1-4: program comments, preprocessor commands, new data type definitions, and global variables (4:48). Chapter A.4. Exercises: 26.
  15. invest.c, part 4/5: sections 5-6: helper function prototypes and the main function (4:40). Chapter A.4.
  16. invest.c, part 5/5: section 7: helper functions (7:42). Chapter A.4. Exercises: 28-30, 32, 33 (some material covered in reading only).
  17. Header files and libraries (9:31).

Sample Code:

Microchip Documentation:

Microchip PIC32MX795F512L


Chapter 1: Quickstart

Reading: Chapter 1

Videos: none

Sample Code:


Chapter 2: Looking Under the Hood: Hardware

Reading: Chapter 2

Videos:

  1. Introduction to the PIC32 microcontroller (5:10).
  2. Introduction to the PIC32 architecture (6:02).
  3. The PIC32 physical memory map (5:20).
  4. Introduction to the NU32 development board (4:03).

Sample Code: none


Chapter 3: Looking Under the Hood: Software

Reading: Chapter 3

Videos:

  1. The PIC32 virtual memory map (5:24).
  2. Understanding simplePIC.c (5:42).
  3. Digging through PIC32 header files (7:12).
  4. The PIC32 executable build process (4:26).

Sample Code:


Chapter 4: Using Libraries

Reading: Chapter 4

Videos:

  1. The NU32 library (5:28).

Sample Code:


Chapter 5: Time and Space

Reading: Chapter 5

Videos:

  1. Timing PIC32 code and the disassembly file (8:27).
  2. The PIC32 memory map file (7:15).

Sample Code:


Chapter 6: Interrupts

Reading: Chapter 6

Videos:

  1. Overview of interrupts on the PIC32 (4:29).
  2. PIC32 interrupt SFRs (6:22).
  3. The PIC32 shadow register set (1:25).
  4. Seven steps to using an interrupt with the PIC32 (3:47)
  5. PIC32 interrupt code example (4:10)


Sample Code:


Chapter 7: Digital Input and Output

Reading: Chapter 7

Videos:

  1. Intro to digital I/O on the PIC32 (6:24)
  2. Change notification on the PIC32 (1:18)
  3. PIC32 program with digital I/O and change notification (9:02)

Sample Code:


Chapter 8: Counters / Timers

Reading: Chapter 8

Videos:

  1. Intro to PIC32 counter/timers (5:59)
  2. PIC32 timer SFRs (5:55)
  3. Using PIC32 timers to generate interrupts (3:34)
  4. Example PIC32 timer interrupt program (5:08)

Sample Code:


Chapter 9: Output Compare

Reading: Chapter 9

Videos:

  1. Introduction to the PIC32 output compare (5:30)
  2. A PWM program on the PIC32 (3:12)
  3. Using output compare to create an analog output (3:09)

Sample Code:


PID Control

Reading: None required, but you can check out the wikipedia article if you like.

Videos:

  1. Introduction to PID control (4:28)
  2. Improving the basic PID control algorithm (2:33)
  3. PID control of a mass-spring-damper (4:10)
  4. P, PI, and PD variants of PID control (2:42)
  5. Empirical PID gain tuning (7:08)

Sample Code: None.


Chapter 10: Analog Input

Reading: Chapter 10

Video:

  1. The PIC32 analog-to-digital converter (6:47)

Sample Code:


Chapter 11: Brushed Permanent Magnet DC Motors

Reading: Chapter 11

Video:

  1. Intro to brushed permanent magnet DC motors, part 1/2 (4:31)
  2. Intro to brushed permanent magnet DC motors, part 2/2 (7:10)
  3. Brushed DC motor equations (6:53)
  4. Brushed DC motor speed-torque curve (5:59)
  5. DC motor output power (2:05)
  6. Friction in DC motors (0:55)
  7. A DC motor data sheet (4:34)

Chapter 12: Motor Sizing

Reading: Chapter 12

Video:

  1. Introduction to gears (4:12)
  2. Gear efficiency (2:40)
  3. Types of gears (3:47)

UART


SPI Communication


I2C Communication


USB


Input Capture


Comparator


Watchdog Timer


Storing Data in Flash Memory


Power Saving


Real-time Clock and Calendar


Controller Area Network (CAN)


Direct Memory Access


Sensors and Signal Conditioning


Digital Signal Processing


Chapter 26: DC Motor Control


Chapter 27: Brushless Motor Control


Chapter 28: Stepper Motors and RC Servos


Chapter 29: Connecting to an Android Device