Está en la página 1de 32

Plataforma de

Aprendizaje
Virtual

Inclusión Digital

Fundamentos de la
Computación Física
Una Iniciación en la Robótica
Unidad 1
Surgimiento e Historia
de la Robótica Moderna
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 3

Módulo 1: Surgimiento e
historia de la robótica mo-
derna

La mecánica, la electrónica y la informática


La posibilidad de crear objetos que realicen acciones por sí mismos
(autómatas), ocupó la imaginación y la inventiva humana durante
siglos. En el siglo XVIII, los avances de la mecánica promovidos prin-
cipalmente por la relojería, permitieron concretar modelos bastante
avanzados como “la pianista”, que podía tocar distintas melodías en el
órgano, o “el escritor”, que podía hacer varios dibujos y textos. Ambos
autómatas son del suizo Pierre Jaquet-Droz.

No te pierdas de este video donde se puede ver al autómata


“escritor” en acción:
https://www.youtube.com/watch?v=JsAKbBhR4rc

La RAE define a la mecánica como “parte de la física que estudia el movimiento y el equilibrio de los
cuerpos, así como de las fuerzas que los producen”. De manera más concreta, podemos pensar que la
mecánica se ocupa de crear herramientas y mecanismos para mover y darles movilidad a los cuerpos
como sistema de engranajes, poleas, etc.

“La pianista”, de Pierre Jaquet-Droz


FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 4

Ya en el siglo XIX, aparece la posibilidad de utilización de la energía


eléctrica, lo que abre las puertas a la aparición de la electrónica en el
siglo XX. De manera muy simplificada, podríamos decir que la elec-
trónica permite “manipular la electricidad” para lograr tener señales
eléctricas distintas y diferenciadas. Esto implica que la electricidad se
podrá usar para transmitir información. Quizás la utilización del código
morse en el telégrafo es el ejemplo más sencillo y claro: una persona
pulsa un botón determinado número de veces y de determinada forma,
dependiendo del mensaje; cada una de estas pulsaciones genera una
señal eléctrica distinta, que a su vez serán recibidas por otra perso-
na que, a partir de la decodificación de estos pulsos, podrá rearmar
el mensaje. En el caso del teléfono, por ejemplo, este convertirá las
variaciones de la presión de aire que genera la voz de una persona en
distintas señales eléctricas (señales de tipo analógico, como veremos
más adelante), que luego serán reconvertidas en sonido del otro lado
del dispositivo. Este circuito se produce de forma casi instantánea, ya
que la electricidad viaja muy rápido. Podemos decir, entonces, que con
la electrónica aparecen los dispositivos eléctricos y las telecomunica-
ciones, a la vez que se da un salto de no retorno en la informática.

Según la RAE, la informática es definida como “el conjunto de conoci-


mientos científicos y técnicas que hacen posible el tratamiento auto-
mático de la información por medio de computadoras”. Para entender
mejor esto, es importante comprender qué es una computadora. En su
acepción más sencilla, una computadora es un dispositivo al que se le
pueden ingresar datos y los puede procesar mediante operaciones ma-
temáticas y lógicas (por ejemplo, verificar si dos valores son iguales),
generando otros datos o resultados. Esta nueva información puede, a
su vez, ser almacenada y usada en nuevas operaciones, permitiendo
procedimientos acumulativos. En este sentido, se considera al “ábaco”
uno de los antecesores de las computadoras (si no una de las prime-
ras) ya que, con una pequeña injerencia de una persona, permitía hacer
operaciones sencillas y almacenar los resultados, logrando así hacer
varias operaciones continuas y acumulativas.

El ábaco, un sistema antiguo para realizar operaciones aritméticas

Si bien la informática había claramente evolucionado muchísimo entre


el ábaco y el siglo XX (ya en el siglo XIX, Babbage había ideado
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 5

“La Máquina Analítica”, una sofisticada computadora que iba a funcio-


nar a máquina de vapor), la electrónica significó una oportunidad sin
precedentes de aumentar la memoria de las computadoras y su veloci-
dad de procesamiento. Se podía entonces hacer muchas operaciones
en tiempos rapidísimos e irlas almacenando, permitiendo procedimien-
tos acumulativos complejos. De esta forma, se ampliaban los hori-
zontes de la programación, ya que ahora se podían pensar comandos
sofisticados de muchos pasos y acciones para lograr funciones más
complejas.

Aparece así la programación con lenguaje ensamblador, y hacia los


años 60, los llamados “lenguajes de alto nivel” que, aunque con modifi-
caciones, perduran hasta el día de hoy.

Hoy en día nos rodean computadoras: las personales, los celulares, los
robots y muchos dispositivos electrónicos son técnicamente computa-
dores. Sin embargo, en lo que resta de curso, hablaremos de computa-
doras exclusivamente para referirnos a las computadoras personales.

Implicancias para la robótica moderna


La mecánica, la electrónica y la informática resultan todas claves para
el surgimiento de los robots modernos hacia mediados del siglo XX.
Gracias a los avances en informática, los nuevos autómatas podían
ser programados para tener una función y llevar a cabo una acción
de una determinada manera, con gran nivel de especificaciones. Por
su parte, la electrónica permitía que este programa se manifestara, y
la mecánica permitía que el robot tuviera movilidad. Surgen entonces
dispositivos muy distintos a los autómatas del siglo XVIII, ya que están
programados y tienen determinados componentes electrónicos (como
sensores y actuadores, sobre los que trabajaremos más adelante), que
les permiten ir más allá de repetir una acción, ya que pueden interactuar
con el entorno y tomar pequeñas decisiones. En el video que viene a
continuación veremos cómo Unimate podía verter líquido en vasos y
detenerse cuando ya estaba lleno.

En este video podés ver el funcionamiento de Uni-


mate, uno de los primeros robots modernos diseña-
do por George Devol en 1954:
https://www.youtube.com/watch?v=hxsWeVtb-JQ
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 6

Unimate, el robot diseñado por George Devol en 1954

La Interactividad de los robots


Se podría decir que el intento por hacer robots cada vez más interac-
tivos ha sido el motor de la mayoría de las investigaciones y avances
en robótica. Si bien en muchos de los casos se busca una interacción
que permita hacer una tarea determinada con mucha precisión (como
podemos ver en este robot desinfectante1), algunas ramas de la robó-
tica buscan emular las capacidades humanas de interacción, como
por ejemplo la capacidad de aprendizaje. A este tipo de proyectos se le
llaman de Inteligencia Artificial.

La posibilidad de crear una inteligencia equiparable a la humana nos


resulta tanto fascinante como horrorizante, como demuestran las
innumerables películas y novelas de ciencia ficción que abordan el
tema. Después de todo, hace que nos cuestionemos sobre la misma
condición humana. Sin embargo, la robótica está todavía lejos de imitar
la inteligencia humana.

1 https://youtu.be/UMpdN3E_qVw
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 7

¿Cómo funcionan los robots?


Más formalmente, podríamos decir que un robot es una entidad o dis-
positivo funcional y programable, capaz de realizar una acción o serie
de acciones por sí solo para cumplir un objetivo específico a partir de la
capacidad de percibir el mundo que lo rodea, procesar esta información
y actuar en consecuencia.

Esta habilidad bidireccional de percibir y actuar (la interactividad de la


que hablábamos anteriormente), es posible en gran medida gracias a
tres componentes electrónicos:

SENSORES - PLACA DE CONTROL (procesador) - ACTUADORES

También gracias a uno o varios programas que estarán alojados en la


Placa de control.

En el módulo 3 profundizaremos más sobre los componentes electróni-


cos, y en el módulo 4 ahondaremos en la programación de la placa de
control.

Si bien esta estructura es extrapolable a todos los robots, este curso


se centrará en los robots producidos artesanalmente. Los llamaremos
“proyectos de computación física”. En el próximo módulo aprendere-
mos un poco más sobre la “computación física” y su estrecho vínculo
con “la cultura libre”, el “software libre” y el “hardware libre”. También
aprenderemos sobre uno de los proyectos más grandes de promoción
de computación física: Arduino.  
Unidad 2
Arduino y sus
Posibilidades
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 9

Módulo 2:
Arduino y sus posibilidades
Nuevos paradigmas sobre el uso y la creación
de los robots
Como vimos en el módulo anterior, a partir del siglo XX el desarrollo
de la robótica comienza un camino vertiginoso y acelerado. A la par
de los avances técnicos, surgen reflexiones acerca del acceso y el uso
social de las tecnologías mismas, dando lugar a la aparición de nuevos
paradigmas.

Computación ubicua
En la década de los 80, la mayoría de las personas habían visto un
robot mediante videos de difusión (como el de Unimate que vimos en
el módulo anterior), o mediante imaginarios distópicos presentes en
películas y novelas de ciencia ficción. En cambio, las computadoras sí
empezaban a ser parte del día a día de muchas personas.

En el siguiente video podés ver una de las prime-


ras computadoras personales
https://www.youtube.com/watch?v=826PjuW-vmU

Es interesante prestar atención a la crítica a las computadoras perso-


nales que realiza el informático estadounidense Mark Weiser en sus
ensayos “Computación ubicua” (1988) y “La computadora del siglo XXI”
(1992). Este último empieza de la siguiente manera: “Las tecnologías
más profundas son aquellas que desaparecen. Se entretejen en la tela
de la vida cotidiana hasta que no se pueden distinguir”. Para él, una tec-
nología que condiciona a quien la usa y que requiere sentarse delante
de una pantalla no es una tecnología efectiva, porque estas deberían
acomodarse a las personas y no a la inversa.

Imaginá entonces una “computación ubicua”, donde muchas de las


funciones del computador puedan ser descentralizadas en dispositivos
más sensibles capaces de interactuar con las personas que los usan.
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 10

La computación física
Ya en el siglo XXI, Dan Sullivan y Tom Tigoe escriben el libro “Computa-
ción física” (2004), donde retoman algunas de las nociones de “com-
putación ubicua”. Coinciden en que las computadoras personales son
poco amables, y argumentan que están pensadas para personas que
solamente tienen ojos y dedos para tipear o hacer click, seres así:

Si bien el paradigma de la “computación ubicua” puede considerarse


algo democratizante en cuanto a que pone el foco en las personas, deja
por fuera quizás un asunto más acuciante para la democracia tecnoló-
gica, que es donde los autores ponen énfasis a través del nuevo con-
cepto de “computación física”: el acceso a las tecnologías mismas y al
conocimiento para desarrollarlas. Posteriormente, Dan Sullivan y Tom
Tigoe formarán parte de proyectos de hardware y software libre para ro-
bótica que serán accesibles tanto económicamente como en términos
de usabilidad, entre los que se destaca el proyecto Arduino.

El paradigma de la computación física está estrechamente vinculado a


otras corrientes de pensamiento que cobraron gran relevancia en las úl-
timas décadas, tales como la cultura del “Hazlo Tu Mismo” y la Cultura
Libre. En relación a la primera, ha surgido y se ha expandido una impor-
tante comunidad de “hacedores”: personas que aprenden de manera
autodidacta sobre robótica, realizan e inventan proyectos de todo tipo,
y frecuentemente comparten sus producciones. La Cultura Libre, por
su parte, hace foco en la importancia de la libre distribución y modifi-
cación de contenidos creativos. Las ideas de software libre y hardware
libre, que veremos a continuación, se enmarcan dentro de esta filosofía.
La influencia de la computación física también puede verse en la cada
vez más común introducción a la robótica en la currícula educativa de
escuelas y secundarias del mundo.

Te invitamos a explorar uno de los portales más


conocidos de hacedores
https://www.instructables.com/circuits/arduino/
projects/

Software libre
Muchas veces, surge un malentendido al equiparar el concepto de “sof-
tware libre” con la idea de que el mismo sea gratuito, cuando en reali-
dad se refiere a “software para usuarios y usuarias libres”. ¿Qué implica
esto? Entre otras cosas, que quienes usan el programa puedan acceder
al texto del software, copiarlo, inspeccionarlo, modificarlo, corregir
errores y distribuirlo, sin la necesidad de pedir autorización a quien haya
programado el original.
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 11

El software libre se diferencia de lo que comúnmente llamamos “sof-


tware privativo”. Esta distinción no tiene que ver con el arancel del
producto: un software libre puede ser pago, al igual que un software
privativo puede ser gratuito (y a la inversa). La principal característica
del software privativo es que está regido bajo una licencia que otorga a
las usuarias y usuarios únicamente el derecho a ejecutar un determina-
do programa en una determinada computadora, prohibiendo cualquier
otro uso, modificación o distribución. De esta forma, el programa no
obedece a quien lo usa, sino que el control se encuentra en manos de
quien lo haya diseñado. Esto, en cambio, no ocurre en los programas
de software libre, ya que si el mismo no atiende a las necesidades de la
persona que lo usa, ésta puede modificar, o hacer modificar el progra-
ma de modo que sí lo haga.

Por lo tanto, no se trata de una distinción técnica de los programas,


sino más bien de las condiciones de uso que establece cada uno. Inclu-
so un programa libre y uno privativo pueden ser en apariencia práctica-
mente iguales:

Si un programa libre es diferente de un progra-


ma privativo diseñado para resolver el mismo
problema, la diferencia no se debe a la natu-
raleza libre o no de cada programa, sino a las
decisiones de diseño que tomaron los autores
cuando los escribieron. (Heinz, 2007)2

Hardware libre
Al igual que el software libre, el hardware libre también forma parte
de la cultura libre. Nos referimos a “hardware libre” para hablar de los
soportes físicos (los elementos materiales que componen un dispositi-
vo), cuyas especificaciones y diagramas esquemáticos* son de acceso
público, ya sea bajo algún tipo de pago o de forma gratuita.

La posibilidad de contar con hardware libre es fundamental tanto a la


hora de pensar a la tecnología en entornos educativos, como a partir
de sus potencialidades en el desarrollo de innovaciones y creaciones
accesibles.

*Diagramas esquemáticos: esquemas que nos muestran de manera


simple los componentes importantes de un proceso o dispositivo, a
través de símbolos, para la comprensión del mismo. A continuación
podemos ver un diagrama sencillo de un proyecto Arduino, con el que
trabajaremos en los módulos siguientes.

2 HEINZ, Federico (2007), “Software libre y software privativo”; en Monopolios Artificiales


sobre Bienes Intangibles, Buenos Aires, Fundación Vía Libre. Disponible en línea en http://
www.vialibre.org.ar/mabi/4-software-libre-software-privativo.htm.
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 12

Importancia del Software Libre en las socieda-


des democráticas
La cuestión sobre el tipo de licencias forma parte de un debate más
amplio, que tiene que ver con el control y la propiedad del conocimiento.
Si el avance de las sociedades se debe, en gran medida, a los descubri-
mientos que se hacen sobre conocimientos anteriores... ¿cómo determi-
nar hasta qué punto una persona o empresa tiene derecho a restringir el
acceso a ese conocimiento? ¿En qué medida el concepto de propiedad
puede sobreponerse sobre la evolución de los descubrimientos que,
potencialmente, pueden mejorar el bienestar de la humanidad?

Te recomendamos que veas este video en el que


¿Cómo nació Arduino?
Beatriz Busaniche reflexiona sobre estas cuestio-
nes:
Una de las experiencias de computación física más interesantes a nivel
https://www.youtube.com/watch?v=c-0tEvw1i4s&-
mundial en relación al
t=29s desarrollo de proyectos a partir de software y
hardware libre es el proyecto Arduino.

Como muchas de las grandes innovaciones, Arduino nació ante una ne-
cesidad. En 2005, Massimo Banzi, por entonces estudiante del instituto
IVRAE de Italia, se encontró con el obstáculo económico que implicaba
adquirir una placa de microcontrolador para la mayoría de las personas
que estudiaban computación y electrónica. El objetivo original del pro-
yecto, entonces, fue crear una herramienta simple y de bajo costo que
permitiera crear proyectos digitales a personas que no tuvieran altos
conocimientos técnicos o sin un perfil de ingeniería.

Con el aporte de nuevos integrantes al equipo de Arduino, como Her-


nando Barragán, David Mellis, David Cuartiellesse y Tom Igoe, se fue
alcanzando una versión cada vez más elaborada del prototipo Arduino,
con mejoras tanto en el software como en el hardware. Si bien en un
primer momento el proyecto se elaboró a nivel interno, rápidamente
comenzó a distribuirse a mayor escala, hasta convertirse en una de las
herramientas de aprendizaje para el desarrollo de proyectos de compu-
tación física más importantes a nivel mundial.

Les compartimos el fragmento de una entrevista3 realizada a David


Cuartiellesse, integrante del equipo desarrollador de Arduino:

¿De dónde surge la necesidad de crear Arduino?

En el colegio se enseña ofimática, programas que permiten


hacer documentos, pero no se va más allá. Todo el mundo
debería tener la oportunidad de programar, o lo que es lo
mismo, de aprender y crear, que es donde radica el fallo en

3 https://www.diagonalperiodico.net/saberes/arduino-es-sistema-educativo-democrati-
za-la-tecnologia.html
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 13

el sistema educativo convencional. Comencé dando clases


de electrónica a estudiantes de diseño gráfico y en el mun-
do del arte, por ello me pregunté, ¿por qué no podría ense-
ñarle también a un niño de diez años? Ambos tienen los
mismos conocimientos previos, con la diferencia de que los
niños no tienen limitaciones en su imaginación, no le dan
vueltas al para qué sirve y comienzan a aprender y crear sin
darse cuenta. Para mí Arduino es simplemente un sistema
educativo, muy sencillo y eficiente. Es una extraordinaria
herramienta para aprender, puede usarla cualquiera. Uno de
sus objetivos es lograr la democratización de la tecnología.

Lo interesante de Arduino es que al ser sencillo de diseñar y armar para


alguien que no es especialista en ingeniería o electrónica, se convierte
en una herramienta con mucho potencial creativo y de fácil acceso para
aplicar en casi cualquier proceso que quiera ser automatizado, ya sea
para resolver necesidades de la vida cotidiana, como para experimentar
artísticamente.

Te compartimos para que veas un video en el que


Massimo Banzi, fundador de Arduino, nos cuenta
más sobre el proyecto y muestra algunos ejemplos
interesantes.
https://www.youtube.com/watch?v=msgickv8p1k&-
feature=youtu.be

En el próximo módulo nos adentraremos en las características técni-


cas básicas de la placa Arduino, para tener un mejor panorama de su
funcionamiento y posibilidades.  
Unidad 3
La Electrónica en la
Computación Física
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 15

Módulo 3: La electrónica en
la computación física
¿Cómo funciona un proyecto de computación
física?
En el módulo 1, definimos a un “robot” como un dispositivo funcional
y programable, capaz de realizar una o varias acciones por sí solo a
partir de la capacidad de percibir el mundo que lo rodea, procesar esta
información y actuar en consecuencia. Recordemos, entonces, su
esquema de funcionamiento básico, cuyos elementos son los que le
permiten lograr la interacción con el entorno:

PLACA DE CONTROL
SENSORES (donde está el procesador o ACTUADORES
microcontrolador)

Actúan en base a
Reciben información Procesa información
información

Un procesador es, de alguna manera, el “cerebro” del robot. Existen


distintos tipos de procesadores, con niveles de complejidad variable,
diseñados para satisfacer propósitos muy diversos: podemos estar
hablando desde una compleja laptop o celular “inteligente”, hasta un
simple dispositivo de regado automático. Los procesadores consisten
en un circuito integrado que se puede programar, o sea que puede eje-
cutar las órdenes que tenga almacenadas en su memoria.

Cuando hablamos de un “microcontrolador”, nos estamos refiriendo


específicamente a un procesador simple, diseñado para realizar una
sola tarea. Los microcontroladores requieren menos energía que otros
procesadores más complejos, y permiten una fácil interacción con el
mundo físico a través de circuitos de entrada (sensores), y circuitos de
salida (actuadores).

En la interacción entre estos tres elementos de los robots podemos ver


el rol que juegan la informática y la electrónica: mientras la informática
permite elaborar el programa que comandará al robot, la electrónica
posibilita que este programa, microprocesador mediante, active los
sensores y actuadores.

Analicemos con mayor profundidad cada elemento del circuito.


FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 16

Los sensores
Los sensores, también llamados transductores, son dispositivos que
permiten detectar información del mundo exterior, para que el micro-
controlador actúe en base a esos estímulos. Estos toman las señales
del mundo físico (en forma de temperatura, presión, humedad, con-
tacto, luz, movimiento, pH, etc.) y las convierten en energía eléctrica.
Luego, esta señal eléctrica se envía al microcontrolador, que es el
encargado de generar una respuesta.

Los sensores pueden clasificarse de varias maneras, según el paráme-


tro que se tenga en cuenta.

Una posible clasificación puede realizarse a partir del tipo de salida


que proporcionan. Los más simples son los sensores digitales, que se
caracterizan por tener dos únicos estados diferenciados (todo o nada,
prendido o apagado, sí o no). Por otro lado, encontramos otro tipo de
sensores que pueden interpretar una gama más amplia y variable de
estados. Se trata de los sensores analógicos, que son capaces de leer
cambios de variable entre un rango de valores posibles, dependiendo
del dispositivo. La mayoría de los fenómenos de la vida real son seña-
les de este tipo, como el sonido, la temperatura, la luz, etc.

Otra categorización posible es a partir del tipo de parámetros que son


capaces de detectar. En este sentido, podemos hablar de sensores
mecánicos (detectan parámetros relacionados con acciones mecáni-
cas, contactos, aceleración, etc.), ambientales (vinculado a medidas
de temperatura, humedad, velocidad del viento), químicos (detección
de niveles de oxígeno, contaminación en el aire), etc. Un interruptor, por
ejemplo, es un sensor mecánico, que puede convertir la energía me-
cánica que se genera al presionarlo, en energía eléctrica, al cerrar una
conexión entre dos contactos metálicos.

Los sensores, entonces, son dispositivos que recogen información del


mundo “físico” o “real” y la entregan al sistema de control para que
este pueda procesarla y tomar decisiones. Su función, por lo tanto,
es transformar un parámetro o estado físico del entorno en señales
eléctricas. Esta información, que habla sobre el entorno, pero ahora
transformada en señales eléctricas, es proporcionada por los senso-
res al microcontrolador.

Es importante tener en cuenta que esa información que el sensor “en-


trega” tiene que tener el mismo formato que la que precisa el sistema
de control, para lograr una correcta comunicación entre ellos. Por ello,
en la práctica es importante, antes de realizar cualquier conexión,
cerciorarse de que el sensor y el sistema de control sean compatibles,
y en el caso de que no, averiguar si puede “adaptarse” la salida para
lograr compatibilidad.
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 17

Algunos ejemplos
Existen muchos tipos de sensores, que podemos utilizar dependiendo
qué queramos lograr con nuestro proyecto de computación física. Vea-
mos algunos de ellos que son muy utilizados en los proyectos Arduino.

Sensores ultrasónicos: son utilizados para medir distancias y evitar


objetos.

Sensores IR o infrarrojos: pueden ser utilizados para detectar objetos o


contrastes. Es una opción muy usada para programar robots que sigan
o eviten líneas.

Sensores de movimiento: permiten detectar movimientos en el am-


biente. Son muy utilizados para el diseño de alarmas y dispositivos de
seguridad.

Sensores LDR o de fotorresistencia: permiten detectar brillo. Son uti-


lizados cuando queremos que el dispositivo siga una luz o realice una
acción basada en parámetros de luz u oscuridad.

Sensor de temperatura: permiten detectar y medir variables de tempe-


ratura, humedad y presión atmosférica.

Sensor de humedad de suelo: como su nombre lo indica, miden la


humedad presente en el suelo. Son muy utilizados en sistemas de riego
automático.

A modo de ejercicio, te proponemos que realices la siguiente


actividad sobre sensores.
https://es.educaplay.com/recursos-educativos/6104795-tipos_
de_sensores.html

El sistema de control
El sistema de control, por su parte, recibe la información del entorno
por medio de los sensores, que aportan datos para que el controlador
decida si hay que realizar alguna acción. En el caso de que esto sea así,
la acción se llevará a cabo por un actuador, que es el dispositivo que
tiene la capacidad de provocarla.

Según su arquitectura (es decir, la manera en que están construidos) y


su tamaño, los sistemas de control pueden dividirse en “centralizados”
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 18

y “distribuidos”. Los sistemas centralizados consisten en un único


módulo de control que recibe todas las señales proporcionadas por
los sensores, las procesa, toma decisiones y controla todas las salidas
y actuadores. Como su nombre lo indica, al estar centralizado, si el
dispositivo falla el sistema completo deja de funcionar. Por otro lado,
los sistemas distribuidos consisten en muchos módulos de control con
tareas concretas que se comunican entre sí, formando una red que se
comporta como una sola entidad. En este tipo de sistemas, como los
procesos están distribuidos en distintos nodos, si uno de ellos falla el
sistema no cae.

La mayoría de los proyectos de computación física consisten en siste-


mas centralizados en una única placa de control, donde encontramos al
microcontrolador que se encarga de procesar la información.

Los actuadores
Cerrando el circuito nos encontramos con los actuadores: dispositivos
que, siguiendo las órdenes del sistema de control, realizan acciones
que repercuten en el mundo “real”. Estos dispositivos convierten las
señales de corriente o voltaje en señales físicamente útiles, como movi-
miento, luz, sonido, fuerza, rotación, entre otros.

Los actuadores, al igual que los sensores, pueden manejarse median-


te señales binarias, es decir, interpretando únicamente dos estados
posibles (abrir/cerrar, prender/apagar, avanzar/frenar); o a partir de
valores analógicos, que como vimos, son aquellos que se encuentran
entre un rango variable de parámetros.

Entre los actuadores vamos a encontrar una variedad de dispositi-


vos, como motores, luz de led, relés, pistones, válvulas, etc. En mu-
chos casos, el actuador es un elemento que pone en marcha alguno
de estos equipos.

Imaginemos un ejemplo sencillo en el que se pongan en juego los distin-


tos componentes: un dispositivo que, cuando un auto está estacionando,
nos avise si está cercano a otros objetos. Para elaborarlo podríamos
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 19

utilizar una placa Arduino, un sensor ultrasónico y una luz LED. Según
nos acerquemos a un objeto, el sensor iría subiendo su frecuencia y pro-
gramamos el microcontrolador para que a partir de un determinado valor,
se encienda la luz de LED.

¿Qué es Arduino?
Como comenzamos a ver en el módulo anterior, Arduino es una pla-
taforma electrónica de código abierto, que permite realizar proyectos
interactivos basados en software y hardware libre, flexibles y fáciles de
usar. El hardware consiste en una placa de circuito físico programable
(donde encontramos el microcontrolador), y el software opera en lo que
llamamos Arduino IDE (Entorno de Desarrollo Integrado), usado para
escribir y cargar código desde la computadora a la placa física. Las pla-
cas pueden comprarse a precios accesibles, y el software, por su parte,
puede descargarse de forma gratuita.

Al igual que en el circuito básico que vimos anteriormente, la placa


Arduino puede tomar información del entorno a través de los sensores
que le instalemos, y actuar sobre aquello que lo rodea, controlando lu-
ces, motores y otros actuadores. Las “órdenes” de lo que queramos que
haga el microcontrolador las elaboramos mediante el lenguaje de pro-
gramación Arduino (variante del C++) y el entorno de desarrollo Arduino
, cuestiones sobre las que trabajaremos en el módulo siguiente.

Arduino tiene distintos diseños de placas. Acá te mostramos una imagen


de Arduino Uno, que es de las más utilizadas para proyectos sencillos. A
continuación distinguiremos las partes que la componen.
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 20

1. Botón de reseteo: sirve para iniciar el programa cargado en el micro-


controlador de la placa.

2 y 3. Pines: son los puertos de entrada y salida, donde se conectan los


sensores y actuadores.

4. Puerto USB: se usa tanto para cargar los programas desde una com-
putadora al microcontrolador, como para dar electricidad al Arduino.

5. Chip de interfaz USB: se encarga de controlar la comunicación con el


puerto USB.

6. Reloj oscilador: es el encargado de marcar el ritmo al cual se debe


ejecutar cada instrucción del programa.

7. Led de encendido: es un pequeño LED que se ilumina cuando la placa


está correctamente alimentada.

8. Microcontrolador: procesador que se encarga de ejecutar las instruc-


ciones de los programas; es el “cerebro” de Arduino.

9. Regulador de tensión: sirve para controlar la cantidad de electrici-


dad que se envía a los pines, asegurando que no se estropee lo que
conectemos.

10. Puerto de corriente continua: se usa para darle electricidad a la


placa en el caso de que no se utilice alimentación USB.

11. Zócalo de tensión: acá van a estar los pines con que alimentemos
nuestro circuito.

12. Entradas analógicas: zócalo con distintos pines que permiten leer
entradas analógicas.

Ejemplo práctico
Imaginemos un ejemplo sencillo: un proyecto de computación física que
consista en una luz de LED que se prenda y apague intermitentemente.

Para ello se necesita una placa Arduino Uno, una luz de led y un cable
USB para conectar la placa al ordenador. A continuación podemos ver
el plano y el esquema del proyecto, que nos indican dónde tenemos
que conectar el actuador, en este caso la luz LED. Como vemos en los
diagramas, las terminales del LED deberán conectarse en los pines de
entrada 13 y GND (que es la toma a tierra).
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 21

Como vimos, lo interesante de Arduino es que al permitirnos crear pro-


totipos electrónicos de manera sencilla, sin necesidad de tener grandes
conocimientos de electrónica o ingeniería, se vuelve una herramienta
accesible a todas aquellas personas que quieran aplicar procesos de
automatización de forma creativa para la vida cotidiana. Desde contro-
lar el riego automático en un jardín, automatizar focos de luz de la casa,
hasta proyectos más complejos.

En el módulo siguiente nos adentraremos en los conceptos básicos


de la programación, para empezar a darle vida a estos componentes
electrónicos. 
Unidad 4
La Programación en
la Computación Física
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 23

Módulo 4: La Programación
en la Computación Física
¿Cómo funcionan los programas?
Como vimos en el módulo 1, la electrónica cambió para siempre el
campo de la informática, ya que significó un aumento exponencial de la
velocidad de procesamiento de las computadoras y de su capacidad de
almacenamiento. Actualmente, una computadora tiene la capacidad de
hacer entre 100 y 200 millones de operaciones matemáticas y lógicas
por segundo. Estas se pueden ordenar, acumular y llegar a tal punto de
abstracción que el ordenador podrá realizar una infinidad de funciones
que parecieran no tener nada que ver con números o lógica.

Pero las computadoras no pueden hacer esto solas; se les debe dar un
paso a paso de las comprobaciones y operaciones que deben hacer
para cumplir una función determinada. A estas instrucciones se las lla-
ma algoritmos. Los programas informáticos se hacen con algoritmos.

Esto parece sencillo, pero no lo es: la persona que programa debe pensar
cómo desmenuzar la función sofisticada que desea realizar, en una
sucesión de comprobaciones y operaciones a las que las computadoras
son capaces de responder. Es realmente una habilidad a desarrollar; las
personas especialistas hablan de la “inteligencia computacional” y la
consideran una aptitud importante hoy en día.

Por suerte, los lenguajes de alto nivel llegaron justamente para facilitar
la tarea de programar, y son los responsables de que se hayan podido
desarrollar muchas de las tareas que podemos hacer hoy en día con las
computadoras. Estos, en cierta forma, realizan parte de la programa-
ción por nosotres, como veremos más adelante con las funciones.

Existen muchos lenguajes de alto nivel, y cada uno es idóneo para desa-
rrollar determinado tipo de programas. El lenguaje C++, por ejemplo, se
usa frecuentemente para programación de “objetos”; en otras palabras,
para programar robots. Arduino usa una variante del C++.

No importa de qué tipo sean o en qué lenguaje de alto nivel estén he-
chos, todos los programas emplean funciones y variables, entre otros
elementos. En las siguientes páginas veremos de qué se trata cada uno
y cómo aparecen en los programas para computación física, particular-
mente los hechos con Arduino.
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 24

Funciones
Si pensamos al programa entero como una tarea general, las funciones
son tareas específicas. Vayamos a un ejemplo concreto: el programa
necesario para el proyecto de computación física mencionado al final
del módulo 3 (que, por cierto, es un programa famoso llamado Blink).

Blink prenderá y apagará intermitentemente una luz LED. Para ello,


deberá completar 5 tareas: 1) setear un pin X para poder conectarle
el LED, 2) hacer que el LED se encienda, 3) sostener el encendido X
milisegundos, 4) hacer que el LED se apague y 5) mantenerlo apagado
X milisegundos. Estas tareas son las funciones, que a continuación las
vemos resaltadas en amarillo:

Los lenguajes de alto nivel ya traen incorporadas funciones pensadas


especialmente para su campo de aplicación. Esto es en parte una de
las grandes ventajas que tienen y por lo que decimos que ya han hecho
parte de la programación por nosotres. Las funciones incorporadas en
el C++ y su versión en Arduino, están pensadas para incidir en senso-
res y actuadores, ya que este es su campo de aplicación particular. Las
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 25

podemos dividir en funciones digitales, que transmitirán o recolectarán


señales digitales (señales de dos valores, por ejemplo, encendido/apa-
gado) de sensores y actuadores, y en funciones analógicas, que trans-
mitirán o recolectarán señales analógicas (señales de varios valores)
de sensores y actuadores.

Sabías que…
Los microcontroladores en realidad no tienen la capacidad de
trabajar con señales analógicas, por lo que estas funciones deben
“traducirse”, recurriendo a los pines de la placa y a la Modulación
de Ancho de Pulsos (PWM). Los pines pueden traducir señales
analógicas a señales digitales, y al PWM lo podemos pensar como
un truco que permite simular una señal analógica partiendo de
valores digitales.

En este cuadro podemos ver las funciones más usadas de ambos tipos:

Función Tipo Uso


pinMode () Digital Setear un pin X para que sea de entrada
(INPUT), o de salida (OUTPUT).

digitalWrite() Digital Encender (HIGH) o apagar (LOW) un actuador.

digitalRead () Digital Captar si un actuador está apagado (LOW) o


prendido (HIGH).

analogWrite() Analógica Darle una determinada velocidad o intensidad a


un actuador, como un motor o un LED. Para esto
se transmitirá una señal analógica al actuador
con la ayuda de la Modulación de Ancho de
pulsos (PWM).
analogRead () Analógica Recolectar información que venga de un sensor
analógico. Frecuentemente la veremos precedi-
da por Serial.begin(). Esta función determina la
velocidad con la que se pasará la información
del sensor a la computadora. A esta transmi-
sión se le llama comunicación serial.

A las funciones también se las llama métodos.


FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 26

Variables
Las funciones están hechas para actuar a partir de parámetros o para
medir determinados parámetros. Estos podrán ser distintos en cada
ejecución del programa, es por ello que se les llama variables.

Para el caso de las funciones que encienden o apagan actuadores o


que le dan al actuador una determinada velocidad o intensidad -como
digitalwrite() o analogWrite()-, las variables son la información que la
función requiere para cumplir con su objetivo. Por ejemplo, si en un
programa se prenderá un LED usando digitalWrite(), esta función nece-
sitará saber dónde está el LED (en qué pin está conectado) y necesitará
saber qué tiene que hacer con el LED. Estas dos informaciones son las
variables, las podemos llamar“led” y “estadodelled”. Se pondrán dentro
del paréntesis que sigue a las función, como veremos a continuación.
En el caso de variables como “estadodelled”, que sólo pueden tener dos
valores posibles (encendido o apagado), es frecuente que se coloque
directamente el valor que tomará la variable: HIGH para encendido y
LOW para apagado.

En funciones que captan o recolectan información de sensores y actua-


dores -como digitalRead() o analogRead()-, la variable será el parámetro
que se esté midiendo. Por ejemplo, en un programa que monitorea la
temperatura usando AnalogRead() , la temperatura será la variable. En
estos casos, a esta no la veremos dentro del paréntesis que sigue a la
función, sino delante de la misma, de la siguiente manera:
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 27

Tipos de variables
Las variables que sólo pueden tener dos valores posibles, como “esta-
dosdeled”, son variables que toman valores constantes. Las empleare-
mos mucho en funciones digitales que trabajan con señales digitales, y
por ende sólo requerirán de dos valores.

Por otro lado, están las variables que podemos llamar analógicas,
como por ejemplo la temperatura. Pueden tener un amplio rango de
valores y las veremos precisamente en funciones analógicas.

Las variables analógicas ocupan mucho más lugar en la memoria del


microcontrolador que las digitales y constantes. Es por eso que antes
de usarlas hay que avisar al microcontrolador cuánto espacio les debe
guardar, y para ello anticipar en cuál de los siguientes rangos estarán
comprendidos sus valores:

Una vez anticipado el rango de valor que puede tener nuestra variable,
se lo avisamos al microcontrolador. A esto se le llama “declarar” la
variable, y puede realizarse antes del inicio del programa (en caso de
que la variable se vaya a usar en varias funciones del programa), o justo
antes de la función. Esto se hace así:

Simplemente antes del nombre de la variable se pone el abreviado del


rango en el que está. Para integer usamos int, para long integer usamos
long int, y para byte usamos byte.

Programando con software Arduino IDE


En caso de que ya tengas una placa Arduino, te recomendamos que
consultes el manual de instalación que encontrarás en los recursos al
comienzo de este curso.

Si sólo querés el software para probar y ensayar, simplemente descar-


galo en este link de forma gratuita: https://www.arduino.cc/en/software
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 28

Una vez completada la descarga, ya podrás usar el programa. Para ello


debés buscar el acceso en la carpeta “Arduino”. Lo podrás reconocer
porque tiene al lado el logo, que se ve así:

Como con todos los programas, lo podrás volver un acceso directo (que
esté a mano en el escritorio de tu computadora), en caso de que así lo
desees.

La interfaz de Arduino IDE se ve de la siguiente manera y tiene las


siguientes partes:

En la zona en blanco es donde escribiremos propiamente nuestro pro-


grama o sketch (como se le dice frecuentemente a los programas para
proyectos Arduino). El botón de compilar nos permitirá verificar que el
código está bien (la franja negra de abajo nos notificará de posibles
errores que tenga nuestro código). El botón de cargar a la placa, será
para ya asignarle a la placa el programa en el que estemos trabajando.
Luego, tenemos las opciones más familiares de Nuevo, Abrir y Guardar.

Haciendo un sketch
Si bien te quisimos explicar un poco de programación para que puedas
entender el funcionamiento de Arduino, y para que puedas reconocer y
modificar los diferentes elementos de los programas, te contamos que
en muchas ocasiones no tendrás necesidad de inventarlos o crearlos
desde cero. Arduino tiene una sección de “ejemplos”, donde ya vienen
varios sketches para distintos proyectos. Los encontrarás en el menú
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 29

“Archivo”, como indica la siguiente imagen.

Blink, por ejemplo, se puede encontrar ya listo en los Ejemplos. Se verá así
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 30

Los programas ya cargados en Arduino frecuentemente vendrán con


notas. Estas estarán entre asteriscos (*) o siguiendo doble barras (//). Son
únicamente apuntes explicativos, si se eliminan no afectarán el programa.

Además de los ejemplos, se pueden incorporar las llamadas “librerías”.


Estas suman funciones más especializadas que vendrán bien para
proyectos más específicos. Se pueden encontrar varias librerías en el
menú sketch, y también está la posibilidad de importarlas.

Además de estas opciones que ya vienen incorporadas en Arduino IDE,


existen plataformas donde se comparten los programas desarrollados
para distintos proyectos. El sitio https://github.com/ es quizás una de las
principales. Muchos tutoriales de proyectos de Arduino frecuentemente
facilitarán un link de github, donde encontraremos el código usado.

¿Y ahora?
En caso de tener una placa Arduino, con los conocimientos adquiridos
ya podrás llevar adelante proyectos sencillos de computación física,
como hacer que una luz LED parpadee.

Acá te dejamos un tutorial que explica en simultáneo


cómo hacer el programa y la instalación:
https://www.youtube.com/watch?v=SK_D5jx1GIQ

¿Querés más?
Te proponemos una serie de temas y conceptos para que los profundi-
ces y los investigues por tu propia cuenta:

Electricidad y circuitos
Como dijimos en el primer capítulo, lo que hace la electrónica es mani-
pular la electricidad para crear señales diferenciadas y transmitir infor-
mación. Por eso puede ser de gran valor entender conceptos básicos
de electricidad como voltaje, corriente, resistencia y circuitos.

Encontrarás que los componentes electrónicos funcionan con determi-


nados voltajes y corrientes, y que de los diagramas para armar proyec-
tos de computación física (schematics) incluirán símbolos que tienen
que ver con estos conceptos.

Componentes electrónicos
Además de los sensores, actuadores y microcontroladores que son la
base de cualquier proyecto de computación física, existen otros com-
ponentes electrónicos tales como protoboards, diodos, resistencias,
transistores, condensadores, etc
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA 31

A medida que decidas ir haciendo proyectos más complejos, es posible


que vayas necesitando componentes más específicos.

Señales
Las señales son prácticamente el corazón de la electrónica: es infor-
mación trasladada en forma de electricidad. Aunque hemos explicado
lo que son las señales digitales y las señales analógicas, es importante
que lo tengas muy claro, por lo que te invitamos a profundizar sobre
esos conceptos.

La computación física consiste en gran parte en percibir e interactuar


con fenómenos del mundo físico, por lo que será muy común la traduc-
ción de señales analógicas a digitales y viceversa. Te recomendamos
indagar sobre las distintas maneras en que esto sucede. Mencionamos
al PWM en este módulo, también podrás averiguar sobre los converso-
res CAD o ADC en inglés.

Tipos de microcontroladores
La Placa Arduino Uno que hemos presentado en este curso, es una de
las varias que tiene Arduino. Cada placa tendrá capacidades especí-
ficas para traducir señales analógicas a digitales y de comunicación
serial, entre otras.

Nuevamente, si decidís ir encarando proyectos más específicos, puede


que las características particulares de alguna placa te sean más útiles
que las del resto.

Existen otras plataformas además de Arduino para la computación


física, por ejemplo Raspberry Pi, que hace procesadores hasta un poco
más avanzados que permiten más de una función a la vez.

Herramientas
Para armar circuitos, y conectar sensores y actuadores a la placa, nece-
sitarás de algunas herramientas especiales de trabajo.

Programación: Estructuras-ciclos y condicionales


Además de funciones y variables, los lenguajes de programación tra-
bajan con estructuras. En Arduino tenés estructuras de ciclos y condi-
ciones que permiten que el microcontrolador elija entre dos opciones o
recorridos tomar.
aprendizaje

inclusión

Plataforma de
Aprendizaje
Virtual

También podría gustarte