{{:building1feathered2.png?128|}} ==== Introduction to Design (2) — Microcontroller Systems and Interfaces ==== == Classes == Mondays and Fridays 08:50 – 12:00 Download and watch videos before the class. (The 'subs' versions have English subtitles burned in.) Complete as many lab experiments as you can before the class. | ** Week 1 ** | | {{ :id2-01.pdf|Slides }} | | {{ :id2-01-1.mp4?linkonly|Overview }} | | {{ :id2-01-2.mp4?linkonly|Installing the IDE }} | | {{ :id2-01-3.mp4?linkonly|Microcontroller programming }} | | {{ :id2-lab-01.pdf|Lab and reference }} | | ** Week 2 ** | | {{ :id2-02.pdf|Slides }} | | {{ :id2-02-1.mp4?linkonly|Overview }} | | {{ :id2-02-2.mp4?linkonly|Serial monitor }} | | {{ :id2-02-3.mp4?linkonly|Analogue input }} | | {{ :id2-lab-02.pdf|Lab and reference }} | | ** Week 3 ** | | {{ :id2-03.pdf|Slides }} | | {{ :id2-03-1.mp4?linkonly|Prototyping, circuits}} | | {{ :id2-03-2.mp4?linkonly|Electricity and Ohm's law }} | | {{ :id2-03-3.mp4?linkonly|Resistor colour code }} | | {{ :id2-03-4.mp4?linkonly|Digital output: sound }} | | {{ :id2-lab-03.pdf|Lab and reference }} | | ** Week 4 ** | | {{ :id2-04.pdf|Slides }} | | {{ :id2-04-1.mp4?linkonly|Diodes, LEDs}} | \_ ({{ :id2-04-1_en.mp4?linkonly|subs}}) | | {{ :id2-04-2.mp4?linkonly|Experiment set-up }} | \_ ({{ :id2-04-2_en.mp4?linkonly|subs}}) | | {{ :id2-04-3.mp4?linkonly|Pulse Width Modulation }} | \_ ({{ :id2-04-3_en.mp4?linkonly|subs}}) | | {{ :id2-lab-04.pdf|Lab and reference }} | | ** Week 6 ** | | {{ :id2-06.pdf|Slides }} | | {{ :id2-06-1.mp4?linkonly|Series/parallel circuits }}| \_ ({{ :id2-06-1_en.mp4?linkonly|subs}}) | | {{ :id2-06-2.mp4?linkonly|Measuring light }} | \_ ({{ :id2-06-2_en.mp4?linkonly|subs}}) | | {{ :id2-06-3.mp4?linkonly|Experiment set-up }} | \_ ({{ :id2-06-3_en.mp4?linkonly|subs}}) | | {{ :id2-lab-06.pdf|Lab and reference }} | | ** Week 7 ** | | {{ :id2-07.pdf|Slides }} | | {{ :id2-07-1.mp4?linkonly|Managing multiple outputs }}| \_ ({{ :id2-07-1_en.mp4?linkonly|subs}}) | | {{ :id2-07-2.mp4?linkonly|Experiment set-up }} | \_ ({{ :id2-07-2_en.mp4?linkonly|subs}}) | | {{ :id2-lab-07.pdf|Lab and reference }} | | ** Week 8 ** | | {{ :id2-08.pdf|Slides }} | | {{ :id2-08-1.mp4?linkonly|Using LED arrays }}| \_ ({{ :id2-08-1_en.mp4?linkonly|subs}}) | | {{ :id2-08-2.mp4?linkonly|Accessing I/O registers }} | \_ ({{ :id2-08-2_en.mp4?linkonly|subs}}) | | {{ :id2-08-3.mp4?linkonly|Experiment set-up }} | \_ ({{ :id2-08-3_en.mp4?linkonly|subs}}) | | {{ :id2-lab-08.pdf|Lab and reference }} | | ** Week 9 ** | | {{ :id2-09.pdf|Slides }} | | {{ :id2-09-1.mp4?linkonly|RGB LED arrays }}| \_ ({{ :id2-09-1_en.mp4?linkonly|subs}}) | | {{ :id2-09-2.mp4?linkonly|Timer interrupts }} | \_ ({{ :id2-09-2_en.mp4?linkonly|subs}}) | | {{ :id2-09-3.mp4?linkonly|Experiment set-up }} | \_ ({{ :id2-09-3_en.mp4?linkonly|subs}}) | | {{ :id2-lab-09.pdf|Lab and reference }} | | {{ :09-background-display-update.ino|Timer1 example program }} | | ** Week 10 ** | | {{ :id2-10.pdf|Slides }} | | {{ :id2-10-1.mp4?linkonly|Seven-segment displays }} | \_ ({{ :id2-10-1_en.mp4?linkonly|subs}}) | | {{ :id2-10-2.mp4?linkonly|Experiment set-up }} | \_ ({{ :id2-10-2_en.mp4?linkonly|subs}}) | | {{ :id2-lab-10.pdf|Lab and reference }} | | ** Week 11 ** | | {{ :id2-11.pdf|Slides }} | | {{ :id2-11-1.mp4?linkonly|Digital input, buttons }} | \_ ({{ :id2-11-1_en.mp4?linkonly|subs}}) | | {{ :id2-11-2.mp4?linkonly|Debouncing }} | \_ ({{ :id2-11-2_en.mp4?linkonly|subs}}) | | {{ :id2-11-3.mp4?linkonly|Interrupt-driven input }} | \_ ({{ :id2-11-3_en.mp4?linkonly|subs}}) | | {{ :id2-11-4.mp4?linkonly|Experiment set-up }} | \_ ({{ :id2-11-4_en.mp4?linkonly|subs}}) | | {{ :id2-lab-11.pdf|Lab and reference }} | | ** Week 12 ** | | {{ :id2-12.pdf|Slides }} | | {{ :id2-12-1.mp4?linkonly|Shift registers }} | \_ ({{ :id2-12-1_en.mp4?linkonly|subs}}) | | {{ :id2-12-2.mp4?linkonly|Experiment set-up }} | \_ ({{ :id2-12-2_en.mp4?linkonly|subs}}) | | {{ :id2-lab-12.pdf|Lab and reference }} | | ** Week 13 ** | | {{ :id2-13.pdf|Slides }} | | {{ :id2-13-1.mp4?linkonly|Serial communications }} | \_ ({{ :id2-13-1_en.mp4?linkonly|subs}}) | | {{ :id2-13-2.mp4?linkonly|External ADC over SPI }} | \_ ({{ :id2-13-2_en.mp4?linkonly|subs}}) | | {{ :id2-13-3.mp4?linkonly|Experiment set-up }} | \_ ({{ :id2-13-3_en.mp4?linkonly|subs}}) | | {{ :id2-lab-13.pdf|Lab and reference }} | | ** Week 14 ** | | {{ :id2-14.pdf|Project suggestions}} | | {{ :sine.h|sine.h file}} | /* {{ ::id2-07-lab-1.mp4?linkonly | lab }} == Slides (PDF) == - {{ ::id2-02.pdf | slides }} \\ {{ ::id2-lab-02a.pdf | exercises and reference }} \\ {{ ::id2-lab-02b.pdf | exercises and reference }} - {{ ::id2-03.pdf | slides }} \\ {{ ::id2-lab-03.pdf | exercises and reference }} - {{ ::id2-04.pdf | slides }} \\ {{ ::id2-lab-04.pdf | exercises and reference }} - {{ ::id2-05.pdf | slides }} \\ {{ ::id2-lab-05.pdf | exercises and reference }} - {{ ::id2-06.pdf | slides }} \\ {{ ::id2-lab-06.pdf | exercises and reference }} - {{ ::id2-07.pdf | slides }} \\ {{ ::id2-lab-07.pdf | exercises and reference }} - {{ ::id2-08.pdf | slides }} \\ {{ ::id2-lab-08.pdf | exercises and reference }} - {{ ::id2-09.pdf | slides }} \\ {{ ::id2-lab-09.pdf | exercises and reference }} - {{ ::id2-10.pdf | slides }} \\ {{ ::id2-lab-10.pdf | exercises and reference }} - {{ ::id2-11.pdf | slides }} \\ {{ ::id2-lab-11.pdf | exercises and reference }} - {{ ::id2-12.pdf | slides }} \\ {{ ::id2-lab-12.pdf | exercises and reference }} - {{ ::id2-13.pdf | slides }} \\ {{ ::id2-lab-13.pdf | exercises and reference }} - {{ ::id2-14.pdf | slides }} \\ {{ ::id2-lab-14.pdf | exercises and reference }} - {{ ::id2-15.pdf | slides }} \\ {{ ::id2-lab-15.pdf | exercises and reference }} */ == Cookbook (PDF) == A collection of useful information and recipes about programming and interfacing microcontrollers using the Arduino IDE. *{{ ::id2-00.pdf | Cookbook }} == Application notes (PDF) == Application notes covering the communication protocols we use in this course. *{{ ::spi_i2c.pdf | SPI and I2C protocols }} == Data sheets (PDF) == Data sheets and other useful information about the active devices that we use in this course. * {{ ::1n4004.pdf | 1N4004}} diode *{{ ::74hc164.pdf | 74HC164}} 8-bit shift register *{{ ::74hc595.pdf | 74HC595}} 8-bit shift register with latch *{{ ::atmega328p.pdf | ATmega328}} microcontroller hardware *{{ ::atmel-0856-avr-instruction-set-manual.pdf | ATmega328 }} instruction set *{{ ::bc337.pdf | BC337 }} NPN transistor *{{ ::gf063p1kb103.pdf | GF063P }} miniature potentiometer *{{ ::kw1-391a2b.pdf | KW1-391A }} common anode display *{{ ::kw1-391csb.pdf | KW1-391C }} common cathode display *{{ ::led.pdf | LED }} light-emitting diode *{{ ::lled-tr501-a.pdf | RGBLED }} tri-colour LED * {{ ::mcp3208.pdf |MCP3208}} analogue-to-digital converter * {{ ::mcp4288.pdf |MCP4288}} digital-to-analogue converter * {{ ::msgeq7.pdf |MSGEQ7}} seven-band audio spectrum analyser * {{ ::sp36mm.pdf |SP36MM}} loudspeaker * {{ ::dc10xxx.pdf |DC10}} 10-segment bar graph array * {{::osx10201lrpb2.jpg?linkonly|OSX10}} 10-segment RGB LED array * {{ ::njm2068d.pdf |NJM2068}} dual low-noise op-amp * {{ ::njm2068_e.pdf |NJM2068}} (English version) * {{ ::njm4556d.pdf |NJM4556}} dual high-current op-amp * {{ ::njm4556a_e.pdf |NJM4556}} (English version) * {{ ::lm35dz.pdf |LM35}} temperature sensor * {{ ::gl35.pdf |GL3516}} photoresistor (light sensor) NOTE The class has an associated development kit. Before the first class, use the [[id2:bom:start|kit parts list]] to verify that your kit has all the parts. Class content is delivered **by video**. It will normally not be repeated during classes. You therefore **must** download and watch each week's videos **before** attending the class. You should also download and try to complete each week's lab experiments before attending the class. The deadline for submission of experimental results is the first Monday following the class. /*Material for Friday's class will also be made available on Monday.*/ The class periods on Friday will be for answering questions about the course content and for assisting anyone who cannot make progress on the experimental part of the class. Class summaries are posted below with details of homework assignments, etc. === Week 1 — Overview and introduction === Course outline. Assessment methods. Office hours, course web site. Project work environment and tools. Lecture format: interrupt and ask questions! Installing the IDE. Writing microcontroller programs. | Slides: | {{ :id2-01.pdf|id2-01.pdf }} | | Videos: | {{ :id2-01-1.mp4?linkonly|Overview }}, {{ :id2-01-2.mp4?linkonly|Installing the IDE }}, {{ :id2-01-3.mp4?linkonly|Microcontroller programming }} | | Experiments: | {{ ::id2-lab-01.pdf|id2-lab-01.pdf }} | /*** **Homework** \\ Review the {{ ::id2-01.pdf|slides }} for this week's class.\\ Watch the videos for this week's class: {{ :id2-01-1.mp4?linkonly|Overview }}, {{ :id2-01-2.mp4?linkonly|Installing the IDE }}, {{ :id2-01-3.mp4?linkonly|Microcontroller programming}}\\ Download and read Section 1 of the {{ ::id2-00.pdf | Cookbook }}.\\ Complete the {{ ::id2-lab-01.pdf|lab }}experiments. ***/ Sample answers for week 1 experiments:\\ | {{ ::01-blink.ino | 01-blink }} | blinkenlichten | Challenges:\\ | {{ ::01-morse-simple.ino | 01-morse-simple }} | simplest Morse code SOS generator | | {{ ::01-morse-factored.ino | 01-morse-factored }} | move repeated actions into reusable functions | | {{ ::01-morse-pattern.ino | 01-morse-pattern }} | use a pattern like "... --- ..." to send a message | | {{ ::01-morse-letters.ino | 01-morse-letters }} | decode a string like "SOS" into patterns to send | | {{ ::01-morse-general.ino | 01-morse-general }} | same thing extended for the entire Morse code | | {{ ::01-morse-array.ino | 01-morse-array }} | use an array instead of switch (trade data memory for code space) | **Homework**\\ Download and watch all week 1 videos.\\ Complete week 1 lab experiments.\\ Download and watch the week 2 videos **before** next week's class.\\ Complete as many lab experiments as possible **before** next week's class. === Week 2 — Serial monitor, basic input/output === Configuring and using the serial monitor. Reading analogue input values. Configuring and operating digital output pins. /* Creating an audio tone using digital output to a small loudspeaker. Introduction to data sheets and ``absolute maximum ratings''. Brief review of Ohm's law. Protecting the microcontroller against damage by using current-limiting resistors. The resistor colour code. */ Using analogue input to control digital output. Using the serial plotter to visualise sensor data. | Slides: | {{ :id2-02.pdf|id2-02.pdf }} | | Videos: | {{ :id2-02-1.mp4?linkonly|Overview }}, {{ :id2-02-2.mp4?linkonly|Serial monitor }}, {{ :id2-02-3.mp4?linkonly|Analogue input }} | | Experiments: | {{ ::id2-lab-02.pdf|id2-lab-02.pdf }} | Please complete as many of the experiments as possible before class. Sample answers for experiments:\\ | {{ ::02-serial.ino | 02-serial }} | serial monitor "hello world" | | {{ ::02-serial-a0.ino | 02-serial-a0 }} | A0 value to serial monitor | | {{ ::02-blink-a0.ino | 02-blink-a0 }} | analogue voltage controls blink rate | Challenges:\\ | {{ ::02-serial-volts.ino | 02-serial-volts }} | report analogue voltage | | {{ ::02-serial-angle.ino | 02-serial-angle }} | report potentiometer angle | | {{ ::02-serial-a0a1.ino | 02-serial-a0a1 }} | A0 and A1 values to serial monitor | | {{ ::sketch_etch.pyde | sketch_etch.pyde }} | etch-a-sketch with dots (for Processing 3 ONLY!) | | {{ ::sketch_line.pyde | sketch_line.pyde }} | etch-a-sketch with connected line segments (for Processing 3 ONLY) | | {{ ::sketch_etch.pde | sketch_etch.pde }} | etch-a-sketch with dots (for Processing 4) | | {{ ::sketch_line.pde | sketch_line.pde }} | etch-a-sketch with connected line segments (for Processing 4) | **Homework**\\ Download and watch the week 3 videos **before** next week's class.\\ Complete week 3 lab experiments **before** next week's class. === Week 3 — Prototyping, protection, and sound === Rapid prototyping, historically and now; circuit diagrams. Electricity and Ohm's law. Protecting the microcontroller from overload. Connecting a loudspeaker safely to a digital output; generating square waves; frequency versus cycle time; playing musical notes. | Slides: | {{ :id2-03.pdf|id2-03.pdf }} | | Videos: | {{ :id2-03-1.mp4?linkonly|Prototyping}}, {{ :id2-03-2.mp4?linkonly|Ohm's law }}, {{ :id2-03-3.mp4?linkonly|Resistor colour code }}, {{ :id2-03-3.mp4?linkonly|Audio output }}, {{ :id2-03-4.mp4?linkonly|Experiment set-up }} | | EN subtitles: | {{ :id2-03-1_en.mp4?linkonly|Prototyping}}, {{ :id2-03-2_en.mp4?linkonly|Ohm's law }}, {{ :id2-03-3_en.mp4?linkonly|Resistor colour code }}, {{ :id2-03-3_en.mp4?linkonly|Audio output }}, {{ :id2-03-4_en.mp4?linkonly|Experiment set-up }} | | Experiments: | {{ ::id2-lab-03.pdf|id2-lab-03.pdf }} | Please complete as many of the experiments as possible before class. **Homework**\\ Download and watch next week's videos **before** the class.\\ Complete as many lab experiments as possible **before** the class. === Week 4 — LEDs and Pulse Width Modulation === Diodes and light-emitting diodes, voltage drop, current-limiting resistors. Frequency and time; pulse-width modulation (PWM). | Slides: | {{ :id2-04.pdf|id2-04.pdf }} | | Videos: | {{ :id2-04-1.mp4?linkonly|Diodes and LEDs}}, {{ :id2-04-2.mp4?linkonly|Experiment set-up }}, {{ :id2-04-3.mp4?linkonly|Pulse Width Modulation }} | | EN subtitles: | {{ :id2-04-1_en.mp4?linkonly|Diodes and LEDs}}, {{ :id2-04-2_en.mp4?linkonly|Experiment set-up }}, {{ :id2-04-3_en.mp4?linkonly|Pulse Width Modulation }} | | Experiments: | {{ ::id2-lab-04.pdf|id2-lab-04.pdf }} | === Week 5 — Environmental sensing: temperature === Temperature sensing. Increasing analogue resolution. | Slides: | {{ :id2-05.pdf|id2-05.pdf }} | | Videos: | {{ :id2-05-1.mp4?linkonly| Measuring temperature}}, {{ :id2-05-2.mp4?linkonly|Experiment set-up }}, {{ :id2-05-3.mp4?linkonly|Analogue range }} | | EN subtitles: | {{ :id2-05-1_en.mp4?linkonly|Measuring temperature}}, {{ :id2-05-2_en.mp4?linkonly|Experiment set-up }}, {{ :id2-05-3_en.mp4?linkonly|Analogue range }} | | Experiments: | {{ ::id2-lab-05.pdf|id2-lab-05.pdf }} | === Week 6 — Environmental sensing: light === Electronics review: series and parallel circuits, potential dividers. Light-dependent resistors. Light-dependent voltage dividers. Self-calibrating measurements. | Slides: | {{ :id2-06.pdf|id2-06.pdf }} | | Videos: | {{ :id2-06-1.mp4?linkonly| Series/parallel circuits}}, {{ :id2-06-2.mp4?linkonly|Light-dependent resistors }}, {{ :id2-06-3.mp4?linkonly|Experiment set-up }} | | EN subtitles: | {{ :id2-06-1_en.mp4?linkonly|Series/parallel circuits}}, {{ :id2-06-2_en.mp4?linkonly|Light-dependent resistors }}, {{ :id2-06-3_en.mp4?linkonly|Experiment set-up }} | | Experiments: | {{ ::id2-lab-06.pdf|id2-lab-06.pdf }} | === Week 7 — Managing multiple outputs === Connecting several LEDs. Representing LED states with a single integer. Decimal and binary number representations. Using each bit of an integer to represent an independent true/false value. | Slides: | {{ :id2-07.pdf|id2-07.pdf }} | | Videos: | {{ :id2-07-1.mp4?linkonly| Managing multiple outputs}}, {{ :id2-07-2.mp4?linkonly|Experiment set-up }} | | EN subtitles: | {{ :id2-07-1_en.mp4?linkonly|Managing multiple outputs}}, {{ :id2-07-2_en.mp4?linkonly|Experiment set-up }} | | Experiments: | {{ ::id2-lab-07.pdf|id2-lab-07.pdf }} | === Week 8 — LED arrays === Using LED arrays. Using all available digital outputs. Accessing the hardware I/O registers directly. Parallel digital output. | Slides: | {{ :id2-08.pdf|id2-08.pdf }} | | Videos: | {{ :id2-08-1.mp4?linkonly|Using LED arrays}}, {{ :id2-08-2.mp4?linkonly|Accessing I/O registers }} , {{ :id2-08-3.mp4?linkonly|Experiment set-up }} | | EN subtitles: | {{ :id2-08-1_en.mp4?linkonly|Using LED arrays}}, {{ :id2-08-2_en.mp4?linkonly|Accessing I/O registers }} , {{ :id2-08-3_en.mp4?linkonly|Experiment set-up }} | | Experiments: | {{ ::id2-lab-08.pdf|id2-lab-08.pdf }}, {{ :08-20-led-setup.ino | Template for 20-LED programs}} | === Week 9 — Multi-coloured RGB LED arrays === RGB LED arrays and interfacing to them. Controlling 30 LEDs with 13 digital pins. Time-division multiplexing. Interrupts, foreground and background tasks, timer interrupts to implement background tasks. | Slides: | {{ :id2-09.pdf|id2-09.pdf }} | | Videos: | {{ :id2-09-1.mp4?linkonly|RGB LED arrays}}, {{ :id2-09-2.mp4?linkonly|Timer interrupts }} , {{ :id2-09-3.mp4?linkonly|Experiment set-up }} | | EN subtitles: | {{ :id2-09-1_en.mp4?linkonly|RGB LED arrays}}, {{ :id2-09-2_en.mp4?linkonly|Timer interrupts }} , {{ :id2-09-3_en.mp4?linkonly|Experiment set-up }} | | Experiments: | {{ ::id2-lab-09.pdf|id2-lab-09.pdf }}, {{ :09-background-display-update.ino | 09-background-display-update.ino (Timer1 example program))}} | === Week 10 — Seven-segment displays === Displaying alphanumeric information on seven-segment displays. | Slides: | {{ :id2-10.pdf|id2-10.pdf }} | | Videos: | {{ :id2-10-1.mp4?linkonly|Seven-segment displays}}, {{ :id2-10-2.mp4?linkonly|Experiment set-up }} | | EN subtitles: | {{ :id2-10-1_en.mp4?linkonly|Seven-segment displays}}, {{ :id2-10-2_en.mp4?linkonly|Experiment set-up }} | | Experiments: | {{ ::id2-lab-10.pdf|id2-lab-10.pdf }} | === Week 11 — Digital input === Digital input. Momentary push-button 'tactile' switches. Pull-up resistors. Switch bounce and debouncing in hardware and software. Capacitors and time constants. Event-based interrupts for concurrency. | Slides: | {{ :id2-11.pdf|id2-11.pdf }} | | Videos: | {{ :id2-11-1.mp4?linkonly|Digital inputs and buttons}}, {{ :id2-11-2.mp4?linkonly|Debouncing }}, {{ :id2-11-3.mp4?linkonly|Interrupt-driven input }}, {{ :id2-11-4.mp4?linkonly|Experiment set-up }} | | EN subtitles: | {{ :id2-11-1_en.mp4?linkonly|Digital inputs and buttons}}, {{ :id2-11-2_en.mp4?linkonly|Debouncing }}, {{ :id2-11-3_en.mp4?linkonly|Interrupt-driven input }}, {{ :id2-11-4_en.mp4?linkonly|Experiment set-up }} | | Experiments: | {{ ::id2-lab-11.pdf|id2-lab-11.pdf }} | === Week 12 — Shift registers === Serial to parallel conversion. Shift registers. | Slides: | {{ :id2-12.pdf|id2-12.pdf }} | | Videos: | {{ :id2-12-1.mp4?linkonly|Shift registers}}, {{ :id2-12-2.mp4?linkonly|Experiment set-up }} | | EN subtitles: | {{ :id2-12-1_en.mp4?linkonly|Shift registers}}, {{ :id2-12-2_en.mp4?linkonly|Experiment set-up }} | | Experiments: | {{ ::id2-lab-12.pdf|id2-lab-12.pdf }} | === Week 13 — Serial communication: I2C and SPI === Serial communication. I2C and SPI protocols. Using the MCP3204 analogue to digital converter with SPI. | Slides: | {{ :id2-13.pdf|id2-13.pdf }} | | Videos: | {{ :id2-13-1.mp4?linkonly|Serial communication}}, {{ :id2-13-2.mp4?linkonly|External ADC over SPI }}, {{ :id2-13-3.mp4?linkonly|Experiment set-up }} | | EN subtitles: | {{ :id2-13-1_en.mp4?linkonly|Serial communication}}, {{ :id2-13-2_en.mp4?linkonly|External ADC over SPI }}, {{ :id2-13-3_en.mp4?linkonly|Experiment set-up }} | | Experiments: | {{ ::id2-lab-13.pdf|id2-lab-13.pdf }} | === Week 14 — Project === | Project suggestions: | {{ :id2-14.pdf|id2-14.pdf }} | | Support files: | {{ :sine.h|sine.h }} | ===== License ===== The content of this page and all materials linked from it are\\ Copyright © 2015--2021 by Ian Piumarta.\\ All rights reserved. The author hereby grants a perpetual, non-transferable license to Kyoto University of Advanced Science and its directly affiliated high schools to use this material in original or modified form for classrom and/or online teaching. /************* === Week 10 — Serial device communication === The Inter-Integrated Circuit (I2C) and Serial Peripheral Interface (SPI) protocols. Example of SPI: using the MCP3204 D/A converter. **Homework**\\ Review the slides for this week's class. === Week 11 — Device summary and project suggestions === Summary of many kinds of input/output devices available. Shields and their libraries. The LoLShield. Project suggestions and advice. **Homework**\\ Review the slides for this week's class. Choose a project. If you have any special hardware requirements for your project, tell the instructor before next class. */