Categories
Uncategorized

Garage Fix (Again 2!)

I’ve got a new garage door fix. Again. I forgot to explain the last fix, which sort of worked, well… worked fine for years I guess, but now it doesn’t. Oh, start at Garage Fix (At Last!) if you want the back story… The short version is, with a combination of sunlight, snow, and a specific time of day, the garage door will not close due to the electric eye being affected by light from outside the garage.

After the first repair (mentioned in the blog post linked above) it didn’t quite do it so I ended up moving the electric eye sensors to the top of the garage. The illustration above is a view from inside the garage looking out, with the door open. The red sensors are the old location, and the green sensors are where I moved them to. I also ended up making a flag below the sensor because this solution also did not always work. Arrrgghhhh. Oh, I should mention that the sensors where they are will never detect a child running under the door, but the alley kids are all six years older now, so they should know better. ;p

So these fixes worked pretty well (for years actually) until last week, so on to another.

I realized that if you pressed the garage door button (which I replaced years ago with a green arcade button) the door would start to close, then when light bounced off the door and hit the sensor it would stop and reopen. I also realized that if I pressed and held the button, it would close!

Well that’s easy! All we need is a way to press and hold the button for as long as it takes to close the door. While it was -0 degrees out I prepared an Arduino and a relay, a pink arcade button, a chunk of wood, found a 12 volt power supply, and hot glued it all together. I wrote some code that would close the relay 5 seconds after the button was pressed and then open the relay 30 seconds later.

So here’s what happens now. When I leave in the morning I pull out of the garage and use my remote to close the door. If it does not close I get out of my car, go into the garage, press the pink button, and then walk briskly out of the garage before the door closes and crushes me. The door closes as I get in my car, and we’re all good.

This is one of the ugliest builds I’ve done it a while! As mentioned, I literally threw this together as quickly as possible. I did not design anything, did not build an enclosure, didn’t make labels… nothing. I drilled a hole in the wood and screwed it into the drywall and wired it in parallel with the existing button which usually works to close the door.

So now it’s, press the green button to open and close the door, and press the pink one if the green one doesn’t work. If you drive out of the garage and your remote won’t close the door, get out and use the pink button. Yup. Sigh.

Obviously the next step is to design an enclosure, add proper labels, rewrite the code, add status and indicator lights, probably a 7 segment display with a countdown… and then hey, might as well use an ESP32 so I can add remote control via WiFi. Oh, I should probably also add a sensor to check if the door is opened or closed. And also a status web page I can then check with a service running locally on the network, tied into Pushover to send me alerts. Ah, plus a real time clock module so I know when things happen in case I need to correlate times with the security camera.

I expect to have the new version done within 18 to 24 months.

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!