You are on page 1of 78

Robotics - Computer Control

ROBOTICS

ASSIGNMENT#1 Due: _______________

Newspaper Article Collection

Your task is to make a collection of articles from newspapers and magazines related
to ROBOTICS (not just computing in general). Your collection can even include
video taped material from TV, but must not include hand-drawn pictures.

NOTE: Photocopies will not attract any marks. You may include photocopies of
particularly interesting items, but marks are only awarded for actual articles
obtained from newspapers and magazines. You may also not include any material cut
from quality books. - DON'T destroy books by cutting pieces from them!!

Presentation:

The material should be presented in 'scrap book' format, or in a loose leaf file, with
each article glued onto a separate page.

The Time Line:

You have approximately half the unit to collect this material. Don't wait until the last
minute to begin collecting.

Where do you obtain information?

Newspapers, magazines, TV, radio, CDs, etc.

Contact friends, neighbours, other family members, etc and ask them to keep an eye
out for suitable material. The fact that your family may not have access to many
papers/magazines will not be accepted as an excuse for an inadequate collection!

NOTE: One of your later assignments deals with past, present and future
developments in Robotics. The material you collect will be very useful when
preparing these assignments.

Enigmaelectronica
Robotics - Computer Control

ROBOTICS

ASSIGNMENT#2 Due: _______________

Robots and Society

Your task is to prepare a report about the way Robots impact on Society.

Your report should cover areas such as:

Robots in the home


Robots in the workplace
Making jobs easier?
Making jobs safer?
Improving productivity?
Eliminating jobs?
Robots and the military
Robots and government
Robots and medicine
... etc.

Your report should be around 4 to 5 pages long (including pictures, etc) and may
concentrate on any one of the above topics, or deal briefly with a number of topics.

Presentation:

Your report must be wordprocessed. The pictures may be cut out and stuck on, or
hand drawn. (Extra marks will be awarded for computer graphics.)

Where do you obtain information?

Newspapers (your collection), magazines, libraries (school and council), TV, radio,
CDs, etc.

Enigmaelectronica
Robotics - Computer Control

ROBOTICS

ASSIGNMENT#3 Due: _______________

Oral Report - Safety with Electricity

Your task is to prepare an oral report about safety issues relating to using electrical
devices in robotics. You will present your report to the class towards the end of the
unit.

NOTE: Don't wait until the end of the unit to start preparing your material.

Possible Topics:

Fuses
Earth Leakage Detectors
The "Earth" system
Double insulation
Artificial breathing
Cardiac massage
Insulation

How long do you need to speak?

Just a few minutes. You may refer to your notes while you are speaking, but if you
simply read out what you have written down you will not get high marks.

Where do you obtain information?

The school library, Science staff, council libraries, Western Power (SECWA).
We have some pamphlets on the topic, but you should not rely exclusively on them.

You are expected to research the topic yourself.

Enigmaelectronica
Robotics - Computer Control

ROBOTICS

ASSIGNMENT#4 Due: _____________

History of Robotics

Your task is to write a two to three page report on the development of Robotics
over the past 100 years, or so. (You are going to prepare a report later on the
future developments of Robotics, so don't include anything other than past and
existing examples.)

Your report can include areas such as:

Animatronics (Disney studios)


Important people in Robotics and Artificial Intelligence
Early designs
Industrial Robots
Robots in medicine
Space Robots (actual ones, NOT Science Fiction)
Robotic Vehicles eg Deep Sea explorers
Robots in entertainment

You may choose to look at a range of topics from the above list, or spend all of
your time on just one topic.

Remember - DON'T include any future developments, or Science Fiction. You will
look at furture developments later.

Where do you obtain information?

The school library, council libraries, Newspapers, Magazines, TV, Radio.

Enigmaelectronica
Robotics - Computer Control

ROBOTICS

ASSIGNMENT#5 Due: _______________

The Future of Robotics

Your task is to write a two to three page report on possible future developments of
Robotics. You may include areas such as Science Fiction and 'movie' predictions
such as the robots from Star Wars and The Terminator, but you must also comment
on the possibility of each example you give actually happening. (It is unlikely for
example that 'humanoid' robots will become widespread becuase it is easier and
cheaper to make a real human rather than an 'android'.)

Try to be realistic in what you predict for the future!

Your report can include examples from:

Science Fiction
Movies
Novels
Comics
Videos
Text books
Scientific reports
"Think Tanks"
CD ROM

You will receive most marks for original work. You should discuss in your own
words the possibilities of each example actually becoming a reality.

Where do you obtain information?

The school library, council libraries, Newspapers, Magazines, TV, Radio.

Enigmaelectronica
Robotics - Computer Control

ROBOTICS

ASSIGNMENT#6 Due: _______________

Evaluating Software

Your task is to write two to three pages comparing the features of two programming
languages which may be used for Robotic Control.

You should consider features such as:

(i) Ease of use:


- Does it take long to master the language?
- Do you need previous computing experience?
- Which is faster to produce a working program?
Include samples of code from each language in your work.

(ii) Flexibility:
- Can you do exactly what you wanted?

(iii) Extra features:


- Colour?
- Graphics?
- Sound?

(iv) Cost

(v) Hardware required

(v) Memory required

(vi) Other comments ...

You may choose any two software packages to compare.

The Computing Department has access to Pascal, Logo for Windows, Quick Basic
and Visual Basic. If you have another package at home you may include it in your
comments.

Enigmaelectronica
Robotics - Computer Control

ROBOTICA

8452 – Controlada por Computadora

Gerson Hernández

Enigmaelectronica
Enigma Software

Enigmaelectronica
Robotics - Computer Control

Robotics 8452 - Student Notes

Serial and Parallel Transfer:


Data is transferred inside a computer along a set of pathways called the "Data
Bus".

Early computers used a data bus 8 lines wide. Most modern personal computers
now have a data bus 16, or 32 lines wide. (If you look at a motherboard you can
actually see the data bus as a set of parallel copper tracks inter-connecting all the
Integrated Circuits (ICs) to the Cental Processing Unit (CPU).)

Data Bus

Data moves along the data bus as a byte up to 32 bits wide in much the same way
as cars would travel along a 32-lane highway.

Each bit moves in parallel with all the others. This form of data transfer is therefore
called: Parallel Transfer.

There are times when it is much more economical to send data along a single
conductor with each bit travelling one behind the other. This type of data transfer
can be compared to cars moving one behind the other along a single-lane roadway.

Enigmaelectronica
Robotics - Computer Control

Data moves along the conductor as a series of bits. This form of data transfer is
therefore called Serial Transfer.

Parallel Serial

The Centronics Printer Port:


Data is sent to the printer port of 'IBM Compatibles' (referred to as "compatibles"
from now on) as a series of parallel bytes. Each letter, or character, is represented
as a unique byte. The table below contains a number of examples.

American Standard Code for Information Interchange (ASCII code)

Binary Byte Decimal Character


Value
0100 0001 65 A
0100 0010 66 B
0100 0011 67 C
0100 0100 68 D
--- --- ---
0011 0000 48 0
0011 0001 49 1
0011 0010 50 2
0011 0011 51 3

There are eight output lines at the Centronics printer port. When the computer
wants to send a character to the printer it must switch each of the eight data lines
either HIGH, or LOW to represent the required byte pattern. The printer then
interprets the received pattern of HIGHs and LOWs and prints the character.

Enigmaelectronica
Robotics - Computer Control

Printer Port Hardware:


The Centronics "printer port" is a 25-pin socket attached to one of the computer's
"I/O cards". On some machines the printer socket is on the same card as the Video
output. The most common configuration however, provides a separate socket at the
rear of the machine with an internal cable connecting the socket to the multi-
purpose Hard Disk/Games/Printer card.

If we imagine that eight tiny globes are connected one to each of the printer port
output data lines we can get a better idea of the process involved:

Enigmaelectronica
Robotics - Computer Control

Controlling Data Lines:


The on/off pattern of globes depends upon which lines are switched ON ("HIGH")
and which lines are switched OFF ("LOW").

eg 1. If the byte 11001001 is sent to the printer port, the following pattern will
result:

eg 2. If 11110000 is sent, the pattern of globes will be:

Enigmaelectronica
Robotics - Computer Control

Try some for yourself....

1. Draw the pattern of globes produced by the byte 10101010.

2. Draw the pattern of globes when the letter "A" is sent to the printer port.

Binary Arithmetic:
Hopefully you can see how easy it is to control individual printer port data lines by
sending the appropriate byte. The difficulty is that you can't send a byte in the form
used in the examples above. You must first convert the byte into its equivalent
decimal (or Hex) form. To be able to do a binary to decimal conversion you need
to know a little more about Binary numbers ...

Binary arithmetic is based on TWO values - 1 and 0. ("Binary" means two.)

From a computing point of view, "1" corresponds to ON, or +5volts and "0"
corresponds to OFF, or zero volts (also called "ground").

The table below outlines the basics of the binary counting system:

Items Binary Number

• 0000 0001
•• 0000 0010
••• 0000 0011
•••• 0000 0100
Enigmaelectronica
Robotics - Computer Control
••••• 0000 0101
•••••• 0000 0110
••••••• 0000 0111
•••••••• 0000 1000

Another way to view binary numbers is to re-write the 'place' values as powers of
two.

ie 27 26 25 24 23 22 21 20

OR

128 64 32 16 8 4 2 1

eg 11000001 = 128 + 64 + 0 + 0 + 0 + 0 + 0 + 1 = 193

00101010 = 0 + 0 + 32 + 0 + 8 + 0 + 2 + 0 = 42

10101010 = 128 + 0 + 32 + 0 + 8 + 0 + 2 + 0 = 170

Binary to Decimal Conversions:

128 64 32 16 8 4 2 1 Decimal
Value

1 1 0 0 1 1 0 0 = 205

0 1 1 0 0 0 0 1 = 97

1 0 0 0 0 0 1 0 = 130

1 0 0 0 0 1 1 1 = 135

Try some for yourself ...

1. Use the table below to find the Decimal equivalent of:

a) 11001110

Enigmaelectronica
Robotics - Computer Control
b) 00101010

c) 10101010

d) 11111111

128 64 32 16 8 4 2 1 Decimal
Value

Using the Printer Port for Real World Control:


The Centronics printer port has -

- 8 output-only lines
- 5 input-only lines
- 4 input/output lines
- GROUND (zero volts)

The diagram below indicates the pin numbers of each line and its name.

Enigmaelectronica
Robotics - Computer Control

NOTE: Only one pin needs to be 'grounded'. Pins 18 to 25 are all connected
together internally.

For OUTPUT control we are interested in pin numbers 2-9 and GROUND.

We will look at input using pins 10, 11, 12 ,13 and 15 at a later time.

Turning ON and OFF Individual Pins:


If we want to turn on pin number 9 we must send the byte 10000000 to the printer
port. ie we must send: 128 (Decimal).

In Pascal the command is: Port[888] := 128 (Where 888 is the usual 'address' of
the printer port.)

In BASIC the command is: OUT 888,128

In WinLogo V 3.7 the command is: OutPort 888 128

Enigmaelectronica
Robotics - Computer Control

The Table below summarises the values used to control individual pins at the
printer port:

Printer Port Data Lines

Pin Data Binary Decimal

9 D7 1000 0000 128


8 D6 0100 0000 64
7 D5 0010 0000 32
6 D4 0001 0000 16
5 D3 0000 1000 8
4 D2 0000 0100 4
3 D1 0000 0010 2
2 D0 0000 0001 1

NOTE1: To turn ALL pins OFF, send all pins LOW. eg Port[888] := 0

NOTE2: The printer port has a 'latch'. Previous values remain in effect until
overwritten by the next command. ie If a line is turned ON, it remains ON until
turned OFF again.

Try some for yourself ...

1. Write the Pascal code to turn the following pins ON:


a) pin 4
b) pin 7

2. Write the BASIC code to turn ON pins 3, 5 and 8.

Designing a Real World Interface:


An "interface" is the device which allows the computer to send signals to external
devices and receive information back again. The interface makes sure the signals
are 'compatible' and don't cause any damage.

In the previous examples, we imagined that small globes were connected to the
printer port. If you in fact connected globes directly to the output lines of the port
you would certainly cause serious damage to the computer. The interface described

Enigmaelectronica
Robotics - Computer Control
below uses tiny currents from the computer, amplifies them and then switches
external devices without placing extra load on the computer itself.

The heart of the interface you will be using is the "transistor". A transistor is an
electronic switch. One way to think of a transistor is like the electronic version of a
water tap. Small movements of the 'spigot' are used to control large water flow.

The large current flowing through the transistor may be used to drive components
such as a Light Emitting Diode (LED), or larger devices such as a relay which in
turn switches even larger currents!

To ensure protection of the computer's power supply external power is used to


control the 'interface'. Some of the interfaces you will use will have a battery built
in while others will be connected to a separate power unit.

You now have the basics needed to understand how to control 'robotic' devices
connected to a computer. Following sections will look at input sensing and larger
projects based on the new skills you have acquired.

Input Using the Printer Port:


The standard Centronics printer port has 9 input lines. It is possible to use all nine
lines to input data. For simplicity, this work will deal with only 4 of the possible
nine. They are pins - 10, 12, 13 and 15.

Enigmaelectronica
Robotics - Computer Control
To prevent damage to the port an "74LS244" IC is used to 'buffer' the input lines.
The buffer IC provides a degree of isolation and also ensures that the input signal
is 'clean' so that the computer can read it properly.

Each of the input lines is 'tied' HIGH using a 100kΩ resistor and then switched
directly to Ground (LOW) using a simple make/break switch.

There are four buffered input lines used on the interfaces you will be using.

The following table contains pin numbers and data information for the printer port:

Printer Port Input Lines

Pin Number Data Line Decimal Value

10 D6 64
12 D5 32
13 D4 16
15 D3 8

Reading the State of the Input Lines:


In Pascal the command is: [InValue] := Port[889] (Where "InValue" is a user-
defined variable.)

Enigmaelectronica
Robotics - Computer Control
In BASIC the command is: InValue = INP 889

In WinLogo V3.7 the command is: InPort 889

In each case above, InValue will be a byte (as a Decimal) corresponding to the
combined state of all of the input lines. The programmer (you) must then write the
code required to find out the ON/OFF state of EACH of the input lines! This is
done using the technique called "ANDing".

Decoding Individual Input Lines Using "ANDing":


ANDing is a "logical" process which basically says that if two conditions are
TRUE, then the result will be TRUE. For our purposes, if the corresponding bits in
a byte are "1", then the result of comparing the bytes (called "ANDing" them) will
be "1" in the corresponding bit in the result.

eg 11001100 AND 10001001 is 10001000

It's much easier to see what is going on if the bytes are written one under the other,
but remember, this is NOT addition!!

11001100
AND 10001001
--------------
IS 10001000
To work out the result of ANDing, you compare the corresponding bit of each
byte. If they are BOTH "1", then that bit in the result is also "1".

Try some for yourself ...

Find the result of ANDing the following pairs of bytes:

a) 1100 1111 AND 0010 1001


b) 0001 0001 AND 1001 0010
c) 1000 0001 AND 1000 0000

Decoding Individual Lines cont.

Enigmaelectronica
Robotics - Computer Control
Consider the situation where all input pins at the printer port are LOW, except pin
10. If you 'read' the state of the port with "InValue := Port[889]", the result will be
64. (ie the byte is 0100 000 meaning D6 is HIGH)

If only one pin at a time were switched HIGH, the process of decoding would be
very simple, but not very realistic!

To be able to decode the state of individual pins, you must apply the concept of
ANDing.

One way to view the situation is that each input line at the port connects to its
corresponding bit in a byte. When a switch is closed, that bit changes from HIGH
to LOW. (ie from "1" to "0")

Remember, we are only concerned with pins 10, 12, 13 and 15 which connect to
D6, D5, D4 and D3. (That is why all the other bits are "0" - we will ignore them!)

If the first button is pressed, the byte changes to: 00111000. When it is released,
the byte changes back to 01111000 again.

If the second button is pressed, the value will be: 01011000. The third button
produces 01101000 and so on ...

Hopefully you can see the pattern. The next step is to apply what we can see into
code the computer can work with.

The "algorithm" for decoding each line becomes:

read input byte


AND input byte with required bit value
if bit value is LOW then button is pressed

Believe it or not, that is precisely what you brain did to work out the examples
above!!

Writing Routines to Decode Individual Input Lines:


Enigmaelectronica
Robotics - Computer Control

The Pascal code for decoding individual lines is of the form:

InValue := Port[889] {Read the printer Port}


if (InValue AND 64) = 64 then
Writeln('Data line D6 is OPEN') {Pin 10 switch is open.}
else
Writeln('Data line D6 is CLOSED'); {** see Note below.}

The same sequence is used with 32, 16 and 8 to decode D5, D4 and D3 (ie to detect
the state of switches connected to pins 12, 13 and 15).

In BASIC the code becomes:

100 D4$ = CLOSED


200 InValue = INP(889)
300 TempState = (InValue AND 64):If TempState then D4$ = OPEN
350 REM ** See Note below
400 Print "The switch on data line D4 is ",D4$

Notice the slightly different syntax for ANDing with BASIC. In line 300, the AND
is performed to test to see if "TempState" is TRUE. If TempState is TRUE then D4
must be HIGH and the variable D4$ is set to "OPEN". If TempState is FALSE then
its value as set in line 100 remains as "CLOSED".

**
NOTE

Remember that the input lines are tied HIGH by resistors on the interface. InValue
will AND to TRUE with the switch open and FALSE with the switch closed!

Try some for yourself ...

1. Write the Pascal code to detect the state of a switch connected via the interface
card to pin 13 of the printer port.

2. Write the WinLogo V3.7 code required to detect the state of a switch on pin 15
of the printer port.

Enigmaelectronica
Robotics - Computer Control
Evaluating
5.4 Assesses own products and processes
Robotics 5.2 - Computer Control according to specified design requirements,
including ethical criteria and by comparison with
similar products and processes.
Unit Code: 8452

Learning Area: Technology and Enterprise Systems

Level: FIVE Nature


5.9 Explains the elements, structure, sequence,
Strands: Designing, making and appraising, operation and control of systems and identifies
Systems some of the ways systems interact with people and
environments.
UNIT DESCRIPTION:
Techniques
This unit is the last of a series of four Robotics 5.10 Selects and uses a range of techniques to
units that may be studied as an independent unit or organise, construct, manage and maintain systems
in order of progression. and to identify faults and correct them.

Robotics 8452 examines the role and use of


computers in the control of machines which use
mechanical and electrical components to produce GENERAL OBJECTIVES
desired movements. Students will design and test
programs to control working models. - Demonstrate an awareness of safe working
habits
It is envisaged that students studying this unit will
be operating at an approximate Learning Level of - Discuss factors which affect the general
FIVE, as described by relevant Student Outcome operation of automated machines.
Statements.
- Discuss some of the uses of computer-controlled
machinery
Relevant Outcomes
- Describe a number of uses of computer-
Designing, Making and Appraising controlled devices.

Investigating - Describe techniques used to interface computers


5.1 Investigates and explains how the design, with mechanical devices
production and use of products and processes are
affected by the needs of communities and - Discuss past, present and predicted future
environments. developments in Robotics

Devising - Design software to control devices connected to


5.2 Creates and prepares design and production a computer
proposals that:
- include consideration of a range of options - Apply a knowledge of computer-control in
including market prospects. problem-solving
- demonstrate consideration of functional,
aesthetic, social and environmental issues. - Exhibit co-operative group work habits
- use the graphics, conventions and technical
languages associated with particular fields of
technology.

Enigmaelectronica
Robotics - Computer Control

SPECIFIC OBJECTIVES
ASSESSMENT
The student will:
Reports
Prepare a brief report identifying the dangers (Robots and Society) 10%
present in using mains- connected computers for (History) 10%
Robotic control. (Future Developments) 10%
Evaluating Software 10%
Describe the four main types of robots: Manually Final Project 20%
operated, Sequence, Playback, Intelligent. Oral Report 10%
(Safety Issues)
Describe at least three different uses of computer- Test 30%
controlled machinery in industry. eg Lathes,
milling machines, industrial robots, PLC devices, TOTAL 100%
etc.

Describe at least three different uses of computer-


controlled devices in non- NOTE:
industrial situations. eg "animatronics",
environmental control in buildings, domestic Each "Report" should consist of about 4 to 5
burglar alarms and 'control' centres, etc. pages of writing (plus graphics) which indicate the
student has referred to a variety of sources and
Prepare a report discussing the impact of Robotics presented the information in their own words.
on Society.
The Software Evalution should compare at least
Prepare a report on the historical development of TWO packages (eg BASIC, Logo, Pascal, 'Lines',
Robotic control. etc.) and discuss in about 3 to 4 pages the
advantages and disadvantages of each package.
Prepare a report on predicted future developments
in Robotic control. The "Final Project" consists of the algorithms and
final code used to control a robotic device. The
Design, write and evaluate programs to control student should clearly outline their original design
devices connected to a computer. parameters and discuss the modifications carried
out during the evolution of the Project.
Write algorithms to represent the sequence of
events taking place in programs. The "Oral Report" is based on Safety Issues
related to working with computer intefacing and
Write a report comparing two different software Robotics. The student may choose to look at
packages used to control devices connected to a classroom, Domestic , or Industrial applications.
computer. The report is given in front of the rest of the class
and the Teacher. Marks are awarded for both
Work as part of a group to prepare a Project which content (approx 70%) and presentation (approx
demonstrates the student's command over aspects 30% )
of computer control.

Enigmaelectronica
Robotics - Computer Control

Enigmaelectronica
Robotics - Computer Control
Robotics 8452 Computer Control

SESSION OBJECTIVES CONTENTS RESOURCES

Demonstrate and awareness of safe INTRODUCTION Safety videos (SECWA, etc.)


working habits. Introduction to Unit. Texts
Distribute Objectives and Assessment Outlines. Worksheets
Prepare a brief report identifying the dangers Discuss general classroom rules.
present in using mains-connected
computers for Robotics. SAFETY
Discuss safety aspects of using mains-
connected devices and the need for care when
using 240 volt appliances.

1. ASSIGNMENT
Distribute Oral Report assessment
item and discuss briefly.

2. Discuss past, present and predicted future ROBOTS AND SOCIETY Videos
developments in Robotics. Discuss general impact of Robotics in: Texts
The Home, The Workplace, General Society. Worksheets

ASSIGNMENT
Distribute Robots and Society assignment
sheet and discuss scope.

3. Prepare a report discussing the impact of HISTORY


Robotics on Society. Briefly discuss the history of Robotics control
and the evolution of software into Artificial
Intelligence.

ASSIGNMENT
Distribute History of Robotics assignment
sheet and discuss scope.

Robotics 8452 Computer Control

Enigmaelectronica
Robotics - Computer Control
SESSION OBJECTIVES CONTENTS RESOURCES

4. Describe the four main types of Robots: TYPES OF ROBOTS Texts


• Manually Operated, Discussion/Student Notes on the different Activity Sheets
• Sequence, types of Robots.
• Playback,
• Intelligent.

5. Prepare a report on predicted future THE FUTURE


developments in Robotics. Have students 'Brainstorm' the Future for
Robotics ...

ASSIGNMENT
Distribute Future Developments assignment sheet
and discuss scope.

6. Design, write and evaluate programs to control INTRODUCTION TO BINARY DIGITS Exercise sheets
devices connected to a computer. Discuss Binary counting and briefly relate it to Binary to decimal demonstration device.
the operation of computers.
Have students practice converting from Binary
to Decimal and back.
Use demonstrations to consolidate the concepts.

7. Design, write and evaluate programs to control INTRODUCTION TO COMPUTER CONTROL Output demonstration module.
devices connected to a computer ... continued Introduction to programming. (Using the most
appropriate language for the group.) Access to a Centronics printer port or
Relate Binary concepts to direct control of a Serial to Parallel interface.
device connected to the Centronics Printer Port.
(For this activity a parallel port is essential.)
Discuss Serial versus Parallel transfer and relate
the 'parallel' activity to control of Serial ports.
Demonstrate code used for Serial control.

Enigmaelectronica
Robotics - Computer Control
Robotics 8452 Computer Control

SESSION OBJECTIVES CONTENTS RESOURCES

8. Write algorithms to represent the sequence of WRITING ALGORITHMS Algorithm Activity Sheets
events taking place in programs. Students to work in groups to construct
algorithms to solve problems presented by the
Exhibit co-operative work habits. teacher.

9 - 13 Design, write and evaluate programs to control CONTINUE PROGRAMMING Algorithm/Problem Solving Activity
devices connected to a computer. Students continue working in groups to solve Sheets.
Robotics-related problems, write algorithms and
Design software to control devices connected construct simple 'control' programs.
to a computer.

Apply a knowledge of computer-control in


problem solving.

Write algorithms to represent the sequence of


events taking place in programs ... continued
Robotics and Society Assignment due.
Exhibit co-operative work habits ... continued

14. Write a report comparing two different SOFTWARE EVALUATION - ASSIGNMENT Student must be given access to at least
software packages used to control devices Introduce a second package to the students and TWO different software packages.
connected to a computer. allow them to use it to duplicate the same control eg Macintosh: Pascal, Lego Lines, Lego
previously achieved with their first package. Control Lab.

Distribute the Evaluating Software assignment eg Windows: Pascal, WinLogo, Logo,


and discuss its scope. Lego Lines, Lego Control Lab.

15 - 17. Write a report comparing two different CONTINUE SOFTWARE EVALUATION


software packages used to control devices
connected to a computer ... continued

Robotics 8452 Computer Control

Enigmaelectronica
Robotics - Computer Control
SESSION OBJECTIVES CONTENTS RESOURCES

18 - 19 Describe at least three different uses of NON-INDUSTRIAL ROBOTICS


computer-controlled devices in non-industrial
situations.

Describe a number of uses of computer-


controlled devices.

Describe techniques used to interface History of Robotics assignment due.


computers with mechanical devices.

20 - 21. Describe at least three different uses of INDUSTRIAL ROBOTICS


computer-controlled devices in industry .

Discuss some of the uses of computer-


controlled machinery.

Describe techniques used to interface


computers with mechanical devices.

22. Discuss factors which affect the general GENERAL ROBOTICS


operation of automated machines.

Enigmaelectronica
Robotics - Computer Control
Robotics 8452 Computer Control

SESSION OBJECTIVES CONTENTS RESOURCES

23 - 30. Work as part of a group to prepare a Project FINAL PROJECT


which demonstrates the student's command Students are assigned to groups of no more than
over aspects of computer control. THREE to plan, implement and evaluate (DMA)
a project to demonstrate their command over the
concepts presented during the Unit.

At an appropriate point during these sessions


students present their Oral Report on Safety
Issues.

31. UNIT REVIEW

Future Developments assignment due.

32. UNIT TEST

NOTES:

Each "Session" is based on approximately 60 minutes.

Only 32 Sessions are programmed at this time. It is assumed that the full programme of 40 Sessions will evolve over time.

The Final Project is programmed for two full weeks. It may eventuate that more time will be needed to satisfactorily achieve the aims of the Project.
Students may work in groups of no more than THREE to produce the Final Project and share a common mark for the finished product.
Since one of the major objectives of this Unit is to foster co-operative work habits, the issue of just which student does what is of minor significance.
If students in the group have no complaints about the efforts of individuals in the group and are willing to 'share' their mark, so be it!

Enigmaelectronica
Robotics - Computer Control

Robotics 8452 - Computer Control


Name: .............................................

Unit Test

Write your answers in the spaces provided.

1. Approximately when was the first "robot" built?

____________________________________________________________________
(1 mark)

2. What was the first Robot? (What did it look like? What could it do?)

____________________________________________________________________
(2 marks)

3. What are two advantages of using Robots in the workplace?

a)___________________________________________________________________

b)___________________________________________________________________
(2 marks)

4. What are two problems/disadvantages of using Robots?

a)___________________________________________________________________

b)___________________________________________________________________
(2 marks)

5. Give two examples of how/where Robots are not used at present, but may be used in the
future.

a)___________________________________________________________________

b)___________________________________________________________________
(2 marks)

6. Write a sample of Logo code to show its structure.

____________________________________________________________________
(1 mark)

End Of Test TOTAL: 10 mark

Enigmaelectronica
Robotics - Computer Control
Robotics 8452 - Computer Control
Name: .............................................

Unit Test

Write your answers in the spaces provided.

1. Write the Pascal code you would use to send "231" to the printer port at address "888".
____________________________________________________________
(2 marks)
Use the following table to answer questions ...

Binary Decimal Value

0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 0101 5
0000 0110 6
0000 0111 7
0000 1000 8

2. What Decimal value would you send to the printer port to turn on the first two lines?
__________________ (1 mark)

3. What Decimal value would you send to the printer port to turn on the first and third
lines?
__________________ (1 mark)

4. Data is sent to the printer port on 'IBM-compatibles' in:

Answer
a) parallel bytes
b) serial bytes
(1 mark)
5. A "transistor" is best described as:

Answer
a) an electronic 'tap'
b) a memory device
c) a radio device
d) a data line device (1 mark)

6. When was the first "robot" built?

____________________________________________________________________
(2 marks)

7. What was the first Robot? (What did it look like? What could it do?)

____________________________________________________________________

Enigmaelectronica
Robotics - Computer Control

____________________________________________________________________
(3 marks)

8. What are two advantages of using Robots in the workplace?

a)___________________________________________________________________

b)___________________________________________________________________
(2 marks)

9. What are two problems/disadvantages of using Robots?

a)___________________________________________________________________

b)___________________________________________________________________
(2 marks)

10. Give two examples of how/where Robots are not used at present, but may be used in the future.

a)___________________________________________________________________

b)___________________________________________________________________
(2 marks)

11. Write a sample of Logo code to show its structure.

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________
(3 marks)

End Of Test TOTAL: 20 marks

Enigmaelectronica
Robotics - Computer Control
Arrays, Types and Procedures

program Garage;

{ NOTE1: This sample code has no error-trapping. }


{ What happens if the client types in aaa instead of AAA? }
{What happens if the license is not one of those listed?
}

{NOTE2 : It is important that the names of the variables and types


}
{used in the procedures and mainline follow the pattern outlined
below. }

{(You should not use exactly the same names as used in this example.)
}

type
CusterName = array[1..3] of string[20];
Comments = array[1..3] of string[40];

var
CustName: Custername;
Comment: Comments;
License: string[10];
ElementNum: integer;

procedure GetCustNames (var CustNm: CusterName);

begin
CustNm[1] := 'Fred Smith';
CustNm[2] := 'Jill Jones';
CustNm[3] := 'Mary Brown';
end;

procedure GetComments (var Cmnt: Comments);

begin
Cmnt[1] := 'Likes trout fishing';
Cmnt[2] := 'Children in swimming club';
Cmnt[3] := 'Mad on collecting stamps';
end;

{* MainLine *}

begin
ElementNum := 1;
GetCustNames(CustName);
GetComments(Comment);
writeln('License Number: ');
readln(License);
if License = 'AAA123' then
ElementNum := 1;

Enigmaelectronica
Robotics - Computer Control
if License = 'AAA124' then
ElementNum := 2;
if License = 'AAA125' then
ElementNum := 3;

writeln(CustName[ElementNum], ' ', Comment[ElementNum]);


readln;
end.

You could also try case statements along the lines of ....

{* MainLine *}

begin
ElementNum := 1;
GetCustNames(CustName);
GetComments(Comment);
writeln('License Number: ');
readln(License);
case License of
'AAA123','aaa123' : ElementNum := 1;
'AAA124','aaa124' : ElementNum := 2;
'AAA125','aaa125' : ElementNum := 3;
end; {case}

writeln(CustName[ElementNum], ' ', Comment[ElementNum]);


readln;
end.

Enigmaelectronica
Robotics - Computer Control

Arrays, Types and Procedures

program Garage;

{ NOTE1: This sample code has no error-trapping. }


{ What happens if the client types in aaa instead of AAA? }
{What happens if the license is not one of those listed?
}

{NOTE2 : It is important that the names of the variables and types


}
{used in the procedures and mainline follow the pattern outlined
below. }

{(You should not use exactly the same names as used in this example.)
}

type
CusterName = array[1..3] of string[20];
Comments = array[1..3] of string[40];

var
CustName: Custername;
Comment: Comments;
License: string[10];
ElementNum: integer;

procedure GetCustNames (var CustNm: CusterName);

begin
CustNm[1] := 'Fred Smith';
CustNm[2] := 'Jill Jones';
CustNm[3] := 'Mary Brown';
end;

procedure GetComments (var Cmnt: Comments);

begin
Cmnt[1] := 'Likes trout fishing';
Cmnt[2] := 'Children in swimming club';
Cmnt[3] := 'Mad on collecting stamps';
end;

{* MainLine *}

begin
ElementNum := 1;
GetCustNames(CustName);
GetComments(Comment);
writeln('License Number: ');
readln(License);
if License = 'AAA123' then

Enigmaelectronica
Robotics - Computer Control
ElementNum := 1;
if License = 'AAA124' then
ElementNum := 2;
if License = 'AAA125' then
ElementNum := 3;

writeln(CustName[ElementNum], ' ', Comment[ElementNum]);


readln;
end.

You could also try case statements along the lines of ....

{* MainLine *}

begin
ElementNum := 1;
GetCustNames(CustName);
GetComments(Comment);
writeln('License Number: ');
readln(License);
case License of
'AAA123','aaa123' : ElementNum := 1;
'AAA124','aaa124' : ElementNum := 2;
'AAA125','aaa125' : ElementNum := 3;
end; {case}

writeln(CustName[ElementNum], ' ', Comment[ElementNum]);


readln;
end.

Enigmaelectronica
Robotics - Computer Control

Robotics 8452 - Computer Control


Name: .............................................

Unit Test

Write your answers in the spaces provided.

1. Write the Pascal code you would use to send "231" to the printer port at address "888".
____________________________________________________________
(2 marks)
Use the following table to answer questions ...

Binary Decimal Value

0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 0101 5
0000 0110 6
0000 0111 7
0000 1000 8

2. What Decimal value would you send to the printer port to turn on the first two lines?
__________________ (1 mark)

3. What Decimal value would you send to the printer port to turn on the first and third
lines?
__________________ (1 mark)

4. Data is sent to the printer port on 'IBM-compatibles' in:

Answer
a) parallel bytes
b) serial bytes
(1 mark)
5. A "transistor" is best described as:

Answer
a) an electronic 'tap'
b) a memory device
c) a radio device
d) a data line device (1 mark)

6. When was the first "robot" built?

____________________________________________________________________
(2 marks)

Enigmaelectronica
Robotics - Computer Control

7. What was the first Robot? (What did it look like? What could it do?)

____________________________________________________________________

____________________________________________________________________
(3 marks)

8. What are two advantages of using Robots in the workplace?

a)___________________________________________________________________

b)___________________________________________________________________
(2 marks)

9. What are two problems/disadvantages of using Robots?

a)___________________________________________________________________

b)___________________________________________________________________
(2 marks)

10. Give two examples of how/where Robots are not used at present, but may be used in the future.

a)___________________________________________________________________

b)___________________________________________________________________
(2 marks)

11. Write a sample of Logo code to show its structure.

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________
(3 marks)

End Of Test TOTAL: 20 marks

Enigmaelectronica
Robotics - Computer Control

Exploradores de la Ciencia Kit #1


Segunda Edición
(Usando los Computadores en la Sala de Clases)

©1997 J P Fuller

Enigmaelectronica
Robotics - Computer Control

Science Experimenters Kit#1 – Segunda Edición

Publicado en 1997

Primera Edición 1990

J. P. Fuller
48 Portmarnock Circle
MANDURAH
Western Australia 6210
ph (08) 9535 6472
http://www.southwest.com.au
email: jfuller@southwest.com.au

© 1997 J P Fuller

ISBN
0 646 16384 1

Traducción: Rafael Torres Muñoz M.Sc. UCLA


Programa de Transferencia Tecnológica
Facultad de Ingeniería
Universidad Andrés Bello
Santiago - Chile

Este material es parte del Kit de Robótica y está cubierto por las mismas
condiciones de la licencia. Su duplicación está autorizada para sitios con licencia.

Enigmaelectronica
Robotics - Computer Control

Contents

Prólogo/Agradecimientos 4

Introducción 5

Entradas al computador 8

Características del puerto de juegos 10


Leyendo el puerto de juegos 11
El operador AND 12

Software 18

Salidas del computador 20

Leyendo voltajes 21

Usando el computador en la clase de Ciencias

Circuitos típicos 25

Luz 26
Sonido 30
Temperatura
31
Magnetismo 32

Experimentos de Movimiento 34

Apéndice A ¿Dónde obtener más información? 37

Apéndice B Ideas para construir 39

Apéndice C Unas pocas ideas más 41

Apéndice D ¿El próximo paso? ¿Un grupo de Usuarios? 42

Apéndice E Notas sobre el software incluido en este Kit 43

Comentarios Finales 47

Enigmaelectronica
Robotics - Computer Control

Prólogo
El material contenido en este folleto se refiere a los computadores al uso de
computadores "IBM-compatible" equipados con una tarjeta de juegos estándar .
Si su máquina no tiene una tarjeta de juegos, se puede instalar una por un precio
bastante bajo. Algunos sistemas vienen con un puerto de juegos, asegúrese con su
proveedor que el puerto esté habilitado, ya que algunos proveedores los
inhabilitan para evitar conflictos con otras tarjetas que el usuario pueda agregar.

Hay una cantidad de fabricantes que ofrecen tarjetas de “control” para los
“compatibles”, pero su costo y complejidad suelen limitar su uso en las escuelas.
El uso del Puerto de Juegos puede no ser tan preciso como otras técnicas, pero los
estudiantes lo entienden fácilmente y ¡es mucho más barato!

Las técnicas introducidas en este documento permitirán a las escuelas obtener un


avanzado equipamiento de medición de variables del “mundo real” por menos de
$10.000 por equipo.

Espero que el material presentado sea suficientemente práctico para ser de uso
directo para los profesores. Si ellos son motivados a realizar algunos de los
circuitos presentados, mis esfuerzos no habrán sido en vano.

Agradecimientos:

Los componentes y otros materiales para la realización de este proyecto fueron


adquiridos a través de un grant del “Programa de Educación Menor” de 1990 del
Armadale Education District. Agradezco al comité su continuo apoyo a esta
línea de investigación.

Agradezco a Mike Leishman de Balga SHS por su apoyo en programación.


Muchos de los consejos y “trucos” de programación en Pascal de Mike están
incorporados en este trabajo.

Gracias a Reg Ion por su continuo apoyo técnico. Reg Ion es un técnico jubilado
de Mandurah.

Finalmente, agradezco a los muchos contribuyentes de Electronics Australia


que sugirieron el diseño de una cantidad de interfaces utilizadas en este trabajo.

Enigmaelectronica
Robotics - Computer Control

Introducción

La Interfaz del Computador con el Mundo Real:


General:

Una “interfaz” es un dispositivo que permite conectar el computador con el


mundo exterior. En la mayoría de los casos, la interfaz debe “acondicionar” la
señal de uno para hacerla aceptable para el otro.

Se podría, por ejemplo, usar un computador para encender y apagar una


ampolleta directamente, pero aún la corriente utilizada por una ampolleta
pequeña podría dañar la fuente de poder del computador. En el caso mencionado,
la interfaz sería típicamente un circuito simple para manejar un “relé”, el que a su
vez, controlaría el paso de las corrientes demandadas por la ampolleta.

Alternativamente, se podría desear que el computador “leyera” la intensidad de


luz o los cambios de temperatura. La “interfaz” sería, en este caso, la circuitería
necesaria para “bloquear” la corriente que entra al computador, a la vez que
permite la deseada detección de los cambios.

En ambos casos la naturaleza de la interfaz es diferente, pero se aplica el mismo


principio de asegurar la compatibilidad.

Este folleto detalla un número de interfaces, que pueden ser construidas por
estudiantes hábiles y ser usadas con un “compatible” para realizar mediciones y
controlar procesos del “mundo real”. Este, enfáticamente, NO es un libro de
teoría. El propósito es integrar la información necesaria para construir los
dispositivos arriba mencionados, sin demandar un profundo conocimiento técnico
de los usuarios (¡Nosotros!).

Enigmaelectronica
Robotics - Computer Control

Introducción

Pre-requisitos de Diseño:
Hay una cantidad de compañías que se especializan en tarjetas de “control” par
los “IBM compatibles”. La mayor parte de las revistas de computación y
electrónica proveen los nombres de dichas compañías. Si lo que se desea es una
unidad de “demostración”, una tarjeta adquirida en el comercio es una buena
alternativa.

Mi propósito en este trabajo es proveer diseños simples y de bajo costo para


hacer económico el uso de un gran número de máquinas en la tarea de
“conectarse con el mundo real”.

Desde el comienzo, se decidió que cualquier circuito presentado debía ser:

1. De bajo costo

2. De construcción simple, utilizando los recursos existentes en las


escuelas.

3. Construido con componentes disponibles en el comercio.

4. “Externos” a las máquinas, en lugar de tarjetas instalables.

5. De diseño suficientemente simple para ser entendidos por


personas sin formación en electrónica (con un poco de ayuda, tal
vez). Con la intención de demistificar las técnicas usadas.

Como regla general, en este trabajo sólo se incluyen circuitos que han sido, en
realidad, construidos utilizando los recursos disponibles en la mayoría de los
colegios de educación secundaria, con componentes adquiridos en la plaza. El
software fue desarrollado utilizando Turbo Pascal Versión 5.0. Con la
excepción de algunos procedimientos que usan el "Graphix Toolbox" y otros
procedimientos y una o dos rutinas que han sido llevadas a Assembler -para
proveer una velocidad aceptable- todo el software presentado es “software de
texto” (software “normal”). En la mayoría de los casos se puede utilizar BASIC,
pero a expensas de la velocidad.

Espero que el material presentado sea fácil de entender y de uso directo en la sala
de clases.

Enigmaelectronica
Robotics - Computer Control

Técnicas de Interfaz
Hay varias maneras de “leer” datos directamente del mundo exterior utilizando
un computador. En la mayoría de los casos las técnicas se centran en el uso de
tarjetas especiales que se incorporan al computador en las “ranuras de
expansión”. Esta manera de hacer las cosas no sólo puede ser de alto costo, sino
también profundiza los sentimientos de los estudiantes en torno al “misterio” que
rodea el funcionamiento de los computadores en general. Uno de los propósitos
del uso de los computadores en la sala de clases debe –por supuesto- ser la
profundización del entendimiento del funcionamiento de estas máquinas y no el
espesamiento del velo que normalmente los rodea.

Para ayudar al proceso de demistificación, toda la circuitería debe estar


“expuesta” para que el usuario la vea. Las “cajas de proyectos” metálicas u
opacas pueden hacer el producto un poco más elegante, pero difícilmente
ayudarán al estudiante (o adulto) a apreciar la simplicidad de los que se está
haciendo. Es preferible usar una caja transparente de “plexiglass” (lucita) o,
simplemente, no usar caja alguna.

Con la simplicidad en mente, el problema es producir una interfaz adecuada que


sea barata y suficientemente precisa para una adquisición de datos confiable.

La suerte ha dispuesto que muchos “clonadores” hayan seguido la iniciativa de


Apple para incluir un “puerto de Juegos” en sus PCs. Este puerto provee
conexiones para dos “joysticks”, cada una con dos interruptores (los botones) y
dos potenciómetros (conectados a la barra de control). Esta configuración es ideal
para la experimentación. Las líneas con interruptores pueden ser utilizadas para
detectar eventos Sí/No (o Encendido/Apagado) y las líneas “resistivas”
(conectadas a los potenciómetros) permiten conversión Análogo a Digital.

El puerto es robusto y fácilmente accesible vía un conector de 15 pins montado


en la parte posterior de la máquina. Ver Fig. 1 para los detalles del Puerto de
Juegos.

NOTE: Si su máquina (o futura máquina) no tiene Puerto de Juegos, debe


considerar la adquisición de una. El Puerto de Juegos viene integrado en la tarjeta
de sonido y el valor de una tarjeta simple de sonido es inferior a $5.000.

Entradas al Computador
Enigmaelectronica
Robotics - Computer Control

Ingreso de Señales:

El puerto de Juegos es el medio más conveniente para leer datos con un


“compatible”. Cuatro líneas de interruptores y cuatro líneas “Análogo a Digital”
son accesibles a través de un conector de 15 pins en la parte posterior de la
máquina.

EL PUERTO DE JUEGOS

El número de los pins del conector


Esquema del Puerto de Juegos visto desde el lado de las soldaduras
(en todo caso los números están
indicados en el exterior).

Enigmaelectronica
Robotics - Computer Control
ESPECIFICACIÓN DE LOS PINS DEL PUERTO DE JUEGOS
(CONECTOR DEL JOYSTICK)

PIN NUMERO FUNCION

1 +5 Volts
2 D4 Botón 4 (Interruptor)
3 D0 Posición 0 (A a D)
4 Tierra
5 Tierra
6 D1 Posición 1 (A a D)
7 D5 Botón 5 (Interruptor)
8 +5 Volts
9 +5 Volts
10 D6 Botón 6 (Interruptor)
11 D2 Posición 2 (A a D)
12 Tierra
13 D3 Posición 3 (A a D)
14 D7 Botón 7 (Interruptor)
15 +5 Volts

La “Dirección” ("ADDRESS") del Puerto de Juegos es 512 decimal (200 HEX )


Las líneas “A a D” son las líneas para conversión Análoga a Digital

Tierra

Entradas Analógicas Entradas de Interruptor


Adaptador para el Puerto de Juegos

Esquema para el circuito Líneas de Datos


Impreso (PCB)

Enigmaelectronica
Robotics - Computer Control

Características del Puerto de Juegos:


Este trabajo intenta mantener las cosas tan simples como sea posible y demanda
sólo un mínimo conocimiento de electrónica de parte del lector, pero habrá
ocasiones en que un poco de información “técnica” será útil. Si encuentra que
esta sección está más allá de su comprensión, no se preocupe, no es esencial que
entienda todo.

En el Puerto de Juegos hay dos circuitos integrados que llevan a cabo todas las
labores de interfaz que necesitaremos.

Líneas de Interruptores

Las cuatro líneas de interruptores ocupan cuatro entradas (de un total de ocho) de
un Circuito Integrado (IC) 74LS244 el que actúa como “estación intermedia”
protegiendo la circuitería interna del computador y “cuadrando” (o
acondicionando) las señales de entrada para asegurar una detección confiable por
parte de la CPU (Unidad Central de Procesos del computador). Cada una de estas
líneas es mantenida “alta” (conectada a 5 Volts) por una resistencia interna para
evitar un falso gatillado. El sensor utilizado debe, por tanto, llevar la línea a
“tierra” (“estado bajo”, alrededor de cero volts) para producir un cambio de
estado de la línea.

Conversión Análogo - Digital

Las “líneas analógicas” se conectan a un NE558, un “temporizador (o circuito de


tiempo) cuádruple (Quad Timer). Algunos de ustedes pueden estar
familiarizados con su “primo” más pequeño, el NE555. El NE558 contiene el
equivalente a cuatro “módulos” NE555.

Cada módulo “555” es usado en una configuración monoestable (un solo estado
estable: “alto” o “bajo”). Cuando llega un pulso al pin de “gatillado”, la salida va
a “alto” durante un tiempo determinado por un circuito resistencia/condensador.
En el caso del Puerto de Juegos, el condensador es interno y la resistencia
corresponde a una de las cuatro resistencias variables del Joystick o la resistencia
que se conecte externamente.

El pulso de gatillado es enviado al puerto por la CPU, cuando emite un comando


“escribir” a la dirección del puerto, es decir: Port[512] = <algún valor>.

Cada línea de salida del NE558 entra en las cuatro entradas disponibles del
74LS244 mencionado anteriormente, para propósitos de almacenamiento y
acondicionamiento de la señal..

Enigmaelectronica
Robotics - Computer Control
El software entonces ejecuta una rutina de tiempo para medir la duración del
estado “alto” de cada línea de salida del NE558 y relaciona este número con el
valor de la resistencia externa conectada al puerto.

Leyendo el Puerto de Juegos

El Puerto de juegos puede ser “leído” usando comandos en BASIC, tales como:

100 V = INP(512) O: V = INP($200) (HEX)


200 PRINT V

In Pascal, the syntax is :

V := PORT[512]; OR: V := PORT[$200]; (HEX)


WRITELN(V);

In ambos casos, el valor retornado para “V” refleja el estado “Alto” o “Bajo” para
cada pin del Puerto de juegos. Se lee como un número binario de 8 bits, en que
“Alto” es un “1” y “Bajo” es un “0”. Cada bit corresponde al estado de cada uno
de los pins D0 a D7 del Puerto de Juegos.

Ej. Si V = 128, (01000000) La Línea de Datos D7 está en “alto” HIGH


(es decir, el interruptor está abierto) y todas las otras líneas están “Bajo”.

If V = 45, (000101101) Las Líneas de Datos D5, D3, D2 y


D0 están “Alto”
( 45 = 32 + 8 + 4 + 1 )

El software debe interpretar el valor retornado como “V” para obtener el valor
real “Alto” o “bajo” de cada línea.

NOTA: Convención de Nomenclatura – En las páginas siguientes el término


“Valor de Estado Alto” significa el valor equivalente decimal de cada “lugar” en
un Byte (grupo funcional de 8 bits). Por ejemplo: El “Valor de Estado Alto” del
bit 0 (el bit menos significativo) es 1, el del segundo bit (bit 1) es 2, el del tercer
bit (bit 2) es 4, el del cuarto bit (bit 3) es 8 y así sucesivamente, como se muestra
abajo.

eg Lugar 8 Lugar 7 Lugar 6 Lugar 5 Lugar 4 Lugar 3 Lugar 2 Lugar 1

Enigmaelectronica
Robotics - Computer Control

128 64 32 16 8 4 2 1

"Valores de Estado Alto" (HSV)

Decodificación de cada Pin

El estado de las líneas de datos con interruptores aparece en los cuatro bits más
significativos del Byte retornado por “V = Port[512]” es decir, los HSV 128, 64
32 y 16. Los cuatro bits menos significativos reportan el estado de las líneas “A a
D” (Análogo a Digital).

Para decodificar el estado de una línea específica se utiliza una técnica llamada
“ANDing”.

ANDing:

Quienes estén familiarizados con esta técnica deberán perdonarme, pero


personalmente, encontré que ésta es una técnica difícil de entender, de manera
que tal vez alguien apreciará un recordatorio.

El operador "AND" está disponible en BASIC y Pascal. En cada uno, el uso es


ligeramente distinto, de modo que se puede escoger aquel que sea más cómodo
para cada uno.

El resultado de ANDing dos números binarios, en su forma más simple, se


muestra abajo.

11001100 AND 00100100 is: 00000100

(es decir: si los bits correspondientes son ambos 1, entonces el resultado es 1.

Es decir, el operador "AND" retorna un valor “Verdadero” ( TRUE) si ambos


bits son TRUE (es decir: "1").

Un poco más:

11000100 11101111
AND 01011011 AND 11110001
es: 01000000 es: 11100001

Recuerde que: Un “1” significa 'HIGH' o “TRUE” o +5 volts


DC (continuos).

Enigmaelectronica
Robotics - Computer Control

Cuando se usan valores decimnales (o hexadecimales, “HEX”), el resultado no es


tan obvio, pero si se realiza la conversión a binario, es tan simple como se ha
mostrado arriba.

En BASIC, el operador AND devuelve un valor lógico TRUE o FALSE, si el


resultado del ANDing es 1 o 0 respectivamente.

Por ejemplo:

"134 AND 4" ......es: TRUE


(134 = 128 + 4 + 2)
(10000110 AND 00000100)

"134 AND 8" ......is: FALSE


(10000110 AND 00001000)

Es probable que se vislumbre ya la técnica utilizada para interpretar los datos


obtenidos de un comando como “V = Port[512] en forma del estado de cada línea
de datos.

En esencia, el procedimiento comprende:

- Leer el valor de entrada

- Efectuar un ANDing de este valor con el HSV de la línea en


cuestión.

- Si el ANDing es TRUE entonces la línea está Alta (High) o ON o


1 o +5 Volts.

Ej. Si quiero saber si D6 está HIGH:

If (input AND 64) is TRUE then


D6 is HIGH
else
D6 is LOW

La primera línea compara la señal de entrada y hace un ANDing con el número


64, que corresponde a 01000000, es decir si la señal que entra por D6 está HIGH
entonces el ANDing entregará un resultado TRUE. Si D6 está en LOW, el
ANDing entregará un resultado FALSE.

Algunos ejemplos de ANDing

Enigmaelectronica
Robotics - Computer Control

(Líneas de Datos)
Operación D5 D4 D3 D2 D1 D0

3 AND 2 = TRUE (3 = 2 + 1)

4 AND 2 = FALSE (4 = 4 + 0 + 0)

24 AND 8 = TRUE (24 = 16 + 8 + 0 + 0 + 0)

33 AND 1 = TRUE (33 = 32 + 0 + 0 + 0 + 0 + 1)

Dado que las líneas con interruptores del Puerto de Juegos corresponden a los
cuatro bits más significativos, es necesario hacer el ANDing del valor entregado
por "InValue:= Port[512]" con 128, 64, 32 and 16.

Inversión:
Aún nos queda lidiar con una pequeña complicación. Como señaláramos
anteriormente, las líneas con interruptores son mantenidas en estado HIGH por
resistencias conectadas a +5 Volts (pull up resistors) (ver fig. 1). Cuando un
interruptor conectado entre cada línea y tierra se cierra (es decir, se activa) la
línea de datos correspondiente cambia a un estado LOW. El efecto de esta
situación es que cuando los valores leídos en las líneas del Puerto de Juegos es
opuesto al esperado, esto es, uno espera que cuando el interruptor se active (se
cierre) la línea vaya a HIGH, sin embargo va a LOW. Si por ejemplo, la línea D6
tiene su interruptor cerrado las líneas mostrarán el número binario 10111111 (191
decimal) en lugar del 01000000 (64 decimal) esperado. Sin embargo la solución
es simple. Basta con sustraer el número proporcionado por las líneas de 255,
antes de hacer el ANDing. Esta operación invertirá los bits y permitirá realizar el
procedimiento sin problemas.

(Es posible realizar el ANDing con los números no invertidos, pero será
necesario pensar con lógica invertida y operar con FALSEs en lugar de TRUEs.
Personalmente, prefiero la lógica directa.

Enigmaelectronica
Robotics - Computer Control
El código Pascal necesario para invertir es:

InValue := 255 - Port[512];


if (InValue AND 16) = 16 then
WRITELN('The switch on data line "D4" is CLOSED.')
else
WRITELN('The switch on data line "D4" is OPEN.');

En BASIC, la condición TRUE/FALSE se utiliza como:

140 D4$ = OPEN


150 V = 255 - INP(512)
200 B = (V AND 16): IF B THEN D4$ = CLOSED
300 PRINT "The switch on data line D4 is ";D4$

En cada uno de los ejemplos anteriores, se utiliza la técnica de ANDing para


decodificar el estado de cada línea, comparando el valor entregado por el Puerto
de Juegos (Address (Dirección): 512) con el HSV de la línea examinada. En el
caso ilustrado, se está probando la línea D4.

Si el interruptor conectado a D4 está cerrado, “V” incluirá el valor 16 (es decir un


“1” en la quinta posición del número binario) ¡después que la inversión ha sido
ejecutada!). El valor de “V” puede ser cualquiera entre 16 y 255, siempre y
cuando incluya un “1” en la quinta posición del byte (xxx1xxxx, donde x
significa “1” o “0”).

Las otras líneas con interruptores son decodificadas “ANDing” “V” con 32, 64 y
128 respectivamente.

NOTE las maneras diferentes en que BASIC y Pascal se refieren al resultado del
ANDing.

Con Pascal el resultado de la operación AND es comparado con el valor entero


esperado usando “=”. (NO el operador “:=”)

La sintaxis BASIC ".... :IF B then D4........" en la línea 200 significa: si B es


TRUE entonces ...........<acción>.......... En otras palabras, si la comparación
entre el valor invertido de entrada y (AND) el valor binario 00010000 es
00010000 entonces ....<acción>.....)

Entradas: (Usando el Puerto de Juegos)

Enigmaelectronica
Robotics - Computer Control
Las líneas de entrada con interruptores son relativamente fáciles de decodificar.
La sección anterior provee información acerca de las técnicas básicas
involucradas.

Las líneas Análogo a Digital (A a D, o A/D) son, sin embargo, un poco más
complejas.

El Puerto de Juegos tiene incluido un conversor A/D que “prueba” las


resistencias conectadas a cada una de las líneas de datos “inferiores”
(correspondientes a los bits menos significativos de byte de entrada, es decir: D0,
D1, D2 y D3) y retorna (entrega) un número entero proporcional a la resistencia.
Los comandos son:

Pascal - InValue := Port[512];

BASIC - InValue = INP(512)

Se podría, por ejemplo, obtener un valor de: 10100110 (166 decimal) para
"InValue". Esto nos diría:

1 0 1 0 0 1 1 0

0N OFF ON OFF OFF ON ON OFF

Líneas con interruptor Líneas analógicas

Antes de “leer” las líneas A/D del Puerto de Juegos, se dbe enviar una señal de
control al conversor A/D (ver fig. 1) para iniciar el proceso de decodificación. Se
puede escribir cualquier valor para iniciar este procedimiento. Es el comando
“WRITE” la que inicializa el puerto y no el valor escrito.

Una vez que esta señal es recibida, cada uno de los cuatro bits menos
significativos va a HIGH durante un tiempo determinado por el valor de la
resistencia presente en cada línea. (Entre 0 100 Kohm.)

La señal de control mencionada es:

Pascal - Port[512] := <cualquier valor>

BASIC - OUT 512,<cualquier valor>

Entonces, la secuencia para leer las líneas A/D es:

Enigmaelectronica
Robotics - Computer Control
- Envío de la señal de control

- Lectura del Puerto

- Iniciar un ciclo (LOOP) de conteo hasta que la señal caiga a LOW

- Interpretar el conteo como un valor de la resistencia

Una típica rutina Pascal será del tipo:

Count := 0; { Inicializa el LOOP de conteo.}


Port[512] := 1; { Inicializa el proceso de conversión A/D. Cualquier valor sirve}
repeat
PortByte := Port[512]; { Lee el Puerto de Juegos}
count := count + 1;
until (PortByte AND 4 = 0) OR (count > 10000);
{ “Mira” si la línea D4 está aún HIGH y detiene el LOOP antes
que MaxInt sea alcanzado }
WRITELN(count);

Una vez obtenido un “conteo” (un número) para la línea de datos, el software
debe relacionar este dato “crudo” con el valor de la resistencia.

NOTA: El ejemplo anterior examina sólo UNA de las cuatro líneas A/D. Si se
desea una conversión simultánea de todas las líneas, se debe hacer ANDing de
“PortByte” con 1, 2, 4 y 8 mientras se cuenta durante el estado HIGH de cada
una.

Enigmaelectronica
Robotics - Computer Control

SOFTWARE

Software de Prueba:
En este Kit se incluye un cierto número de programas escritos en Pascal que
ilustran varias técnicas de decodificación (vea en la página 25 una lista de de los
programas incluidos en este Kit)

Si se intenta la conversión A/D mostrada anteriormente, lo más probable es que


los resultados sean desalentadores por su pobre resolución. Esto se debe a la
lentitud del ciclo de conteo. ¡Aún Pascal puede ser penosamente lento! y BASIC
no puede ser siquiera considerado para una seria adquisición de datos.

Mike Leishman de Balga SHS ha escrito una rutina en Assembler para resolver
este problema a los usuarios de Pascal. Para usarla, el archivo “ADA.OBJ” debe
estar en la disquetera “A”.

Esta rutina fue escrita como una “función”, que puede ser llamada en cualquier
momento desde un programa. La función está definida como “ADADCODE” y
es declarada en la forma mostrada a continuación.

FUNCTION ADADCODE(MASK:INTEGER) :INTEGER;EXTERNAL;

{Escrita por Mike Leishman}

{ Esta función es “externa” al programa y puede ser llamada en la forma:

VariableName := ADADCODE(Num)

(donde Num = 1,2,4,or 8) }

Un uso típico será:

Line1Value := ADADCODE(1);

El valor entregado por “Line1Value” será un entero entre 0 y 5000, determinado


por el valor del contador operando durante el tiempo en que la línea D0
permanece HIGH. Este intervalo de tiempo es proporcional al valor de la
resistencia conectada entre el Pin 3 y Tierra.

(Sería apropiado acreditar la contribución de Mike en programas que hagan uso


de esta función)

ULTIMA HORA: A Pascal 5.5 no le gusta la forma del archivo OBJ. Compile

Enigmaelectronica
Robotics - Computer Control
su programa terminado en la versión 5.0

Probando el Software:
Una vez que ha construido su interfaz para el Puerto de Juegos (ver página 9), es
tiempo de probarla.

La aplicación más simple del conversor A/D del Puerto de Juegos es la conexión
de un potenciómetro (resistencia variable) a una de las líneas, como se muestra
abajo:

PROBANDO EL PUERTO DE JUEGOS

LINEA D3
PIN 13
POTENCIOMETRO

(AP ROX. 100 KOHM) AL PUERTO DE JUEGOS

TIERRA
PIN 4

La resistencia entre el pin 13 y tierra puede ser “leída” usando la función


“ADADCODE” escrita por Mike Leishman o una rutina Pascal como la de la
página 17. Si es importante obtener el valor exacto de las resistencias, en lugar de
sus valores relativos, se deberá “calibrar” las lecturas obtenidas, comparándolas
con aquellas obtenidas con un buen Ohmetro.

¡Cuidado! .... Desconecte el computador antes de usar el Ohmetro, o


desconecte el potenciómetro del circuito. Los Ohmetros tienen una batería
interna que podría causar problemas.

Si desea experimentar con software listo para usar, se ppueden obtener copias
como parte del la licencia de los manuales de Robótica o podría obtener el
software desde los sitios con licencia para este manual. Vea el Apéndice A para
obtener información más detallada.

Enigmaelectronica
Robotics - Computer Control

Salidas:
Los principios utilizados para controlar dispositivos externos, utilizando conector
para impresoras “centronics” fueron expuestos en el folleto “ROBOTICA”. Si no
ha leído y digerido las secciones relevantes en ese trabajo, es aconsejable hacerlo
antes de continuar. (Vea el Apéndice A para obtener una copia).

Salidas: (Utilizando la interfaz de salida a la impresora)

El control de salidas se obtiene enviando los códigos apropiados al puerto de la


impresora. Si, por ejemplo, deseara “activar” las líneas D0, D1, D2 y D3, el
comando sería:

Pascal - Port[888] := 15;

BASIC - OUT 888, 15

(15 = 1 + 2 + 4 + 8 = 00001111)

La interfaz utilizada para manejar dispositivos tales como motores y luces está
basada en el circuito que se muestra a continuación:

Relé
RL 1
De fuente de
SALIDA
Externa

TIERRA Común (NEGATIVO)

El puerto de la impresora puede manejar hasta ocho interfaces como ésta.

Nota: NO se debe utilizar la fuente de poder del computador para alimentar


estos dispositivos. Se debe utilizar una fuente de poder externa.

Enigmaelectronica
Robotics - Computer Control

VOLTAJE

Midiendo voltaje:
Como regla general, jamás debe conectar una fuente de voltaje al computador.

Aunque un “cortocircuito”, en el equipamiento de medición, podría causar


algunos problemas, aplicar voltaje a los puertos del computador podría provocar
daños internos generalizados.

Existen numerosas técnicas para lograr que un computador mida voltaje. La


mayoría de ellas involucra el uso de un “Oscilador Controlado por Voltaje”
(VCO) y el software adecuado para interpretar los cambios de frecuencia como
cambios de voltaje.

De acuerdo a nuestros principios de SIMPLICIDAD y ECONOMIA, decidimos


no usar las técnicas que hacen uso de un VCO, en las primeras etapas de
experimentación. Tanto el hardware como el software utilizados para este tipo de
conversión A/D, tienden a ser demasiado complejos para nuestros propósitos. (El
Kit # 2 tratará el tema de los VCO´s.)

Usando un Optoacoplador
A estas alturas, se debe tener una cierta familiaridad con la opción de medir
resistencias con el Puerto de Juegos y –probablemente- ha estudiado
cuidadosamente el software utilizado para decodificar. Ya que el “foto-transistor”
funcionó tan bien para medir niveles de luz, parece razonable utilizar una suerte
de optoacoplador para convertir voltaje en resistencia.

Enigmaelectronica
Robotics - Computer Control

Al Puerto de
V de entrada Juegos

Voltaje ingresado
Nota: La función del diodo y
el condensador es rectifi car
los voltajes alternos y proveer
una medida de su máximo
valor (Peak Voltage)

Este sistema trabaja razonablemente bien, sin embargo, existen factores críticos
que limitan o alteran su funcionalidad. La intensidad que llega al detector, por
ejemplo, será afectada por la distancia al emisor y la luz ambiental.

Todos estos problemas se evitan con el uso de un circuito “Optoacoplador”


integrado. Esta unidad se presenta como un pequeño dispositivo que encierra
herméticamente en su interior tanto el emisor como el receptor. Un ejemplo típico
es el chip de seis patas DIL (Dual In Line) 4N28, que cuesta alrededor de $1.000.
El voltaje de ruptura entre el emisor y el detector está en la región de los miles de
volts. Así, no hay que preocuparse de voltajes “filtrándose” hacia el computador.

Enigmaelectronica
Robotics - Computer Control

Usando el 4N28:

Si fluye mucha corriente por el LED en el interior del 4N28 se destruirá. Como
regla general, si va a usar voltajes que excedan 1,8 volts, use una resistencia
limitadora de corriente.

0 V (Tierra)

Vs − Vf
R=
If
If
Vf = 1,8 Volts
Vf
If = 20 mA (0,02 A)
+Vs

Usando LEDs con voltaje mayores que 1,8 Volts

Si no está seguro que su fuente de voltaje es adecuada para conectar al 4N28,


inténtelo primero con un LED ordinario ($50). Si el LED sobrevive, también lo
hará el 4N28.

La tabla siguiente servirá de guía.

Voltaje Resistencia
(Volts) (Ohms)
6 220
9 390
12 560
24 1200

Enigmaelectronica
Robotics - Computer Control

VOLTAJE

Midiendo Voltajes con el 4N28:


Si se ha usado un MEL 12, o un fototransistor FPT 100 conectado a una de las
líneas A/D, se habrá observado un dramático cambio de resistencia concomitante
con el cambio en la intensidad de la luz. Este principio se aplica al uso del 4N28
como detector de voltaje. El voltaje bajo prueba modifica la intensidad de la luz
emitida por el LED y éste, a su vez, modifica la “resistencia” del fototransistor
interno. El computador lee el valor de esta “resistencia” y la relaciona con el
voltaje original que maneja la intensidad de la luz del LED. Por supuesto, esto
significa que los voltajes a probar no pueden ser menores que Vf (1,8 Volts
aprox.)

Para usar esta técnica, se debe determinar primero el máximo voltaje que se
aplicará al 4N28 y seleccionar un valor para la resistencia limitadora de corriente
en el LED (ver pág. 23). El ejemplo dado en la página 22 usa una resistencia de
10 Kohm (10.000 Ohm) y ha probado ser útil con voltajes de entrada de hasta 10
Volts. Se puede encontrar el valor adecuado para una determinada aplicación
utilizando cuidadosamente el método de prueba y error. ¡Sólo asegúrese que la
resistencia limitadora no cae bajo los valores dados en la tabla de la página 23!

El circuito dado a continuación puede ser utilizado probar y calibrar las lecturas
obtenidas con el 4N28. Comience con unos pocos volts y gradualmente aumente
el potencial aplicado a través de los pins 1 y 2.

Asegúrese que la resistencia limitadora es suficientemente grande para evitar


daño al LED interno del 4N28.

Fuente de Poder de Voltaje Variable

Al Puerto de Juegos

Resistencia limitadora

Enigmaelectronica
Robotics - Computer Control

Circuitos

Usando los Computadores en la Sala de Clases


Ahora que ha construido y probado un cierto número de interfaces para los
“compatibles”, es tiempo de ver maneras de usar estas técnicas para adquisición
de datos y control.

Software:
Con este Kit se entregan algunos “paquetes” de software. Siéntanse en libertad de
modificarlos para sus propios requerimientos. El más simple de ellos detecta el
estado ON/OFF (Activo/Inactivo) de una de las líneas con interruptores en el
Puerto de Juegos. rovided with this 'Kit'. Feel free to modify them for your own
requirements. La decodificación de las “líneas resistivas” requiere rutinas mucho
más rápidas, como ADADCODE de Mike Leishman, que usa una función escrita
en Assembler requerida por el programa principal. Mike se siente feliz de que
usemos su rutina, pero sería apropiado reconocer sus esfuerzos cuando sea
utilizada.

Una vez que se dominen las técnicas de lectura de datos vía Puerto de Juegos, el
siguiente paso es almacenar y presentar la información para usarla en la sala de
clases. Este libro es acompañado por un diskette con programas de muestra que
enseñan técnicas para guardar datos en “estructuras de datos” (arrays), desplegar
los datos directamente en pantalla, en forma gráfica o como obtener “copias
duras” impresas.

Enigmaelectronica
Robotics - Computer Control

Circuitos

Sistemas Típicos de Adquisición de Datos:


Intensidad de Luz

Conecte un fototransistor FPT100 entre tierra y una de las líneas A/D del Puerto
de Juegos y use ADADCODE para leer los cambios de resistencia concomitantes
con los cambios de luz.

Si desea lecturas absolutas, deberá calibrar el sistema utilizando un fotómetro


comercial, pero -para la mayoría de las aplicaciones- las lecturas relativas son
suficientes.

Aunque la mayoría de los fototransistores sólo tienen dos “patas”, emisor y


colector, algunos tienen tres pero –para la mayoría de las aplicaciones- sólo se
usan dos de ellas, el emisor y el colector. (A veces se usa la base para
“desensibilizar” el circuito reduciendo su ganancia).

Asegúrese de conectar el FPT100 como se muestra abajo u obtendrá extraños


valores con el ADADCODE.

Línea 3 (Pin 11)

Al Puerto de Juegos

Vista Inferior

Tierra (Pin 1)

Nota: Se puede conectar una resi stencia entre base y emisor para
reducir la “ganancia” (sensibilidad)

NOTA: Se puede utilizar la “Resistencia Dependiente de Luz” (LDR) ORP-12, en


lugar del fototransistor. (Una LDR tiene una respuesta mucho más lenta a los
cambios de luz y puede no ser útil para detectar cambios rápidos)

Circuitos

¿Análisis Espectral? -
Enigmaelectronica
Robotics - Computer Control

El uso imaginativo de filtros de luz puede proveer interesantes discusiones acerca


de análisis espectral y el uso de sistemas automáticos, como los utilizados en
Química y Astronomía.

Como ejemplo típico, disponga una luz ultravioleta adecuada y dos


fototransistores, uno cubierto con un filtro ultravioleta (como el Kodak KD16-
150). Ahora puede usar la diferencia de lecturas entre los dos fototransistores
para determinar la capacidad de bloqueo U/V del material interpuesto entre la
fuente de luz y uno de los detectores. Este es un experimento particularmente útil
si se usa para determinar el factor de bloqueo U/V de anteojos para el sol
disponibles en el comercio, que los estudiantes pueden llevar a la clase. También
puede ser utilizado para determinar el factor de bloqueo de diversas lociones
bloqueadoras de U/V untadas sobre un trozo de vidrio (cuyo factor de bloqueo ha
sido determinado previamente).

PRUEBA DE BLOQUEO U/V EN DISTINTOS MATERIALES

Lámpara U/V

Al Puerto de Juegos

Al Puerto de Juegos

Filtro U/V

Material de prueba

Una vez más, este experimento sólo proveerá lecturas relativas, pero esto será tan
significativo para los estudiantes como el uso de unidades técnicas absolutas.

Nota de última hora:Pueden surgir algunas dificultades leyendo U/V, si las


experimenta, puede cambiar los filtros y la fuente a infra-rojo.

Utilizando luz blanca y filtros de colores, se puede obtener el espectro de

Enigmaelectronica
Robotics - Computer Control
respuesta de los sensores y con ello, hacerse de un simple “Analizador de
Espectros”, donde la resistencia del fototransistor dependerá del tipo de filtro y la
clase de fuente luz utilizados.

(Recuerde que la lógica de los filtros de colores están diseñados para dejar pasar
la luz de ese color y no para bloquearla.)

Análisis
Espectral
Luz Roja

Filtro Filtro Filtro


Rojo Azul Verde

Baja Resistencia Alta Resi stencia Alta Resi stencia

Con este dispositivo se puede complementar la medición del bloqueo U/V de


anteojos usafos por los estudiantes, estudiando también qué parte del espectro se
bloquea con el “tinte” (color) de los anteojos.

Con un poco de creatividad, se puede modificar este experimento para estudiar


reflectancia además de la transmitancia.

Medición de Turbidez -
Hemos visto aplicaciones simples del fototransistor, pero ¿qué tal si lo aplicamos
a experimentos de Química?

Se podría, por ejemplo, usar esta técnica para controlar el tiempo de la reacción
de Tiosulfato de Sodio y Acido Clohídrico.

Enigmaelectronica
Robotics - Computer Control

Turbidez

Solución bajo control

Al Puerto de Juegos

Si alguna vez han mirado el interior de uno de esos costosos Kits para Prueba de
Agua, probablemente han descubierto que consisten de una fuente de luz y un
fotosensor, muy parecido a nuestro equipo experimental.

Con un pequeño empuje, los estudiantes rápidamente idean modos de crear un


Kit automático. Con la excepción del PH, todas las funciones de un Kit para agua
pueden ser fácilmente duplicadas con el computador.

El uso de computadores para este tipo de colección automatizada de datos abre


inmensas posibilidades en la mente de los estudiantes. Los datos pueden ser
colectados automáticamente sobre extensos períodos de tiempo sin necesidad de
la presencia de los estudiantes. Una vez colectados pueden intercambiar y
comparar datos entre diversos grupos de estudiantes, colegios y ¡¡aún
internacionalmente!!.

Detección de Sonido
En su trabajo relacionado con la interfaz del Puerto de Juegos del computador
Apple, Richard Walding sugiere el uso de este circuito para detectar “nodos” en
experimentos de sonido usando columnas de aire. (Ver Apéndice A, para más
información sobre el trabajo de Richard)

El circuito presentado produce un voltaje que varía en relación al sonido


detectado. No es muy sensible, pero representa otra herramienta en nuestro
“arsenal”.

Los micrófonos "Electret" pueden variar en precios, pero los hay desde $1.500 o
menos. También hay de distintos tipos, pero la mayoría de los que venden en el
comercio son apropiados. La información que sigue basta para comenzar a
trabajar.

Enigmaelectronica
Robotics - Computer Control

DETECTANDO SONIDO
Micrófono Electret

Salida al
4N28

Tierra
Vista inferior

NOTA: Se puede utilizar la línea de 5 Volts del Puerto de Juegos para energizar
este circuito. Conecte, además, la Tierra (Ground) de este circuito a la tierra del
computador Y la tierra del circuito con el 4N28

Cambios de Temperatura:
El método más simple para leer temperatura es usar un “Termistor”. Las
variedades más comunes son las de 1 Kohm y 10 Kohm, y cuestan menos de
$1000.

Estos dispositivos cambian su resistencia en función de la temperatura.


Usualmente, el cambio d resistencia es demasiado pequeño para leerlo
directamente con las líneas A/D del Puerto de Juegos, por eso se usa la técnica de
“detección de voltaje” con el 4N28 (como con el sonido, en la página anterior).

Se usa un “par Darlington” para amplificar los cambios en el termistor y producir


una variación de voltaje relativamente grande. El voltaje se lee entonces vía la
interfaz 4N28.

El circuito básico necesarios es:

Enigmaelectronica
Robotics - Computer Control

Medición de Temperatura

NOTA: Podría ser necesario experimentar un poco con la resistencia de 100


Ohms, el valor real dependerá de la resistencia utilizada con el 4N28.

Detección de Campos Magnéticos:


Usando el Circuito Integrado (IC) UGN 3020 de Efecto Hall

Este IC responde a campos magnéticos cambiando su salida de High a Low (Alto


a Bajo) y viceversa. Los diagramas que siguen proveen suficiente información
para usar este dispositivo.

Enigmaelectronica
Robotics - Computer Control

Interruptor de Efecto Hall UGN-3020

Vcc (4,5 a 24 Volts)

Salida

Detector de Flujo
Di sparador
Amplificador Tierra
de Schmidtt
Operacional

Lado marcado
Al Computador
Tierra

Los valores reales para el condensador y la resistencia no son críticos. El


fabricante recomienda 20 pF y 820 Ohm.

Ya que el IC tiene un regulador de voltaje interno, no hay que preocuparse de


proveer una regulación externa. El voltaje puede ser obtenido directamente del
Puerto de Juegos o de una fuente externa.

Para mis experimentos usé una barra magnética “Alnico”, del tipo incluido en los
Kits de Ciencias para colegios. Cuando el polo Sur del imán se acerca a la cara
marcada del IC su salida cambia de High a Low. De acuerdo a las
especificaciones del IC, éste responde hasta frecuencias de excitación de 100
KHz.

Desafortunadamente, no es muy sensible y la barra magnética debe estar a unos


pocos milímetros para producir efecto. Es, sin embargo, maravillosamente simple
y muy económico (menos de $1.500).

Comercialmente, el 3020 es típicamente utilizado para determinar los RPM de


ejes giratorios. Se fijan pequeños imanes sobre el eje y el IC se monta a poca
distancia. Cuando el eje rota, se generan pulsos en el IC y estos pueden ser

Enigmaelectronica
Robotics - Computer Control
ingresados en un contador. En una aplicación de esta naturaleza la pequeña
distancia requerida no es un problema. Sin embargo el diseñador debe asegurarse
que el eje no oscile, al menos durante condiciones normales de operación.

A continuación se muestran algunos experimentos que se podrían intentar.

Motor Eléctrico

Imán en caída Comienzo

Imanes

Tubo de Vidrio
Péndulo con un
Imán
Parada

Experimentos con Movimiento


Los “compatibles” pueden ser utilizados para todos los experimentos que se
llevan a cabo con el “air track” en conjunción con cronómetros electrónicos. La
ventaja de usar un computador en lugar de un cronómetro, tiene que ver más con
la motivación y la ampliación de la experiencia de los estudiantes, que con algun
incremento en la precisión.

Por supuesto, el computador puede programarse para realizar todos los cálculos
necesarios y, simplemente, entregar los resultados de tiempos, cambios de
momentum, etc. a los estudiantes, pero es discutible si esto lleva a una mejor
comprensión de la Física involucrada.

El uso de los computadores en experimentos de Física puede ciertamente


incrementar el aprendizaje y estimular la imaginación de los estudiantes,
otorgándoles una mejor comprensión de la colección de datos del “mundo real” y
quizás motivándolos para averiguar cómo los “científicos reales” realizan su
Enigmaelectronica
Robotics - Computer Control
trabajo.

N. del T. En países del tercer mundo y aquellos en vías de desarrollo que aún son
usuarios del conocimiento y la tecnología, puede ciertamente cambiar su
percepción del computador como instrumento dispensador de información,
entretención y algunos programas que facilitan ciertas tareas y convertirlo en un
versátil y maravilloso instrumento de exploración del mundo circundante, junto
con estimularlo para explorar avenidas de la imaginación conducentes a la
creación de tecnologías, rompiendo el rol de usuarios.

Como regla general: Si el computador ayuda al conocimiento, debe ser usado


Si es sólo un juguete de alta tecnología, no debe usarse.

Un Típico Air-track -

Fuente de Poder para el emisor de


l

Al Puerto de Juegos

Fotosensores

Al Puerto de Juegos

Tiempo entre Eventos:

Usando una fuente de luz y un fototransistor MEL 12 conectado a una de las


líneas con interruptores del Puerto de Juegos, el computador puede ser utilizado
para medir intervalos de tiempo entre dos eventos, tales como la caída de un
objeto que pasa entre dos sensores, uno para comenzar el conteo y otro para
detenerlo.

Enigmaelectronica
Robotics - Computer Control

Intervalos de Tiempo

Objeto en caída libre

Iniciación del Conteo

Al Puerto de Juegos

Al Puerto de Juegos

Detención del Conteo

Midiendo el Tiempo entre Eventos

Para experimentar con este circuito se puede usar el programa


"GAMEPLS3.EXE", con ambos fototransistores conectados a la misma línea
(el programa, por ahora, está escrito para leer la línea D4). Este programa lee y
almacena los intervalos de tiempo ON/OFF de la línea D4. E circuito se muestra
abajo.

En este caso, proporcionará información acerca del tiempo que cada sensor está
“activado” y los intervalos entre eventos. Se requiere algún trabajo de calibración

Enigmaelectronica
Robotics - Computer Control
y manipulación de los datos, pero al menos sirve para comenzar.

Midiendo tiempos de duración

Es una tarea simple establecer un ciclo de conteo para determinar el tiempo que
un interruptor permanece cerrado. Esta técnica puede ser utilizada, por ejemplo,
con el “Air Track” para determinar la velocidad de una “tarjeta” de longitud
conocida.

Midiendo Duración de Eventos

Distancia

Al Puerto de Juegos

Tiempo “Cerrado”
Distancia
Velocidad =
Tiempo (cerrado )

Duration Timing

El “cronómetro” llamado "TIMER2.EXE" se puede utilizar para registrar el


tiempo que la línea de datos está Low. Este programa medirá tiempos con una
precisión de una centésima de segundo, de manera que proporciona respetables
resultados. TIMER2.EXE está escrito para la Linea de Datos D4, es decir Pin 2.

Una vez que se sabe cuanto tiempo la línea D4 ha estado Low, el cálculo de la
velocidad del deslizador es muy simple.

Con un poco de imaginación, es posible usar "GAMEPLS3.EXE" con dos


fototransistores para colectar datos antes y después de los cambios de momentum
en experimentos de colisiones usando el Air Track.

Enigmaelectronica
Robotics - Computer Control

APENDICE B

Consejos para la Construcción:


Fabricación de Circuitos Impresos (PCB) -

Los diagramas para todas las interfaces en este folleto están dibujados a escala,
dos veces el tamaño real. Para producir el diagrama a tamaño real, use la opción
“Reducción al 50%” del menú "Configurar Página..."

Después puede dibujar el circuito a mano, o llevar el diagrama a una empresa


para hacerlo profesionalmente (requiere un diagrama original de alta calidad,
tales como los reproducidos por una impresora láser). El costo de manufactura de
los circuitos varía de acuerdo al tamaño y cantidad. Se debe cotizar en más de
una empresa para obtener los mejores precios.

Fabricación de PCBs

La manera más rápida de producir circuitos impresos para los prototipos es la


corrosión controlada con una mezcla de Peróxido de Hidrógeno (agua oxigenada)
y ácido clorhídrico 6M (aunque en las casas especializadas se puede adquirir una
solución de percloruro férrico que es también muy efectiva, a bajo costo y de
manipulación más segura que el ácido clorhídrico).

ATENCIÓN - ¡¡La solución corrosiva no debe ser usada por los estudiantes!!

Use un trozo adecuado de material para construir PCBs (adquirible en casas


electrónica) y dibuje las líneas con un plumón ordinario a prueba de agua.

Para prototipos pequeños se puede usar Veroboard. Estos son tiras de cobre pre-
perforado pegado subre un sustrato aislante. Pero tenga cuidado, encontrar fallas
en circuitos complejos producidos de esta manera, puede ser una verdadera
pesadilla.

Conectándose al Puerto de Juegos -


La experiencia señala que los “Bloques de Terminales” son ideales para la
conexión temporal de componentes, tales como interruptores y sensores de luz.
Sólo es necesario un pequeño destornillador para fijar cada alambre en cada
mitad del bloque. Los componentes se conectan a una mitad del bloque y los
alambres provenientes del circuito de interfaz simplemente se conectan en la
mitad complementaria.

Un bloque de 10 terminales se adquiere por un bajo precio en las casas del ramo.

Enigmaelectronica
Robotics - Computer Control

Se puede usar una tira completa para conectar un cierto número de componentes
al mismo tiempo o cortarlo en subunidades para conectar los componentes
individualmente.

Usando un Bloque de Terminales para conectar componentes:

Interruptor

Al Puerto de Juegos

Al Puerto de Juegos

Montaje de componentes individuales

Enigmaelectronica
Robotics - Computer Control

APENDICE C

Algunas otras ideas....


Cuerpos en caída libre: Oscilaciones:

Imán en caída libre

Resorte
Interruptor “Reed”

Al Puerto de Juegos Al Puerto de Juegos

Expansión/Contracción

Potenciómetro lineal

Barra Metálica

Al Puerto de Juegos
Calor

Enigmaelectronica
Robotics - Computer Control

Velocidad:
Potenciómetro de 10 vueltas

Al Puerto de Juegos

Mesa
Peso

Enigmaelectronica

You might also like