PRODUCTS
 
 
 
 
 
 

 
 

Teleo Project Design Basics

How to start designing your Teleo Project:

 


Overall Design
Module Selection
Power Supply Selection
Programming
 
   

Overall Design

In the first phase of your design, you decide the general sort of project you want to build. You determine roughly what it will do and roughly how it will do it.

Make Sure Your Project Is Possible

In this phase you need to make sure all the things that you're thinking will be in the project are actually possible. Chose conservatively! In general it is wise to limit your designs to thing that are very simple to build. Try not to rely on things working at the edges of their design capability, tempting as that space often is. To quote a book on High Tech projects - try to choose projects that require at most one or two fundamental advances in science - more is risky.

Identify and Prototype Key Areas

During this phase identify the key or difficult processes or mechanisms and prototype them. If you're hoping to get something to lift some weight - make sure that your chosen motors can actually do it! If you want your project to work for 10 minutes during some kind of performance, for example, you might be able to cut some corners in its construction, but if you expect it to run flawlessly for months on end, every element has to be considered with this in mind, materials need to be stronger, construction tolerances need to be tighter, and so on.

Develop and Test the Parts

Develop and test the different parts, separately first if possible. Test them, then test combinations of the different parts together early and often. When you develop everything at once (which is very tempting sometimes) then bring everything together for the first time just before the project is supposed to be done you expose yourself to significant risk that things might not work as you want them to.

Decide on Programming Mechanism

In order to give your project behaviour you'll need to connect it with some kind of computer. If you want a fully autonomous project, that computer should be a small one that you can incorporate physically inside your project. If your project is more static, a regular desktop machine will serve very well. Your needs for services beyond simple data manipulation will determine what kind of computer you need, and your particular programming preferences will determine what kind of programming system you will use. Cycling 74's Max/MSP is an excellent choice for easy experimentation and easy integration with visual and auditory media. Some users with simpler or particular machine-related requirements might chose the Teleo Application SDK, a C library which permits low-level access to the Teleo Network.

Make Sure Your System Can Start and Stop Without You

In the case of a longer term project, spend quite a bit of time making sure that the system can be turned on and off without you. Try to avoid the requirement to supervise your creation 24/7. While you might be quite fond of it at the beginning after a while, even with an adoring public, your mind will almost certainly wander. At the very least you need to sleep and eat.

Take Steps to Protect Your Work

If people are going to be around your work, remember to never underestimate the desire and ability of the anonymous public to interfere with at best and at worst intentionally harm your project. People like to leave their mark, especially on other people's work. What protection is required to protect your machine? Think about how robust ATM's and public phones have to be to withstand an angry public and get the requisite amount of that in your project. Remember art galleries have security guards making sure people don't disturb the exhibits.

Think About Safety

Also think about safety - both yours during construction and later on of other individuals when your machine is running. Learn about the tools you need to use in proportion to their value and their dangerousness. Don't work with circular and band saws and other big tools when you're tired. Drinking and power tools may seem like a sexy combination to some, but there are plenty of damaged and separated body parts attesting to the falsity of that view.

Many, many products have warnings to the user about adequate ventilation and respirators. These warnings are not just the ramblings of a health and safety organizations gone mad or delirious anti-drug campaigners. Adhere to them, they are not optional. Some of the chemicals routinely used in fabrication and construction can indeed cause birth defects in pregnant women and some wreck all kinds of temporary and permanent havoc with your beautiful mind, liver and lungs even in minute quantities.

What about other people around your project? Is it possible for someone to be hurt by leaning or holding something you didn't anticipate? Be very careful of AC wiring. Exposed AC wires can kill people. Can you be sure your machine is safe when the power accidentally goes off? Does the safe operation of your machine rely on your computer running? The long term flawless operation of your computer, regardless of its architecture and OS is something a smart person would not lay bets on.

Plan Your Development Time

Think about time. Think of the feature or element that is most essential or critical to the design of your project and allocate plenty of time early-on to getting it right. Business guru types call this managing by risk. Getting the riskiest stuff out of the way first is a good strategy in a wide variety of pursuits. Make sure you allocate plenty of time to testing before the project goes on display or is put to use. As the designer and builder of the device you are mentally ill-equiped to test it. We treat our own creations far too gently, we skirt around the areas that we know have problems. Other people, on the other hand can be relied upon to point out where the limitations exist - it's getting them to stop that is the tricky part. In software engineering the solution to this problem is institutionalized - one group of people write the programs, another group test them and the relationship is sometimes not friendly. The end result when this works is great tested code.

Module Selection

The next step is to enumerate the things your machine will need to do and be responsive to. Check the overview of all the modules available to first get an idea of what the product range offers. A simplistic guide is offered below.

If you want to: Then Use the:

Control one or two small DC Motors in both directions with speed control

Dual 2A Motor Controller Module
  Control one or two small DC Motors in one direction with speed control   PWM on the Multi IO Module
  Control small DC Motors in one direction only on and off   Digital out on the Multi IO Module or Digital Out Module.
  Control a large DC Motor   10A Motor Controller Module
  Control valves or soleniods   Digital out on the Multi IO Module (up to 4) or Digital Out Module (up to 12).
  Control hobby servo motors   Servo Module (up to 8)
  Control a stepper motor   Stepper Motor Module
  Turn 12V halogen lights under 20W on and off   Digital out on the Multi IO Module (up to 4) or Digital Out Module (up to 12).
  Turn on and off and dim 12V halogen lights under 20W   PWM (up to 2) on the Multi IO Module
  Turn 110V lights and other applicances on and off   Digital Out on the Multi IO (up to 4) or Digital Out Module (up to 12) with Relay for switching the 110V power.
  Turn on and off and dim a 12V halogen light above 20W and below 120W   10A Motor Controller
  Turn on and off and dim LEDs   PWM (up to 2) on the Multi IO Module
  Turn LED's on and off   Digital out on the Multi IO Module (up to 4) or Digital Out Module (up to 12) .
  Read a microswitch, pushbutton, footpad or switch.   Digital In (up to 4) on the MultiIO. The limit switch inputs on the Motor Controllers will also do this.
  Read a light, magnetic field, tilt, temperature etc. sensor, potentiometer, or other voltage.   Analog In (up to 4) on the MultiIO. The position Input on the Motor Controllers will also permit monitoring of an analog value.

When you have accounted for all of the needs of your project you will have the set of modules that you'll need to make it work.

Unless you only need a couple of modules and your modules can be close together, you'll probably want to make a network cable especially for your project. See the Teleo Network Cable Construction Guide.

When you have the cable, you can follow the instructions in the Hardware Setup Guide to connect all the modules together.

Power Supply Selection

The next step is to calculate what power supply you'll need. Each module requires rather small current (usually <50ma) so the dominant factor in your power supply choice will most likely be the devices that you're powering with the Teleo Modules.

Consumed power adds up quickly and comes from unexpected places. An LED is notoriously sparing in its power consumption. An incandescent lamp of similar brightness might consume half an amp. Similarly a well made, incredibly strong electric motor and possibly expensive motor might draw 100mA, where-as a five for a dollar mass market toy motor might have no strength at all and yet draw 1A. Some very strong motors (like starter motors) can draw 100's of amps (be careful with these!).

Calculate what the total current requirement will be under the worst case you can imagine and chose a power supply that can handle it. Remember the Teleo Network itself can only handle 10A so be careful to not exceed that. Often work-arounds exist to permit power-hungry devices in your project to be powered separately.

Programming

The programming part of the project requires some of the same guidelines and admonitions the project as a whole required.

Make sure that you prototype the parts that are most crucial first to make sure the whole design is sound.

Test the programming without the hardware if necessary - you can often simulate the hardware with more software to make sure it works.

Design carefully around latency and throughput. The Teleo Network can send thousands of messages per second, but under conditions of heavy use this rate drops significantly and the time it takes for messages to get through goes up. Under exceptional circumstances messages may even be lost. Think of network bandwidth as a scarce commodity.

One of the easiest things to forget to do is to look into your software as it's running. If something's not working the way you expect, find additional ways to see what's going on inside.

Try to understand your program as best you can including the quirks - since some of those quirks might cause you problems later. If your program does something unexpected, don't proudly attribute it to chaos and emergent phenomena immediately, most often unexpected program behavior stems from bugs not new natural phenomena.

Take breaks and learn to get help when you need it. Unless you happen to be Super Programmer there is most likely someone who can look at what you've done and help you quickly. Never spend huge lengths of time on a bug. Tear yourself away. Do something else for a while.

 

copyright © 2002-2004 MakingThings LLC