Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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.
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
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.
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
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
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:
También gracias a uno o varios programas que estarán alojados en 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
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.
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í:
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
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:
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.
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:
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.
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.
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.
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 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 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
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
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.
7. Led de encendido: es un pequeño LED que se ilumina cuando la placa está correctamente alimenta-
da.
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:
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
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
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.
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
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.
¿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.
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