2015-2016 TEI4M: Embedded Systems Using AVR Microcontrollers CLASS REFERENCE CONCEPTS PROJECTS Your browser does not support the audio element. Previous Courses... 2014-15 2012-13 2010-11 2009-10 RH, JL, CM, RP, JR, JY Tutorials/Instructions... Embedded Electronics 1 Embedded Electronics 2 Alphanumeric Display Arduino: Libraries Arduino: Writing a Library LM35 Sensor (Theory) LM35 Sensor (Practical) NTC Thermistors CD4067 Mux (Out) CD4067 Mux (In) 8x8 RGB Matrix ThinFilm Solar Panels Session 9: Software Refresh: The Calculus Project 78 May 31 Final, Final Class Book Return, ER The Calculus Project Possible Exam Questions: 8. prune 9. roots 10. analysis 11. compose 12. integrate 13. others... private boolean isValue(node, x) Lab Cleanup and Reflection Down Memory Lane... 77 May 27 private boolean isEqual(a,b) The Calculus Project 6. differentiate: Power Rule 7. ErrorCode : \square^ \diamond = e^{\diamond \ln\square} : ′,″ (prime & double prime) 76 May 25 The Calculus Project 6. differentiate: duplicate() sum, product, quotient rules : (d |f(x)|)/(dx) = f'(x)*(f(x))/|f(x)| 2016 CBC College Champion: Mike Ciomyk! GSD 75 May 18 CBC Champions Challenge Thursday. DES. 1:00 PM The Calculus Project 5. parse f(x)= 1, f(x)=1\pm1, f(x)=x\pm2.4 f(x)= 2x+1, f(x)=sin(3x)/x, f(x)=\pi^x ErrorCode? -x(x^2-3x)sin x 74 May 16 The Calculus Project reportStructure(0, 1, or 2) 4: evaluate(ENode node) 73 May 12 Math Notation Options: prefix, infix, postfix The Calculus Project Expression Trees → 3: ENode and reportStructure(0, 1, or 2) 72 May 10 Set and Map Interfaces TreeSet and TreeMap DIY Data Structures II: Linked List, Binary Tree, Binary Search Tree (BST) Typical (Recursive?) Operations: display, insert, remove, search 71 May 6 List Interface ArrayList and LinkedList Data Structures I: ArrayList Exercises JVN's Skew-Correction Algorithm 70 May 4 String StringBuffer The Calculus Project: 2. Function.preProcess() Chapter 10: Strings (p. 265), Exericises (p. 287) 15 Strings 69 May 2 (AP Chemistry Exam) Collective Completion of Logic Gates Project 14 68 Apr 28 Java Review: UML, Class Design, 'is-a' vs 'has-a' OOP: Inheritance, Encapsulation, Polymorphism 14 Enum 67 Apr 26 Great Code starts with Great Design The Calculus Project 1. Syntax Diagrams for Expression Grammar (Sample) Java Review: UML, Class Design, 'is-a' vs 'has-a' OOP: Inheritance, Encapsulation, Polymorphism 14 UMLet Tool Session 8: Flex Circuit Page 66 Apr 22 Submit Flex Circuit by 4:00 pm 13 65 Apr 20 Flex Circuit Work Period 13 64 Apr 18 Flex Circuit Work Period 13 63 Apr 14 Flex Circuit Work Period 13 62 Apr 12 LONG ISP Descriptions Flex Circuit Work Period 13 61 Apr 8 Soldering Powerfilm 13 60 Apr 6 LONG ISP (8 week) Proposal Due How to display a poem? The MPT3.6-150 Solar Module, (Specs) Select a...Powerfilm OEM Solar Module 59 Apr 4 Chibitronics: Learn Charlieplexing: Diode Matrix, Diode Logic, Tri-State Logic Kwan's: Designing a Large Charlieplex Kwan's: Precision 3, Precision 4 Make: Charlieplexing LEDs on the Arduino Charlieplexing Game of Life (Arduino Library?) Dmitry Ginsberg: 11×10 LED Matrix Charlieplexing with the ATtiny85 12 58 Mar 31 Surface Mount Lamination Challenge 12 57 Mar 29 RTC's returned to Mr. D. LCD Direct Drive Videos: JL, CM, RP Quad Industries: Flexible Printing Flexible Circuits, An ACES (ER) first 12 LONG ISP (8 week): Mar-May Proposal Due: Monday April 4th Session 7: LCD Direct Drive 56 Mar 10 Root Mean Square: RMS 11 55 Mar 8 DIY LCD 3D ePrinting: Voxel8 11 54 Mar 4 11 53 Mar 2 How LCDs Work Custom LCD Glass Call for Toaster Ovens Fritzing Images of Mini-Challenge (MiniChallenge.fzz) RH, JL, CM, RP, JR, JY Software Focus: Three-Level Drive 11 Kingbright Bicolor LED Session 6: Medium ISP 52 Feb 29 9, 10 51 Feb 25 9, 10 50 Feb 23 9, 10 ATtiny85 Four-Component Megaphone 49 Feb 19 Hack a Toaster: Reflow Soldering Toaster Oven Reflow Technique 48 Feb 17 S2F:Temperature Videos: JL, CM, RP, JR Medium ISP Work Period <<>>> 32 Dec 11 ATmega328P Datasheet 5 31 Dec 9 TBM Projects: Work Period 5 30 Dec 7 ATMEL's Timer Application Notes TBM Projects: Work Period 5 The Analog Comparator 29 Dec 3 Project Proposal Deadline @ midnight Thingiverse: HXT500 Motor Mount 5 28 Dec 1 HXT500 (Micro 5g) Servo, (Recall last year?) Timer1: Fast PWMRSGC ACES: HXT500 Down the Rabbit Hole: High > Mid > Low Excellent Blog: Secrets of Arduino PWM Fast PWM Worksheet 27 Nov 27 Russell 123-128 ATmega328P Datasheet: 15.7-15.9 Timer1: Normal Mode with Output Compare Unfinished Sketch: Timer1OutputCompare.ino Make Some Noise: Timer0 and Timer1 Audio Output How to safely drive an 8Ω speaker from an Arduino pin? 26 Nov 25 : Missed Class: Math Contest 5 25 Nov 23 : 24 Nov 19 Barrett&Pack 86-91 Russell 120-123 Timing System: Applications Overview of the ATMEL Timers Timer 0 System (8 bit): Modes of Operation Timer 0 Register Descriptions: Section 14.9 Register #defines: iom328p.h, interrupt.h T0NormalOVFISR.ino Timer Interrupts Examples: Simple, Complex Asynchronous ADC (2/3 down) Cornell: ECE4760 Final Projects AVR Timer Calculator (2^n) Online Tone Generator 23 Nov 17 : 77-82 Discussion (30 minutes) Arduino 101: Timers and Interrupts Timing System: Overview, Terminology External Interrupt 0: JY, RP CM , JL Sonic Geometry 22 Nov 11 ACES: INT0 External Interrupt INT0 Work Period 4 JL's BT Vid 21 Nov 9 : 258-269 : 67-72 External Interrupts: Hardware Debouncing (Blum:12) High Level: attachInterrupt() (Lower) Level: 328P Datasheet: Section 11.4 avr/interrupt.h : Interrupts AVR Interrupt Tutorials: What are they? External Interrupts? C Programming? External Interrupt (INT0): 328P Datasheet: Section 12.2 External Interrupt 0 (Modify for mega328P) Blum's Debounce: Alternatives Google Images Debounce with Scope Images 20 Nov 5 Class Project Brainstorm: Rattlesnake All About Circuits: Data Acquisition 19 Nov 3 : 1-19 Short ISP: Decompression, Parts Return Computer Architectures: Harvard vs Princeton Harvard and (Modified) Harvard Princeton (aka. von Neumann) Atmel AVR Overview, Concepts and Peripherals: System Clock, Interrupts, Power Management & Sleep Modes (Phantom Loads or Vampire Power) Timers, PWM, ADC/DAC, Analog Comparator, SPI, USART, TWI (I2C) ACES' Class Project Revisited: Dragon, AMS, Micro-Habitat, Scoreboard? Include Files: iom328p.h iotn85.h, iotnx5.h SHORT ISP (4 week) : Sep-Oct ( Component ) ( Options ) Session 3: Functions and Libraries in C ? Later Olimex RPI-UEXT (EAGLE Files) GitHub: Get Started (R. Hill) Recall: A. Gorbatchev's Syntax Highlighter How To Build a Library, Part I: How the Linker Works, How to Design a Library Useful Sample Functions: constrain and map Local Includes: #include "Utils.h" // with Utils.c How To Build a Library, Part II: Creating a Library, Using a Library Inexpensive 328P Embedded System Arduino Pro Mini C: Functions Returning Arrays? 18 Oct 30 Short ISP Presentations Short ISP 17 Oct 28 Short ISP Presentations Short ISP 16 Oct 26 Short ISP Presentations Short ISP 15 Oct 22 School Closed 14 Oct 20 Marks, Course Corrections? Arduino API Style Guide for Writing Libraries Completing our Arduino Library Process (libraries: .h, .cpp , keywords.txt , readme.txt , Examples) Short ISP 13 Oct 16 Functions in C (continued...) Body [return], Signature, Overloading Cohesion and Coupling Preparing for Code Reuse: Creating multiple source files in the Arduino IDE Local Includes: #include "LED.h" // with LED.cpp Short ISP Shift Register Overload! LEDLabs.co.uk 12 Oct 14 ACES' Class Project Discussion Functions in C Type Specifier, Name, Arguments Body [return], Signature, Overloading Short ISP Programming Languages by Popularity -TIOBE OCT 2015 Session 2: Putting your Preferred Development Environment to Work 11 Oct 9 ICP: ShiftOut, Part 3. ER 10. TQFP 11. Debug 2 10 Oct 7 ICP: ShiftOut, Part 2. Firmware 9. STK500 9 Oct 5 75HC595 Short ISP Stage 2: Proposal Submission due ICP: ShiftOut, Part 1. Hardware 8. Oscilloscope 8 Oct 1 pp. 40... How to Program an 8-bit AVR Using C Project Euler and C, Useful shell: skeleton.c The C Preprocessor C and C++ Order of Operator Precedence Tip #1. Data types and sizes Functions and Program Structures 6. Leap Year 7. TrafficLight Tricks and Tips to Optimize C Code for 8-bit AVRs 7 Sep 29 C eFundies: AVR Guides 1. megaRGB 2. SMD Burner 3. tinyRGB 4. GeckoISPAdapter 5. Gecko Watch? 6 Sep 24 : 30-? The C Programming Language Variables and Arithmetic Expressions Variable Names and Type Conversions iom328p.h iotn85.h iotnx5.h 5 Sep 22 main.c from ATtinyTest Short ISP Stage 1: Component Commitments ACES' Class Project: Dragon, AMS, Micro-Habitat, Scoreboard? ~~~~~~~~~~~~~~~~~~~ Review of last week: Review of AVR Development Preferences Crosspack employs AVR-libc (Online Manual) : AVR-libc Reference Manual Lead Roles: Computer (CM,RH,RP) Software (JL,RH, RP) Mechanical (JY) Electrical (JR) Session 1: AVR Development Alternatives 4 Sep 18 ATtiny85 Datasheet (Summary) Harvard follows RSGC's lead :) ~~~~~~~~~~~~~~~~~~~~~~~~ AVR Development Wrap up Work Period... 1. Confirm that you can return your Arduino to its (non-bricked) state: Burn the Bootloader and upload Blink Example with Arduino IDE 2. ER Submission (this Sunday) 3. Project Idea: AVR ZIF Socket Programmer (3D Case?) 1 HackerNest 3 Sep 16 What is USART? AVR Development Alternative #3: C + TextEdit + AVR Pocket Programmer Xcode AVR Development Alternative #4: (attinyTest.zip) C + Xcode + AVRISP MkII + ATtiny85 Using AVRDUDE AVRDUDE Command Line Parameters (even STK500!) Faux Fire (Photo) STK500 Dev Board 2 Sep 14 AVR Pocket Programmer AVR Development Alternative #1: Arduino IDE + AVR Pocket Programmer via ICSP : AVRISP MkII AVR Development Alternative #2: Arduino IDE + AVRISP MkII via ICSP How to configure the Atmel AVRISP MkII for the Arduino IDE Bootloader: p. 8 1 Sep 10 Gecko Future? Course Organization and Top 3 Priorities... #1. Self-Motivation (do not wait to be told what to do!) #2. Productivity (always in gear: steady flow of project output) #3. Projects of Significance (Think and take calculated risks) Initial Text and Toolkit Project Proposals: Class, Individual 1 0 Sep 9 Student Outline Mr. D's Schedule All 7 laptops to me before 8:15 am tomorrow! Summer (Pre-course) Preparations pyto.me Last Call: TAs REPUTATION and RESPECT ACES Hall of Fame: Jack Gettings [ACES Culture]
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. Do not cheat.
2. Show respect for adult visitors that enter the DES by immediately stopping what you are doing, standing and facing the individual(s).
3. 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.
4. Show respect for the lab's resources by not wasting or misusing them.
5. Show respect for others that use the lab by putting your projects away and leaving your bench area tidy when you leave.
6. 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:
• planning skills (e.g., identifying the problem, selecting strategies and resources, scheduling)
• processing skills (e.g., analysing and interpreting information, reasoning, generating and evaluating solutions, forming conclusions)
• critical/creative thinking processes (e.g., problem-solving, design, and decisionmaking processes)
Communication: The conveying of meaning through various forms, as follows:
• oral (e.g., role play, discussion, presentation)
• written (e.g., design briefs, work orders, technical reports)
• visual (e.g., technical drawings, flow charts, graphics)
Application: The use of knowledge and skills to make connections within and between various contexts.