Está en la página 1de 29

Fundamentos de la

Computación Física
Una Iniciación en la Robótica

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
Unidad
1

Surgimiento
e Historia de la
Robótica Moderna
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

Módulo 1: Surgimiento e historia de la


robótica moderna

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


La posibilidad de crear objetos que realicen acciones por sí mismos (autómatas), ocupó la imagina-
ción y la inventiva humana durante siglos. En el siglo XVIII, los avances de la mecánica promovidos
principalmente por la relojería, permitieron concretar modelos bastante avanzados como “la pianis-
ta”, 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, pode-
mos 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.

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ía-
mos decir que la electrónica permite “manipular
la electricidad” para lograr tener señales eléctri-
cas distintas y diferenciadas. Esto implica que la
electricidad se podrá usar para transmitir infor-
mació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úme-
ro de veces y de determinada forma, dependien-
do del mensaje; cada una de estas pulsaciones
“La pianista”, de Pierre Jaquet-Droz genera una señal eléctrica distinta, que a su vez
serán recibidas por otra persona 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 de-
cir, entonces, que con la electrónica aparecen los dispositivos eléctricos y las telecomunicaciones, 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 conocimientos científicos y técnicas
que hacen posible el tratamiento automá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

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

sencilla, una computadora es un dispositivo al que se le pueden ingresar datos y los puede procesar
mediante operaciones matemáticas y lógicas (por ejemplo, verificar si dos valores son iguales), ge-
nerando 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 primeras) ya que, con una pe-
queña injerencia de una persona, permitía hacer operaciones sencillas y almacenar los resultados,
logrando así hacer varias operaciones continuas y acumulativas.
4

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 la “Máquina Analítica”, una sofisticada computadora que iba a
funcionar a máquina de vapor), la electrónica significó una oportunidad sin precedentes de aumen-
tar la memoria de las computadoras y su velocidad de procesamiento. Se podía entonces hacer
muchas operaciones en tiempos rapidísimos e irlas almacenando, permitiendo procedimientos
acumulativos complejos. De esta forma, se ampliaban los horizontes 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 “lengua-
jes de alto nivel” que, aunque con modificaciones, perduran hasta el día de hoy.

Hoy en día nos rodean computadoras: las personales, los celulares, los robots y muchos dispositi-
vos electrónicos son técnicamente computadores. Sin embargo, en lo que resta de curso, hablare-
mos de computadoras 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óma-
tas 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 adelan-
te), 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.

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

En este video podés ver el funcionamiento de Unimate, uno de los primeros


robots modernos diseñado por George Devol en 1954:
https://www.youtube.com/watch?v=hxsWeVtb-JQ

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 interactivos 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 em-
bargo, la robótica está todavía lejos de imitar la inteligencia humana.

1 https://youtu.be/UMpdN3E_qVw

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

¿Cómo funcionan los robots?


Más formalmente, podríamos decir que un robot es una entidad o dispositivo funcional y programa-
ble, 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 anteriormen- 6
te), 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ónicos, y en el módulo 4 ahonda-


remos 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 pro-
ducidos artesanalmente. Los llamaremos “proyectos de computación física”. En el próximo módulo
aprenderemos 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.  

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

Unidad
2

Arduino y sus
Posibilidades

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

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 ca-
mino vertiginoso y acelerado. A la par de los avances técnicos, surgen reflexiones acerca del acceso 8
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 di-
fusió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 primeras


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

Es interesante prestar atención a la crítica a las computadoras personales 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 tecnologí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.

La computación física
Ya en el siglo XXI, Dan Sullivan y Tom Tigoe escriben el
libro “Computación física” (2004), donde retoman algunas
de las nociones de “computación ubicua”. Coinciden en
que las computadoras personales son poco amables, y
argumentan que están pensadas para personas que sola-
mente 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 concepto

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

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 robó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 pensa-


miento que cobraron gran relevancia en las últimas 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 importante
9
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 modificación de contenidos crea-
tivos. 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 “software libre” con la idea de
que el mismo sea gratuito, cuando en realidad 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.

El software libre se diferencia de lo que comúnmente llamamos “software privativo”. Esta distinción
no tiene que ver con el arancel del producto: un software libre puede ser pago, al igual que un sof-
tware 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 determinado 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 progra-
mas 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 programa 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 condicio-
nes de uso que establece cada uno. Incluso un programa libre y uno privativo pueden ser en aparien-
cia prácticamente iguales:

Si un programa libre es diferente de un programa privativo diseñado para re-


solver el mismo problema, la diferencia no se debe a la naturaleza libre o no
de cada programa, sino a las decisiones de diseño que tomaron los autores
cuando los escribieron. (Heinz, 2007)2

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.

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

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
dispositivo), 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 10
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.

Importancia del Software Libre en las sociedades 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 descubrimientos que se hacen sobre conocimientos anteriores... ¿cómo determinar hasta qué
punto una persona o empresa tiene derecho a restringir el acceso a ese conocimiento? ¿En qué me-
dida 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 Beatriz Busaniche reflexiona


sobre estas cuestiones:
https://www.youtube.com/watch?v=c-0tEvw1i4s&t=29s

¿Cómo nació Arduino?


Una de las experiencias de computación física más interesantes a nivel mundial en relación al desa-
rrollo de proyectos a partir de software y hardware libre es el proyecto Arduino.

Como muchas de las grandes innovaciones, Arduino nació ante una necesidad. 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 estudia-
ban computación y electrónica. El objetivo original del proyecto, entonces, fue crear una herramienta

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

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 Hernando 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 con-
vertirse en una de las herramientas de aprendizaje para el desarrollo de proyectos de computación
11
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 documen-


tos, 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 el sistema educativo convencional. Comencé dando clases de
electrónica a estudiantes de diseño gráfico y en el mundo 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 ex-
traordinaria 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 especia-
lista 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 resol-
ver 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écnicas básicas de la placa Arduino,
para tener un mejor panorama de su funcionamiento y posibilidades.  

3 https://www.diagonalperiodico.net/saberes/arduino-es-sistema-educativo-democratiza-la-tecnologia.html

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

Unidad
3

12

La Electrónica en la
Computación Física

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

Módulo 3: La electrónica en la
computación física
¿Cómo funciona un proyecto de computación física?
13
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 funcio-
namiento básico, cuyos elementos son los que le permiten lograr la interacción con el entorno:

PLACA DE CONTROL
SENSORES (donde está el procesador ACTUADORES
o 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 ejecutar las órdenes que tenga almacenadas en su memoria.

Cuando hablamos de un “microcontrolador”, nos estamos refiriendo específicamente a un procesa-


dor 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 elec-
trónica posibilita que este programa, microprocesador mediante, active los sensores y actuadores.

Analicemos con mayor profundidad cada elemento del circuito.

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

Los sensores pueden clasificarse de varias maneras, según el parámetro que se tenga en cuenta.

Una posible clasificación puede realizarse a partir del tipo de salida que proporcionan. Los más

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

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ñales 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
14
sentido, podemos hablar de sensores mecánicos (detectan parámetros relacionados con acciones
mecánicas, contactos, aceleración, etc.), ambientales (vinculado a medidas de temperatura, hume-
dad, 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 mecá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 informa-
ción, que habla sobre el entorno, pero ahora transformada en señales eléctricas, es proporcionada
por los sensores al microcontrolador.

Es importante tener en cuenta que esa información que el sensor “entrega” 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 sen-
sor y el sistema de control sean compatibles, y en el caso de que no, averiguar si puede “adaptarse” la
salida para lograr compatibilidad.

Algunos ejemplos
Existen muchos tipos de sensores, que podemos utilizar dependiendo qué queramos lograr con
nuestro proyecto de computación física. Veamos 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 ambiente. Son muy utilizados para el
diseño de alarmas y dispositivos de seguridad.

Sensores LDR o de fotorresistencia: permiten detectar brillo. Son utilizados 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 temperatura, 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.

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

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 15
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” y “distribuidos”. Los sistemas centralizados consisten en
un único módulo de control que recibe todas las señales proporcionadas por los sensores, las pro-
cesa, 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 sistemas 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 movimiento, luz,
sonido, fuerza, rotación, entre otros.

Los actuadores, al igual que los sensores, pueden manejarse mediante 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 dispositivos, como motores, luz de led,
relés, pistones, válvulas, etc. En muchos casos, el actuador es un elemento que pone en marcha
alguno de estos equipos.

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

Imaginemos un ejemplo sencillo en el que se pongan en juego los distintos componentes: un disposi-
tivo que, cuando un auto está estacionando, nos avise si está cercano a otros objetos. Para elaborarlo
podríamos 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 programamos el microcontrolador para que a partir
de un determinado valor, se encienda la luz de LED.

16
¿Qué es Arduino?
Como comenzamos a ver en el módulo anterior, Arduino es una plataforma 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 encontra-
mos el microcontrolador), y el software opera en lo que llamamos Arduino IDE (Entorno de Desa-
rrollo Integrado), usado para escribir y cargar código desde la computadora a la placa física. Las
placas 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 informa-
ción del entorno a través de los sensores que le instalemos, y actuar sobre aquello que lo rodea,
controlando luces, motores y otros actuadores. Las “órdenes” de lo que queramos que haga el
microcontrolador las elaboramos mediante el lenguaje de programació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.

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

1. Botón de reseteo: sirve para iniciar el programa cargado en el microcontrolador 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 computadora al microcontrolador,
como para dar electricidad al Arduino.

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


17
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 alimenta-
da.

8. Microcontrolador: procesador que se encarga de ejecutar las instrucciones de los programas; es


el “cerebro” de Arduino.

9. Regulador de tensión: sirve para controlar la cantidad de electricidad 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 ter-
minales del LED deberán conectarse en los pines de entrada 13 y GND (que es la toma a tierra).

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

Como vimos, lo interesante de Arduino es que al permitirnos crear prototipos electrónicos de mane-
ra 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 controlar el riego automático en un jardín, automati-
zar 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 empe-
zar a darle vida a estos componentes electrónicos. 
18

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

19

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

Módulo 4: La Programación en la
Computación Física
¿Cómo funcionan los programas?
20
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 funcio-
nes 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 compro-
baciones y operaciones que deben hacer para cumplir una función determinada. A estas instruccio-
nes se las llama 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 fun-
ció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 espe-
cialistas 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 programación por nosotres,
como veremos más adelante con las funciones.

Existen muchos lenguajes de alto nivel, y cada uno es idóneo para desarrollar 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 hechos, 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, particularmente los
hechos con Arduino.

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).

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

21

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 encen-
dido 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 sensores y actuadores, ya que este es su campo
de aplicación particular. Las podemos dividir en funciones digitales, que transmitirán o recolectarán
señales digitales (señales de dos valores, por ejemplo, encendido/apagado) de sensores y actua-
dores, y en funciones analógicas, que transmitirán o recolectarán señales analógicas (señales de
varios valores) de sensores y actuadores.

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

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 Modu-
lació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.
22

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.

Variables
Las funciones están hechas para actuar a partir de parámetros o para medir determinados paráme-
tros. 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 in-
formació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 necesitará 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

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

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 directamen-
te el valor que tomará la variable: HIGH para encendido y LOW para apagado.

23

En funciones que captan o recolectan información de sensores y actuadores -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 ca-
sos, a esta no la veremos dentro del paréntesis que sigue a la función, sino delante de la misma,
de la siguiente manera:

Tipos de variables
Las variables que sólo pueden tener dos valores posibles, como “estadosdeled”, son variables que
toman valores constantes. Las emplearemos mucho en funciones digitales que trabajan con seña-
les 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 comprendi-
dos sus valores:

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

A las variables de este rango, el


Rango Byte Entre 0 y 255 microcontrolador les guardará 8
bit de memoria.

A las variables de este rango, el


24
Rango integer Entre -32.768 y 32.767 microcontrolador les guardará 16
bit de memoria.

A las variables de este rango, el


-2.147.483.648 y el
Rango long integer microcontrolador les guardará 32
2.147.483.647
bit de memoria.

Una vez anticipado el rango de valor que puede tener nuestra variable, se lo avisamos al microcon-
trolador. 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 instala-
ción que encontrarás en los recursos al comienzo de este curso.

Si sólo querés el software para probar y ensayar, simplemente descargalo en este link de forma
gratuita: https://www.arduino.cc/en/software

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

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. 25

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 programa 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 ten-
ga 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ú “Archivo”, como indica la siguiente imagen.

Blink, por ejemplo, se puede encontrar ya listo en los Ejemplos. Se verá así

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

26

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

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 libre-
rí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 27
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 profundices y los investigues por tu
propia cuenta:

Electricidad y circuitos
Como dijimos en el primer capítulo, lo que hace la electrónica es manipular la electricidad para crear
señales diferenciadas y transmitir informació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 determinados voltajes y corrientes, y
que de los diagramas para armar proyectos 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 componentes electrónicos tales como protoboards, diodos,
resistencias, transistores, condensadores, etc

A medida que decidas ir haciendo proyectos más complejos, es posible que vayas necesitando com-
ponentes más específicos.

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

Señales
Las señales son prácticamente el corazón de la electrónica: es informació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 traducció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 28
este módulo, también podrás averiguar sobre los conversores 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 comu-
nicación serial, entre otras.

Nuevamente, si decidís ir encarando proyectos más específicos, puede que las características parti-
culares 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, necesitarás de algunas herramien-
tas especiales de trabajo.

Programación: Estructuras-ciclos y condicionales


Además de funciones y variables, los lenguajes de programación trabajan con estructuras. En Ar-
duino tenés estructuras de ciclos y condiciones que permiten que el microcontrolador elija entre dos
opciones o recorridos tomar.

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública
FUNDAMENTOS DE LA COMPUTACIÓN FÍSICA: UNA INICIACIÓN EN LA ROBÓTICA

29

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública

Jefatura de
Gabinete de Ministros Secretaría de
Argentina Innovación Pública

También podría gustarte