Articles Archive
Articles Search
Director Wiki
 

What is the EZIO Board?

January 16, 2001
by Paul Catanese

The EZIO (Easy Input & Output) board is a hardware interface that simplifies serial communication with devices external to the computer. The possibilities for such a device range from simple switches to complicated robotics. I have found that the largest difficulty for those who want to learn how to develop with this device is that there is no easy path to enlightenment. This is partly due to the fact that to use the board successfully one needs a working knowledge of serial communication, some basic electronics skills and an in-depth understanding of a programming environment such as Director.

This document is the closest thing to a book on this subject that you are likely to see for quite a while. However, if you have not worked with electronics before, I suggest "Getting Started in Electronics" by Forrest M. Mimms, which should be available at any neighborhood Radio Shack. The book, while not directly related to the EZIO, will at least get you up to speed on many types of electronic building blocks and how you might use them. Also, the EZIO website (www.ezio.com) is an excellent reference - you can purchase the board from there, and you can download scripts for older versions of Director, or for other environments such as MAX.

Safety

Before I go too much further, let me stress that Electricity is Dangerous. This is not the same as fumbling around with passing arguments the first time: if you do not know what you are doing, or what your intended result is - please ask someone for help.

Getting Started - Hardware

In terms of hardware, you will obviously need an EZIO board (they cost US$149, or US$99 educational). In addition, you will need a source of power. The EZIO requires 8-15V DC power, which means that you can run the board from a DC wall adapter (wall wart), or even from a 9 volt battery if you so desire. I prefer to go with the former option, as it affords continuous power. The third item that you will need is a serial cable, but the type of cable will depend on the platform from which you intend to run your application. If you are working on a PC (or Unix) platform, you will need a 9-pin serial cable with DSUB connections on either end. If you are going Macintosh, you will need a Macintosh 9-pin serial cable (round connector). The EZIO currently supports standard serial, so if a newer Mac is your platform, you will need a USB - Serial Converter. There are several of these products on the market, of which I have found the Keyspan Serial Assistant to be the least problematic. This device plugs into your USB port and creates two standard serial sorts.

Getting Started - Software

There are several options in terms of software:

  1. Director 6 includes several built-in serial communication tools that allow the user to communicate with any serial device, including serial modems, printers and strange yet useful EZIOs. The approach for using D6 with the EZIO has been further simplified by the fact that the EZIO website distributes the scripts that you will need to use the board.

  2. When Macromedia rebuilt most of Director with version 7, they removed all of the built-in functions that allowed developers to communicate with serial devices. There are scripts available from the EZIO website that allow you to work with D7 and the DirectComm Xtra in order to control the EZIO.

  3. (Recommended) I've included a link to a freely distributable Xtra, which was tailored for use with the EZIO board. Included is a sample movie that will show how to utilize the scripts and how to initialize the EZIO. The Xtra is D8 friendly, but it has only been compiled for the Macintosh.

Key Concepts

Serial Communication

The EZIO is only one of many types of serial devices. But what does serial communication actually mean? Essentially, it is communication of data consisting of a long string of characters. Serial communication is not specific to Mac, PC or Unix; in fact, it isn't really specific to what you might consider a computer at all. But the main point to understand is that it is a method of transferring data. Because it is character-based, there are only 256 characters that can be transmitted; and because it is a string, these characters will be transmitted one at a time. The EZIO can communicate at 56K bits per second. This is generally good enough for most applications. If anything, I have had more trouble making sure that timing is dealt with correctly on the Director end. This is one of the key reasons why Ben Chang developed an Xtra tailored for use with the EZIO. The Xtra takes care of making sure that the board is initialized correctly, among other tasks.

Flushing the device

Serial communication has a few drawbacks that you should know about. First of all, in order to communicate with a serial device, you need to tell all of the other programs that are running that you are talking to the serial device, and that no one else should use it. The term for this is locking the device, and it's taken care of for you via the Xtra. If the device isn't locked, more than one program may try to communicate with it simultaneously, and it will not be able to ascertain which program is "speaking". So, the first step in serial communication is to initialize the device, which lets all of the other programs know that you are using the device.

Of equal importance is that when you are done with the device, you relinquish lines of communication, so that other programs can use the device again. This process is frequently referred to as flushing the device. This must be done even if you know that your program is the only one that will be using the device. The reason you must do this is that each time you run your Director application, it technically functions as a separate application. If you initialize and fail to flush the device, you essentially end up with a zombie connection to the serial device that no program can access or has the authority to flush out. To further complicate this, serial devices are not hot-swappable, so you really should NOT plug & unplug them from your machine while the machine is running. In short, if you end up in this situation you will need to restart your machine.

I bring this up because the sample movie initializes the board on startmovie and flushes the device on stopmovie. Director occasionally "forgets" to run the stopmovie handler, and so, especially when in the authoring environment, I suggest stopping your movies with Command/Ctrl-period to force a stopmovie event.

There are other methods such as initializing and flushing the device on each use within the program, but I will leave setting that up to you. It is what I would do for the final product, but not necessarily what I would do if I were teaching myself how to use the board.

Signal vs. High Voltage

There is a difference between "signal" and "high voltage". A signal is a small (less than +5v) amount of current that can be used in many ways. A signal is said to be high (on) or low (off). Signals are used to communicate with small electronic components, essentially turning them on or off. High voltage can kill you in nasty ways. However, controlled correctly, high voltage can be very useful.

The EZIO is NOT a source of power for electronic devices that you will build. Great care should be taken to isolate the signal travelling through the EZIO from the current that you might use to control devices (motors, lights, etc.)

Overview

The EZIO is a middleman device that communicates with both your computer and the external electronic components that you will build. In terms of electricity, the signal that the EZIO uses to communicate with the computer should be kept separate from the signal and power used to run your devices. In order to ensure the separation of signal you should read about resistors, and in order to use high voltage at all you should read about relays.

The EZIO looks like this:



A
Serial Cable Connection
Allows communication between the EZIO and your computer. There are two connections pictured here. The upper is for Mac, the lower for PC/Unix.
B
10 Digital Inputs
Attach basic on/off switches.
C
10 Digital Outputs
Attach components to control lights, motors, relays, muscle wire, etc.
D
Power Input
Attach the power here. You must use between 8-15 volts DC. There is circuitry involved that makes it possible to hook up positive and negative in any order here.
E
8 Analog to Digital Ports (A2D)
Quantify input from variable input sources such as dimmer switches or light sensors.
F
2 Pulse Width Modulation (PWM) Ports
Ports Allows control of standard DC motors and other devices by turning on and off a given percentage of the time. (This function is not supported by the free Xtra)
G
4 +5V Reference Voltage Ports
You use these reference voltages when working with A2D. You DO NOT power devices with it. Nine out of 10 EZIOs die this way.
H
4 Grounds
When connecting switches or other components, you will use ground in order to complete the circuit.

Free EZIO Xtra & API

The sample movie for this article includes a free Xtra developed by Benjamin Chang (bchang / at / artic.edu). The Xtra is currently Mac only; if you desperately need it for the PC, you will need to speak to Ben. The movie has more explanations and examples, but I want to outline the basics of the Xtra API here:

 

Writeline(ezio, Line#, Value)
Tell the EZIO to set a given line "high" (on) or "low" (off).
Readline(ezio, Line#) Ask the EZIO whether a given line is "high" or "low".
A2D(ezio, Line#)
Ask the EZIO to quantify an analog signal into a number between 0 - 255. This allows you to hook up components such as heat sensors or pressure sensors, take their output and convert it into a numerical format.

Electronic Components

The following electronic components are some of the first that you may want to learn more about. This is by no means a complete list of electrical components, nor are the descriptions of the functions comprehensive. Many of these devices have several purposes.

 

Device
Function
Switch
Turn on and off
Resistor
Isolate signal from the board
LED
Visualize where power is
Variable Resistor
Dimmer switch input
Photocell
Variable resistance based on the amount of light
Pressure Sensor
Variable resistance based on amount of pressure
Thermostat
Variable resistance based on heat
Transistor Mini-electronic switches used to build logic circuitry
Multi-plexer Control more than 10 devices
Capacitor Store current
Relay Use high voltage
Muscle Wire Strong wire that compresses when current is applied, allowing you to lift hundreds of times its weight. Used in robotics especially, there are many kits out there that can be modified for use with the EZIO.
Stepper Motors Very precise motors that are used in robotics. They step forward or backward a given amount of degrees based on the order and pattern of signals fed to them.

Summary

To learn and utilize the EZIO, one of the best places you can visit is your local thrift store. They generally have an array of "junk" that can be modified for your uses. In particular, I urge you to look through the children's toy section and the appliance section. You may find that even if the junk lives up to its name, there are scads of components inside just waiting to be salvaged. Radio Shack is another option, although the prices you might end up paying will be considerably higher than if you went to Jameco (www.jameco.com) or a similar online electronics parts store.

A sample Director 8 movie is available for download in Mac or PC format. The Mac download includes the free EZIO Xtra.

Paul Catanese is a Chicago-based artist and educator who has been working with Director for several years. Paul's most recent credits include authoring Director's Third Dimension: Fundamentals of 3D Programming in Director 8.5, a Technology Fellowship from Columbia College to develop curriculum for 3D programming and consulting for the Brainbench.com Director 7 and 8 certification tests. Currently, Paul teaches animation and experimental imaging at the School of the Art Institute of Chicago and continues to offer consulting, training and development for all aspects of interactive multimedia through his company, skeletonmoon.com.

Copyright 1997-2024, Director Online. Article content copyright by respective authors.