You've tried out a great project using an Arduino, and you want to give it as a gift to someone, or install it somewhere permanently. But it's hard to say goodbye to your faithful 'duino, and even harder to justify 25 cents worth of LED's connected to a $40 board as a good final product. This class will teach you how to take your prototype from the Arduino and simplify it down to the bare minimum of parts required, so you can build smaller, more cost-effective projects and even gift them or integrate them into something permanently, without buying an entire Arduino each time. This class will also focus on porting Arduino code over to an ATMega168 and an ATTiny45. Code will be posted along with schematics and notes after class.
You'll also get to assemble your own AVR Multiprogrammer Shield, designed by Jarek, that lets you easily program AVR chips using your Arduino board -- just plug in the shield and load the ArduinoISP programming sketch onto the Arduino, then run your preferred AVR programming software (we will be using avrdude in class).
What you will learn?
- What is an Arduino (revisited)?
- Simplifying the Arduino down to basic parts.
- Introduction to ICSP programming
- Installing appropriate software for ICSP programming
- Assembling the ATMega168 Essentials
- Programming .hex for the first time
- Understanding C code a little deeper
- Porting code to ATTiny45
Environment: Basic breadboarding skills, basic Arduino skills, basic C skills (If you can program an Arduino, you're solid). This will be 85% hands-on lab, 15% lecture, so bring your enthusiasm for making! I will be walking the class through each step, so that no one is left behind.
What to bring with you: Laptop with Arduino environment installed, Arduino and USB cable (I cannot verify if the spinoffs (Freeduino, Arduweenie) work, so please bring an official board, as the usb capability is required), a small notebook to jot down notes.
Students will get a lab kit including the special Multiprogrammer shield, ATMega168 Microcontroller, a ATTiny45 Microcontroller, a 16 Mhz resonator, 1x 100nF capacitor, 4x LED's with resistors, 1x push-button switch, LM7805, 100uF capacitor, 10uF capacitor, 9V Battery Clip, 9V Battery, assorted breadboard wires, and a solderless breadboard.
Prerequisites: Please update your Arduino version to 0021, as we will be using this version in class. It already contains ArduinoISP.
Taught by Jarek Lupinski