Piloto Primaria
Piloto Primaria
Piloto Primaria
Requisitos
ArduinoBlocks es una plataforma de programación online que permite gestionar cuentas personales
en las que puede crear, guardar y compartir proyectos. Para comenzar a trabajar, necesitaremos:
Todos estos requisitos iniciales, junto con las nociones de programación y los esquemas de
conexión, se irán trabajando secuencialemente en diferentes proyectos y capítulos a lo largo del año
escolar. Es por esto que resulta imprescindible realizar todos los ejercicios de forma ordenada (en
caso que ya usted tenga el TRINIKIT de proyectos).
Otra funcionalidad importante de esta plataforma es una opción para que los docentes creen proyectos que
pueden proponer a los alumnos. De esta forma, el profesor puede supervisar, evaluar y comentar el trabajo de
cada uno de sus alumnos de forma fácil y cómoda. En un mismo lugar se integran las herramientas para usar
en el proyecto, los detalles de conexionado y, además, se pueden adjuntar archivos como esquemas o
recursos útiles.
En ArduinoBlocks se lleva a cabo una programación gráfica (visual) por bloques. El programa se
organiza de la misma forma que en la programación con texto estructurado para Arduino, pero en
lugar de escribir el código, se arrastran y configuran bloques que equivalen a ese código.
El anterior puede ser un ejemplo básico de programación de una calefacción, que se activa a través
del puerto 8 cuando la temperatura es menor de 20 grados. Esta temperatura la obtenemos
conectando un sensor de temperatura al puerto analógico A0.
Se mostrará a lo largo de los siguientes capitulo y practicas como realizar los pasos necesarios para
llegar a cablear, programar y cargar secuencias de este tipo.
Inicializar: Aquí se introducen las órdenes, datos, lecturas, etc., que se realizan solamente una vez,
que es cuando se enciende (o resetea) la placa. Es un espacio que se aprovecha también para llevar
a cabo configuraciones iniciales.
Por ejemplo, si se está utilizando una comunicación Wifi, en el bloque Inicializar se guardan los datos
de la conexión, como la red, el usuario, la contraseña, etc. Son datos fijos que no van a variar en el
tiempo pero que son necesarios para ejecutar el resto del programa.
Bucle: Es el núcleo del programa. El conjunto de instrucciones que se introducen aquí, se ejecutan
de forma secuencial de arriba a abajo y se repiten constantemente, cientos de veces por segundo.
Estas instrucciones se repiten en “bucle”.
A cada lectura desde el inicio del bucle hasta el final, se le llama ciclo. Un ciclo comprende por tanto
el total de las instrucciones programadas, que serán chequeadas y ejecutadas constantemente
mientras se mantenga la placa encendida.
Muchos de los datos que se suelen colocar en el apartado Inicializar, se pueden ubicar también en
el Bucle. Puede que el programa funcione igual, el problema es que en el bucle se van a estar
leyendo esos datos cientos de veces por segundo, de forma innecesaria. Si no cambian en el tiempo,
basta con leerlos una vez y memorizarlos.
Se irán explicando a lo largo de los diferentes artículos, pero como elementos principales, tenemos:
• En la parte superior derecha, los iconos de guardar programa, cargar en Arduino, consola y
refrescar conexión.
• En el centro, la parte destinada a incluir el programa, dividida en los
bloques Inicializar y bucle.
• En la parte izquierda, la lista de apartados en los que se clasifican los diferentes bloques de
funciones disponibles.
Haciendo clic sobre cualquiera de los apartados de la parte izquierda de la pantalla, se encuentran
los diferentes bloques de funcionialidades, que son los que se arrastran dentro de Inicializar y Bucle.
Veremos mas adelante que hay partes del programa que se pueden incluir también fuera de estas
dos partes principales: las funciones.
¿Cómo programar en Arduino mediante bloques?
La Corporación Colegio Trinitario tiene en su proyecto TriniTech todo lo necesario para que nuestros
estudiantes, poco a poco se vayan apropiando de las diferentes herramientas de trabajo por medio
de las cuales alcanzaran los logros propuestos en cada proyecto de clase.
Hardware Arduino
A continuación grafica de la placa de Arduino, se sugiere que el estudiante aprenda sus partes ya
que esta placa será el pan de cada dia del proyecto de robótica en primaria y bachillerato, de tal
manera que cuando el docente o en el KIT se haga referencia a alguna parte ya sepa a que parte y
uso se refiere, también es posible que tenga esta grafica siempre a mano hasta que ya por el uso la
haya memorizado.
El proyecto Arduino® surge en el año 2003 como un proyecto de tesis de maestría (en ese entonces
el proyecto se llamaba Wiring). El objetivo era crear una herramienta para que más personas
pudieran aprender sobre electrónica sin necesidad de ser expertos; por el contrario, que los
creadores se pudieran enfocar en el contenido del proyecto. Por otro lado, el proyecto buscaba
generar una herramienta para enseñara y aprender de manera simple a programar y realizar
prototipos de electrónica. En el año 2005, la primera placa comercial fue introducida en el mercado,
destacando por su bajo costo.
• Crear una interfaz sencilla de utilizar para el usuario compatible con todos los sistemas
operativos, para crear programas (llamados “sketches”), con un editor muy simple.
• Que contenga un marco o lenguaje de programación basado en microcontroladores.
• Que integrara una cadena de herramientas completa y transparente para el usuario.
• La carga de los programas debería ser muy sencilla.
• Incluir un monitor del puerto serie para visualizar los datos enviados y/o recibidos desde el
microcontrolador.
• El software debería de ser de código abierto.
• El hardware debería de ser de diseño abierto basado en el microcontrolador Atmel.
• Que existiera una referencia completa en línea donde se pudieran consultar los comandos y
bibliotecas, tutoriales de ejemplo, foros y muestras de proyectos.
Por lo tanto, Arduino es una plataforma de prototipado electrónico de hardware y software abierto,
multiplataforma y libre.
Ahora que ya sabe lo que es Arduino, veremos para qué le puede servir, hasta donde puede ser útil,
y sus limitaciones.
Arduino es una de las mejores plataformas para aterrizar una idea en un prototipo. Puedes utilizar
cualquier versión de las placas Arduino para probar su sistema, hacer una versión rápida y
económica del funcionamiento de una idea que le surja.
Arduino fue creado pensando en el monitoreo y control; es decir, leer sensores y controlar
periféricos. Mas adelante, podrá ver ejemplos de esto.
En el mercado podemos ver distintas placas Arduino, desde unas muy pequeñas y de bajo
consumo eléctrico, hasta unas con muchos puertos de entradas y salidas. Todas funcionan de
manera similar, la diferencia es el número de puertos o entradas y salidas disponibles. Por lo que
constantemente escuchará la palabra placa, refiriéndose a una versión de estos dispositivos. La
placa más común y más comercializada es la placa Arduino UNO, en nuestro proyecto Trinitech
usaremos la última versión Arduino UNO R3.
Por otro lado, las placas Arduino contienen la electrónica necesaria para administrar la energía,
convertir voltajes así como mantenerlos estabilizados. Por lo que contienen pines (patitas,
conexiones físicas) que suministran distintos voltajes, así como la señal de tierra (referencia en todo
circuito eléctrico) hacia el exterior. Muchas veces estos pines nos sirven para alimentar a los
sensores externos, o para encender o apagar diodos emisores de luz (LEDs), entre otros
dispositivos.
Las placas Arduino necesitan de energía eléctrica para funcionar, típicamente son alimentados por el
mismo cable USB que utilizamos para programarlos. En este caso la alimentación la suministra la
computadora. Sin embargo, tenemos más posibilidades de alimentar nuestra placa, una es mediante
un conector de alimentación donde típicamente podemos utilizar un voltaje de entre 6 y 12 VCD
(volts de corriente directa). O por un pin llamado Vin, donde podemos conectar el voltaje proveniente
de otro circuito eléctrico. En muchas aplicaciones necesitamos portabilidad, por lo que el uso de
baterías es algo altamente recomendado para este tipo de plataformas electrónicas. Solo hay que
calcular el consumo energético de nuestro sistema completo para conocer el tiempo que durará
operando con la batería.
• Voltaje de operación: 5 V.
• Pines de entradas/salidas digitales: 14, de las cuales 6 son PWM.
• Pines de entradas analógicas: 6.
• Corriente máxima por pin: 20 mA, sin exceder de 200 mA de corriente combinando todas las
entradas/salidas. Si es alimentado por el puerto USB, el límite es de 500 mA.
• Velocidad de reloj: 16 MHz
Precauciones al utilizar la placa Arduino UNO
Si bien las placas Arduino son bastante robustas, hay que tener ciertas consideraciones para no
estropearlo. Arduino está diseñado para operar a voltajes de 3.3 V y 5 V. Si estás utilizando tanto las
entradas analógicas como los pines de entradas/salidas digitales, ten cuidado de no sobrepasar los 5
V como entrada. Como mencioné en el apartado anterior, la placa Arduino puede ser alimentada a
través del pin Vin, tienes que consultar la hoja de datos de la placa que estés utilizando y no
sobrepasar los niveles de voltajes y corrientes recomendados. Típicamente tendrán que estar por
debajo de los 12 VCD y 500 mA.
Al utilizar los pines de salidas digitales para alimentar otros sistemas electrónicos, hay que tener la
precaución de no sobrepasar los 40 mA. Aunque oficialmente Arduino indica que el límite es de 20
mA, se han probado si ningún problema hasta los 40 mA sin ocurrir un daño. Si necesitas de mayor
corriente, como por ejemplo para alimentar un servomotor, es necesario utilizar un relevador en la
salida digital, accionando un circuito de corriente eléctrica distinto y aislado (lo veremos más
adelante en un ejemplo).
Todas las versiones de placas Arduino incluyen algunos pines de entradas/salidas digitales. Estas
pueden operar como entradas o como salidas, pero no de manera bidireccional. Cualquiera que sea
el modo de operación, son capaces de detectar solamente dos valores alto o bajo.
Un valor alto, es igual a tener 5 VCD en su pin; un valor bajo, es igual a tener 0 VCD en su pin. En
código de programación lo observaremos como estados HIGH y LOW. Estos puertos de entradas y
salidas digitales nos permiten comunicarnos con otros dispositivos que funcionen de manera digital,
como sensores, servomotores, y mediante protocolos de comunicación en serie, donde la
información se envía en código binario, ceros y unos, 5 V y 0 V, HIGH y LOW.
Por otro lado, estos pines nos permitirán conocer el estado de ciertos dispositivos como detectar
cuando un botón está pulsado o no, activar o desactivar un relevador para encender o apagar otro
dispositivo de mayor capacidad eléctrica, encender y apagar un LED, entre muchas otras
aplicaciones.
Es muy interesante aprender a utilizar los protocolos de comunicación de manera correcta; sin
embargo, al utilizar Arduino nos podemos apoyar de las bibliotecas que la comunidad ha
desarrollado, facilitándonos el manejo, esto lo veremos más adelante.
Algunos de estos pines digitales vienen marcados con una tilde (~), indicando que es compatible
con salida de tipo PWM (Pulse Width Modulation, Modulación por Ancho de Pulso). Este tipo de
salidas suelen llamarse salidas analógicas; aunque realmente son salidas digitales. Las señales
PWM son señales que varían el tiempo que dura el estado alto y bajo de la señal, repitiéndola
constantemente. Al tiempo que dura en alto se le conoce como ciclo de trabajo (duty cicle). Variando
esta duración obtendremos en promedio un valor de voltaje. Cabe mencionar que la señal enviada
por el puerto PWM será repetida cada periodo; es decir, con cierta frecuencia. Esta señal se podrá
considerar como una señal analógica. En la tarjeta Arduino UNO, los pines PWM son: 3, 5, 6, 9, 10 y
11
La frecuencia de salida es de 490 Hz, excepto para los pines 5 y 6 que es de 980 Hz. En la siguiente
imagen podemos observar distintos ciclos útil, si esta señal la utilizamos para controlar el encendido
de un LED, lo que observaremos es una mayor intensidad conforme el ciclo útil se acerca al 100 %.
De manera similar, si la utilizamos para un motor, podremos variar su velocidad.
Entradas Analógicas
Las placas Arduino incluyen una serie de entradas de tipo analógicas indicadas con las etiquetas A0,
A1, …, hasta A5 (para el caso de Arduino UNO), que pueden recibir un voltaje continuo entre 0 y 5 V.
Estas entradas pueden ser utilizadas para interpretar la señal proveniente de un sensor analógico
que entrega su medición en un rango de 0-5 V. La señal proveniente de un divisor de voltaje, o de
cualquier aplicación donde el cambio en el voltaje represente un cambio físico, o químico que nos
brinde información. Para el caso de la placa Arduino UNO, tienes disponibles seis entradas
analógicas.
Para que nuestra placa interprete la señal de entrada, un convertidor analógico-digital (DAC) está
incorporado a ellas. Este convertidor transformará la señal analógica a una interpretación digital,
para el caso de Arduino, la resolución es de 10 bit.
Esto quiere decir que una señal de 0-5 V podrá ser representada con un valor digital de 0 a 1023,
donde el mínimo cambio de la señal de entrada que podrá ser detectado es de 4.9 mV (0.0049 V).
Estas conversiones requieren de un tiempo para ser transformadas, a la placa Arduino UNO, Nano,
Mini o Mega, les toma 100 µs (0.0001 s); es decir, podrás hacer hasta 10,000 conversiones por
segundo. Como siempre te he recomendado, antes de utilizar tu placa, es importante que consultes
la hoja de datos que el fabricante te proporciona, sobre todo si estás utilizando una placa distinta a
Arduino UNO, ya que es la que yo estaré utilizando para darte ejemplos (casi siempre).
Trinitech emplea la placa de entrenamiento Triniluz para enseñar los fundamentos de programación
desde AduinoBlocks, también haremos uso de mBlock para interactuar con robots digitales y los
diferentes juegos y aplicaciones que se pueden desarrollar y programar en este entorno, donde
también aparece como uno de ellos esta libélula
Triniluz cuenta con mas de 25 aplicativos programables tanto en el IDE de Arduino como en
ArduinoBlokcs y en mBloc así como con juegos y retos para los estudiantes
La funcionalidad de cada proyecto está bastante simplificada. El objetivo del piloto es mostrar las
posibilidades de la plataforma con aplicaciones reales sencillas que pueden ir escalando según el
estudiante vaya desarrollando sus competencias computacionales.
Obviamente la limitante de los 3 días es un factor que juega en contra pero servirán para ver
dificultades y adaptar las estrategias y procesos dentro del proyecto, desde ya muchas gracias por
todo su apoyo estimados padres de familia
BIENVENIDOS