All posts filed under “Portfolio

Things I’ve done.

comment 0

Beta Test

Beta Test

Testing LED-equipped tutus at Brooklyn Ballet. Lots of lessons learned in this live test, including some unexpected issues with reset buttons.  LED brightness in the desired theater lighting, sensitivity, static electricity damage to the LED controllers (need a resistor on the LED end of the data lead, not at the head-end on the MCU.)  Dress rehearsal today, Apr 2.

(This work is licensed under a Creative Commons Attribution 4.0 International License. Please provide attribution and a link back to this web page in a manner that associates the image with the image credit.)

comment 0

Sarah trying out Mike’s shirt…

Screen Shot 2014-04-01 at 1.57.47 AM

Sarah Choukah trying out Mike’s shirt after Olivia straightened up the stitching and wiring. The lights on the chest are controlled by tiny motion sensors on the front of the shirt. Along each arm is a strip that reacts to the motion of the arms. Part of a larger collaboration between my crew at NYC Resistor (http://www.nycresistor.com) and Brooklyn Ballet (http://www.brooklynballet.org).

Ballet, Hip-Hop, and Hacking – for the lulz, of course.

(This work is licensed under a Creative Commons Attribution 4.0 International License. Please provide attribution and a link back to this web page in a manner that associates the image with the image credit.)

comment 0

Simple Serial Display How To

Parts Required:

  1. Arduino Mini USB Adapter*
    makershed.com part number MKSP3 approximately $20
  2. Serial Enabled 16×2 LCD – Red on Black 5V**
    sparkfun.com part LCD-00812 approximately $25
  3. Solderless Breadboard 2.14" x 6.5"
    makershed.com part number MKEL3 approximately $8
  4. Solderless Breadboard Jumper Wire Kit (optional, you can use 22AWG wire off a spool)
    makershed.com part number MKEL1 approximately $6.25
  5. An LED of your choice (optional)
    I don't have a specific type for this part, pick any but the 1 watt models.
  6. A resistor of a value suitable for your LED (required only if using the LED)
    Use an online LED calculator such as this one to obtain the correct resistance for your LED.  Note that the source voltage will be 5 volts.  Your LED should include a data sheet detailing the voltage drop across the LED and the forward current.  You'll plug those three values into the calculator to obtain the correct resistor value.

* There are currently two revisions of the MiniUSB Module, the newer model has fewer pins than the original and omits control lines that may be used for connecting LEDs or other switched applications.

** Note that LCD panels natively come with a parallel interface.  The serialized models have a secondary controller attached which accepts serial and drives the parallel display.  The controller is also responsible for managing text wrapping and other convenience features such as backlight drive and control.  It makes more sense to pay the premium for the serial edition to avoid adding a complex component to your design.  Also note that there is now a 3.3-volt edition; to avoid additional power conversion circuits you'll need to ensure you're ordering the 5-volt edition.

For convenience, a good breadboard, a pre-cut jumper wire kit, and a multimeter (aka DVM,) should appear in your toolkit.  Radio Shack sells suitable parts, except for the pre-cut jumper wire so be sure to select a good solid core 22AWG wire spool if shopping at Radio Shack. While you're at the store, go ahead and invest in a soldering iron and a spool of rosin-core solder.  This will give you a valuable tool for reconnecting broken leads or connecting new ones in a more advanced assembly.

After prototyping the Display on a breadboard, it makes good sense to plan a more permanent design.  A breadboard loosely holds the connections together, and the display itself is probably not strongly mounted.  It's also rather unsightly for the gentleman or lady's numerical machine console.  Much better to repackage the contraption in a nice project box or handmade enclosure.  How to do that is beyond the scope of this brief introduction, but should be on your mind as you place part orders and consider a longer view of your Display implementation.

Writing to the display:

This introduction assumes the reader is more familiar with software development than the author.  My experiments thusfar have been limited to using a terminal emulation program and Python with the pySerial library.  The key point is that whatever environment you choose, you'll want to access the serial port, send data at 9600 baud, eight bits, no parity, one stop bit – and if possible also control the Ready to Send (RTS) and Data Terminal Ready (DTR) control lines.  pySerial offers access to the control lines, and is fairly easy to implement.

<Pyserial example goes here> Google pyserial examples.

The Serial LCD controller has a command library that governs cursor movement, clearing the screen, backlight control, and other functions.  Two things: You'll need to know how to send control characters to the serial port – this is not as trivial in most cases as I expected it to be, and depending on your language of choice, you'll have to implicitly send a character directive that sends raw bits rather than ASCII.  Second, you'll be able to find the screen control commands here (PDF).