This lesson is a complete list of the supplies you'll need to complete this class. To make it a bit easier to get everything at once, I've created an Adafruit wishlist containing most of the components and tools. To get started with the bare minimum, you can complete most of the core exercises with the contents of the Adafruit Arduino Uno Budget Pack. If you're using a different kit, some of the components may differ from those shown in the photos throughout this class.
For the basic exercises:
To complete the Skills Infusion lesson (here's a great toolkit with almost everything you need):
Additional craft supplies for the final project:
To build the final project with dedicated components:
Recommended vendors for Arduino components & accessories:
Arduino Uno - This board is built around the Atmega328 microcontroller, with supporting components to make it easy to connect up your own circuits. The Uno connects to your computer with a USB A to B cable, which is commonly used for printers (boxy connector). For this class, it is acceptable to use a compatible stand-in for the Arduino Uno, such as a Sparkfun RedBoard or Seeeduino V4.2, just make sure you have the right USB cable.
Solderless breadboard - This device has strips of metal inside and many holes that allow you to connect components quickly and easily. A mounting plate is recommended, to keep the breadboard and Arduino Uno together. You'll connect to the Arduino with wires (breadboard wires are great but you can also use solid core hookup wire).
Electronic components - You'll create circuits by plugging LEDs and other components into your breadboard. This class introduces each new component with a basic exercise showing you how to wire it up and write an appropriate Arduino program. Components used: 5mm LEDs, resistors, a pushbutton switch, a potentiometer, and a small DC motor (with its own diode and transistor). Lessons cover the basics with an emphasis on writing code to interact with the components. For more in-depth information beyond what's covered here, please check out Randy Sarafan's Electronics class or LEDs & Lighting class.
Soldering tools - The Skills Infusion lesson teaches you how to connect wires to LED strip with a soldering iron, which heats the components enough to flow solder (an easy melting alloy) between them. Any basic iron will do! Wire strippers remove insulation to expose the conductor inside, pliers and tweezers help you position components, and a third hand tool helps keep everything steady. Flush snips do a great job trimming excess wires and component leads after soldering. Wear protective eyewear when soldering and clipping wires, and solder in a well-ventilated area.
RGBW NeoPixel strip - This digitally addressable strip contains WS2812 chips controlling compound LEDs in red, green, blue, and white. NeoPixel is the Adafruit brand name but you can also find this strip by searching for "WS2812b RGBW strip" on your favorite supplier's site. The sample code provided in this class will not work with RGB (no white) strip, analog LED strip, or with any other kind of digital control chip (like APA104 aka DotStar).
Craft supplies - The final project walks you through building an electronics enclosure from foamcore board, which requires a protected work surface (cutting mat or multiple layers of scrap cardboard), metal ruler, and sharp utility knife. You can either use a hot glue gun to assemble the pieces, or opt for a craft adhesive like E6000. A round glass mirror is at the center of the infinity mirror, and a piece of see-through mirror plastic is the secret ingredient for the infinity tunnel effect. If you don't have a plastic scoring knife, you can use a pair of sturdy scissors to cut the mirror plastic, but leave a wider margin than you think you'll need, since the mirror film tends to flake a little around scissor-cut edges. Be careful when using sharp tools, keep a bowl of ice water nearby any hot glue project for quick burn treatment, and use proper ventilation for any adhesives.
Arduino Gemma - The infinity mirror project miniaturizes the Arduino circuit by substituting the Arduino Uno with an Arduino Gemma. Gemma is a tiny board built around the ATTiny85 microcontroller, which has less memory and fewer features than the Uno's Atmega328, but it's also smaller and lower cost. The large pads are super easy to solder to (and sew to with conductive thread, but that's a topic for a different class). Gemma uses a micro USB cable to connect to your computer, and has a JST port for connecting a battery. You'll learn how to program Gemma from the Arduino software and build it into the final project. You can also use an Adafruit Gemma instead, but you will need to perform an additional step to configure the Arduino software.
The Arduino IDE (software for composing code and sending it to your board) runs on Windows, Mac OS X, and Linux. Head to the download page and click the option that best describes your system. While the software is downloading, connect your Arduino board to your computer with a USB A to B cable (flat to boxy, typically used for printers). The green LED next to the label ON should turn on, and the orange LED next to the label L should begin blinking.
Depending on your operating system, your software installation procedure will vary. On Windows, run the installer, which will also install the necessary drivers (provided your Arduino board is plugged in). On OS X, drag the Arduino app into your Applications folder (no drivers necessary). For more help with Windows if the installation doesn't go smoothly, refer to Arduino's detailed instructions. If you prefer not to download software, most of the class can also be completed using the Arduino Web Editor.
Open the Arduino application and load up the first code example by selecting File -> Examples -> 01.Basics -> Blink.
Next it's time to tell the software what kind of Arduino board we intend to program. Select Tools -> Board -> Arduino/Genuino Uno.
Then we need to select the communication port connected to the Arduino board. Select Tools -> Port, then whichever port name is labeled "(Arduino/Genuino Uno)." If none of your ports are labeled, try unplugging your board, checking the Ports menu, then replugging your board and checking the Ports menu again. Whichever port name disappears then reappears is likely to be your Arduino board. On Windows your port will likely be called "COM3" (or higher numbers) and on OS X it's likely to be something like "/dev/cu.usbmodem1461."
Now click the Upload button to transfer the Blink example code to the Arduino board. The LEDs labeled RX and TX will flash, and the software will show a message "Done uploading." Moments later the LED labeled L will begin blinking as it did when you first plugged it in.
Congratulations, you're ready to begin the next lesson, where we'll dig into the code you just uploaded, as well as build your first few LED circuits and discover how to control them using basic Arduino programming concepts.
If your port doesn't appear, or you get an error when trying to upload, refer to Arduino's detailed troubleshooting guide, which covers many other common issues.
Share a photo of your finished project with the class!
Nice work! You've completed the class project