555| GIT | ISPs | S&N | ACES_THT.dru
ACES_THT.lbr (2021 02 17)| ACES_Generic.cam
2021-2022 ICS3U-E: AVR FOUNDATIONS
APRIL: Mechanical (Solenoid, DC Hobby Motor, Servo, Stepper) and Control Systems (Feedback, PID)
Communication (Serial, SPI, InfraRed, Radio Frequency)
CLASS REFERENCE CONTENT & CONCEPTS SOFTWARE PROJECT
68
Apr 28
Long ISP Presentations
Guest ACE Alumnus: S. Canavan
Everyone 2.20b Long ISPs
DA, SA, TA, FC, AD, AE
TL, HMS*, RM, JR*, ES, JS
END OF CLASSES
67
Apr 25
Future ISP?
RF Controller
Work Period
Final Preparations for
ISP Presentations
2.20b
66
Apr 22
Nordic Semiconductor
Nordic nRF24L01+
14Core: nrf24 Projects
eg. nRF24L01+
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
RxTest.ino, TxTest.ino

ACES' nRF24L01+ BoB...


65
Apr 21
Creating a Universal Remote
Good Tutorial:
IRremote Library
Manage Libraries:
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 → → →
IR Communication with...
Sparkfun Supporting Video

F. Folarin's
(ACES' 20, Waterloo '25)
IR Remote ISP...


Your 3mm Emitter:
LTE-3206

GP1UX51QS
Datasheet
63
Apr 19


Distance vs Voltage
SharpDistanceSensor.ino
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
62
Apr 14
595 as SPI Device?

Communication Protocols
(
Serial, SPI, I2C, RF, IR, BT)
AVR Foundations Workbook: pp. 82-83
Arduino Workshop: SPI

ShiftOutvsSPI.docx


SPI Library

SPIvsShiftOutV2.ino

Arduino C Toolchain...
pins_arduino.h
61b
Apr 13
Communication Protocols
(Serial, SPI,
I2C, RF, IR, BT)

Serial Communicaton (UART)
Part 2A. CLIENT-SERVER
Part 2B. PEER-PEER
Chat.ino, Serial Mastermind
61a
Apr 13
Communication Protocols
(
Serial, SPI, I2C, RF, IR, BT)
Serial Library
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:


M. McCutcheon
(ACES '20)
Mini CNC Plotter
MUST WATCH!!
MOT-28BYJ-48 with ULN2003 Driver
Arduino Stepper Library
can be problematic!

Stepper Library (Examples)
Unipolar vs Bipolar Stepper Motors
MOT-28BYJ-48 Datasheet
RSGC ACES' Library-free
Stepper Motor Example...

Stepper28BYJ48Example.ino
Video support for this Example

 



CLOSED Loop System...
ACES' PID Gem
:

J. Schaffer's
(Queen's Eng. '22)
Balance Beam

ACES' Stepper Gem:


A. Elder
(Mac. Eng. '21)
Laser Projector
59
Apr 11
ACES' Servo Gem:

J. Schaffer's
(Queen's Eng. '22)
Rubik's Cube Solver

SG92R Micro Servo

Mechanical Devices (Type 3)
Servo Motors

Blum's Servo Tutorial
Servo Library (Ex. Knob, Sweep)
Servo Library Uses Timer1


A brief introduction to AVR Timers...
Timer1 Registers and Clock Prescalers
K. Shirriff: Secrets of Arduino PWM
Github: Servo.h
In your kits:
SN754410
Quad Half-H Motor IC
(Last Frame)

Polish (but Inspiring!)
How a
Servo Motor Works

(build your own?)

Servo Connections

Servo Controller



Deeper Considerations:
Open vs Closed Loop
PID Device Control
BC Trip (April 4-8)
58
Apr 1
Let's code...
DCMotorControl.ino

Mechanical
DC Motors 3...
5V MCU Motor Control Logic
over
? V Motor Power Supply


DC Motors 4...
SN754410 Quadruple Half-H
(Motor) Driver


57
Mar 31

Mechanical


MANUAL DC Motor Control:
1. On/Off, Speed
ACES' Frame Player: DC Motors 2




56
Mar 30
ACES'
Mechnical
Gem:



Josh Dolgin's
Bi-Wheeled Rover

Mechanical


Introduction to DC (Hobby) Motors
ACES' Frame Player: DC Motors 1


Sparkfun's ROB-11696
Hobby Motor - Geared

Datasheet: M260


Simple Blink Sketch
55
Mar 29

Mechanical


Underlying Principle:
Electric and Magnetic Fields
ACES' Frame Player: Fields
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)
Feb 21

Long ISP Proposal
Proposal

& 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
54
Feb 11

JR, AD, RM, FC

Medium ISP Presentations

Mint Tin Case V2
L. Cassano
2.6c
Medium ISPs
DA, SA, TA, FC, AD
AE, TL, HMS*, RM
JR*, ES, JS
53
Feb 10

TA, DA, SA, ES

Medium ISP Presentations

Mint Tin Case V1
H. McDonald
2.6b
52
Feb 9

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
51
Feb 8

ACES' Fusion 360

Fillets, Offsets, & Extrusions


Design Tools: Pencil & Graph Paper


Design Paper
50
Feb 7

ACES' Fusion 360

J. Dyson, S. Jobs,
Braun: #1, #2, #3

Fusion360: Mint Tin Parameters
CLASS REFERENCE CONTENT & CONCEPTS SOFTWARE PROJECT
49
Feb 4


ACES' EAGLE Week
5. CAM Processor (.cam)
ACES_Generic.cam

6. Ordering (.zip)
48
Feb 3


ACES' EAGLE Week
4. DEEP Design Considerations
Routing (.dru)

ACES_THT.dru
POWER Source ?
EASE of Production,
Assembly & Use ?
COSTs ?, AESTHETICS ?
47
Feb 2


ACES' EAGLE Week
3. The (Physical) Placement
Board File (.brd)
Manual & Auto Trace Routing

DESIGN Rules Check (DRC)

AltoidsArduinoVUMeterV2.brd
46
Feb 1


ACES' EAGLE Week

2. Parts & (Logical) Connections
Schematic File (.sch, .lbr)

ACES_THT.lbr
Adafruit and Sparkfun EAGLE libraries


ERROR Rules Check (ERC)

AltoidsArduinoVUMeterV2.sch
45
Jan 31
RSGC ACES'
PCB Archive


ACES' EAGLE Week
Autodesk's EAGLE for Education
1. Install and Setup
(Somewhat Dated)
2.5
Embedded ATmega328P

DA**, SA, TA, FC, AD
AE, TL, HMS*, RM
JR**, ES, JS
CLASS REFERENCE CONTENT & CONCEPTS SOFTWARE PROJECT
44
Jan 28
Full Work Period for...
Project 2.5 Embedded ATmega328P
§2.5.2 Perma-Proto ATmega328P
Menus
Towards Better Code 3
Data Memory Options
Towards Better Code 4
43
Jan 27
Schurter DC Jack Panel Mount Opening
Added 2022 01 18: L. Cassano

Full Work Period for...
Project 2.5 Embedded ATmega328P
§2.5.2 Perma-Proto ATmega328P
Back to where we started
Towards Better Code 1
Better
Decision-Making
Towards Better Code 2
2.5
42
Jan 26

ATtiny84 and ATtiny85
AVR Foundations:
p. 117 and p. 134
(Almost) Full Work Period for...
Project 2.5 Embedded ATmega328P

2.5
41
Jan 25
RSGC ACES
1/2 Perma-Proto+

+Onboard Blue
0603 SMT LED
Whereas the I2C TC74 is Digital...
The Analog TMP36 Temperature Sensor
(pp. 102-104)

Adafruit's TMP36 Tutorial
Be SURE to use your 28-Pin Kinked IC Socket

2.5
40
Jan 24
Wiring your LCD
to your 328P...

HD44780U
Integration of your RTC with
Your 16x2 Character Liquid Crystal Display
(pp. 99-...)
Hello, World!
Library, Constructors
RSGC ACES' LCD Examples:
Reaction, Keypad, Audio

Digikey's LCD Inventory Sampler
ACES' Advanced LCD Project:
Direct Drive
LCDAnalogMeter


2.4
Submit to ACESHandin
Standalone ATmega328P
DA, SA, TA, FC, AD
AE, TL, HMS**, RM
JR, ES, JS*
CLASS REFERENCE CONTENT & CONCEPTS SOFTWARE PROJECT
39
Jan 21
Project 2.4 Standalone ATmega328P
Work Period
(Prototype and/or DER)
for 2022...

Confirmation
Breadboard ATmega328P
Components

38
Jan 20
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)
37
Jan 19
ECE190...
Goldman & Atkinson's
Clue Capturer
ONLINE TODAY
(9:30 for a 9:45 start)
Flashing AVR MCUs with the
AVR Pocket Programmer
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
Dec 4

Introduction to EEPROM
#include Arduino.h (software)
#include iom328p.h (hardware)
Stripboard Circuits
2.10a
36
Dec 3


HD44780U
LCD Technology: How it Works
DIY (?) Custom LCD
Your 16x2 Character Liquid Crystal Display
Hello, World!
Library, Constructors
RSGC ACES' LCD Examples:
Reaction, Keypad, Audio

3D Designers/Printers:
Thingiverse LCD Holders
Digikey's LCD Inventory Sampler
ACES' Advanced LCD Project:
Direct Drive
LCDAnalogMeter

I2C Display
RSGC ACES PCB:
LCD UNO Appliance

I2C LCD Backpack
35
Dec 2
Behind the curtain ...
Wire-Level RTC Access
Day 2
and, if time permits...
The I2C TC74 Thermal Sensor
2.10a
Arduino Serial Monitor employs
Unicode UTF-8 Encoding
34
Dec 1
Behind the curtain ...
Wire-Level RTC Access
Arduino Core Library: Wire
Day 1
RTC Square Wave Frequencies
2.10a
33
Nov 30
Additional

discussions?
Software Techniques:
FIVE Ways to Create
Intervals Within Execution
(each one has ad-/dis-advantages)
TimerOne Library
32
Nov 29

Embedded Systems
Programming Model:

Interrupt (Event) Driven!
1. External Interrupt
a) Push Button Input
Recall from Sep 28:
side effect of 'noisy' buttons is
Mechanical Bounce
b) ACES Button Debouncer
Wire an RC Debounce Circuit

2.3
A Breadboard RTC
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
30
Nov 25


A Breadboard Clock Prototype
Thorough review of coding concepts
in yesterday's EchoBrightness Sketch
"Wait, What?" ONE-wire POV ???
Oh, yeah!
Modular Iteration through Arrays


OneWirePOV Image
2.3
29
Nov 24
Always
Current Control!

A Breadboard Clock Prototype
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

constrain() and map()
28
Nov 23
A Breadboard Clock Prototype
2.3

switch...case
27
Nov 22
From your
DS1307 RTC RAM to...

... your MCU's SRAM
A Breadboard Clock Prototype
Required Libraries:
Wire, TimeLib, DS1307RTC
Day 1
. EchoRTCTest.ino
(Echo your ACES' DS1307RTC
to the Serial Monitor)
Arrays and Structs

Friday November 19. No Class. Parent-Teacher Interviews
26
Nov 18
"Open Collector"
TYpe of IC Pin

 

2.10a
DS103RTC BoB
Assembly Guide
25
Nov 17
NXP: I2C Introduction
Wire Library
I2C Communication

I2C Tutorial
Library Manager:
DS1307RTC and Time(Lib)
(Michael Margolis)

2.10a
Sparkfun's: COM-09481
24
Nov 16

ACES' P.E.P. Talk...
Project Evaluation Priorities
A Breadboard Clock Prototype


DS1307RTC
 
MID-TERM BREAK (FRIDAY and MONDAY)
CLASS REFERENCE HARDWARE SOFTWARE SUPPLEMENTAL
23
Nov 11

After School today:
3D Printing Design Instruction with
Fusion 360 (with HM)


Persistence of Vision Project:
Software Concepts 2
highByte(), lowByte()

Second Look at...
Serial Library:
available()
parseInt()
readString()

String Library:
charAt()
2.2
Persistence of Vision
DA, SA, TA, FC, AD
AE, TL, HMS*, RM
JR*, ES, JS**
22
Nov 10

Persistence of Vision Project:
Software Concepts 1

2.2
21
Nov 9

Dual CC 14-Segment Alphanumeric Display
KWA-541CPGB Datasheet
LTP-3748G Datasheet
Different Datasheets: SN74HC595
Write7SegUpperCaseCharacters.ino
Write14SegUpperCaseCharacters.ino
Write14SegASCIIEEPROMKWA-541XPGB.ino


Arduino Time Functions:
millis(), micros()
2.2
20
Nov 8

RSGC ACES:
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)
SEPTEMBER : Introduction to Hardware, Software, and Design Techniques of AVR MicroController Units (MCUs)
CLASS REFERENCE CONTENT & CONCEPTS SUPPLEMENTAL PROJECT
19
Oct 8
1D Scrolling
Bargraph 8_16 Scrolling

First Look at (Arduino) C's...
Preprocessor Directives

The Beast:
PoV Delay and PWM Dimming

Grade 10 Counting Circuit Revisited:
Dual 7-Segments: 5011AS Datasheet


to Scrolling?
MaskingExemplar
18
Oct 7
Exploring/Exploiting your MBV3
Dimming, Timed Counting, VU Metering
1D Scrolling Technique



Bitshifting
17
Oct 6
The THT
Morland Bargraph V3
The SMT
Morland Bargraph V4

Iteration II
(aka Repetition, Looping)

for

16
Oct 5

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)

while
Conditional Decisions (Branching)
if if..else ternary
switch...case, break

15
Oct 4
EC: 4020, 4060

Your kit contains...
32kHz XTal, 15MΩ Res
File > Examples > Display > barGraph
Inspired by J. Goodwin:
Pierce Oscillator ' Counting? '
Binary Challenge: Game C
Octal (Base 8) BCD

Integer Constants
Download ACES' Zip file:
GitHub: AVR Foundations
Logical (Bitwse) & Operator (p. 42)
Bitwise Operators

Appendix E. C Operators and Precedence (p. 140)

Bicolor Bargraph
C. Octal BCD



CLASS REFERENCE HARDWARE SOFTWARE SUPPLEMENTAL
14
Oct 1
Casual

(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)

ACES' RGBLED Scripting Language V1
10-LED Blue Bargraph

First Look at...
Serial Input: read()

SIP Resistor Network
13
Sep 30
Great Code
Loose ends from previous classes
  1. Compiler Macro/ Directives: #define
  2. Bitwise Operators
  3. Tips for SPP (Bootloader)
  4. LED Dimming with Pot
  5. Button Bounce Problem
    Solution : RSGC ACES
Hardware Debounce PCB
Extending the MCU's (Output) pins...
Introducing the
74HC595 Shift Register

Different Datasheets: SN74HC595

ACES' RGBLED Scripting Language V1 ?

R5r1G4g1B2b1O3o

switch...case
break
12
Sep 29

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
First Look at Operators
The to accurate...
(Mechanical) Digital Input?
File>Examples>Basic>DigitalReadSerial
Controlling Bounce
DebounceTest
Button or Switch
contacts can lead to
false readings...:(


ADC Successive Approximation
10
Sep 27
Arduino Uno Specs

pp. 16-17
Thorough Review of
Traffic Light Feedback
Base Conversion Algorithm
using Binary Decomposition
The to...
Analog Input?
Successive Approximation
Cooperative Code Session: VoltageDivider.ino
B. Hex BCD


CLASS REFERENCE HARDWARE SOFTWARE SUPPLEMENTAL
Sep 24 TERRY FOX DAY
9
Sep 23
The to...
(Simulated) Analog Output?
Pulse Width Modulation (PWM)
Writing GREAT Code
A. Unsigned Binary
2.1
Traffic Light
DA, SA, TA, FC, AD
AE, TL, HMS, RM
JR*, ES*, JS
8
Sep 22
The to...
(Simualted) Analog Output?
Pulse Width Modulation (PWM)

Writing GREAT Code
A. Unsigned Binary
2.1
7
Sep 21
Curr.
Night

pp. 14-15
The to...
Analog Output?
Pulse Width Modulation (PWM)
Cooperative Code Session: BreathingLED.ino
Faux Fire Effect
File > Examples > Basics > Fade




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

AVRFoundations
DataTypes.ino

First Look at...
Serial Output: println()
Learn HTML:
W3Schools
Code for DER:
Copy as HTML
Example
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: Variables
Constants and Data Types
Cooperative Code Session: 5mmRGBLED.ino
(let's improve yesterday's code)
File>Preferences:
verbose compilation
& upload
Tools >
Auto Format

Arduino
Language Reference
Digital Output
pinMode(pin,mode) and
diigitalWrite
(pin,value)
4
Sep 16

Arduino UNO Tech Specs
Comparison of (External) Resistance: 0 Ω vs 220 Ω
Schaffer Traffic Light
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: Foosball Scoreboard

The Arduino IDE: Software Download
Power, Programming Ports
'Programming' an
ICS2O-E Version of a...
555/4017TrafficLight
(based on this Project)

2.1
1
Sep 13



Confirm before Distributing:
Nonda USB-C to USB 3.0 Adapter
Complete:
ICS2O Counting Circuit
Stage G Soldering Tips

Introduction to Soldering
Counting Circuit Encased

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 and Workbooks


For our second Field Trip of the year we have been invited to visit a factory that is developing solar panels. Since this device is an integral part of our Greenhouse Project this year, early familiarity with this technology will be advantageous.
What better way is there to start the year than with a walking field trip to acquire the electronic components that we will make good use of? You'll also be aware of its location for your own personal projects.
I have no formal training in electronics or electrical engineering - I'm just really interested in this field. The knowledge and skill I have has been largely acquired over the last few years from learning alongside many talented Georgians and I look forward to expanding my capabilities by working with you this year.
I ask six things of my ACES (for most other things I'm usually flexible):
1. SHORTCUTS. The world has enough corner-cutters. This is includes cheating, plagiarizing, or lying.
2. SHARED SPACE. Show respect for others that use the lab by putting your projects away and leaving your bench area tidy when you leave.
3. DES VISITORS. Show respect for adult visitors that enter the lab by immediately stopping what you are doing, standing and facing the individual(s).
4. NO EATING. Show respect for the lab by not eating in the DES. You may go into the hallway for a quick bite if you need to.
5. AVOID WASTE. Show respect for the lab's resources by not wasting or misusing them.
6. REPUTATION. Show respect for yourself by looking (and speaking) your best. It's the little things keep the doors of opportunity open.
Growing Success, p. 29
Responsibility, Organization, Independent Work, Collaboration, Initiative, Self-Reliant Growing Success. p.11.

It is worth noting, right from the start, that assessment is a human process, conducted by and with human beings, and subject inevitably to the frailties of human judgement.
However crisp and objective we might try to make it, and however neatly quantifiable may be our "results", assessment is closer to art than science.
It is, after all, an exercise in human communication.
Knowledge: Subject-specific content acquired in each course (knowledge), and the comprehension of its meaning and significance (understanding).
Thinking: The use of critical and creative thinking skills and/or processes, as follows:
Communication: The conveying of meaning through various forms, as follows:
Application: The use of knowledge and skills to make connections within and between various contexts.