Difference between revisions of "ME 333 Introduction to Mechatronics (Archive Winter 2017)"

From Mech
Jump to navigationJump to search
 
(34 intermediate revisions by the same user not shown)
Line 2: Line 2:


'''First day of class is Tuesday January 3.'''
'''First day of class is Tuesday January 3.'''
* Section 20: Prof. Nick Marchuk (nick.marchuk@gmail.com), T Th, 11:00-12:20, Tech A110 (this location will probably change)
* Section 20: Prof. Nick Marchuk (nick.marchuk@gmail.com), T Th, 11:00-12:20, Tech A110
* Section 21: Prof. Nick Marchuk, T Th, 12:30-1:50, Tech LR5
* Section 21: Prof. Nick Marchuk (nick.marchuk@gmail.com), T Th, 12:30-1:50, Tech LR5
* TAs:
* TAs:
** Hong-Cin Liou
** Hong-Cin Liou
Line 9: Line 9:


* '''Final demo''' (in lieu of final exam): Monday Mar 13 3-5 PM (12:30-1:50 section) and Wednesday Mar 15 9-11 AM (11-12:20 section)
* '''Final demo''' (in lieu of final exam): Monday Mar 13 3-5 PM (12:30-1:50 section) and Wednesday Mar 15 9-11 AM (11-12:20 section)
* Office Hours: every day 4-5 (Prof. Marchuk, Mechatronics Lab, Ford B100), TAs TBD
* Office Hours: every day 4-5 (Prof. Marchuk, Mechatronics Lab, Ford B100)


* Quick links:
* Quick links:
Line 50: Line 50:
== Checklist to Complete Before the First Day of Class ==
== Checklist to Complete Before the First Day of Class ==


Attendance at the first day of class is mandatory. By the first day of class, you should:
By the first day of class, you should:


* Complete the reading and assignment 1, which is '''due the first day of class!''' The first assignments are designed to get you up to speed on the C programming language, which we will use throughout the course.
* Complete the reading and assignment 1, which is '''due the first day of class!''' The first assignments are designed to get you up to speed on the C programming language, which we will use throughout the course.
* Have a laptop with at least 2 USB ports. Any operating system is fine. One port will be used to program and communicate with your PIC microcontroller, and the other will be used for your portable oscilloscope.
* Have a laptop with at least 2 USB ports. Any operating system is fine. One port will be used to program and communicate with your PIC microcontroller, and the other will be used for your portable oscilloscope.
* Be prepared to buy your class kit, consisting of the portable nScope oscilloscope, the NU32 PIC32 development board, textbook, and lots of other goodies. Price $125 if you are starting from scratch; $75 if you already have the nScope.
* Be prepared to buy your class kit, consisting of the portable nScope oscilloscope, the NU32 PIC32 development board, textbook, and lots of other goodies. Price $125 if you are starting from scratch; $75 if you already have the nScope.
* Buy your class kit [http://it.mccormick.northwestern.edu/matlab/student_license/login.php '''here''']. If you already have the oscilloscope and multimeter from this year's ME 233 offering, you should choose "ME 333 (nScope not needed ($75))" for the price of $75. If you do not have the oscilloscope and multimeter, you should choose "ME 333 (including nScope ($125))" for the price of $125. You will not be able to start the course until you have completed the purchase of your kit. If you decide to drop the course, you will be refunded the purchase price upon return of all the equipment in working shape.
* Buy your class kit [http://it.mccormick.northwestern.edu/matlab/student_license/login.php '''here''']. If you already have the oscilloscope and multimeter from this year's ME 233 offering, you should choose "ME 333 (nScope not needed ($75))" for the price of $75. If you do not have the oscilloscope and multimeter, you should choose "ME 333 (including nScope ($125))" for the price of $125. You will not be able to start the course until you have completed the purchase of your kit. If you decide to drop the course, you will be refunded the purchase price upon return of all the equipment in working shape.


== Student Contract ==
== Student Contract ==
Line 125: Line 125:
All videos can be found at this page: [[NU32 Videos|'''NU32 Videos''']] and sample code at the bottom of [[NU32 Software|'''NU32 Software''']]. We will cover almost all of the Appendix, a Crash Course in C, in the first 1.5 weeks of class, so you can work ahead and do all the readings, watch all the videos, and do all the problems, if you have time over the break. But at a minimum, you must do the winter break assignment.
All videos can be found at this page: [[NU32 Videos|'''NU32 Videos''']] and sample code at the bottom of [[NU32 Software|'''NU32 Software''']]. We will cover almost all of the Appendix, a Crash Course in C, in the first 1.5 weeks of class, so you can work ahead and do all the readings, watch all the videos, and do all the problems, if you have time over the break. But at a minimum, you must do the winter break assignment.


After the first two weeks of class, we will have video lecture comprehension questions (L-comps) due before every class, assignments due every Tuesday, and quizzes every Thursday (on the material covered in the assignment turned in on Tuesday). L-comps and assignments are turned in using Canvas before 11 AM the day of the class. The weekly rhythm will be:
After the first two weeks of class, we will have video lecture comprehension questions (L-comps) due before every class, assignments due every Thursday, and quizzes every Tuesday (on the material covered in the assignment turned in on Thursday). L-comps and assignments are turned in using Canvas before 11 AM the day of the class. The weekly rhythm will be:


* before Tuesday: turn in assignment on material from previous week and L-comps on videos for the next class
* before Thursday: turn in assignment on material from previous week and L-comps on videos for the next class
* Tuesday in class: discuss assignment, brief recap and Q&A on new videos, start on next assignment
* Thursday in class: discuss assignment, brief recap and Q&A on new videos, start on next assignment
* before Thursday: turn in L-comps on videos for next class
* before Tuesday: turn in L-comps on videos for next class
* Thursday in class: brief quiz on material in assignment turned in on Tuesday, recap and discuss videos, continue with assignment
* Tuesday in class: brief quiz on material in assignment turned in on Thursday, recap and discuss videos, continue with assignment


'''Winter Break'''
'''Winter Break'''
: '''Reading due for first class''': pages 515-527 in the [[Media:EmbeddedComputingMechatronicsSampleChapters.pdf|freely downloadable sample chapters]]
: '''Reading due for first class''': pages 515-527 in the [[Media:EmbeddedComputingMechatronicsSampleChapters.pdf|freely downloadable sample chapters]]
: '''Videos''': 1-7 of Appendix A [[NU32 Videos]]. Answer the lecture comprehension (L-comp) questions in CANVAS.
: '''Videos''': 1-7 of Appendix A [[NU32 Videos]]. Answer the lecture comprehension (L-comp) questions in CANVAS.
: '''Assignment''': Also do exercises 1-4, 6-8, 10-11, 16-17 of A Crash Course in C. Bring your laptop to class and demonstrate your HelloWorld.c program.
: '''Assignment''': Exercises 1-4, 6-8, 10-11, 16-17 of Appendix A.
: '''Demonstration''': Make a video of your HelloWorld.c program and upload in CANVAS using Arc.


'''Class 1''' (Th 1/5)
'''Class 1''' (Th 1/5)
: '''Assignment due''': L-comp and exercise solutions for the Winter Break assignment by 11am on CANVAS.
: '''Assignment due''': L-comp and exercise solutions, and demo video, for the Winter Break assignment by 11am on CANVAS.
: '''In-class demo:''' Exercise 1.
: '''In-class demo:''' Bring your laptop to class to make changes to HelloWorld.c
: '''Assignment discussion'''
: '''Assignment discussion'''
: '''Brief review of videos and readings'''
: '''Brief review of videos and readings'''
: '''Discussion'''
: '''Discussion'''
: '''Begin next assignment:''' Appendix A exercises 18-19, 21-22, 27-28, 30-32, 34. Prepare to demo 34. Pay for your equipment.
: '''Begin next assignment:''' Appendix A exercises 18-19, 21-22, 27-28, 30-32, 34-35. Pay for your equipment.
: '''Demonstration''': Exercise 34.


At home:
At home:
: Videos (and L-comps): 8-16 of a Crash Course in C. L-comps can be found on CANVAS.
: Videos and L-comps: 8-16 of a Crash Course in C.
: Reading: Through page 562 of a Crash Course in C, and the rest as reference.
: Reading: Through page 562 of a Crash Course in C, and the rest of the Appendix as reference.
: '''Note: Pizza and Programming Party, Wednesday Jan 11, 6:00-8:00pm, Tech M152'''
: '''Note: Pizza and Programming Party, Wednesday Jan 11, 6:00-8:00pm, Tech M152'''


'''Class 2''' (T 1/10)
'''Class 2''' (T 1/10)
: '''Before 11 AM:''' Turn in assignment from Class 1 and L-comps.
: '''Before 11 AM:''' Turn in demo video for Exercise 34.
: '''In-class demo:''' Exercise 34.
: '''Assignment discussion'''
: '''Assignment discussion'''
: '''Brief review of videos, readings, and L-comps'''
: '''Brief review of videos, readings, and L-comps'''
: '''Discussion'''
: '''Discussion'''
: '''Begin next assignment:''' Exercise 35, and prepare to demo it. If you have not yet, pay for your equipment.
: '''Begin next assignment:''' Exercise 35. If you have not yet, pay for your equipment.
: '''Demonstration''': Exercise 35.


At home:
At home:
Line 164: Line 166:


'''Class 3''' (Th 1/12)
'''Class 3''' (Th 1/12)
: '''Before 11 AM:''' Turn in assignment from Class 2 and L-comps.
: '''Before 11 AM:''' Turn in assignment, L-comps, and demo video for Class 1 and 2.
: '''In-class demo:''' Exercise 35.
: '''Assignment discussion'''
: '''Assignment discussion'''
: '''Brief review of videos, readings, and L-comps'''
: '''Brief review of videos, readings, and L-comps'''
: '''Discussion'''
: '''Discussion'''
: '''In-class assignment: Creating your own helper library'''
: '''In-class assignment: Quiz review'''


At home:
At home:
Line 175: Line 176:
: Reading: Chapter 1: Quickstart
: Reading: Chapter 1: Quickstart
: Assignment: Download, install, and compile all software as indicated through the end of Chapter 1.3. See [[NU32 Software | NU32 Software]]
: Assignment: Download, install, and compile all software as indicated through the end of Chapter 1.3. See [[NU32 Software | NU32 Software]]

<!--
'''Class 4''' (T 1/17)
'''Class 4''' (T 1/17)
: '''Quiz:''' On C.
: '''Quiz:''' On C.
Line 183: Line 184:
: Videos (and L-comps): 1-4 from Chapter 2.
: Videos (and L-comps): 1-4 from Chapter 2.
: Reading: Complete Chapter 1 (quickstart) and Chapter 2.
: Reading: Complete Chapter 1 (quickstart) and Chapter 2.
: Assignment due at the beginning of class on Tues 1/19: Problems 3-16 of Chapter 2. You will need the [[Media:PIC32MXDS-Dec2013.pdf|PIC32MX5xx/6xx/7xx Family Data Sheet (Dec 2013)]] and the [[Media:PIC32RefManual-Dec2013.pdf|PIC32 Reference Manual (Dec 2013)]].
: Assignment due at the beginning of class on Thur 1/19: Problems 3-16 of Chapter 2. You will need the [[Media:PIC32MXDS-Dec2013.pdf|PIC32MX5xx/6xx/7xx Family Data Sheet (Dec 2013)]] and the [[Media:PIC32RefManual-Dec2013.pdf|PIC32 Reference Manual (Dec 2013)]].
: Prepare to demonstrate: talkingPIC.c on NU32


'''Class 5''' (Th 1/19)
'''Class 5''' (Th 1/19)
: '''Before 11 AM''': Turn in assignment from Class 4 and L-comps.
: '''Before 11 AM''': Turn in L-comps and talkingPIC demo.
: '''Demonstration''': talkingPIC on NU32.
: '''Assignment and videos discussion'''
: '''Assignment and videos discussion'''
: '''Go over PIC32 software'''
: '''Go over PIC32 software'''
: '''Begin next assignment, due Tues''': Chapter 3, problems 1-9, and Chapter 4, problems 1, 2, and 4. In class demo next Tuesday: chapter 3 problem 5.
: '''Work on assignment, due Thu''': Chapter 3, problems 1-9, and Chapter 4, problems 1, 2, and 4. Demo next Tuesday: chapter 3 problem 5.


At home:
At home:
: Videos (and L-comps) due Thurs: All of Chapter 3.
: Videos (and L-comps): All of Chapter 3.
: Reading: Complete Chapter 3.
: Reading: Complete Chapter 3.


Line 202: Line 205:


At home:
At home:
: Video and L-comp due Tues: Chapter 4.
: Video and L-comp due Th: Chapter 4.
: Reading: Complete Chapter 4.
: Reading: Complete Chapter 4.
: Continue assignment exercises, due Tuesday.
: Continue assignment exercises, due Thursday. Demo for Thursday: chapter 4 problem 2 (invest.c running on the NU32).


'''Class 7''' (Th 1/26)
'''Class 7''' (Th 1/26)
: '''Before 11 AM''': Turn in assignment on Chapters 3 and 4.
: '''Before 11 AM''': Turn in Chapter 4 L-comp, assignment on Chapters 3 and 4, and Demo from Chapter 4.
: '''In-class demo of problem 5 of Chapter 3'''
: '''Discussion of homework solutions'''
: '''Discussion of homework solutions'''
: '''Discussion of video and L-comp'''
: '''Discussion of video and L-comp'''
: '''Brief intro to Chapter 5'''
: '''Brief intro to Chapter 5'''
: '''Next assignment''': Chapter 4: Wiring the LCD and using LCDwrite.c. Chapter 5 (use no optimization for all exercises): Exercises 3, 4, 6(b,c), 7, 10. Chapter 6: Exercises 1, 4, 5, 6, 8, 9, 13, 14, 16, 18. Demo in class next Tuesday: Chapter 6 exercise 18.
: '''Next assignment''': Chapter 4: Wiring the LCD and using LCDwrite.c to make a helloworld program. Chapter 5 (use no optimization for all exercises): Exercises 3, 4, 6(a only), 7, 10. Chapter 6: Exercises 1, 4, 5, 8, 9, 13, 16, 18. Demo next Thu: print HelloWorld on LCD. also Demo next Th: Chapter 6 exercise 18.


At home:
At home:
Line 227: Line 229:
: Videos and L-comps on Chapter 6
: Videos and L-comps on Chapter 6
: Reading: Complete Chapter 6
: Reading: Complete Chapter 6
: Finish assignment by 11 AM Tuesday


'''Class 9''' (Th 2/2)
'''Class 9''' (Th 2/2)
: '''Before 11 AM''': Turn in assignment from last Tuesday and the L-comps
: '''Before 11 AM''': Turn in assignment from last Tuesday, L-comps for Chapter 6, demo for LCD helloworld and 6.18
: '''Demo of Chapter 6 exercise 18.'''
: '''Discussion on homework and L-comps'''
: '''Discussion on homework and L-comps'''
: '''Brief intro to digital i/o, counter/timers, output compare, analog input'''
: '''Brief intro to digital i/o, counter/timers'''
: '''Start next assignment due next Tues.''' Chapter 24, feedback control of LED intensity, through 24.3. Demo in class on Tuesday: your code from chapter 24.3 with your nScope showing the sensor voltage at Vout.
: '''Start next assignment due next Thu.''' Chapter 24, feedback control of LED intensity, through 24.3. Demo on Thu: your code from chapter 24.3 with your nScope showing the sensor voltage at Vout.


At home:
At home:
Line 242: Line 242:
'''Class 10''' (T 2/7)
'''Class 10''' (T 2/7)
: '''Quiz on Chapters 5 and 6.'''
: '''Quiz on Chapters 5 and 6.'''
: '''Discussion on homework and L-comps'''
: '''Brief intro to output compare'''


At home:
At home:
Line 249: Line 251:
'''Class 11''' (Th 2/9)
'''Class 11''' (Th 2/9)
: '''Demo of Chapter 24.3 code.'''
: '''Demo of Chapter 24.3 code.'''
: '''Discussion of last week's homework and L-comps due today'''
: '''Discussion on homework, L-comps, analog input, serial communication, intro to PID'''
: '''Start assignment due next Tues.''' Finish the LED brightness control project. Turn in plots from 24.5, 24.7, and 24.8. Demo in class next Tuesday: the final result from 24.8, showing performance to changing gains in real-time in Matlab.
: '''Start assignment due next Thu.''' Finish the LED brightness control project. Turn in plots from 24.5, 24.7, and 24.8. Demo next Thu: the final result from 24.8, showing performance to changing gains in real-time in Matlab.


At home:
At home:
Line 265: Line 267:
: Videos and L-comps on Chapter 25 on brushed DC motors
: Videos and L-comps on Chapter 25 on brushed DC motors
: Reading: Chapter 25
: Reading: Chapter 25
: '''Note: Donuts and Programming Party, Wednesday Feb 15, 6:00-8:00pm, Tech B210 (ME Conf room)'''


'''Class 13''' (Th 2/16)
'''Class 13''' (Th 2/16)
Line 270: Line 273:
: '''Discussion of turned-in homework'''
: '''Discussion of turned-in homework'''
: '''Discussion of L-comps'''
: '''Discussion of L-comps'''
: '''Start assignment due Tues:''' Problems 2-7 of Chapter 25 on DC motors
: '''Start assignment due Thu:''' Problems 2-7 of Chapter 25 on DC motors


At home:
At home:
: Videos and L-comps for Chapter 26
: Videos and L-comps for Chapter 26 due next Thu
: Reading: Chapter 26
: Reading: Chapter 26



'''Class 14''' (T 2/21)
'''Class 14''' (T 2/21)
Line 282: Line 284:


At home:
At home:
: Videos and L-comps on Chapter 27
: Videos and L-comps on Chapter 26
: Reading: Chapter 27
: Reading: Chapter 26


'''Class 15''' (Th 2/23)
'''Class 15''' (Th 2/23)
: '''Discussion of turned-in homework'''
: '''Discussion of turned-in homework'''
: '''Discussion of L-comps'''
: '''Discussion of L-comps'''
: '''Start assignment due Tues'''. Exercise 4 of Chapter 26, Gearing and Motor Sizing, Exercises 1,2,3,6,9,10,11,12,13,14,16 of Chapter 27, DC Motor Control, and complete the "Establishing Communication" portion of the final project (Chapter 16.4.2). Demo on Tuesday 3/3: demonstrating your new menu command from Chapter 16.4.2, showing you can create the requested menu command. Except for Exercise 4 of Chapter 14, you should do all work on your own. Indicate on your assignment writeup the people you worked with for Exercise 4.
: '''Start assignment due Thu'''. Exercise 4 of Chapter 26, Gearing and Motor Sizing, Exercises 1,2,3,6,9,10,11,12,13,14,16 of Chapter 27, DC Motor Control, and complete the "Establishing Communication" portion of the final project (Chapter 28.4.2). Demo on Thu: demonstrating your new menu command from Chapter 24.4.2, showing you can create the requested menu command.


At home:
At home:
Line 304: Line 306:


'''Class 17''' (Th 3/2)
'''Class 17''' (Th 3/2)
: '''Demo of menu portion of final project'''
: '''Demo of menu portion of final project (28.4.2)'''
: '''Next assignment: Final project, through 28.4.12, responses to 28.4.1 #7, 28.4.7 #7, 28.4.9 #8, 28.4.10 #5, 28.4.12 #5 ''':
: '''Discussion of assignment just turned in'''
: '''Next assignment: Final project''':


Implement the menu items for
Implement the menu items for
Line 315: Line 316:
: * get current sensor reading in mA
: * get current sensor reading in mA
: * set the PWM
: * set the PWM
Demonstrate in class next Tuesday each of these menu items and show that they work properly. Turn in your well commented .c and .h files as individual files.
Demonstrate next Tue each of these menu items and show that they work properly. Turn in your well commented .c and .h files as individual files.



At home:
At home:
Line 324: Line 324:
'''Class 18''' (T 3/7)
'''Class 18''' (T 3/7)
: '''Final Quiz, on Chapter 27'''
: '''Final Quiz, on Chapter 27'''
: '''Demonstration video:''' Menu items, encoder reset through PWM
: '''Continue with final assignment'''
: '''Continue with final assignment'''
: '''Note: Programming Party, Thursday March 9, 7:00-9:00pm, Tech L221'''


'''Class 19''' (Th 3/9)
'''Class 19''' (Th 3/9)
: '''Before 11 AM:'''
: '''In-class demo:'''
: '''Continue final project.''' To be on track, you should be up to 28.4.9
: '''Continue final project.''' To be on track, you should be up to 28.4.9


At home:
At home:
: Continue final project
: Continue final project (through 28.4.12)
: Sign up for a 5 minute time slot to demo your final project: [https://docs.google.com/spreadsheets/d/1reEmJ7B2UCTsKIef9iCSJKDipg_J4DuTVHDbNA6Ls-0/edit?usp=sharing googledoc]
'''Class 20''' (T 3/14)
: '''Quiz:''' No quiz!
: '''Discussion'''
: '''Continue final project.''' You should be up to 28.4.11. Sign up for a 5 minute time slot to demo your final project: [https://docs.google.com/spreadsheets/d/1hJlYIlzzWYT0cQbHMRRg-16shh-lQKhx7jB5-_cumtI/edit?usp=sharing signup sheet]


: '''Programming Party, Thursday March 9, 7:00-9:00pm, Tech L221'''
'''Final Demo''': Monday 3/13, 3-5 PM or Wednesday 3/15, 9-11 AM. Electronic submission by Wednesday 3/16, 11 AM.


'''Final Demo''':
Turn in your responses to 28.4.1 #7, 28.4.9 #8, 28.4.10 #5, 28.4.12 #5. Also turn in all of your PIC code and MATLAB code.
: In person, on Monday 3/13, 3-5 PM, or Wednesday 3/15, 9-11 AM.

: Electronic submission by Wednesday 3/15, 11 AM.
Extra credit: Add a menu item for Feed Forward Model-based control and another for FF+FB control. Add asymmetric inertial by using a 6-32 screw and nut to attach 2 washers to one side of the motor bar. How well can you compensate for this load? Provide several graphs of trajectories that are possible with FF only, or are improved with FF+FB. Demonstrate during your time slot. Credit for this will upgrade your lowest quiz grade to full credit.
: Turn in your responses to 28.4.1 #7, 28.4.7 #7, 28.4.9 #8, 28.4.10 #5, 28.4.12 #5. Also turn in all of your PIC code and MATLAB code.
-->
: Upload a demonstration video of the results of good current tuning, and following a trajectory with good gains and bad gains.


== FAQ ==
== FAQ ==

Latest revision as of 16:38, 3 January 2018

Winter Quarter 2017

First day of class is Tuesday January 3.

  • Section 20: Prof. Nick Marchuk (nick.marchuk@gmail.com), T Th, 11:00-12:20, Tech A110
  • Section 21: Prof. Nick Marchuk (nick.marchuk@gmail.com), T Th, 12:30-1:50, Tech LR5
  • TAs:
    • Hong-Cin Liou
    • Tito Fernandez
  • Final demo (in lieu of final exam): Monday Mar 13 3-5 PM (12:30-1:50 section) and Wednesday Mar 15 9-11 AM (11-12:20 section)
  • Office Hours: every day 4-5 (Prof. Marchuk, Mechatronics Lab, Ford B100)


Purpose of this Course

The purpose of this course is to provide tools that help you express your creativity. Maybe you want to build a robot, or a piece of kinetic art, or an automatic ball-throwing device to entertain your dog; maybe you've identified a market for a new smart product and you'd like to prototype the device. This course provides fundamentals of mechatronics to give you confidence to take on these projects. You are encouraged to take what you learn in this course and apply it in ME 433 Advanced Mechatronics, DSGN 360 Design Competition, senior design projects, or independent projects.

Approximate Syllabus

This course is for students that want to build microprocessor-controlled electromechanical devices.

To do this, ME 333 focuses on three topics: (1) general C programming; (2) Microchip PIC microcontroller architecture and C programming specific to the PIC (e.g., using the PIC's peripherals, such as analog inputs, digital I/O, counters/timers, comm ports, etc.); and (3) interfacing the PIC to sensors and actuators, some theory of sensor and actuator operation, and interface circuitry and signal processing.

You will do a lot of programming in this course! If you are certain you hate programming, then this is not the course for you. But knowing how to program is very useful for any modern engineer. The language we will use is C, a fairly low-level language that works well for microcontrollers, which is more portable and not nearly as painful and low-level as assembly language. If you don't know C, that's not a problem, most students don't before taking ME 333; but you should plan to learn it, and rather quickly. You will have all the materials you need to start learning C before class starts, and the first assignment on C is due on the first day of class! The reason: even though we start out with C, that's not the main goal of this course. The main goal is to teach you about microcontrollers and mechatronics. Plus some students already have C background.

You will bring your laptop to each class. As the quarter progresses, we will be handing out other equipment that you will need to bring to class, such as the NU32 development board that breaks out the PIC32MX795F512H microcontroller.

It is essential you do the assigned reading and watch the videos in advance of class. You will have an assignment and/or lecture comprehension questions (L-comps) due before every class, turned in electronically on Canvas. (This includes the very first day of class!) Once a week we will have a short quiz. Most classes will have a combination of a brief review, Q&A, and working individually or in small groups on problems while the instructors help answer any questions.

Topics we will cover, time depending, include:

  • introduction to C programming
  • introduction to the PIC32 hardware, and programming the PIC32 in C
  • digital I/O
  • counters/timers and interrupts
  • analog input
  • sensor smorgasbord
  • digital signal processing: filters and FFTs
  • analog output and pulse-width modulation
  • brushed permanent magnet DC motors: theory and control
  • stepper motors and RC servo motors
  • communication by SPI, I2C, and RS-232

Checklist to Complete Before the First Day of Class

By the first day of class, you should:

  • Complete the reading and assignment 1, which is due the first day of class! The first assignments are designed to get you up to speed on the C programming language, which we will use throughout the course.
  • Have a laptop with at least 2 USB ports. Any operating system is fine. One port will be used to program and communicate with your PIC microcontroller, and the other will be used for your portable oscilloscope.
  • Be prepared to buy your class kit, consisting of the portable nScope oscilloscope, the NU32 PIC32 development board, textbook, and lots of other goodies. Price $125 if you are starting from scratch; $75 if you already have the nScope.
  • Buy your class kit here. If you already have the oscilloscope and multimeter from this year's ME 233 offering, you should choose "ME 333 (nScope not needed ($75))" for the price of $75. If you do not have the oscilloscope and multimeter, you should choose "ME 333 (including nScope ($125))" for the price of $125. You will not be able to start the course until you have completed the purchase of your kit. If you decide to drop the course, you will be refunded the purchase price upon return of all the equipment in working shape.

Student Contract

By signing up for this course, you agree to complete the checklist above before the course starts. You agree to stay engaged during the class period; even if your computer is open, no facebook or other distractions that will lessen your contribution to the class. You understand that learning from classmates, and helping classmates, is encouraged, up to the stage of conceptualizing solutions. You are not allowed to fully complete a solution in a team. You understand that plagiarism is not tolerated. You will report instances of plagiarism you are aware of. Plagiarism includes, but is not limited to:

  • Allowing another student to copy your work.
  • Copying another student's work, in whole or in part.
  • Transforming copied sections of code or solutions to try to disguise their origin.
  • Borrowing code or solutions from others not in the course, e.g., code found on the internet, without attribution. Borrowing code found on the internet is acceptable if the source is clearly indicated in your code comments, and if you understand how the code works.

On our part (faculty and TAs), we commit to do our best to provide you a curriculum and set of experimental materials to get you up to speed on sophisticated mechatronics integration as quickly and efficiently as possible, while giving you a foundation in concepts needed to go further in future projects and courses.

Prerequisite

ME 233 Electronics Design or similar (EECS 221, 225, BME 305) is required. You will be expected to analyze circuits with resistors, capacitors, inductors, diodes, transistors, and op-amps. You can find refresher material and a sample quiz at this page and in Appendix B of the book.

Reading

Required:

Find a typo in the book or a bug in the code? Report it here

Grading

Grades will be approximately 40% quizzes and 60% assignments and L-comps (including the final project). We will have short quizzes once a week at the beginning of class covering material on the previous assignment. (Your lowest quiz score, assignment score, and L-comp score will be dropped.) We will have a final project and demo in lieu of a final exam.

All quizzes, assignments, and L-comps have equal weight, regardless of how many points they are graded out of. If one assignment is graded out of 20 points, and the next out of 40, the formula for calculating your total grade for these two assignments would be 0.5*(score1/20) + 0.5*(score2/40).

Homework Submission

All homework will be submitted using the Canvas Course Management System. Homework should be submitted by 11 AM on the day it is due (i.e., before the first section of the day). Late homework will not be accepted.

Here are a few guidelines/tips associated with homework submissions:

  • Upload files individually. No zip archives!
  • Submit written responses as PDFs.
  • If you upload a PDF of handwritten work, make sure that the text appears clearly and the picture is oriented portrait style. "Cam Scanner" for Android and iOS phones easily scans images and compiles them into a single PDF file.
  • When asked to submit C code for a given programming assignment, we are only concerned with receiving the relevant source files, i.e., all *.c and *.h files.
  • When writing your responses, please follow any instructions on how to write your response. For example, if we ask for a snippet of code, please do not submit your entire C program with header files and a main routine. We typically are only expecting a few lines of code that solve the problem.
  • Be neat and make sure your answers are easy to follow. Messy hard-to-follow assignments make TAs cranky, and you don't want cranky TAs grading your assignment!
  • It helps both us and you if you format your code nicely. Clean looking code is easier for us to grade and easier for you to debug. Text editors with IDEs such as Netbeans and MPLAB X have tools for auto-formatting code. For example, highlighting a region and hitting Alt+Shift+f (Linux and Windows) will format that region according to your local formatting preferences.
  • When you compile your code, pay attention to any compiler warnings. They are there for a reason! You should be able to eventually get your code to produce no warnings. Often if a piece of code is not working, the warnings will give a clue as to why.

Schedule

This course is (partially) "flipped": you watch video lectures and do readings in advance of class, and during class, you should have plenty of opportunity for questions and interaction with the instructors and TAs as you work on assignments. The purpose of this is to try to maximize the value of the class time. In a typical lecture, 80% of the material is the same every time it is given, and the other 20% is interactive and variable based on student questions. In a flipped class, we hope to flip this percentage, to better tailor the class to student needs. You will have time with the instructors while your brains are actually on and working on the material (not just scribbling notes), the times when you are most likely to have questions. Making the video lectures available should also allow you to spend more or less time on the lecture portion, depending on your prior background. If the material is difficult for you, you can pause or rewind.

Please keep track of any questions you have as you watch the videos! Bring these questions to class; it will make for a livelier classroom.

All videos can be found at this page: NU32 Videos and sample code at the bottom of NU32 Software. We will cover almost all of the Appendix, a Crash Course in C, in the first 1.5 weeks of class, so you can work ahead and do all the readings, watch all the videos, and do all the problems, if you have time over the break. But at a minimum, you must do the winter break assignment.

After the first two weeks of class, we will have video lecture comprehension questions (L-comps) due before every class, assignments due every Thursday, and quizzes every Tuesday (on the material covered in the assignment turned in on Thursday). L-comps and assignments are turned in using Canvas before 11 AM the day of the class. The weekly rhythm will be:

  • before Thursday: turn in assignment on material from previous week and L-comps on videos for the next class
  • Thursday in class: discuss assignment, brief recap and Q&A on new videos, start on next assignment
  • before Tuesday: turn in L-comps on videos for next class
  • Tuesday in class: brief quiz on material in assignment turned in on Thursday, recap and discuss videos, continue with assignment

Winter Break

Reading due for first class: pages 515-527 in the freely downloadable sample chapters
Videos: 1-7 of Appendix A NU32 Videos. Answer the lecture comprehension (L-comp) questions in CANVAS.
Assignment: Exercises 1-4, 6-8, 10-11, 16-17 of Appendix A.
Demonstration: Make a video of your HelloWorld.c program and upload in CANVAS using Arc.

Class 1 (Th 1/5)

Assignment due: L-comp and exercise solutions, and demo video, for the Winter Break assignment by 11am on CANVAS.
In-class demo: Bring your laptop to class to make changes to HelloWorld.c
Assignment discussion
Brief review of videos and readings
Discussion
Begin next assignment: Appendix A exercises 18-19, 21-22, 27-28, 30-32, 34-35. Pay for your equipment.
Demonstration: Exercise 34.

At home:

Videos and L-comps: 8-16 of a Crash Course in C.
Reading: Through page 562 of a Crash Course in C, and the rest of the Appendix as reference.
Note: Pizza and Programming Party, Wednesday Jan 11, 6:00-8:00pm, Tech M152

Class 2 (T 1/10)

Before 11 AM: Turn in demo video for Exercise 34.
Assignment discussion
Brief review of videos, readings, and L-comps
Discussion
Begin next assignment: Exercise 35. If you have not yet, pay for your equipment.
Demonstration: Exercise 35.

At home:

Videos (and L-comps): 17 of a Crash Course in C.
Reading: Rest of a Crash Course in C as reference
Note: Pizza and Programming Party, Wednesday Jan 11, 6:00-8:00pm, Tech M152

Class 3 (Th 1/12)

Before 11 AM: Turn in assignment, L-comps, and demo video for Class 1 and 2.
Assignment discussion
Brief review of videos, readings, and L-comps
Discussion
In-class assignment: Quiz review

At home:

Videos (no L-comps): Chapter 1 (for your specific OS)
Reading: Chapter 1: Quickstart
Assignment: Download, install, and compile all software as indicated through the end of Chapter 1.3. See NU32 Software

Class 4 (T 1/17)

Quiz: On C.
Distribute hardware and everyone go through the quickstart

At home:

Videos (and L-comps): 1-4 from Chapter 2.
Reading: Complete Chapter 1 (quickstart) and Chapter 2.
Assignment due at the beginning of class on Thur 1/19: Problems 3-16 of Chapter 2. You will need the PIC32MX5xx/6xx/7xx Family Data Sheet (Dec 2013) and the PIC32 Reference Manual (Dec 2013).
Prepare to demonstrate: talkingPIC.c on NU32

Class 5 (Th 1/19)

Before 11 AM: Turn in L-comps and talkingPIC demo.
Demonstration: talkingPIC on NU32.
Assignment and videos discussion
Go over PIC32 software
Work on assignment, due Thu: Chapter 3, problems 1-9, and Chapter 4, problems 1, 2, and 4. Demo next Tuesday: chapter 3 problem 5.

At home:

Videos (and L-comps): All of Chapter 3.
Reading: Complete Chapter 3.

Class 6 (T 1/24)

Brief discussion of chapter 2 exercises and L-comps
Quiz on Chapter 2.
Discussion of videos and L-comps on Chapter 3
Start Chapter 4

At home:

Video and L-comp due Th: Chapter 4.
Reading: Complete Chapter 4.
Continue assignment exercises, due Thursday. Demo for Thursday: chapter 4 problem 2 (invest.c running on the NU32).

Class 7 (Th 1/26)

Before 11 AM: Turn in Chapter 4 L-comp, assignment on Chapters 3 and 4, and Demo from Chapter 4.
Discussion of homework solutions
Discussion of video and L-comp
Brief intro to Chapter 5
Next assignment: Chapter 4: Wiring the LCD and using LCDwrite.c to make a helloworld program. Chapter 5 (use no optimization for all exercises): Exercises 3, 4, 6(a only), 7, 10. Chapter 6: Exercises 1, 4, 5, 8, 9, 13, 16, 18. Demo next Thu: print HelloWorld on LCD. also Demo next Th: Chapter 6 exercise 18.

At home:

Videos and L-comps on Chapter 5
Reading: Complete Chapter 5.

Class 8 (T 1/31)

Quiz on Chapters 3 and 4.
Discussion of Chapter 5 videos and L-comps
Brief intro to Chapter 6
Continue with assignment.

At home:

Videos and L-comps on Chapter 6
Reading: Complete Chapter 6

Class 9 (Th 2/2)

Before 11 AM: Turn in assignment from last Tuesday, L-comps for Chapter 6, demo for LCD helloworld and 6.18
Discussion on homework and L-comps
Brief intro to digital i/o, counter/timers
Start next assignment due next Thu. Chapter 24, feedback control of LED intensity, through 24.3. Demo on Thu: your code from chapter 24.3 with your nScope showing the sensor voltage at Vout.

At home:

Videos and L-comps on Chapters 7 and 8
Reading: Chapters 7 and 8

Class 10 (T 2/7)

Quiz on Chapters 5 and 6.
Discussion on homework and L-comps
Brief intro to output compare

At home:

Videos and L-comps on Chapters 9 and 10
Reading: Chapters 9 and 10

Class 11 (Th 2/9)

Demo of Chapter 24.3 code.
Discussion on homework, L-comps, analog input, serial communication, intro to PID
Start assignment due next Thu. Finish the LED brightness control project. Turn in plots from 24.5, 24.7, and 24.8. Demo next Thu: the final result from 24.8, showing performance to changing gains in real-time in Matlab.

At home:

Videos and L-comps on Chapter 23 on PID control
Reading: Chapter 11, Chapter 23

Class 12 (T 2/14)

Quiz on Chapters 7-10.
Discussion of L-comps
PID control and continuing the assignment

At home:

Complete assignment from Chapter 24
Videos and L-comps on Chapter 25 on brushed DC motors
Reading: Chapter 25
Note: Donuts and Programming Party, Wednesday Feb 15, 6:00-8:00pm, Tech B210 (ME Conf room)

Class 13 (Th 2/16)

Demo of LED brightness control
Discussion of turned-in homework
Discussion of L-comps
Start assignment due Thu: Problems 2-7 of Chapter 25 on DC motors

At home:

Videos and L-comps for Chapter 26 due next Thu
Reading: Chapter 26

Class 14 (T 2/21)

Quiz on Chapters 23 and 24, PID control and LED brightness control.
Continue Chapter 25 assignment

At home:

Videos and L-comps on Chapter 26
Reading: Chapter 26

Class 15 (Th 2/23)

Discussion of turned-in homework
Discussion of L-comps
Start assignment due Thu. Exercise 4 of Chapter 26, Gearing and Motor Sizing, Exercises 1,2,3,6,9,10,11,12,13,14,16 of Chapter 27, DC Motor Control, and complete the "Establishing Communication" portion of the final project (Chapter 28.4.2). Demo on Thu: demonstrating your new menu command from Chapter 24.4.2, showing you can create the requested menu command.

At home:

Videos and L-comps on Chapter 27, DC Motor Control
Reading: Chapter 27

Class 16 (T 2/28)

Quiz on Chapter 25, Brushed Permanent Magnet DC Motors.
Discussion of L-comps
Continue assignment

At home:

Videos for Chapter 28
Read Chapter 28

Class 17 (Th 3/2)

Demo of menu portion of final project (28.4.2)
Next assignment: Final project, through 28.4.12, responses to 28.4.1 #7, 28.4.7 #7, 28.4.9 #8, 28.4.10 #5, 28.4.12 #5 :

Implement the menu items for

* encoder reset
* encoder ticks
* encoder angle
* query the current state
* get current sensor reading in mA
* set the PWM

Demonstrate next Tue each of these menu items and show that they work properly. Turn in your well commented .c and .h files as individual files.

At home:

No videos
Continue with Chapter 28

Class 18 (T 3/7)

Final Quiz, on Chapter 27
Demonstration video: Menu items, encoder reset through PWM
Continue with final assignment
Note: Programming Party, Thursday March 9, 7:00-9:00pm, Tech L221

Class 19 (Th 3/9)

Continue final project. To be on track, you should be up to 28.4.9

At home:

Continue final project (through 28.4.12)
Sign up for a 5 minute time slot to demo your final project: googledoc
Programming Party, Thursday March 9, 7:00-9:00pm, Tech L221

Final Demo:

In person, on Monday 3/13, 3-5 PM, or Wednesday 3/15, 9-11 AM.
Electronic submission by Wednesday 3/15, 11 AM.
Turn in your responses to 28.4.1 #7, 28.4.7 #7, 28.4.9 #8, 28.4.10 #5, 28.4.12 #5. Also turn in all of your PIC code and MATLAB code.
Upload a demonstration video of the results of good current tuning, and following a trajectory with good gains and bad gains.

FAQ

Q: Do I need to know the C language to take this course?

A: No. But if you already know C, there is still plenty else in this course for you. If you already know C, know how to use microcontrollers for real-time control, and have a good understanding how common sensors and actuators work and how to interface to them, this course may not be for you. Consider taking ME 433 Advanced Mechatronics in the spring quarter.


Q: Is there an independent project?

A: There is no large independent project. There will be a two-week project at the end of the course, but there will be no machining. For a more significant project, take ME 433 Advanced Mechatronics, offered in the spring quarter. ME 333 is good preparation for ME 433.


Q: What kind of laptop do I need?

A: You need a laptop with at least 2 USB ports. Any operating system is fine.