Categories
Uncategorized

The LED Burns Bright

Disclaimer: I have destroyed light emitting diodes (LEDs) in the past. Typically on purpose, by feeding them too much voltage until they burn out in a bright flash. It’s fun to do if you’ve got a variable power supply with a dial and can slowing crank up the voltage.

That said, this is about trying to destroy an LED without trying to destroy and LED. (Or maybe, trying to not destroy an LED but still breaking the rules.)

The rules you say? Yes. As in, you need a resistor when connecting an LED to an Arduino. This is just, like, a fact. You can get away with putting a resistor-less LED on an Arduino for testing, or learning, or a quick demo, but to do it right, always add an appropriate resistor inline.

There’s a web site called LEDCalc.com that helps you determine the appropriate resistor for the LED and voltage you are using. Tell it you’ve got 5 volts, one LED with a voltage drop of 2.0 volts, and want to give it 20 milliamps and it will tell you to use a 180 ohm resistor. (There’s fancy maths to figure this out as well, but I’m an artist who does not excel in maths.)

In the photo above you’ll see a (very bright) yellow LED connected to an Arduino Nano. (This Nano specifically is manufactured by Elegoo.) I have no resistor in my circuit, I have nothing else connected, just a single LED on a single pin, with a digital write to turn it on at full power. (As it were.)

Okay, so at some point the LED will be destroyed, or the pin on the Arduino will be destroyed, or the Arduino itself will be destroyed, or some component will fail. But… when will that happen? I’m a week into this experiment, and so far, all is well. Will it take a month, a year, a decade? Is the time to failure completely unknown, and completely random. Is it pure luck that this works, and it could fail any second now? Do I need to blink it on and off to get an inrush of current to the LED to stress it more?

I found this Arduino MEGA with 27 LEDs connected to 27 different pins, which I used for testing, and it seems fine as well. Granted, I don’t have all LEDs on at the same time for any real length of time. It’s a blinkenlights thing so lots of off time and some on time.

I’m now really tempted to change the code so it just turns on all 27 LEDs at once for an extended amount of time. I’m a bit curious about this whole thing now. I understand the reasoning behind current limiting resistors, but I’m wondering how that comes into play in the real world. One of the trickiest things I’ve dealt with when designing circuits is that they should work, they work on paper (or on the screen) but in the real world something goes wrong. EMF, physics, gremlins… whatever. Something you don’t expect comes along and screws things up… But this seems like the opposite, where we plan for what should/could go wrong, but then it doesn’t.

I probably need an actual Electrical Engineer to walk me through this one…

Categories
Uncategorized

Meeting Controls

The latest fun project over at Brown Dog Gadgets is a USB device to toggle your microphone and camera on and off during video calls on your computer. Check out Meeting Controls!

We’ve got the “Business Edition” above for the adults with their serious work calls, as well as the “Fun Edition” for kids stuck in those all-day distance learning sessions.

This is a pretty simple build if you’ve got the right LEGO pieces laying around. (If you don’t a quick trip to BrickOwl.com will get you sorted straightaway.)

As always, you don’t have to perfectly replicate the LEGO build we’ve done, and it should be considered a starting point, or recommendation of one way to do it. That’s the beauty of LEGO building… it’s open ended. (Of course we do have a few tricks along the way.)

The Invention Board can be programming to work as a USB HID device, and we provide all the code you’ll need to work with Zoom, Google Meet, and even Microsoft Teams. (Webex didn’t work… blame their developers.)

Some nice touches, like the mic and camera icon, were added by using a vinyl cutter to make small stickers that are applied to flat LEGO bricks. Totally optional, but adds a bit of class and distinction to this very handy device.

As always, a wiring taping diagram and notes on the build are included in an eye-pleasing arrangement of words and images. Check out this project and more from Brown Dog Gadgets, especially if you’re an educator looking for a great invention & creativity platform that combines circuits with LEGO building.

Categories
Uncategorized

Game Boy Camera

I remember seeing people use a Game Boy Camera years ago, and with my interest in lo-fi tech (and probably spurred on by 8bitMKE) I ordered a Game Boy Camera for $11.97 on eBay almost two years ago (Hey, sometimes projects take a while.)

Last fall when my daughter moved out we found her old Game Boy Advance, and after a good five minutes of Tetris I popped the camera into it and took a few photos. But alas, with no way to transfer them out of the Game Boy, they were stuck there…

After some digging around I found some posts that mentioned using an Arduino to transfer the photos from the Game Boy to a computer. Arduino you say? That’s my jam! But even then it took some time before I did anything.

I finally got the cable I needed (a “Two Player Link Cable Cord for Nintendo Game Boy”) for $3.99 on eBay after first ordering the wrong cable, and I quickly grabbed an Arduino Nano, one of my breakout boards that was already soldered up, cut the cable in half, stripped the wires, grabbed a multimeter to figure out which was which, and got it all wired up.

The arduino-gameboy-printer-emulator repo on GitHub proved the most useful to me in getting this all set up.

The process to transfer involves connecting the Game Boy and “printing” the photo you want while the Arduino serial monitor is open and set 115200 baud. The data will flow into the serial monitor window, then you copy it and paste it into the decoder and you get your image.

While I’ve got a DSLR, a phone, a Raspberry Pi camera, and other ways to capture images, the Game Boy Camera is definitely one of the more esoteric methods of doing so. Stay tuned to see what I actually do with it.

Categories
Uncategorized

Arduino Class Files

I finally got around to publishing the files for the Beginner Arduino Class I used to teach.

Here’s some text from the README:

In 2016 I taught a classed titled Electronics & Sculpture in the Peck School of the Arts at the University of Wisconsin Milwaukee. I often referred to the class as “Arduino for Artists”.

Basically, it was teaching art students, some of whom never programmed or wrote any code, how to activate their art using the Arduino platform.

We had five concepts we wanted to cover:

  1. Digital Input
  2. Digital Output
  3. Analog Input
  4. Analog Output (PWM)
  5. Serial Communications

In 2017 I moved on to teaching the class at Milwaukee Makerspace and I refined the curriculum a bit to resemble very closely what you’ll see in these files. I used components I had available. (Note: I should add a parts list at some point).

In 2018 I started teaching the class at Brinn Labs, usually with the help of Becky Yoshikane (friend, former coworker, former student, and former classmate). We taught the class all through 2018 and a few times in 2019.

I no longer teach the Beginner Arduino Class, but I wanted to share the files in case anyone else could find them useful.

Each lesson contains an Arduino sketch and a wiring diagram (as a Fritzing file, and a PNG file). In some cases there are also images showing components, and most of the sketches should have links to the concepts/functions used in the sketch.

So there you go. If you find any of this useful, let me know. I wish I was in a position to keep teaching the class, as I really enjoyed doing so, but it’s not something I can do right now, but maybe you can. Let’s keep trying to teach electronics and prototyping to people and see what happens!

Categories
Uncategorized

Seeeduino Nano

The folks over at Seeed Studio sent me a Seeeduino Nano to check out. I’ve used a lot of Arduino boards over the years, including plenty of cheap Arduino Nano clones. Most of the clones have worked fine but every now and then I’ve seen a bad one come through. The Seeeduino Nano is a nice quality board with a little extra to make it useful for beginners or people more interested in making things quickly/easily than they are soldering wires.

One interesting thing about the Seeeduino Nano is that it used USB-C to connect to your computer. While most of the Arduino UNO boards I’ve used still use USB type B, and lots of other boards use Mini-USB or Micro-USB, the Seeeduino required a USB-C cable. Luckily, I had one on hand. If you don’t already have a USB-C cable, you’ll need one for the Seeeduino Nano.

My favorite part about the packaging of the Seeeduino Nano is the warning on the back that says “Best to keep away from fire”, mainly because I’ve worked on multiple Arduino projects that specifically involved fire… But I digress… for most people keeping away from fire is probably a good idea.

Here’s the top view of the Seeeduino Nano next to a ELEGOO Nano board. You can see the difference in the USB connector and a few other features. One difference with the ELEGOO boards is that they come with the header pins included but not soldered in place. (Here I’ve soldered them to the board.) There are times when you don’t want header pins solder into place. My guess is that for the target market of the Seeeduino Nano, the pins already installed makes sense.

Another thing about the ELEGOO boards is that I can’t easily find them listed on the web site. Here’s a post about them, but in the past if I’ve purchased them I’ve found them on Amazon for a price close to the Seeeduino Nano, though I’ve only seen them as a 3-pack.

(Note in the photo above the boards are the same dimensions, the Seeeduino is just on an angle due to the extra connectors on the top.)

Since I had a project already done with a Nano in place (via my Anrduino Nano Breakout Board) I just swapped in the Seeeduino Nano, uploaded the code, and it worked great.

Where the Seeeduino Nano really shines is the capabilities it has with the Grove system from Seeed Studios. If you don’t want to solder, and also don’t want to stick a lot of wires and components into breadboards, the Grove system might be what you are looking for. Again, I see this is a match for those who are more interested in the code than the wiring of electronics, or for workshops where soldering might be a concern (with kids or those not able to solder for other reasons).

In the photo above you’ll see the Seeeduino Nano along with the Grove Shield, a Temperature & Humidity Sensor, and a connector wire.

It’s also worth noting that the Seeeduino hardware and Grove system are open source, and others have embraced Grove. Adafruit has a Grove Shield for Particle Mesh and Feather Boards.

Above you’ll see the Seeeduino Nano plugged into the Grove Shield which has a Temperature & Humidity Sensor sensor attached. This takes seconds to connect versus soldering things or plugging things into a breadboard. When I taught basic Arduino classes I always told students to unplug their Arduino when they wired up the breadboard, and then to double-check the wiring for errors before plugging in the board again. The Grove plug-in system eliminates much of that guesswork. You can’t really plug things in backwards.

Here’s the Temperature & Humidity Sensor. I’ve worked with logging temperature and humidity before, so I’m not really new to this. The new part is the simplicity of just plugging things in.

I grabbed the example code Seeed Studio provided and had a few issues. Nothing I couldn’t fix, and I did open an issue about it. In the end I grabbed Adafruit’s library for the DHT Sensor as well as the Adafruit Sensor library (which is required by the DHT library) and got things up and running. If you’re not interested in downloading zip files from Github you can also install these libraries right from the Arduino IDE.

Overall the Seeeduino Nano is a good quality Arduino board, and the Grove system makes it very easy to get up and running. In this specific test I did run into some trouble with their example code, but in most cases those issues are solvable, and there’s probably an alternative example or library out there that will do what you want or need.

Finally, here’s a short video of the game scoring system I mentioned above. The Seeeduino Nano is taking input from a number of pins (that will eventually be triggered by switches or buttons) to keep score, where each pin is a different point value, and then using the piezo speaker to play a sound for each point value as well as displaying the points on a small LED display.