![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() |
|||
2021-2022 ICS3U-E: AVR FOUNDATIONS | ||||
---|---|---|---|---|
CLASS | REFERENCE | CONTENT & CONCEPTS | SOFTWARE | PROJECT |
![]() |
Everyone | 2.20b ![]() DA, SA, TA, FC, AD, AE TL, HMS*, RM, JR*, ES, JS |
||
END OF CLASSES | ||||
Future ISP? RF Controller |
![]() |
2.20b |
||
Nordic Semiconductor
![]() 14Core: nrf24 Projects ![]() |
Communication Protocols (Serial, SPI, I2C, RF, IR, BT) nRF: Radio Frequency nRF24L01 Transceiver (SPI-based): Getting Started, Arduino Guide AVR Foundations Workbook: pp. 85-88 RF24 Library (tmrh20) Class Documentation ![]() ![]() |
![]() ACES' nRF24L01+ BoB... ![]() |
![]() ![]() |
|
![]() |
![]() K. Shirriff's Earlier: IRremote v2.2.3 (Thanks, James) |
![]() ![]() |
||
64 Apr 20 |
IRremote (V2.5) Library Documentation Note: Active Development! Find IR Codes |
Communication Protocols (Serial, SPI, I2C, IR, RF, BT) Day 2: Data Transmission ACES' Frame Player: Infrared (Digital) IR Data Communication → → → ![]() ![]() |
F. Folarin's (ACES' 20, Waterloo '25) IR Remote ISP... ![]() Your 3mm Emitter: LTE-3206 |
![]() ![]() Datasheet |
![]() ![]() Distance vs Voltage ![]() |
Communication Protocols (Serial, SPI, I2C, IR, RF, BT) Day 1: Digital Breakbeam vs Analog Proximity ACES' Frame Player: Infrared (Digital) IR Data Communication ![]() Your 5mm IR Pair |
![]() ![]() (A MUST read) SB's: IR Control Theory |
PhotoTransistor (Digitalish) Breakbeam Sensing ![]() (Analog-to-Digital) Proximity Sensing ![]() |
|
![]() |
||||
CLASS | REFERENCE | CONTENT & CONCEPTS | SOFTWARE | PROJECT |
595 as SPI Device?![]() |
Communication Protocols (Serial, SPI, I2C, RF, IR, BT) AVR Foundations Workbook: pp. 82-83 ![]() ![]() ![]() |
![]() |
![]() ![]() SPIvsShiftOutV2.ino Arduino C Toolchain... pins_arduino.h |
|
![]() |
Communication Protocols (Serial, SPI, I2C, RF, IR, BT) Serial Communicaton (UART) Part 2A. CLIENT-SERVER Part 2B. PEER-PEER ![]() |
![]() |
||
61a Apr 13 |
![]() |
Communication Protocols (Serial, SPI, I2C, RF, IR, BT) ![]() Flipping the Script where . Hardware drives Software... Joystick Trigonometry ( Mr. D's Candidate for the Most Inspiring Lesson of Your High School Experience ) |
![]() ACES' UART Communication Stick ![]() |
![]() |
![]() |
||||
END OF ELECTROMECHANICAL - START OF COMMUNICATION | ||||
60 Apr 12 |
ACES' Stepper Gem:![]() ![]() ![]() (ACES '20) Mini CNC Plotter |
MUST WATCH!! ![]() ![]() ![]() can be problematic! ![]() ![]() ![]() MOT-28BYJ-48 Datasheet RSGC ACES' Library-free Stepper Motor Example... ![]() ![]()
|
![]() ![]() ![]() |
CLOSED Loop System... ACES' PID Gem: ![]() ![]() (Queen's Eng. '22) Balance Beam ACES' Stepper Gem: ![]() ![]() ![]() (Mac. Eng. '21) Laser Projector |
59 Apr 11 |
ACES' Servo Gem:![]() ![]() ![]() (Queen's Eng. '22) Rubik's Cube Solver SG92R Micro Servo |
Mechanical Devices (Type 3) A brief introduction to AVR Timers... Timer1 Registers and Clock Prescalers ![]() ![]() |
In your kits:
SN754410 Quad Half-H Motor IC (Last Frame) Polish (but Inspiring!) ![]() Servo Motor Works (build your own?) Servo Connections Servo Controller ![]() |
![]() ![]() Deeper Considerations: ![]() ![]() |
BC Trip (April 4-8) | ||||
58 Apr 1 |
Let's code... DCMotorControl.ino |
Mechanical DC Motors 4... SN754410 Quadruple Half-H (Motor) Driver |
![]() |
![]() ![]() |
57 Mar 31 |
![]() ![]() |
![]() ![]() |
![]() ![]() |
|
56 Mar 30 |
ACES' Mechnical Gem: ![]() ![]() ![]() Bi-Wheeled Rover |
Sparkfun's ROB-11696 Hobby Motor - Geared ![]() ![]() |
![]() ![]() Simple Blink Sketch |
|
55 Mar 29 |
![]() ![]() |
ROB-11015 5V Solenoid![]() ![]() |
SEPARATION of CONTROL Logic and DRIVE Power Power Supply Considerations N-Channel Switching Options BJTs (<1A) (3904, 2N4401, BC337) vs Darlington Array (<5A?) (TIP120) vs ULN2003 (DIP-8) vs MOSFETs (>5A?) (IRF520) |
|
ELECTROMECHANICAL | ||||
END OF BLOCK 3 (Just 14 Classes Left) | ||||
![]() |
![]() ![]() |
2.20a Due: Mon Feb 21 Email: ACESHandin |
||
JANUARY-FEBRUARY: Standalone MCU, PCB (EAGLE) and Encasement (FUSION 360) Design Introductions |
||||
CLASS | REFERENCE | CONTENT & CONCEPTS | SOFTWARE | PROJECT |
![]() JR, AD, RM, FC |
Mint Tin Case V2 L. Cassano ![]() |
2.6c![]() DA, SA, TA, FC, AD AE, TL, HMS*, RM JR*, ES, JS |
||
53 Feb 10 |
![]() TA, DA, SA, ES |
Mint Tin Case V1 H. McDonald ![]() |
2.6b | |
![]() HMS, AE, JS, TL |
Medium ISP Presentations Download Medium ISP Peer Evaluation Form Rename to XXxx.docx where XX are the presenter's initials and xx are your initials Attach to email to ACESHandin with Subject: ISP Evaluation |
![]() |
2.6b | |
![]() ACES' Fusion 360 Fillets, Offsets, & Extrusions |
|
![]() ![]() |
![]() |
|
![]() ACES' Fusion 360 J. Dyson, S. Jobs, ![]() |
![]() |
![]() |
||
CLASS | REFERENCE | CONTENT & CONCEPTS | SOFTWARE | PROJECT |
![]() ACES' EAGLE Week |
![]() |
![]() |
||
![]() ACES' EAGLE Week |
![]() |
POWER Source ? EASE of Production, Assembly & Use ? COSTs ?, AESTHETICS ? |
||
![]() ACES' EAGLE Week |
3. The (Physical) Placement Board File (.brd) Manual & Auto Trace Routing DESIGN Rules Check (DRC) |
![]() |
AltoidsArduinoVUMeterV2.brd | |
![]() ACES' EAGLE Week |
2. Parts & (Logical) Connections ERROR Rules Check (ERC) |
![]() |
AltoidsArduinoVUMeterV2.sch | |
RSGC ACES' PCB Archive ![]() ACES' EAGLE Week |
![]() |
2.5
![]() DA**, SA, TA, FC, AD AE, TL, HMS*, RM JR**, ES, JS |
||
CLASS | REFERENCE | CONTENT & CONCEPTS | SOFTWARE | PROJECT |
![]() |
Menus Towards Better Code 3 Data Memory Options Towards Better Code 4 |
![]() |
||
Schurter DC Jack Panel Mount Opening Added 2022 01 18: L. Cassano ![]() |
Back to where we started Towards Better Code 1 Better Decision-Making Towards Better Code 2 |
2.5 | ||
![]() ![]() |
ATtiny84 and ATtiny85 AVR Foundations: p. 117 and p. 134 (Almost) Full Work Period for... Project 2.5 Embedded ATmega328P |
![]() |
![]() 2.5 |
|
![]() 1/2 Perma-Proto+ ![]() +Onboard Blue 0603 SMT LED |
![]() |
![]() 2.5 |
||
Wiring your LCD to your 328P... ![]() ![]() ![]() |
Integration of your RTC with Your 16x2 Character Liquid Crystal Display (pp. 99-...) ![]() ![]() RSGC ACES' LCD Examples: ![]() Digikey's LCD Inventory Sampler ![]() |
![]() ![]() ![]() |
![]() 2.4 Submit to ACESHandin ![]() DA, SA, TA, FC, AD AE, TL, HMS**, RM JR, ES, JS* |
|
CLASS | REFERENCE | CONTENT & CONCEPTS | SOFTWARE | PROJECT |
![]() |
![]() ![]() ![]() |
Breadboard ATmega328P Components ![]() |
||
![]() |
Breadboard MCU Considerations 1. Voltage Regulation with the LM7805 (p. 34) 2. Filtering for Stability 3. Crystal Oscillation 4. Reset (Active Low) Prep 5. In-System Programming (ACES' BoB) |
![]() |
![]() |
|
![]() Goldman & Atkinson's ![]() ![]() |
![]() ![]() (9:30 for a 9:45 start) Flashing AVR MCUs with the ![]() Burning the Bootloader Primer: Standalone ATmega328P |
![]() |
2.4
![]() |
|
![]() |
JANUARY 17 (BLUE MONDAY): SNOW DAY | |||
END OF BLOCK 2 (Halfway Point in the Course) | ||||
NOVEMBER/DECEMBER: Persistence of Vision, RTCs, and I2C Communication | ||||
CLASS | REFERENCE | CONTENT & CONCEPTS | SUPPLEMENTAL | PROJECT |
![]() |
Stripboard Circuits![]() |
2.10a | ||
![]() ![]() ![]() ![]() |
LCD Technology: How it Works ![]() Your 16x2 Character Liquid Crystal Display ![]() ![]() RSGC ACES' LCD Examples: ![]() 3D Designers/Printers: Thingiverse LCD Holders Digikey's LCD Inventory Sampler ![]() |
![]() ![]() ![]() ![]() |
RSGC ACES PCB: LCD UNO Appliance ![]() ![]() ![]() |
|
![]() |
Behind the curtain ... Wire-Level RTC Access Day 2 and, if time permits... ![]() |
![]() |
2.10a Arduino Serial Monitor employs Unicode UTF-8 Encoding |
|
![]() |
Behind the curtain ... Wire-Level RTC Access ![]() Day 1 ![]() |
![]() |
2.10a | |
Additional![]() discussions? |
![]() FIVE Ways to Create Intervals Within Execution (each one has ad-/dis-advantages) ![]() |
|
![]() |
|
![]() ![]() |
![]() ![]() |
2.3
![]() DA, SA, TA, FC*, AD AE, TL, HMS**, RM* JR*, ES, JS** |
||
31 Nov 26 |
|
Asynchronous Learning Day (Spend the class on tomorrow's submission) |
2.3 | |
![]() ![]() |
![]() Thorough review of ![]() in yesterday's EchoBrightness Sketch "Wait, What?" ONE-wire POV ??? Oh, yeah! ![]() |
![]() ![]() |
2.3 | |
Always ![]() Current Control! ![]() |
![]() Transistor-Based Switching Low-Side Switching (Sinking) eg. Common Cathode (CC) Displays vs High-Side Switching (Sourcing) eg. Common Anode (CA) Displays |
Writing GREAT Code:![]() |
2.3![]() |
|
![]() |
![]() |
2.3![]() |
||
From your DS1307 RTC RAM to... ![]() ... your MCU's SRAM |
![]() ![]() Wire, TimeLib, DS1307RTC Day 1. EchoRTCTest.ino (Echo your ACES' DS1307RTC to the Serial Monitor) |
![]() |
![]() |
|
Friday November 19. No Class. Parent-Teacher Interviews | ||||
![]() TYpe of IC Pin ![]() |
|
![]() |
2.10a
![]() Assembly Guide |
|
![]() Wire Library |
![]() ![]() |
2.10a
Sparkfun's: COM-09481 ![]() |
||
![]() |
||||
![]() ![]() |
![]() ![]() |
![]() ![]() ![]() |
||
![]() |
![]() |
|||
MID-TERM BREAK (FRIDAY and MONDAY) | ||||
CLASS | REFERENCE | HARDWARE | SOFTWARE | SUPPLEMENTAL |
![]() |
After School today: Persistence of Vision Project: Software Concepts 2 ![]() |
Second Look at...![]() available() parseInt() readString() ![]() charAt() |
2.2
![]() DA, SA, TA, FC, AD AE, TL, HMS*, RM JR*, ES, JS** |
|
Persistence of Vision Project: |
![]() |
2.2
|
||
![]() ![]() |
![]() ![]() Arduino Time Functions: millis(), micros() |
2.2
![]() |
||
![]() Dual 7-Segment POV ![]() |
First look at...
The Three AVR Memories Overview p.6 Persistence of Vision (PoV) |
![]() ![]() |
2.2
![]() |
|
END OF BLOCK 1 (3 more to go) | ||||
CLASS | REFERENCE | CONTENT & CONCEPTS | SUPPLEMENTAL | PROJECT |
![]() |
![]() ![]() First Look at (Arduino) C's... Preprocessor Directives ![]() PoV Delay and PWM Dimming Grade 10 Counting Circuit Revisited: Dual 7-Segments: 5011AS Datasheet |
![]() ![]() |
![]() ![]() ![]() |
|
![]() |
![]() |
1D
Scrolling Technique![]() ![]() |
||
The THT Morland Bargraph V3 ![]() Morland Bargraph V4 |
Iteration II (aka Repetition, Looping) ![]() ![]() |
![]() ![]() |
||
![]() ![]() |
Appendix E. C Operators and Precedence (p. 140) Extending the MCU's (Output) pins... Introducing the 74HC595 Shift Register Different Datasheets: SN74HC595 Binary Display Counting Circuit (4-bit, 8-bit, 10-bit) |
Iteration I (aka Repetition, Looping) ![]() Conditional Decisions (Branching) ![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
|
EC: 4020, 4060![]() Your kit contains... 32kHz XTal, 15MΩ Res ![]() Inspired by J. Goodwin: ![]() |
Binary Challenge: Game C Octal (Base 8) BCD ![]() Download ACES' Zip file: ![]() Logical (Bitwse) & Operator (p. 42) ![]() Appendix E. C Operators and Precedence (p. 140) |
![]() ![]() |
C.
Octal BCD![]() ![]() ![]() |
|
CLASS | REFERENCE | HARDWARE | SOFTWARE | SUPPLEMENTAL |
![]() (No-charge) Supplements: Resistor Networks Morland PCB ABRA-Nano |
The Problem of Bounce (p.130) Serial Plotter as Scope ? (using ACES Button Debouncer) Appendix E. C Operators and Precedence (p. 140) ![]() |
10-LED Blue Bargraph![]() First Look at... ![]() |
![]() SIP Resistor Network ![]() |
|
![]() |
Great Code Loose ends from previous classes
Extending the MCU's (Output) pins... Introducing the 74HC595 Shift Register Different Datasheets: SN74HC595 |
![]() ACES' RGBLED Scripting Language V1 ? ![]() R5r1G4g1B2b1O3o |
![]() ![]() ![]() |
|
![]() |
Bit Shifting Example: analogRead() to analogWrite() Boeing's Big Mistake? What happens in hardware, stays in hardware :) Wiring an RC Debounce circuit |
We need to smooth out the state transition... ![]() |
![]() |
|
11 Sep 28 |
![]() |
![]() The ![]() (Mechanical) Digital Input? ![]() Controlling Bounce ![]() |
Button or Switch contacts can lead to false readings...:( ![]() |
![]() ![]() |
Arduino Uno Specs
![]() pp. 16-17 |
Thorough Review of Traffic Light Feedback Base Conversion Algorithm using Binary Decomposition The ![]() Analog Input? Successive Approximation Cooperative Code Session: VoltageDivider.ino |
B.
Hex BCD![]() ![]() |
![]() ![]() |
|
CLASS | REFERENCE | HARDWARE | SOFTWARE | SUPPLEMENTAL |
Sep 24 | TERRY FOX DAY | |||
![]() |
The ![]() (Simulated) Analog Output? Pulse Width Modulation (PWM) Writing GREAT Code |
A.
Unsigned Binary![]() |
2.1
![]() DA, SA, TA, FC, AD AE, TL, HMS, RM JR*, ES*, JS |
|
![]() |
The ![]() (Simualted) Analog Output? Pulse Width Modulation (PWM) Writing GREAT Code |
A.
Unsigned Binary![]() |
2.1 | |
![]() pp. 14-15 |
The ![]() Analog Output? Pulse Width Modulation (PWM) Cooperative Code Session: BreathingLED.ino ![]() ![]() |
![]() ![]() |
![]() ![]() LED Power Performance |
|
6 Sep 20 |
![]() pp. 3, 6, 8 What happens if... you have an LED in pins 0 and 1 while uploading ? |
Writing GREAT Code: ![]() Standard Integer Data Types ![]() ![]() First Look at... ![]() |
Learn HTML: W3Schools ![]() Copy as HTML ![]() Master (8-bit)... Binary Numbers ![]() |
GMail Practice: ACESHandin 2.1 ![]() |
CLASS | REFERENCE | HARDWARE | SOFTWARE | SUPPLEMENTAL |
5 Sep 17 |
![]() |
Back to the Toolchain for a moment...
Arduino C's Sketch Host: main.cpp Writing BETTER Code: ![]() Constants and Data Types Cooperative Code Session: 5mmRGBLED.ino (let's improve yesterday's code) |
File>Preferences: verbose compilation & upload Tools > Auto Format |
![]() Language Reference Digital Output pinMode(pin,mode) and diigitalWrite (pin,value) |
4 Sep 16 |
![]() ![]() |
![]() Comparison of (External) Resistance: 0 Ω vs 220 Ω ![]() Arduino Toolchain Cooperative Code Session: 5mmRGBLED.ino (let's write some INFERIOR code together for starters :) |
![]() ![]() |
![]() |
3 Sep 15 |
![]() |
Overview of the Arduino Hardware The ATmega328p Datasheet Custom Configuration of your Arduino Software IDE Source files: .ino BareMinimum.ino Hard Drive Scavenger Hunt! Example: Blink.ino |
![]() ![]() |
|
2 Sep 14 |
![]() |
AVR Foundations' Cover Video... S. Atkinson's: ![]() ![]() ![]() Power, Programming Ports |
2.1
![]() |
|
1 Sep 13 |
![]() ![]() |
Confirm before Distributing: Nonda USB-C to USB 3.0 Adapter Complete: ICS2O Counting Circuit Stage G Soldering Tips ![]() ![]() |
![]() 2.1 ![]() |
|
CLASS | REFERENCE | HARDWARE | SOFTWARE | SUPPLEMENTAL |
0 Sep 10 |
![]() |
REPUTATION and RESPECT ACES Hall of Fame: E. McAuliffe ('18), E. Peterson ('18) M. Elia ('15), J. Gettings ('10) 2021-2022 ACES Program, Student Outline Mr. D's Schedule Distribution of ![]() |
![]() |