Archivo de la categoría: Arduino

Programación en las Escuelas

Una de las grandes ventajas en llevar a cabo proyectos con Arduino, aparte de su sencillez y las enormes posibilidades de comunicar e interaccionar con los objetos, es que podemos utilizar un buen surtido de herramientas de programación gráfica con lo que nos ahorraremos bastante tiempo durante el aprendizaje y el diseño del software.

En este taller hemos optado por centrarnos: mBloq, Snap4Arduino y Visualino.

Dirigido a:

  • Profesores que tengan que abordar la programación de Arduino con sus alumnos en los niveles de ESO, Bachillerato, Formación Profesional y Universidad.
  • Alumnos que estudien la plataforma Arduino y sus aplicaciones.
  • Aficionados y entusiastas de Arduino.
  • Artistas y diseñadores que trabajen con Arduino.
  • Interesados en las aplicaciones educativas y de interacción con Scratch.

Cada vez hay más defensores de enseñar programación en la educación obligatoria por mil motivos, pero especialmente porque va a ser difícil entender el mundo digital que estamos viviendo y que viene sin conceptos de programación, y además porque este es uno de los puntos que más se atascan en algunos centros: ¿Programación, de acuerdo… pero qué?

Por debajo de los 14 -15 años, prima aprender a programar jugando y definitivamente con un sistema de bloques: Scratch, Scratch for Arduino S4A, App inventor y similares y hasta mBlock. Todos estos lenguajes están basados en una lógica de bloques de colores que encajan o no entre sí de modo que se va completando una secuencia de operaciones clara, que representa el programa que cargaremos en el sistema de ejemplo.

Sea cual sea de los diferentes lenguajes el que se elija depende mucho del gusto del profesor y de los objetivos del centro, pero la razón básica de estos lenguajes es enseñar al alumno a pensar en los conceptos de programas secuenciales. Y es eso se consigue con cualquiera de ellos.

Parece que hay un acuerdo de empezar por Scratch que puede correr en un PC cualquiera, a partir de unos 8 años (antes puede usarse sea Makey Makey) e ir poco a poco incorporando conceptos como la programación de móviles Android con App Inventor e ir después a Arduino con S4A (Scratch for Arduino) porque es una manera muy sencilla de iniciarse no solo ya con la programación, sino también con la relación de los programas y el mundo físico.

Cuando vayamos acercándonos al final de la educación básica, la robótica con mBlock se ajusta magníficamente a todos estos conceptos y nos permitirán fijar ideas básicas de múltiples conceptos de un modo natural al ver los robots moviéndose. mBlock es ideal para todos los temas de robótica y es el paso siguiente a Scratch.

Una cuestión clave en todo esto es que parece haber un consenso general por ahí de no iniciar en C++ con Arduino a los chavales antes de los 14-15 años. La programación simbólica mediante frases propia de los lenguajes de alto nivel, no parece encajar con el desarrollo promedio de las personas de esta edad.

Más información: https://www.prometec.net/formacion-en-tecnologia-y-robotica-i/

Anuncios

Documentar Proyectos Educativos

A la hora de realizar un proyecto de cualquier tipo y especialmente en educación, es importante documentar adecuadamente los proyectos. Disponemos de muchas herramientas on-line para poder hacerlo.

Además en el uso de hardware libre cobra especial importancia documentar el proyecto no solo para nosotros mismos o los alumnos sino para compartir con la comunidad y que nuestros proyectos sean replicado e incluso mejorados por otras personas, pueda reutilizarse el material y extendamos el conocimiento libre con nuestro trabajo.

Un magnífico ejemplo de todos esto es el proyecto El Cable Amarillo http://www.elcableamarillo.cc/. Proyecto educativo para fomentar el uso de la Programación y Robótica en los centros educativos de Murcia.

Fritzing

Fritzing es el programa por excelencia para la realización de esquemas eléctricos en proyectos con Arduino y es open source. Dispone bibliotecas con la mayoría de componentes (http://fritzing.org/parts/), incluido los propios Arduinos, placas de conexiones, led, motores, displays, etc. Además permite hacer esquemas eléctricos, diseñar nuestro PCB final y un sinfín de opciones que convierten a este programa en una herramienta muy útil.

También nos permitirá obtener el esquema eléctrico, listado de componente usados y el diagrama para poder fabricar la PCB. Luego podemos solicitar que nos hagan la pcb con el servicio Fritzing Fab: https://go.aisler.net/fritzing. Nos permitiría diseñar un shield propio y que nos los construyan.

Podemos explorar otros proyectos y usarlos: http://fritzing.org/projects/

Para aprender más sobre Fritzing: http://fritzing.org/learning/

Librería de partes: http://fritzing.org/parts/

Fritzing no es un simulador, pero las nuevas versiones de Fritzing permite guardar el código de un diseño e incluso cargarlo en Arduino.

Enlaces:

Arduino Project Hub

Arduino project hub: https://create.arduino.cc/projecthub

Arduino Project Hub es un lugar donde poder ver proyectos realizados con Arduino y también poder compartir los proyectos propios.

Cuando queremos publicar un proyecto en Arduino Project Hub es muy sencillo porque separa por apartados todo lo que tenemos que documentar el proyecto:

  • Nombre del Proyecto
  • Imagen de portada
  • Nivel de dificultad
  • Historia de Proyecto
  • Lista de Materiales (BOM)
  • Aplicaciones y Servicios On-line Usados
  • Descripción de proyecto
  • Herramientas
  • Esquemáticos y diagramas de circuito
  • CAD
  • Código

Cómo enviar un proyecto: https://create.arduino.cc/projecthub/Arduino_Genuino/how-to-submit-content-on-arduino-project-hub-cf2177

Guideline: https://create.arduino.cc/projecthub/guidelines

Arduino Project Hub está basado en Hackster: https://www.hackster.io/

Arduino Web Editor

Arduino.cc ha sacado un IDE on-line llamado Arduino Web Editor que puede usarse en lugar del IDE que acabamos de ver. Este IDE on-line está dentro del proyecto Arduino Create accesible desde https://create.arduino.cc/ y incluye varios apartados.

Para usar este IDE es necesario instalar un plugin y mediante este wizard online es posible instalarlo: https://create.arduino.cc/getting-started/plugin

También es importante señalar que es necesario crearse una cuenta de arduino.cc para poder usar este IDE on-line.

Getting started con Arduino Web Editor: https://create.arduino.cc/projecthub/Arduino_Genuino/getting-started-with-the-arduino-web-editor-4b3e4a

Arduino Web editor no solo permite publicar el código hecho sino también genera un fichero de documentación y pueden subirse imágenes y esquemas de montaje.

Sigfox Bike Tracking: https://www.hackster.io/aprendiendoarduino/bike-tracking-system-with-dead-man-alert-22da0b

Instructables

Instructables es la web más usada para publicar cualquier tutorial, paso a paso o proyecto que hagamos y no solo de Arduino, sino de cualquier otra cosa, desde una tarta o un disfraz hasta el montaje de una red inalámbrica para IoT.

Web: https://www.instructables.com/

Instructables Arduino: https://www.instructables.com/howto/Arduino/

Instructables Electrónica: https://www.instructables.com/classes/tagged/electronics/

Instructables mBlock: https://www.instructables.com/id/mBlock/

Tutorial de uso de Instructables: https://www.instructables.com/about/create.jsp

Halloween candy Counter: https://www.instructables.com/id/Halloween-Candy-Counter/

Tinkercad

Tinkercad es un software gratuito online creado por la empresa Autodesk, una de las empresas punteras en el software de diseño 3D.

Tinkercad: https://www.tinkercad.com/

Tinkercad ofrece:

  • Aplicación de diseño e impresión 3D
  • Simulador de circuitos, incluido Arduino
  • Diseños 3D interactivos con electrónica:
  • Publicar nuestro proyectos
  • Ver otros proyectos y clonarlos: https://www.tinkercad.com/things/v2#/things

Tinkercad ciircuitos https://www.tinkercad.com/circuits

Y más…

Github

GitHub es una forja (plataforma de desarrollo colaborativo) para alojar proyectos utilizando el sistema de control de versiones Git. Se utiliza principalmente para la creación de código fuente de programas de computadora.

Web: https://github.com/

Características

  • Wiki para cada proyecto.
  • Página web para cada proyecto​
  • Gráfico para ver cómo los desarrolladores trabajan en sus repositorios y bifurcaciones del proyecto.
  • Funcionalidades como si se tratase de una red social, por ejemplo, seguidores.
  • Herramienta para trabajo colaborativo entre programadores.
  • Gestor de proyectos de estilo Kanban.

Github puede ser una excelente herramienta de documentación, pero es más compleja de usar y solo es adecuada para usuarios avanzados.

Los documentos con formato se escriben en Markdown https://es.wikipedia.org/wiki/Markdown

Proyectos Básicos con Arduino

Proyectos básicos de programación Arduino con mBlock. mBlock es un entorno gráfico de programación por bloque para Arduino, que permite introducir de forma sencilla la programación y robótica en el aula.

mBlock se compone de 5 partes principalmente:

  • Grupo de instrucciones clasificadas por colores en las siguientes categorías:
    • Movimiento: Conjunto de instrucciones relacionadas con el control de los pines de la tarjeta de Arduino, así como el control del movimiento de cualquier personaje del escenario.
    • Apariencia: Instrucciones orientadas a modificar el aspecto de los personajes de nuestra aplicación. Para el caso de Arduino, es un conjunto de instrucciones que apenas se utiliza.
    • Sonido: Conjunto de instrucciones relacionadas con la elaboración de aplicaciones musicales, emitiendo sonidos y notas musicales.
    • Lápiz: Scratch nos ofrece la posibilidad de que los personajes dejen un rastro durante sus movimientos por el escenario como si arrastrase un lápiz durante su trayectoria.
    • Control: Las instrucciones incluídas en esta sección son impresindibles para crear la lógica de nuestros programas. Incluyen condicionales, bucles y llamadas de procedimientos.
    • Sensores: Instrucciones de iteración con el ratón, el teclado, sonidos y los personajes.
    • Operadores: operaciones matemáticas, lógicas y con cadenas de texto.
    • Variables: Instrucciones para el almacenamiento y gestión de datos.
  • Instrucciones de programación: Las instrucciones de cada grupo corresponden a instrucciones de programación.
  • Editor: Es la parte principal donde estructuramos y programamos nuestro programa.
    • Programas: Se compone de todas las instrucciones que hace funcionar el código que programemos.
    • Disfraces: Cada objeto puede tener diferentes apariencias o disfraces para utilizar a lo largo de nuestro programa.
    • Sonido: También es posible añadir o grabar sonidos y guardarlos para futuros usos.
  • Escenario o ventana principal: Es el resultado de nuestro programa.
  • Objetos y sprites: Distinguimos principalmente los objetos de tipo Arduino y Sprites.
    • Los objetos de tipo arduino son aquellos que interactuán con Arduino.
    • Los sprites son similares al entorno de scratch y no interactúan con Arduino.

Instalar mBlock es muy sencillo, toda las instrucciones están disponibles desde la web: https://www.makeblock.es/soporte/mblock/

Web de descarga: http://www.mblock.cc/software/

mBlock ha sacado una beta de un entorno de programación on-line en http://editor.makeblock.com/ide.html

Más información sobre mBlock: https://aprendiendoarduino.wordpress.com/2017/09/08/programacion-visual-con-mblock/

Modo Ejecutar Programa desde PC

En este modo es necesario siempre tener el Arduino o el robot siempre conectado al PC.

Para usar este modo comenzaremos el programa con un bloque de la categoría “Eventos”, normalmente con el bloque de la bandera verde. Y debajo de este colocamos el resto de bloques del programa.

Para ejecutar el programa desde el PC, primero tenemos que seleccionar la placa y el puerto serie al que esté conectado el Arduino. Conectamos el cable USB al Arduino y seleccionamos la placa en “Placas->Arduino UNO” y el puerto en “Conectar->Puerto Serie”.

A continuación “Conectar > Actualizar Firmware” y esperamos a que termine de cargarlo.

Tutoriales de uso:

Modo Subir Programa a Arduino

En este modo no cargamos un firmware a la placa sino que sube el programa al Arduino. En este modo usamos como inicio del programa el bloque “Programa de Arduino” que se encuentra en la categoría “Robots”.

Para este modo pulsamos sobre el bloque “Programa de Arduino”  o vamos a “Editar->Modo Arduino”. En la parte derecha de la pantalla aparecerá una pantalla con algunas opciones nuevas y el equivalente en código del programa que hemos hecho con los bloques.

Luego para subir el sketch al ordenador pulsamos sobre el botón “Subir a Arduino” y esperamos a que termine de cargar.

Tutorial para usar Arduino con mBlock:

Más información:

Semáforo Simple

En esta práctica vamos a crear un semáforo simple con una frecuencia de cambio de 5 segundos en verde y rojo, y 1 segundo durante su estado en ámbar.

Tutorial: https://github.com/ElCableAmarillo/Listado-de-practicas/tree/master/Salidas-digitales/Sem%C3%A1foro-simple

Movimiento de un Servomotor

En esta práctica el servomotor se mueve desde su posición origen a su posición final en ángulos de 10° repetidamente.

Tutorial: https://github.com/ElCableAmarillo/Listado-de-practicas/tree/master/Salidas-anal%C3%B3gicas/Movimiento-de-un-servomotor

Pulsador Simple

En esta práctica vamos a programar un interruptor para encender un led en un momento dado.

Tutorial: https://github.com/ElCableAmarillo/Listado-de-practicas/tree/master/Entradas-digitales/Pulsador-simple

Detectando Colores

En esta práctica tenemos que detectar los colores por los cuales se mueve nuestro personaje para activar los diferentes diodos Led de la placa de prototipado.

Tutorial: https://github.com/ElCableAmarillo/Listado-de-practicas/tree/master/Pr%C3%A1cticas-de-iniciaci%C3%B3n/mBlock/Detectando-colores

Brújula con Servo

En esta práctica vamos a mover un servo mediante las flechas del teclado y activando sendos diodos Led al final de carrera.

Tutorial: https://github.com/ElCableAmarillo/Listado-de-practicas/tree/master/Pr%C3%A1cticas-de-iniciaci%C3%B3n/mBlock/Br%C3%BAjula-con-servo

Más sobre programación por bloques en el Taller de Programación Visual Arduino: https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2018-logrono/taller-programacion-visual-arduino/

Más información:

Primeros Pasos Programación Arduino

Aunque se hable de que hay un lenguaje propio de programación de Arduino, no es cierto, la programación se hace en C++ pero Arduino ofrece unas librerías o core que facilitan la programación de los pines de entrada y salida y de los puertos de comunicación, así como otras librerías para operaciones específicas. El propio IDE ya incluye estas librerías de forma automática y no es necesario declararlas expresamente.

Toda la información para programar Arduino se encuentra en el reference de la web de Arduino: https://www.arduino.cc/en/Reference/HomePage. Este es el core o API de Arduino.

Un manual sencillo de entender para la programación es el “arduino programming notebook” de brian w. Evans. Puedes consultarlo o descargarlo desde:

Cuando compilamos y cargamos el programa en Arduino esto es lo que ocurre:

Además de la programación tradicional de Arduino, existen varios proyectos para programar Arduino de forma visual añadiendo bloques al estilo de scratch, blockly o similar.

Vamos a introducir la programación y electrónica con Arduino utilizando los lenguajes de programación por bloques y lenguajes de programación en modo texto:

Proyectos de programación visual:

Plataformas para que los niños aprendan a programar en Arduino y Scratch: http://www.ticbeat.com/educacion/plataformas-para-que-los-ninos-aprendan-a-programar-en-arduino-y-scratch/

Papers sobre la enseñanza de programación con bloques:

Independientemente del sistema operativo que utilicemos y del método de programación, la primera vez que conectamos una tarjeta de Arduino a nuestro equipo, observaremos que será necesario instalar los drivers de la misma. Para instalar el IDE de Arduino seguir las instrucciones de https://aprendiendoarduino.wordpress.com/2018/04/03/instalacion-software-arduino-2/

Primer Sketch con Arduino

Para comprobar su correcto funcionamiento conectamos la tarjeta al ordenador a través del cable USB y automáticamente el ordenador la reconocerá. Además, al instalar Arduino IDE, los drivers de la tarjeta quedan instalados en el PC.

Para comprobar que todo funciona correctamente ejecutar el ejemplo blink en el IDE Arduino que consiste en hacer parpadear el led integrado que lleva Arduino u otro led conectado a un pin digital a través de una resistencia.

NOTA: en caso de usar un led, no olvidar poner una resistencia con un valor entre 220 ohms y 1K ohms

Este es el esquema a usar:

Conexiones internas de la protoboard son así:

Cómo usar una protoboard o breadboard:

Pasos a seguir:

  • Abrir la aplicación Arduino
  • Abrir el ejemplo blink

  • Leer el programar y entender lo que está haciendo
  • Seleccionar la placa y el puerto adecuado

  • Cargar el programa pulsando el botón “subir”. El programa se compila y luego se verá parpadeando los leds Tx y Rx de Arduino, indicando que se está cargando el fichero binario (.hex) en la flash del Arduino. Cuando aparezca el mensaje “subido” habremos acabado.
  • Unos segundos después veremos el LED parpadeando.

Más información:

Ejemplo de Itinerario Educativo

Ejemplo de itinerario formativo en programación y robótica basada en Arduino desde 3º de infantil hasta secundaria, dividido en cinco niveles. Metodología desarrollada en la UNED.

Competencias:

  • Pensamiento computacional
  • Emprendimiento de proyectos y creatividad
  • Aprendizaje autónomo y resolución de problemas

Habilidades sociales:

  • Trabajo colaborativo y por equipos
  • División del trabajo por roles
  • Comunicación y debate

Descubrimiento (3º Infantil – 1º Primaria)

Objetivos: Aprender a construir secuencias de instrucciones, anticipar el comportamiento de un robot, utilizar constructores básicos de programación, trabajar en equipo

Materiales: BeeBots, Scratch Jr, Light Bot

Iniciación (2º – 3º Primaria)

Objetivos: Programar robots sencillos que ineractúen con el entorno mediante motores y sensores, construir máquinas sencillas siguiendo un manual, utilizar lenguajes de programación basados en bloques, división del trabajo por roles

Materiales: Lego WeDo, Scratch Jr., Makey Makey, Circuit Scrib, Minecraft Ed.

Creación (4º – 5º Primaria)

Objetivos: Desarrollar proyectos propios de programación y videojuegos, resolver retos de complejidad media, construir robots sencillos, programar placas controladoras, comunicar ideas y proyectos propios

Materiales: Scratch, Lego WeDo, Zowi, BitBloq, Ollo Action

Invención (6º Primaria – ESO)

Objetivos: Empezar a utilizar abstracciones de programación, construir y programar robots autónomos de complejidad media, utilizar herramientas digitales para compartir proyectos.

Materiales: Scratch, mBots, mBlock, PrintBots, BitBloq, Kits de electrónica

Making (ESO – Bachillerato)

Objetivos: Diseñar e implementar aplicaciones para distintos dispositivos; resolver retos de complejidad avanzada;Prototipar, modelar, e imprimir en 3D; definir y comunicar proyectos y productos

Materiales: Arduino, Printbots, AppInventor, Unity, Tinkercad