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.

Categories
Uncategorized

Software Release Button

release-button-01

Launching a ship is exciting! Maybe that ship is a rocket ship, or maybe it’s a traditional ship which floats in the water. When launching a ship there’s often a ceremony involving some champagne and pageantry and a party and it’s quite an event. (I’ve been to at least one boat launch, so I know what I’m talking about!)

When you launch a new version of your software, it’s not quite as exciting. I mean, it is, but in a different way. Sure, twenty years ago there was probably a lot of excitement around master discs and packaging and all that, but in 2019 with most software delivered as a service, it’s not much more than someone typing a few commands, clicking a mouse, and pressing the enter key. Not as exciting.

But! Some software company decided to make it exciting, and they asked me to help. They’ve now got a “Software Release Device” that they can connect to a computer, then turn the key to enable the device (which turns on a lamp letting them know it’s ready) and then they can switch between mouse and keyboard and hit the big read button to launch the latest version of their software to the world. Exciting!

release-button-02

They made it pretty easy for me, as they specified most of the parts for the build. The lamp was meant to run on 24VDC but luckily it was just a matter of cutting open the housing, replacing some resistors, and gluing it all back together to get it to run on 3.3VDC, and it looks really nice.

If you’re interested in some sort of custom USB device, let me know… I’d love to build something for you.

Categories
Uncategorized

Rapid On/Off Time (Almost)

timer-2703

I should have known this project was doomed from the start. When I laser cut a piece of paper to test the fit of the components, I somehow managed to flip around the holes for the LED displays, so I ended up building it flipped from what I designed. If that was the only issue, things might have been okay…

timer-2705

Hey, things fit! This was all good (though as mentioned, flipped) and as a front panel it looks fine. Let’s move on to the back of things…

timer-2706

Still good! A few laser cut spacers to get the LED panels flush. The rotary encoders and the outlet are all good. Of course we still need to add wires to get it all connected.

timer-2828

Wires in place. Not bad. I added an Arduino Nano with one of my breakout boards and screw terminals, and there’s a relay module to be controlled by the Arduino. All good.

The idea was that the first encoder would control how many seconds/minutes the outlet was on and receiving power, while the second encoder would control how long the outlet was off or not receiving power. This would allow me to control a 120 VAC device turning it on and off for set amounts of time. (I know, I probably could have used a timer relay, but I wanted to build something.)

Somehow, I never quite got the code to work. Maybe there were some weird issues with the encoder library, or using two encoders, along with the LED panels, I don’t know… but I tried for a few hours to get it to do what I wanted, and it never did. Typically with code issues I bang at it until it works, but for this I just sort of gave up.

In the end it didn’t matter much because I ended up using a variac to lower the voltage instead of togging the full 120 VAC on and off. I also ended up stealing the LED panels and the Nano for another project that had to be done in a hurry. I’ve still got the other parts in place, so who knows? Maybe I’ll return to it in the future…

Categories
Uncategorized

OctoNoise

octonoise-5573

For this year’s WMSE Art & Music event, I created a new board I call OctoNoise. It’s an eight note piano featuring capacitive touch pads, LEDs, a Teensy LC microcontroller, and some fine woodworking. This is somewhat similar to last year’s piece.

octonoise-laser

You may know me for my work with decagons, but I also work with octagons, and this pattern is known as a 16 cell and it worked well for my design which utilizes 8 touch pads and 8 LEDs.

octonoise-5579

I’m not an amazing woodworker, but after laser cutting wood I can typically sand it, stain it, and add some polyurethane. At least it looks (somewhat) nice. I didn’t alter the bottom piece, and I just left it as a square, the way I received it from WMSE. My original design for this piece (over a year ago) was a bit different, but I wanted this to match the style of last year’s WMSE piece (and I was a bit rushed getting this done.)

octonoise-5583

The OctoNoise features and on/off switch, which is handy because it runs on batteries. I can’t tell you how many times I’ve made electronic things for myself and not included and on/off switch. It’s nice to have one! When you turn it on the touch pads calibrate for about 5 seconds. There’s a startup sound that happens during calibration. (I added a note about that on the back of the piece.)

octonoise-5576

There’s a “somewhat” hidden control knob on the side that ajusts the delay between notes. The way the code is written, it plays one note at a time, but you can alter that to very quickly (or slowly) oscillate between multiple notes. You can get some interesting variances in sound by turning the knob.

Note that it is difficult to turn the knob while also touching the pads to make sound. This is by design, as it’s also difficult (if not damn near impossible without using various parts of your body) to play all the notes at once. This was done to encourage collaboration and playfulness.

octonoise-5589

Here’s a side view. The height was determined by the speaker that was chosen. Once again we’ve put the electronics on display as part of the piece rather than hide them inside an enclosure. They are mean to be celebrated! (Each wire has a label showing what it connects to, if needed.)

octonoise-5591

Here’s the Teensy LC, which runs the code. The board has built it capacitive touch pins, which make writing the code fairly easy. The notes used are C5, D5, E5, F5, G5, A5, B5, C6. This is real piano, and you can play actual songs. I based the code on a project I did for Brown Dog Gadgets a while back. You can check out their Touch Piano on Github.

octonoise-5594

This device also contains an built-in amp with a volume control. Again, a sometimes rare feature in the things I build. Often amps require 12 volts and that’s not always fun to deal with, but I’ve found some that work on variable voltages from 3 to 12 volts, so running them at the same voltage as a microcontroller becomes very easy.

octonoise-3d-parts

Besides all the wood and electronics, there are some 3D printed parts that pull it all together. The on/off switch, delay control, amp, and battery holder all have their own 3D printed part that they attach to and then easily attach to the wood with some #4 screws. Once again, things are left “open” to celebrate rather than hide the electronics.

octonoise-standoff

The other 3D printed pieces are the custom standoffs that raise the top piece above the bottom piece to (partially) enclose the electronics. I created a 2D profile from the original artwork used to laser etch & cut the piece to create the correct angle. I then extruded that design to make the tall standoffs and printed 8 of them.

As usual, I encourage you to check out my Instagram account if you’re interested in seeing confusing photos of these sorts of things coming together.

Oh, one thing I forgot to mention. I liked this piece so much, I made another one so I could keep one for myself. As the old saying goes “If you’re gonna make one, make two!” So I did.

Finally, here are some videos, including one showing me playing both of them at once, which might never happen again!