Lab_interaccio/2011/dmx_readout/Hardware Tools.html

240 lines
14 KiB
HTML
Raw Permalink Normal View History

2025-02-25 21:29:42 +01:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- saved from url=(0049)http://danjuliodesigns.com/hw_tools/hw_tools.html -->
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hardware Tools</title>
<meta name="robots" content="all">
<meta name="generator" content="RapidWeaver">
<link rel="stylesheet" type="text/css" media="all" href="./Hardware Tools_files/styles.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/gb_styles.css">
<link rel="stylesheet" type="text/css" media="print" href="./Hardware Tools_files/print.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/colourtag.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/hide.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/topleft.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/norepeat.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/green.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/grey_light.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/normal.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/top_left.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/century.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/medium.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/none.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/left.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/fluid.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/auto.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/noresize.css">
<link rel="stylesheet" type="text/css" media="screen" href="./Hardware Tools_files/none(1).css">
<script type="text/javascript" src="./Hardware Tools_files/javascript.js">
</script>
<script type="text/javascript">
//<![CDATA[
var tmp_image_path="../rw_common/themes/ca_ohm_djd/greybox/next.gif";
var tmp_path_array=tmp_image_path.split("/");
tmp_path_array.pop();
var gb_path=tmp_path_array.join("/");
var gb_path = gb_path+"/";
var GB_ROOT_DIR=gb_path;
//]]>
</script>
<script type="text/javascript" src="./Hardware Tools_files/AJS.js">
</script>
<script type="text/javascript" src="./Hardware Tools_files/AJS_fx.js">
</script>
<script type="text/javascript" src="./Hardware Tools_files/gb_scripts.js">
</script><!--[if IE 7]>
<link rel="stylesheet" type="text/css" media="all" href="../rw_common/themes/ca_ohm_djd/css/ie7fix.css" />
<![endif]-->
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" media="all" href="../rw_common/themes/ca_ohm_djd/css/ie6fix.css" />
<script type="text/javascript" src="../rw_common/themes/ca_ohm_djd/pngfix.js"></script>
<script src="../rw_common/themes/ca_ohm_djd/IE7/ie7-core.js" type="text/javascript"></script>
<script src="../rw_common/themes/ca_ohm_djd/IE7/ie7-css2-selectors.js" type="text/javascript"></script>
<![endif]-->
</head>
<!-- This page was created with the OHM theme by Rapid Ideas - http://www.rapid-ideas.com -->
<!-- Theme Name: OHM, Version: 1.1.2 -->
<body>
<div id="container">
<div id="breadcrumbcontainer">
<!-- Start the breadcrumb wrapper -->
</div><!-- End breadcrumb -->
<div id="pageHeader">
<div id="logo"><img src="./Hardware Tools_files/header_leds.jpg" width="720" height="176" alt="Site logo"></div>
<h1>danjuliodesigns llc</h1>
<h2>engineering for life</h2>
</div>
<div id="navcontainer">
<ul>
<li><a href="http://danjuliodesigns.com/index.html" rel="self">Main</a></li>
<li>
<a href="http://danjuliodesigns.com/sparkfun/sparkfun.html" rel="self">Sparkfun HRMI</a>
<ul>
<li><a href="http://danjuliodesigns.com/sparkfun/sparkfun/hrmi.html" rel="self">HRMI Downloads</a></li>
</ul>
</li>
<li>
<a href="http://danjuliodesigns.com/projects/projects_main.html" rel="self">Projects</a>
<ul>
<li><a href="http://danjuliodesigns.com/projects/projects/dmx_fixture.html" rel="self">RGB DMX Fixture</a></li>
<li><a href="http://danjuliodesigns.com/projects/projects/hb_dimmer.html" rel="self">HB Dimmer</a></li>
</ul>
</li>
<li><a href="./Hardware Tools_files/Hardware Tools.html" rel="self" class="current">Hardware Tools</a></li>
<li><a href="http://danjuliodesigns.com/sculptures/sculptures.html" rel="self">LED Sculptures</a></li>
<li><a href="http://danjuliodesigns.com/personal_projects/pers_proj.html" rel="self">Personal Projects</a></li>
<li><a href="http://danjuliodesigns.com/hacks/hacks.html" rel="self">Hacks</a></li>
<li>
<a href="http://danjuliodesigns.com/resume/resume.html" rel="self">Resume</a>
<ul>
<li><a href="http://danjuliodesigns.com/resume/resume/solbourne.html" rel="self">Solbourne</a></li>
<li><a href="http://danjuliodesigns.com/resume/resume/hp.html" rel="self">Hewlett-Packard</a></li>
<li><a href="http://danjuliodesigns.com/resume/resume/imi.html" rel="self">Impact Monitors</a></li>
<li><a href="http://danjuliodesigns.com/resume/resume/hrtu.html" rel="self">Heart Rate Telemetry System</a></li>
</ul>
</li>
<li><a href="http://danjuliodesigns.com/personal/personal.html" rel="self">Personal Info</a></li>
</ul>
</div>
<div id="contentContainer">
<div id="sidebarContainer">
<div id="sidebar">
<div id="sideHeader"></div>
<br>
</div>
</div>
<div id="content">
<h2>DMX Readout</h2>
<br>
<p style="text-align:center;"><img class="imageStyle" alt="dmx_readout_front" src="./Hardware Tools_files/dmx_readout_front.jpg" width="396" height="297">
<br>
<img class="imageStyle" alt="dmx_readout_top" src="./Hardware Tools_files/dmx_readout_top.jpg" width="394" height="295">
<br></p>
<p style="text-align:left;"><span style="font-size:13px;">One component of my lighting system
design utilizes DMX as a communication protocol between my
controllers and commercial LED fixtures. The system has the
ability to map various data fields to any DMX channel. This
is fairly easy to test with RGB fixtures but becomes
difficult with more complex fixtures. I found</span>
<span style="font-size:13px;"><a href="http://blog.wingedvictorydesign.com/about/" rel="external" target="_blank">Max Piersons</a></span> <span style="font-size:13px;">excellent Arduino DMX</span>
<span style="font-size:13px;"><a href="http://blog.wingedvictorydesign.com/2009/03/20/receive-dmx-512-with-an-arduino/" rel="external" target="_blank">receiver</a></span> <span style="font-size:13px;">code. I hacked on it a bit to add a
standard parallel LCD display that can display any eight
sequential DMX channels in real time. The display also
shows the number of frames being transmitted per second.
The whole thing was wired on a perf-board and thrown
into a cheap plastic case that originally held a
Christmas ornament (a mistake, these cases are too
fragile).
<br>
<br>
Circuit Diagrams (</span><span style="font-size:13px;"><a href="http://danjuliodesigns.com/hw_tools/assets/dmx_readout_schem1.jpg" rel="external" target="_blank">Arduino-based</a></span> <span style="font-size:13px;">and</span> <span style="font-size:13px;"><a href="http://danjuliodesigns.com/hw_tools/assets/dmx_readout_schem2.jpg" rel="external" target="_blank">Stand-alone
ATMega168</a></span><span style="font-size:13px;">)
and</span> <span style="font-size:13px;"><a href="http://danjuliodesigns.com/hw_tools/assets/dmx_readout_2_0.zip" rel="external" target="_blank">Arduino Code</a></span><span style="font-size:13px;">. Note that this updated version
compiles under Arduino 0021 (here is the original</span>
<span style="font-size:13px;"><a href="http://danjuliodesigns.com/hw_tools/assets/dmx_readout_1_0.zip" rel="external" target="_blank">version</a></span> <span style="font-size:13px;">for Arduino 0016). I had only three
signals left over for control after connecting the
serial interface and LCD. I implemented a three button
solution for setting the starting address. Up and Down
buttons increment or decrement the starting address by 1
for each press. Holding the Fast button causes the
channels to change rapidly while Up or Down are held.
Holding Up and Down together resets the starting channel
to 1.</span>
<br>
<br>
<br></p>
<h2>Power Supply Voltage Display</h2>
<br>
<p style="text-align:center;"><img class="imageStyle" alt="dvm_on" src="./Hardware Tools_files/page21_3.jpg" width="320" height="237"><img class="imageStyle" alt="dvm_board" src="./Hardware Tools_files/page21_4.jpg" width="320" height="240">
<br></p>
<p style="text-align:left;"><span style="font-size:13px;">I
bought an inexpensive adjustable power supply based on the
732 regulator IC from</span> <span style="font-size:13px;"><a href="http://www.canakit.com/" rel="external" target="_blank">canakit</a></span> <span style="font-size:13px;">and then designed a simple digital
voltage readout for it using a PIC 16F373A and 2.5 volt
reference. I scrounged around and found some 0.1%
resistors that summed to 28.005 k-ohms to go with a
4.000 k-ohm 0.02% resistor I had to create the input
voltage divider (0-20 volts scaled down to 0-2.5 volts).
The displays were bright enough that I didn't need
common cathode drive transistors and could sink the
current for an entire digit with on PIC IO pin. Probably
took 3 hours in total. Obviously it would have been a
better use of my time to have just purchased a cheap DPM
on ebay but we don't always choose the most efficient
route and I didn't want to wait. If you're in a bind but
have a few parts laying around perhaps this</span>
<span style="font-size:13px;"><a href="http://danjuliodesigns.com/hw_tools/assets/dvm_schem.jpg" rel="external" title="DVM Schematic" target="_blank">circuit</a></span> <span style="font-size:13px;">and</span> <span style="font-size:13px;"><a href="http://danjuliodesigns.com/hw_tools/assets/dvm_asm.txt" rel="external" title="DVM Code" target="_blank">program</a></span> <span style="font-size:13px;">can help you out. You can easily
adjust the input voltage divider or code to deal with
whatever resistors you have at your disposal. Write it
in C for your favorite microcontroller or an Arduino and
the coding will only take a few minutes.</span>
<br>
<br>
<br></p>
<h2>Event Counter</h2>
<br>
<p style="text-align:center;"><img class="imageStyle" alt="counter" src="./Hardware Tools_files/page21_5.jpg" width="320" height="261">
<br></p>
<p style="text-align:left;"><span style="font-size:13px;">Along the same lines as the power supply
voltage display I also built an event counter using a PIC
16F84A and Siemens DL2416T display. I have primarily used
this event counter to count the number of packet failures I
see in the digital radio that is part of the lighting
control system. However it has proved helpful occasionally
for other projects as well. It can count to 19999 and then
indicate an overflow. The "1" is indicated by the LED
turning green. An overflow is indicated by the LED turning
from green to red. Another very quick and dirty project
based on an immediate need. I had the display and PIC. I
only used this alphanumeric display to display numbers 0 -
9 so I could tie off unused data inputs and have the PIC
only output BCD information.</span> <span style="font-size:13px;"><a href="http://danjuliodesigns.com/hw_tools/assets/counter_schem.jpg" rel="external" title="Simple Counter Schematic" target="_blank">Schematic</a></span>
<span style="font-size:13px;">and</span> <span style="font-size:13px;"><a href="http://danjuliodesigns.com/hw_tools/assets/counter_asm.txt" rel="external" title="Simple Counter Code" target="_blank">code</a></span> <span style="font-size:13px;">if you're interested.</span></p>
</div>
</div>
</div>
<div id="footer">
<p>© 2008-2011 Dan Julio <a href="mailto:dan@danjuliodesigns.com" id="rw_email_contact" name="rw_email_contact">Contact</a><script type="text/javascript">
//<![CDATA[
var _rwObsfuscatedHref0 = "mai";var _rwObsfuscatedHref1 = "lto";var _rwObsfuscatedHref2 = ":da";var _rwObsfuscatedHref3 = "n@d";var _rwObsfuscatedHref4 = "anj";var _rwObsfuscatedHref5 = "uli";var _rwObsfuscatedHref6 = "ode";var _rwObsfuscatedHref7 = "sig";var _rwObsfuscatedHref8 = "ns.";var _rwObsfuscatedHref9 = "com";var _rwObsfuscatedHref = _rwObsfuscatedHref0+_rwObsfuscatedHref1+_rwObsfuscatedHref2+_rwObsfuscatedHref3+_rwObsfuscatedHref4+_rwObsfuscatedHref5+_rwObsfuscatedHref6+_rwObsfuscatedHref7+_rwObsfuscatedHref8+_rwObsfuscatedHref9; document.getElementById('rw_email_contact').href = _rwObsfuscatedHref;
//]]>
</script></p>
</div>
</body></html>