Developing with ATtiny Microcontrollers Online Course
Developing with ATtiny Microcontrollers Online Course
This online course offers a comprehensive introduction to developing with ATtiny microcontrollers, designed specifically for Arduino enthusiasts. Starting with the fundamentals, you’ll learn about the various ATtiny variants, their specifications, and how to set up your development environment using Arduino IDE and VSCode with PlatformIO. As you progress, you’ll engage in hands-on projects, such as creating a PWM controller, digital dice, and a binary clock, and gaining practical skills in wiring, coding, and 3D design. With step-by-step video instructions, you'll gain a solid understanding of ATtiny development and finish the course with a portfolio of advanced projects like plant monitors, temperature sensors, and even a Rubber Ducky for Windows.
Key Benefits
- In-depth introduction to ATtiny microcontrollers, covering their capabilities and applications
- Step-by-step wiring guides and 3D design tutorials to enhance hands-on learning
- Practical, real-world projects including LED controllers, digital dice, binary clocks, and more, to solidify your skills
Target Audience
This course is designed for individuals looking to expand their knowledge of low-power, compact microcontrollers. It is ideal for developers aiming to incorporate cost-effective microcontrollers into their projects, as well as those interested in designing and implementing practical applications with these devices. The course is also well-suited for learners who wish to explore microcontrollers with limited hardware resources. While a foundational understanding of Arduino IDE, C++, and electronics is recommended, it is not a prerequisite for enrollment.
Learning Objectives
- Set up and configure ATtiny microcontrollers using various integrated development environments (IDEs)
- Follow detailed setup guides for both Arduino IDE and VSCode with PlatformIO
- Program and upload sketches to ATtiny microcontrollers using multiple methods
- Develop, troubleshoot, and optimize real-world projects utilizing ATtiny microcontrollers
- Design and 3D print custom enclosures for your projects
- Implement advanced features such as deep sleep mode, OLED displays, and other sophisticated functionalities
Course Outline
The Developing with ATtiny Microcontrollers Exam covers the following topics -
Module 1 - Introduction
- Course Introduction
- About the Instructor
- Downloadable Code Snippets
- Prerequisites for the Course
- Course Structure Overview
- Alternative Approaches
- Disclaimer
Module 2 - ATtiny Basics
- Introduction to ATtiny
- What is an ATtiny Microcontroller?
- Programming Language for ATtiny
- Flashing the ATtiny Microcontroller
- Overview of ATtiny Variants (25/45/85 and 24/44/84)
- Technical Specifications Using ATtiny 44/45 as an Example
- Introduction to Digispark ATtiny85 with USB
- Pinout Details for ATtiny 25/45/85 and 24/44/84
- Understanding CPU Clock Speed
- Power Consumption Overview in Idle Mode
- Brown-out Detection Features
- Setting Hardware Configuration
Module 3 - IDE Setup and Device Upload
- Introduction
- Installing ATtiny Cores for Arduino IDE 1.8
- Setting up VSCode with PlatformIO for ATtiny Development
- Connecting Arduino UNO as ISP
- DIY Shield for Arduino UNO
- Using a USB ISP Programmer
- Introduction to Microchip Studio
- Opening VS Code in Arduino IDE
- Online Simulator for ATtiny Microcontrollers
Module 4 - First Sketch with Various Upload Methods
- Introduction
- Wiring Setup
- Uploading with Arduino IDE 1.8.x and Arduino UNO
- Uploading with Arduino IDE 1.8.x and USB-ISP
- Uploading with VS Code PlatformIO and USB ISP
- Uploading with VS Code PlatformIO and Arduino UNO
- Uploading to Digispark ATtiny85 with Arduino IDE 1.8.x
Module 5 - PWM with 3 LEDs
- Project Overview
- Wiring and PWM Implementation
- Creating the Project with analogWrite
- RGB LED Source Code
- 3D Design and Printing
- Key Learnings
Module 6 - Digital Dice with Random Number and LEDs
- Project Overview
- Wiring Setup
- Understanding Random Number Generation
- Project Setup and Initial Testing
- Start Sequence Implementation
- Debouncing the Button
- Dice Effect Implementation
- 3D Printing the Pocket Dice
- Key Learnings
Module 7 - Digital Dice with WS2812b and FastLED
- Project Overview: LED Dice with WS2812b
- Wiring Setup
- Start Sequence and FastLED Configuration
- Button Debouncing and Flag Management
- Controlling FastLED
- 3D Printing the Dice
- Key Learnings
Module 8 - Binary Clock with RTC Module and Shift Register
- Project Overview: Binary Clock as a Keychain
- Wiring Setup
- Setting and Reading RTC SD1307 with Arduino Uno
- Shift Register 74HC595N Pinout and Wiring
- Configuring Project Settings and Global Variables
- Shift Register Testing and LED Control
- Converting Decimal to Binary Code
- Displaying Time with RTC and Shift Register
- Reading and Displaying Time (Hours and Minutes)
- 3D Printing the Clock
- Key Learnings: Binary Clock
Module 9 - Plant Monitor and Deep Sleep with CR2032 Battery
- Project Overview
- Wiring Setup
- Calibrating the Moisture Sensor with Arduino Uno
- Project Setup and Activating the Buzzer
- Defining Global Variables
- Using Photoresistor and LED
- Implementing Moisture Sensor Functionality
- Implementing Deep Sleep Mode with ATtiny and Current Measurement
- 3D Design
Module 10 - Plant Monitor with OLED Display
- Project Overview
- Wiring Setup
- Flow Chart and Project Setup
- Displaying Text on OLED
- Displaying Sensor Data on OLED
- Creating Graphics for OLED Display
- Reading and Displaying Battery Voltage
- Implementing Deep Sleep and Interrupts
- Key Learnings
Module 11 - Tones as Circuit Board Pendant
- Project Overview
- Wiring Setup for "Happy Birthday" Melody
- Project Setup
- Creating and Playing a Melody
- Wiring the Touch Sensor
- Source Code for Touch Sensor
- Wiring RGB LEDs
- Source Code for RGB LEDs
- Key Learnings
Module 12 - Transistor Circuit with Reed Switch and Clap Detector
- Project Overview
- Wiring Setup
- Controlling the Transistor Circuit
- Detecting Two Claps
- Implementing Reed Switch
- 3D Design
Module 13 - Temperature Sensor with OLED 0.96" for Digispark ATtiny85
- Project Overview
- Wiring Setup
- Driver and IDE Configuration
- Creating a Mini Weather Station
Module 14 - Rubber Ducky for Windows with Digispark ATtiny85
- Source Code for Rubber Ducky Functionality