posts tagged with the keyword ‘arduino’

2016.05.16

Teensy LC BOB v1.3

Good News, Everyone! The new Teensy LC break-out board is ready! Yes, we’re now at version 1.3 of the Teensy LC BOB.

Preview

I’ve made a few changes since version 1.2. I moved the traces from the top to the bottom (how did I miss that!?) and I added an extra ground line so that you can connect a bunch of screw terminals to the ground row even if you don’t solder in header pins at the end of the board and only do the sides. (This also comes in handy if using the Teensy Audio Adaptor Board.)

I’ve also lengthened the board a bit, and added a fifth hole, and here’s why…

Installed

For a recent project I discovered that the USB cable was able to rip the USB connector right off the Teensy if hit, twisted, or yanked in the wrong direction. The fifth hole is for adding a piece (wood? plastic?) by screwing it into the bottom and then looping a zip tie around the USB cable for strain relief.

USB mock-up

I scanned in a Micro USB cable and placed it over an image of the board to figure out spacing. It should work. I may end up 3D modeling the piece that holds the USB cable in place.

As I use the boards more I may find other improvements along the way. Also, I’m now able to load in custom images and graphics onto the PCB, so I’m already scheming for my next OSH Park project.

2016.05.15

Arts+Tech Night

I mentioned back in February that I’ve been teaching a Physical Computing class at UWM called “Electronics and Sculpture” this semester. So I’ve basically been showing students how to integrate microcontrollers into their artwork. (Arduino is the order of the day, though I’ve got one student exploring ATtiny85 chips.)

Students have been working on their final projects, using techniques they’ve learned all semester, and they’ll have their work on display for the public at Arts+Tech Night happening 6pm-9pm, Wednesday, May 18th, 2016. Come on down and check it out. Most of my students will be on the 4th floor in the center area. (Maybe your friends are already going!)

mike-light

(There is a web site for ATN but sadly, despite my best efforts, It has not been updated this time around.)

2016.04.27

Traffic Lights

I recently repaired the traffic and walk signals at BBCM. The system had been running on a PLC (Programmable Logic Controller) which failed, and rather than find the proprietary programming cable and find and install the PLC Windows software, I decided to just put an Arduino and relay control board in place.

Arduino and Relay Board

I had a Teensy++ 2.0 I had pulled from another exhibit during an upgrade, and an 8 channel relay board on hand. These relay boards come in different configurations from 1, 2, 4, 8, and even 16 relays. Since I really only needed 5 relays (and 5 pins) I could have used an ATtiny85, but I had the Teensy++ 2.0 readily available. The wiring is all done using female to female jumper wires.

Traffic Controller

I mounted everything to a piece of scrap MDF and added mounting holes to that, with the idea that we’d screw the whole thing directly into the wall. The relay board has mounting holes, but the Teensy does not. That’s probably my one complaint about the Teensy boards, is that mounting them isn’t always easy. My Teensy BOB has mounting holes, but for mounting this Teensy++ 2.0 I just used some 3M™ VHB™ tape. (The “VHB” stands for “Very High Bond”). And yes, there are a few 3D printed parts on there. At some point I should make a 3D printed holder/mount for a Teensy++ 2.0

Labels

I try to label things clearly. If I look at this thing in 6 months, or 2 years, or someone else has to look at it, I want it to be somewhat apparent what is what, so there’s not a lot of guesswork as to what is going on. I included a label with the name of the Arduino sketch, and I always like to label power supplies. Sometimes we use 5 volts, and sometimes 12 volts, and they typically have tiny hard to read type printed on the side of the power supply that you can’t see when it’s plugged in.

The one thing I should start to add to the labels is the URL of the wiki page where the thing is documented. (Next time I’ll do this.)

Controller Mounted

Here’s the controller mounted. It’s not pretty. We ended up re-using the mount that the PLC was in, rather than screwing it right into the wall. In my defense, we did this repair on the floor during open hours, and it’s mounted high on a wall behind a TV. Does it work? Yes… Is it awesome, no… but again, it totally works.

The wiring for the lights was all 12 VDC, not 110 VAC, so those thin gauge wires are fine. Also, they were labeled, which was handy. (Thanks previous person who worked on this and labeled things!)

Wiring Diagram

I try to create wiring diagrams for everything. I use Fritzing because it’s simple and awesome and open and free. I often don’t find the components I need, but you can always just use a note and some text.

Here’s the script/sequence for the lights:

  1. Green Light is ON
  2. Walk Light is ON
  3. Waiting 4 seconds…
  4. Walk Light is OFF
  5. Don’t Walk Light is BLINKING (for 5 seconds)
  6. Green Light is OFF
  7. Don’t Walk Light is ON
  8. Yellow Light is ON
  9. Waiting 4 seconds…
  10. Yellow Light is OFF
  11. Red Light is ON
  12. Waiting 6 seconds…
  13. Red Light is OFF
  14. Don’t Walk Light is OFF
  15. (Repeat sequence)

I wrote this up to figure out how to program things. I find it helpful to plan things out before I start writing the code.

At first I just talked through the light sequence with someone and we made some assumptions about how it worked. We were slightly wrong, which I discovered when I dug a bit deeper into traffic lights and walk signals. I read at least some of the (very long) Wikipedia page on Traffic Lights. I also hunted for other info, and found some on the Signals FAQ page on the Minnesota Department of Transportation web site. (As I mentioned with the 911 Phone I really do aim for an accurate and realistic experience with these things.)

It’s been a few weeks and the lights have been working fine. Hopefully that will continue to be the case. If something does stop working we’ll open a ticket for it so we have a record. And yes, we do use an issue tracker for our museum exhibits… doesn’t everyone?

2016.04.17

DecaLight

When we last saw the Decagon Light the scale model wasn’t functional… Well, it is now functional!

I spent a bit of time at Kenilworth Open Studios getting things wired up and writing some code. I wrote a bunch of functions to run different patterns. Each function can be called with two parameters, the delay (which specifies how long the light is on) and the number of loops the pattern should run. Right now there are just four functions, but they can be called differently, and put into iterative loops. (I’m sure I’ll write more as this project progresses.)

DecaLight

For this test I’ve got the DecaLight powered by a Teensy with one of my Teensy BOBs. There’s also a USB battery pack from Brown Dog Gadgets supplying portable power. The final version will probably use the Teensy but use an AC adapter for power.

Back of DecaLight

I reused a bunch of JST connectors that were chopped off some other wires to plug the LEDs into. There’s also plenty of pieces of wire and heat shrink holding it all together. At some point maybe I’ll build this into a much nicer looking unit.

Teensy + BOB

The combo of an OSH Park purple board with the SparkFun Pink Teensy 3.1 (Anouk Edition) makes this one of the most colorful PCB project I’ve worked on yet.

Here’s a quick video of the light in operation.

2016.04.14

911 Phone

What looks like an ordinary desk telephone is actually part of a museum exhibit at BBCM that lets kids practice dialing 911. When they pick up the receiver they hear a dial tone, and can then dial “911″ (which plays the proper DTMF tones) they then hear the line ringing, and then an operator answers and says “911, what is your emergency?”

Phone

Inside the phone I’ve replaced the guts with a Teensy 3.2 and Teensy Audio Adaptor board. This combination handles the phone receiver being lifted, the keypad being pressed, and the playing of audio.

Teensy Pins

After consulting the docs for the Teensy Audio Adaptor board I knew which pins were used for the adaptor board, and which I could use for the receiver switch and the keypad. From what I could tell 11 pins were available (0, 1, 2, 3, 4, 5, 8, 16, 17, 20, 21) and I needed seven for the keypad and one more for the receiver switch. Plenty of pins!

I chose to go with a (perhaps slightly odd) method of having some pins point up instead of down so that I could attache female jumper wires to them. I’m not 100% happy with this solution, but it worked for this.

Teensy Wiring

The female jumper wire headers are nearly as tall as the Teeny + Audio board combined. You can also see a potentiometer used for controlling the volume, and a 1/8″ audio jack which goes to the speaker in the handset.

Receiver switch

I re-used the existing receiver switch and wired it into the Teensy. The switch is NC (Normally Closed) instead of NO (Normally Open) so I just reversed the logic in the code when looking for the switch to trigger. When the receiver is lifted the dial tone sound plays. (Also, if you leave it off the hook too long, it will play the annoying off-hook tone. (I aim for realism with this stuff!)

Keypad back

The keypad was also re-purposed (once I figured out the wiring) and wires were soldered onto the tiny thin wires, and the heat shrink tubing was added. The keypad runs to a small piece of perfboard which is used to connect to the Teensy, along with a few resistors in the mix.

Keypad Notes

Notes on how to wire up the keypad. I originally used a SparkFun Keypad for testing and development before I had a (broken) phone to tear apart.

Fritzing Diagram

Here’s a quick wiring diagram showing how it’s all put together. (I try to match wire colors in diagrams with the real-world wire colors, at least before any maintenance/repairs happen.)

Connection Board

The connector board allows for easily removing the Teensy if that’s ever required, or replacing the keypad if it goes bad. It also adds in the resistors necessary for the keypad to function properly.

Magnet Mount

For mounting the Teensy into the phone I opted to use an old hard drive magnet with a piece of wood attached. The Teensy is screwed to the wood (which is a good insulator) and the magnet is also screwed to the piece of wood, and then attaches strongly to the steel base of the phone. (There’s also gaff tape on the base of the phone, as extra protection between electricity and metal surface.)

RJ9 Wiring

I found this diagram for the speaker wiring from the handset, and wired the appropriate lines to a 1/8″ audio plug that goes into the adaptor board.

One other thing I did was add code that only accepts “properly dialed/formatted” phone numbers. So if you pick up the receiver and dial “4738911″, you didn’t dial “911″. You need to hang up and try again, with a proper “911″. There’s a buffer that looks for 3 digits (or 7 digits) and if you can’t get that right, it doesn’t work. As I said, I aim for realism with these things…

(Note: I may have left in a few numbers from testing. I’ll have to ask Jenny or Hannibal for the details.)

« Older Entries |


buy the button:

Buy The Button

top recent artists: