2019-2020 ICS3U: AVR FOUNDATIONS | ||||
---|---|---|---|---|
CLASS | REFERENCE | CONTENT & CONCEPTS | PROJECT | SUPPLEMENTAL |
82 Jun 5 |
Great Reads |
|||
81 Jun 3 |
The Julia Set Gaston Julia · Ansel Adams |
|||
80 Jun 1 |
The Mandelbrot Set Making your own Mandelbrot Movies Mandelbrot Movie |
|||
79 May 28 |
The Mandelbrot Set Grayscale Palette Mouse Zoom and Explore |
2.20 |
||
78 May 26 |
AP Seminar PB, JB, JD, JL, MM, SR, LRC, JV |
No Meet (AP) |
2.20 |
|
77 May 22 |
The Mandelbrot Set Escape-Time Algorithm Post-Class Code: MandelbrotBWInClassShell.pde |
|||
76 May 20 |
AP Eng, Lang. (2:00 everyone?) |
No Meet (AP) |
AP Micro SA, JD, SR |
|
75 May 15 |
The Mandelbrot Set Complex Numbers: Orbits Post Class Code: isInSetInClass.pde |
|||
74 May 13 |
The Mandelbrot Set Complex Numbers: Orbits |
Heinz-Otto Peitgen | ||
73 May 11 |
The Mandelbrot Set Complex Numbers Complex Numbers pp. 4-5 |
Benoit Mandelbrot |
||
72 May 7 |
The Mandelbrot Set Feedback Examples: Audio, Video, Sequential Logic, OpAmps, etc. Mathematics Video Feedback Loop |
Timed Mechanics SA, PB*, JB*, JDe, HD AG*, JL, MM**, RM, SR LR-C*, OS, JS, CT, WT MVD, JV* |
||
CLASS | REFERENCE | CONTENT & CONCEPTS | SUPPLEMENTAL | PROJECT |
71 May 5 |
One more Mechanical device in your kit we have yet to explore... Keypad Library |
ACES' (No Library) Interrupt Code Implementation of the Telephone Keypad |
||
70 May 1 |
RSGC ACES' Gem: M. McCutcheon (ACES '20) Mini CNC Plotter |
No Meet: Work Period M3: Stepper Motors Drive Options: Wave, Full, and Half-Step Here's a Half-Step Sequence Animation... |
2.9
|
|
69 Apr 29 |
RSGC ACES' Gem: O. Logush (Queen's Eng. '22) CNC Machine User's Guide |
Stepper Library (Examples) (Specific) MOT-28BYJ-48 with ULN2003 Driver Unipolar vs Bipolar Stepper Motors MOT-28BYJ-48 Datasheet |
Video support for today's Meet |
2.9
|
68 Apr 27 |
RSGC ACES' Gem: A. Elder (Mac. Eng. '21) Laser Projector |
Precision Positioning... M3: Stepper Motors Feedback: Open vs Closed Loop Systems (General) How Does a Stepper Motor Work? MOT-28BYJ48 with ULN2003 Darlington Driver |
||
67 Apr 23 |
RSGC ACES Gem: James C's Binary Hand Counter |
M2: Servo Motors Deep Theory Lesson on PWM K. Shirriff's: Secrets of Arduino PWM |
Timer1 WGMs: Waveform Generation Modes |
|
66 Apr 21 |
RSGC ACES Gem: Jasper's Rubik's Cube Solver Polish, but :) How a Servo Motor Works PID |
M2: Servo Motors Blum's Servo Tutorial Servo Library (Ex. Knob, Sweep) Servo Library Uses Timer1 |
Servo Connections Servo Controller Concepts Open vs Closed Loop Analog Feedback Servos That 4th Wire: Calibration |
|
65 Apr 17 |
|
M1: DC Motor Control System (Speed and Direction) See F/C email post for important content SN754410 Datasheet |
SN754410 pg. 2 Flyback Diode Advice |
2.8
DC Motor Control SA*, PB., JB., JDe., HD. AG.*, JL, MM.*, RM, SR. LR-C., OS., JS, CT, WT. MVD., JV |
64 Apr 15 |
RSGC ACES Gem: Josh's Bi-Wheeled Rover L293D vs SN754410 (both in your kit) |
M1: DC Motor Control Microchip Paper on Brushed DC Motor Fundamentals SN754410 H-Bridge (Datasheet) Tutorial 1 or Tutorial 2 Must View: How DC Motors Work |
Falstad Darlington Pair H-Bridge Connections |
2.8
RSGC ACES Motor Direction-Related Video L293DE Motor Control Demonstration (1:00) Spur (Driver) Gear: Gear Generator (Driven) |
EASTER WEEKEND (April 10-13) | ||||
63 Apr 9 |
M1: DC Motors (Speed) RSGC ACES Motor Speed-Related Videos External Interrupt with a PhotoInterrupter (0:24) Measuring RPM with a PhotoInterrupter (0:52) Inverse Electromagnetic Principle (1:06) |
Adam's Rendering of Joseph's Encoder |
DC Motor Tachometry SA, PB, JB, JDe, HD AG, JL*, MM*, RM, SR LR-C, OS, JS, CT, WT MVD, JV 2.7 |
|
62 Apr 7 |
Switching: Low-Side vs High-Side Brushed vs Brushless? |
M1: DC Motors (Speed)
Arduino DC Motor Control Tutorial Driving/Switching Higher Loads: TIP120 (Darlington) vs IRF520 (MOSFET) DC Motor Tachometry Code Shell: MeasuringRPM.ino |
Huge Shout-out to Joseph for Design Files! EncoderV3.stl, MotorV2.stl, Motor2V2.stl |
|
LONG (7 weeks) ISP Proposals: April - May | ||||
61 Apr 3 |
Introduction to DC Hobby Motors Sparkfun's ROB-11696 Hobby - Gear Datasheet: M260 Power Supply Considerations: BJTs vs FETs Datasheet: IRF520 |
|||
F. Communication |
||||
CLASS | REFERENCE | CONTENT & CONCEPTS | SUPPLEMENTAL | PROJECT |
60 Apr 1 |
Communication Protocols (Serial, SPI, I2C, RF, IR2, BT) AVR Foundations Workbook: pp. 88-89 IRTinkerCADCodeComparison |
2.20a Create Enclosure from PCB |
||
59 Mar 30 |
Communication Protocols (Serial, SPI, I2C, RF, IR1, BT) AVR Foundations Workbook: pp. 88-89 Seb's Foosball Goal Detection Terrific Explanation of IR Proximity Sensing |
|||
58 Mar 26 |
See... ICS3U F/C Conference SPI: Serial Peripheral Interface AVR Foundations Workbook: pp. 82-83 |
|||
57 Mar 24 |
595 as SPI Device? |
The Circular (Trig) Functions Concept and Joystick Demonstration Communication Protocols (Serial, SPI, I2C, RF, IR, BT) AVR Foundations Workbook: pp. 82-83 Arduino Workshop: SPI SPIvsShiftoutV2.docx |
SPI Library SPIvsShiftOutV2.ino Arduino C Toolchain... pins_arduino.h |
|
EXTENDED COVID-19 BREAK | ||||
MARCH BREAK | ||||
56 Mar 4 |
Medium ISP Presentations ( JV, JS, OS, JL, PB, WT) |
Medium ISPs... SA, PB, JB, JDe, HD, AG, JL, MM, RM, SR, LRC, OS, JS, CT, WT, MvD, JV |
||
55 Mar 2 |
Medium ISP Presentations (AG, JD, CT, LRC, JB,) |
Guest: Matt Weldon 2008 ICS3U Final Exam ACES '09; Queen's '13 (Eng. Physics) |
||
54 Feb 27 |
Medium ISP Presentations (MvD, HD, SA, SR, RM) |
(3% of overall course mark) | ||
53 Feb 25 |
Communication Protocols (Serial, SPI, I2C, RF, IR, BT) Part Class: Math Contest Serial Communicaton (UART) Part 2A. CLIENT-SERVER Part 2B. PEER-PEER Chat.ino, Serial Mastermind |
|||
52 Feb 21 |
Communication Protocols (Serial, SPI, I2C, RF, IR, BT) Serial Communicaton (UART) Part 1. AUTONOMOUS ARDUINO Adafruit's v3 GPS Breakout (GPS NMEA Sentences) (time-permitting) Show students the General Base Conversion Algorithm |
|||
51 Feb 19 |
Behind the curtain... Wire-Level RTC Exercises (cont'd) 4. DS1307 Square Wave Exploration |
Great code is Modular: Arduino C Functions |
||
4-Day Winter Break (February 14-17) | ||||
50 Feb 13 |
DS1307 Registers WireLevelRTCLCD |
Behind the curtain... Wire-Level RTC Exercises (cont'd) 3. DS1307 RTC Timekeeping Registers Video Support: DateTime BCD: Binary Coded Decimal Two utility functions: uint8_t BCD2bin(uint8_t bcd) uint8_t bin2BCD(uint8_t bin) |
sprintf, Format Codes |
C++ Operator Precedence (p. 140) |
49 Feb 11 |
How I2C Works
|
Behind the curtain... Wire-Level RTC Exercises 1. Research: How I2C Communication Works 2. TC74 Tiny Serial Temperature Sensor |
||
48 Feb 7 |
DS1307RTC I2C Tutorial |
Pierce Oscillator Show & Tell (supplemental parts repatriation) Communication Protocols (Serial, SPI, I2C, RF, IR, BT) RSGC ACES: Raymond RTC Appliance DS1307 Real-Time Clock (RTC) Install DS1307RTC Library (as above) Deep Library Reference: DS1307RTC, Time |
CMOS 4060 Ripple DS1307 Description |
|
47 Feb 5 |
Challenge-Style Exercise #2 | |||
CLASS | REFERENCE | CONTENT & CONCEPTS | SUPPLEMENTAL | PROJECT |
46 Feb 3 |
pp. 108-109 |
Port Pin Summary (1:55) AVR Foundations: LCDAnalogMeter Mr. D's favourite 8-pin IC... MSGEQ7 The 7-Band Spectrum Analyzer Terrific Tutorial: MSGEQ7 by Skoba RSGC ACES MSGEQ7 Audio Equalizer Prototype Custom LCD Character Function: createChar() |
Online Tone Generator |
Legacy PCB/Appliance SA*, PB, JB*, JDe*, HD AG, JL, mm, RM, SR, LR-C**, OS, JS, CT, WT mvd, JV* |
45 Jan 30 |
(partial class due to AMC) Soldering Session |
|||
44 Jan 28 |
pp. 40-41 One of many... GPIO Tutorials |
EAGLE Loose Ends: Silk-screen Borders, Mitered Corners Milling Layer (46) and Reference Layer (49) GPIO Register-Level Manipulation |
2.6.3 | |
Chinese New Year: January 25 - February 4. Year of the Rat... | ||||
43 Jan 24 |
pp. 40-41 | Bit-Banging |
2.6.3 | |
42 Jan 22 |
ACES' LCD Designers? |
They've Arrived! (12-Day Turnaround: Jan 8 - 20) Legacy PCB/Appliance Reveal Session Tracking: 1Z6V669X0419552927 |
2.6.3 | |
41 Jan 20 |
Behind the curtain... ATmega328P Memory, GPIO Regs (pp. 137-139) |
Behind the curtain... Arduino C Execution Cycle and an early look at... AVR GPIO Registers (p. 611) #include Arduino.h (software) #include iom328p.h (hardware) C++ Operator Precedence (p. 140) AVR Foundations: LCDAnalogMeter |
||
40 Jan 16 |
NeoPixel Dialer Fusion 360 EZ Snap Case Enclosure |
Challenge-Style Exercise #1 |
Legacy PCB/Appliance SA*, PB, JB, JDe, HD AG, JL, MM, RM*, SR, LR-C, OS, JS, CT, WT MVD, JV |
|
39 Jan 14 |
Debouncing Strategies for Buttons pp. 98-99... Liquid Crystal Library: Hello, World! ACES' LCD Samplers: Reaction, Temperature, Time, Keypad, Audio HD44780U ACES' Advanced LCD Project: Direct Drive |
LCD UNO Appliance | Liquid Crystal Displays Arduino Library LiquidCrystal Functions |
|
p. 67, 130
p. 122 |
Event-Driven (Non-Blocking) Coding Interrupts Recall TimerOne External Interrupts: Buttons |
2.6.2 | ||
DUE in handin EAGLE PCB (ISP?) files and Medium ISP Proposal Reading Buttons... (not as straightforward s you might think) |
Medium ISP Proposal |
2.10, 2.6.1 | ||
MEDIUM (6 weeks) ISP Presentations: January - February | ||||
Christmas Break | ||||
D. CAD 1: Printed Circuit Board Design with AutoDesk's EAGLE | ||||
CLASS | REFERENCE | CONTENT & CONCEPTS | SUPPLEMENTAL | PROJECT |
EAGLE IV
ACES_Generic.cam |
The CAM Processor (.cam) Generating the Gerber (Manufacturing) Files Check & Rules Error (ERC) Design (.dru, DRC), Better PCBs in EAGLE |
Board Houses JLC PCBs, DirtyPCBs |
2.10, 2.6.1 | |
35 Dec 16 |
EAGLE III
ACES_THT.dru |
Creating the Board File (.brd) Schematic: Replace (6mm for 12mm PB) Layers (Dimension, Holes, tOrigins, tSilk, 200bmp) Tools (Line, Miter, Hole, Mirror, Ratsnest, Show, AutoRouter, Text) Scripts: ripup; import-bmp.scr EAGLE Tutorials: 3. Board Layout |
2.10, 2.6.1 Adafruit Mint PCB files EAGLE Rules |
|
EAGLE II
|
Creating the Schematic (.sch) Convenient EAGLE Libraries (.lbr): ACES_THT.lbr, Sparkfun, Adafruit Installing Sparkfun and Adafruit Libraries Common Parts: THT, SMT, General EAGLE Tutorials: 2. Schematic |
2.5
MatrixMadeEZ SA, PB*, JB, JDe, HD* AG, JL, MM*, RM*, SR, LR-C, OS, JS, CT, WT MVD, JV |
||
EAGLE I
|
(Special treat for SA, JB, HD, OS, & JS) PCB Gallery, EAGLE Home Page Application Orientation Projects, Preferences, Schematic and Board EAGLE Tutorials: 1. Install and Setup |
EAGLE Project Files for MatrixMadeEZv2: MatrixMadeEZv2.sch MatrixMadeEZv2.brd |
||
CLASS | REFERENCE | CONTENT & CONCEPTS | SUPPLEMENTAL | PROJECT |
32 Dec 6 |
External Interrupts page 122 Check out the Gecko II prototype for animation ideas... |
Define and load a local Matrix Frame uint8_t image[] ={0,0,0,0,0,0,0,0}; Qualifier: volatile EEPROM: Writing To and Reading From AVR Foundations: EEPROMWriteChars.ino |
ACES ('15) Frame Design Utility String Object |
Frame Flipping/Inversion MatrixMadeEZInversion |
RSGC ACES: Matrix Position RSGC ACES: Joystick Principle RSGC ACES: 2018/2019 MatrixMadeEZ Videos** |
AVR Foundations: MatrixMadeEZ.ino Interrupt-Driven Programming Hobbytronics: Arduino Timer Interrupts Your first(?) (explicit) Library: TimerOne Detailed TimerOne Documentation Sketch > Include Library > Manage Libraries... |
|||
30 Dec 2 |
Planting the Seed: How PCBs are Made MatrixMadeEZ Kit Components Power Logic 8-bit Shift Register: TPIC6C595 Small 8x8 Matrix: BL-M07C881UR-11 Adafruit Alternative: KWM-20882CUYB |
|||
29 Nov 28 |
Binary Challenge: Signed (1500 in 5) Altoids Arduino Work Week Necessity is truly the Mother of Invention |
2.4.2
Altoids Arduino SA*, PB*, JB*, JDe, HD AG*, JL, MM, RM, SR, LR-C, OS, JS, CT, WT MVD, JV |
||
28 Nov 26 |
Binary Challenge: Signed (1500 in 5) Altoids Arduino Work Week Distribution of Additional Parts Drilling (Punch first, then Metal Bit) Cutting (Chisel first, then 545 Diamond Dremel Wheel) |
Generic 'Altoids?' Tins |
2.4.2
Breadboard Mega SA, PB*, JB, JDe, HD AG*, JL*, MM, RM**, SR, LR-C**, OS, JS, CT, WT MVD, JV |
|
27 Nov 22 |
Binary Challenge: Signed (1500 in 5) AVR Foundations: RGBStructs.ino Array of struct additional example, AVR Foundations: StructVariations.ino |
Coming soon... 2-Dimensional Scrolling Technique through Bitshifting Data Modeling: Structs |
2.4.1
|
|
26 Nov 20 |
Binary Challenge: Signed (1500 in 5) AVR Foundations: BargraphScrolling.ino |
1-Dimensional Scrolling Technique through Bitshifting |
||
25 Nov 18 |
2's Complement
Binary Challenge: Signed (1500 in 5) Bit-Level Arithmetic and Logic |
Cast |
2.4.1 xzx Typedef |
|
24 Nov 14 |
Signed Representation of Integers
B. Eater: Two's Complement Binary Challenge: Signed (1500 in 5) AVRDUDE Clock Sources: ATmega328p Datasheet (p. 28) AVR: First Look at Fuses |
2.4.1 Online AVR Fuse Calculator |
||
23 Nov 12 |
Binary Challenge: ASCII (2000 in 5) Repatriation of LPT-3748G MCU Embedded Systems Martyn Currey: ATmega328p on a Breadboard Rheingold: Deep Crystal Discussion |
|||
NOVEMBER BREAK | ||||
22 Nov 6 |
Repatriation of
LB-602MK2
Binary Challenge: ASCII (2000 in 5) AVR Foundations: ByteManipulations.ino Build your own Arduino on a Breadboard (5V) Voltage Regulation (LM7805) |
PoV Word SA, PB, JB*, JDe, HD* AG, JL, MM**, RM, SR*, LRC, OS, JS*, CT, WT MVD, JV |
2.3
|
|
21 Nov 4 |
pp. 35-36 |
Binary Challenge: ASCII (2000 in 5) PoV Word Project Work Period |
LPT-3748G |
2.3
|
20 Oct 31 |
Binary Challenge: Review ASCII (2000 in 5) In-Class PoV Project: (aka, The ICS2O Counting Circuit++) RSGC ACES: Dual 7-Segment POV AVRFoundations: Dual7SegmentPOV.ino |
LB-602MK2 |
2.3 Inspiring PoV Videos: |
|
19 Oct 29 |
Binary Challenge: Unsigned Fixed Point (2000 in 5) In-Class Project: Save the completed Write2SegUpperCaseCharacters.ino sketch to: EEPROMEcho.ino. Modify this code to confirm access to your non-volatile EEPROM map by echoing user-entered characters through a 595 shift register to your 7-segment display...>>> |
EEPROMEcho: Note: lowercase letters should be converted to their UPPERCASE equivalents! Ternary? |
2.3 Wait what?... no resistors ??? |
|
18 Oct 25 |
|
Binary Challenge:
Unsigned Fixed Point In Class Project: Develop and Write a byte-width segment map to EEPROM, for the 26-letter uppercase alphabet: AVRFoundations: Write7SegUpperCaseCharacters.ino |
Integer Constants | |
17 Oct 23 |
Introduction to Unsigned Fixed Point Binary Numbers Introduction to Writing to and Reading from EEPROM Library for Arduino AVRFoundations: EEPROMExercises.ino |
eeprom_write.ino >eeprom_read.ino |
(LR-C&JV) Ultimaker 2+ and 3 Training Session: 1-3 pm |
|
16 Oct 21 |
Binary Challenge: Octal BCD (3000 in 5)
(those students who still do not meet the criteria have an Octal Detention with me after school :) Review of Project 2.2 Binary Button Echo Sparkfun Pocket Programmer Hookup Guide (USBtiny) Burning the Bootloader (sets the Fuses!) |
Binary Button Echo SA, PB*, JB, JDe*, HD AG*, JL, MM, RM, SR, LRC*, OS, JS*, CT, WT MVD*, JV Down Memory Lane: The ICS2O Counting Circuit |
Arduino C Include file: iom328p.h
Have this FULLY assembled for Friday! |
|
B.
Basic I/O Skills: Code, Data, and Simple Arduino Breadboarding
|
||||
CLASS | REFERENCE | CONTENT & CONCEPTS | SUPPLEMENTAL | PROJECT |
15 Oct 17 |
Extending Pins (a.k.a. doing more with less): ShiftOut Function, Tutorial 74HC595 vs SN74HC595 AVRFoundations: Binary Counter Create: PotBargraphEcho.ino |
|
2.2 |
|
14 Oct 15 |
Binary Challenge: Octal BCD (3000 in 5)
Analog Pot Bargraph Exercise → Create: AnalogPotBargraph.ino Supplement: 11 pin (10 resistor) 330 Ω SIP Resistor Language Reference Arrays, map() and constrain() |
SIP Resistor Network |
||
13 Oct 10 |
Binary Challenge: Octal BCD (3000 in 5)
(Digital) interfacing with the (Analog) Natural World... Analog Input File>Examples>Basics>AnalogReadSerial "Help!!! I need more pins!"... Can the Analog pins be used as Digital pins? |
Arithmetic Efficiency: |
||
12 Oct 8 |
p. 13
pp. 14-15 |
Binary Challenge: Octal BCD (3000 in 5)
A Third Digital Pin Option... pinMode(pin,INPUT_PULLUP); Project 2. Binary Button Echo Discussion and Supplemental Parts Distribution (PCB, 330Ω RN, Wire, USB MALE A to Mini B) Resistor Network: p. 19 Analog Output File>Examples>Basics>Fade |
Faux Fire Effect |
|
11 Oct 4 |
pp. 12-13 So Wrong :( |
Binary Challenge: Hexadecimal (2000 in 5)
Digital Input digitalRead(pin) File>Examples>Basics>DigitalReadSerial Digital Input with Pullup digitalInputPullup(pin) File>Examples>Digital>DigitalInputPullup |
DIGITAL Pins |
|
10 Oct 2 |
Four Ways to Power Up your Arduino |
Binary Challenge: Hexadecimal (2000 in 5)
RGBLED Scripting Language V1 |
Arduino C |
|
9 Sep 30 |
A.10.4 |
Binary Challenge: Hexadecimal (2000 in 5)
Serial Input Serial.read() RGBLED Scripting Language V1 Create RGBScript enabling users to enter... R,r: turns red on, G,r: turns green on, B,b: turns blue on, O,o: turns ALL LEDs off Ignore New Line character and all others are flagged as Unrecognizable Character (log every action to the Serial Monitor) |
Traffic Light SA, PB*, JB*, JDe**, HD AG, JL, MM, RM, SR, LRC, OS, JS, CT, WT MVD, JV** |
Arduino C |
8 Sep 26 |
The RESET Button |
Binary Challenge: Hexadecimal (2000 in 5) while (condition) {...} AVRFoundations: SerialTest File > Examples > Communication > ASCIITable |
2.1 |
|
7 Sep 24 |
AVRFoundations pp. 10-11 What happens if... you have an LED in pins 0 and 1 while uploading? |
Binary Challenge: Unsigned
(500 in 5)
From DIGITAL output to SERIAL Output Serial Output The Serial Library, Serial Monitor Serial.print() vs Serial.write(); |
AVRFoundations: SerialIO.ino |
|
6 |
pp. 6-9 |
Binary Challenge: Unsigned (500 in 5)
Standard Integer Data Types (SRAMTest.ino: run some simple tests) Legacies: GB Machine and Schaffer Traffic Light |
Program Execution
|
|
5 Sep 17 |
pp. 1-8 |
File > Preferences: verbose compilation & upload Tools > Auto Format Arduino's main.cpp Coding Levels: High > Mid (Register) > Low Extensive list of programming predefines... #include <Arduino.h> and ATmega328p-specific predefines... #include <iom328p.h> In-Class Code Session: 5mm RGBLED |
Microchip's (ATMEL):
ATmega328P μC (pp. 2-3) (Datasheet Summary) |
Arduino Language Reference AVRFoundations |
A. Arduino Fundamentals |
||||
CLASS | REFERENCE | HARDWARE | SOFTWARE | SUPPLEMENTAL |
4 Sep 13 |
Digital Output Arduino Forum: The Arduino Bootloader |
Customizing YOUR Environment Projects: Sketch Folder Code: BareMinimum.ino DER: Copy as HTML Example |
||
3 Sep 11 |
Arduino Toolchain |
|||
2 Sep 9 |
p. 0 |
19/20 ICS3U ACES Toolkit (distribute RA breakaway headers) The Arduino UNO Rev 3. Power, Programming Ports |
4 ACES Domains: Hardware Software Design Communication |
|
1 Sep 5 |
[ACES Culture] |