jueves, 13 de octubre de 2016

Código de ejemplo para el Lab8

Para el laboratorio 8, es necesario hacer una interfaz gráfica con Processing, a continuación algunos ejemplos de como utilizar una imagen de referencia y el código para sobreponer un barra o una manecilla.

Recuerden que en Processing, primero deben agregar las imágenes al proyecto, usando el menú Sketch → Añadir archivo.

Ejemplo de un Termómetro:


Código en Processing, usando PImage:

Ejemplo de un 'reloj' para medir la humedad:


Código en Processing, usando PImage:

jueves, 1 de septiembre de 2016

Código de ejemplo para el Lab7

Para el laboratorio 7, es necesario hacer una interfaz gráfica con Processing y ControlP5, a continuación pueden ver un par de ejemplos con diferentes tipos de controles.

Código en Processing, usando Sliders verticales:

Código en Processing, usando Sliders horizontales:

Código en Processing, usando Knobs:

jueves, 25 de agosto de 2016

Esquemas para los Lab 4 y 5

A continuación encontrarán los diagramas de un display de 7-segmentos, con su codificación de formar los números, y un IC 74HC595





En el código de ejemplo que se muestra aquí, deben tener en cuenta cuales son los 3 pines en el Arduino que actuarán como Clock, Latch y Data (pueden ser cualquiera).

jueves, 18 de agosto de 2016

Código de ejemplo para el Lab3

Para el laboratorio 3, es necesario hacer una interfaz gráfica con Processing y ControlP5, y que esta interfaz envíe datos señalando los tiempos de encendido y apagado por el puerto serial hacia el Arduino.

A continuación pueden ver el código de ejemplo de la interfaz, y la comunicación serial para cambiar la intensidad de un LED vía PWM.

Código para el Arduino:

Código en Processing:

jueves, 11 de agosto de 2016

Blogs de los Estudiantes 2016-B

Estos son los estudiantes del periodo 2016-B, cada uno tiene su propio Blog, donde mostrará el desarrollo de sus laboratorios y proyectos.

Estos son los Blogs:
Los invitamos a revisar y comentar los Blogs, para retroalimentar el trabajo de los estudiantes.

Laboratorios del curso 2016-B

Cada estudiante debe crear su propio blog, con una entrada para cada Laboratorio, los puntos a evaluar en cada laboratorio son:
  • Título del Laboratorio (Lab #0)
  • Descripción del Laboratorio
  • Lista de los Elementos utilizados
  • Proceso del Montaje (Fotos paso a paso)
  • Diagrama del Montaje en la Protoboard (usando Fritzing)
  • Diagrama Esquemático del Circuito (usando Fritzing)
  • Diagrama PCB equivalente (usando Fritzing)
  • Código Fuente en Arduino (con documentación y comentarios)
  • Código Fuente en Processing (con documentación y comentarios)
  • Video del Funcionamiento
Laboratorios 2016-B
  • Lab 12: Enviar desde una página web un mensaje a una matriz LED 8x8 (desplazándose de izquierda a derecha) a través de IC MAX7219.
  • Lab 11: Enviar desde una interfaz en Processing un mensaje a una matriz LED 8x8 (desplazándose de izquierda a derecha) a través de IC MAX7219.
  • Lab 10: Controlar desde el Arduino, una matriz LED 8x8 a través de IC MAX7219, para mostrar un número del 0 al 9, dependiendo de la posición del Potenciómetro.
  • Lab 9: Controlar desde una interfaz en Processing, una línea de 8 LEDs RGB 5050 conectado a un Arduino. Nota: No alimente los +5V desde el Arduino.
  • Lab 8: Mostrar en una interfaz de Processing la temperatura y humedad (DTH11), y el nivel de iluminación capturado con una fotoresistencia (LdR, CdS) medidas a través de un Arduino.

  • Lab 7: Controlar un LED RGB desde el Arduino, vía PWM con una interfaz gráfica en Processing/ControlP5 para controlar el valor de cada color.
  • Lab 6: Controlar un LED RGB desde el Arduino, vía PWM con 3 potenciómetros, uno para cada color.
  • Lab 5: Controlar desde el Arduino, un Display LED de 7-Segmentos, a través de un IC 74HC595, para mostrar un número de 0 a 9, dependiendo de la posición del Potenciómetro.
  • Lab 4: Controlar 8 LEDs desde el Arduino, a través de un IC 74HC595, definiendo mínimo 8 patrones de movimiento que son controlados desde una interfaz gráfica en Processing/ControlP5. Más información sobre el IC 74HC595
  • Lab 3: Controlar 8 LEDs desde el Arduino, un LED encendido que se mueve en forma continua de izquierda a derecha, vía una interfaz gráfica en Processing/ControlP5 para controlar el tiempo de encendido y el tiempo de apagado.
  • Lab 2: Controlar 8 LEDs desde el Arduino, un LED encendido que se mueve de izquierda a derecha cuyos tiempos de encendido y apagado se controlan desde dos potenciómetros.
  • Lab 1: Controlar 8 LEDs desde el Arduino, un LED encendido que se mueve de izquierda a derecha.
  • Lab 0: Controlar el tiempo de encendido y apagado de un LED usando un potenciómetro

Recuerden, no hay problema si trabajan en grupo pero cada estudiante debe crear su propio blog, tomar sus propias fotos y vídeos, hacer sus propios diagramas, y escribir su propio código.

Proyectos usando Arduino

He comenzado una serie de laboratorios básicos del uso de Arduino, veremos hasta donde llegamos con eso, por ahora:
Estos son algunos de los proyectos más interesantes que los alumnos del curso han realizado:

Como fuente de inspiración para sus proyectos de final de curso, los invito a revisar los siguientes sitios donde encontrarán excelentes ejemplos de la versatilidad de Arduino:

Por supuesto, haciendo una busqueda en YouTube, también podrán ver proyectos interesantes que servir como referencia para sus propuestas.

Un poco más de Electrónica

El curso de Programación de Sistemas Embebidos (usando Arduino), es un curso electivo que ofrece la Facultad de Ingeniería de la USC, y puede ser tomado por estudiantes de las Ingenierías de Sistemas, Electrónica, y Bioingeniería, y también estudiantes de Tecnología en Sistemas.

Aunque no es indispensable, algunos conocimientos básicos de electrónica son muy útiles para tomar el curso. Sin embargo en la medida que los estudiantes van buscando proyectos más interesantes, un mayor conocimiento de la electrónica se hace necesario.

A continuación, dejaré algunos enlaces donde podrán ampliar sus conocimientos en electrónica, si así lo requieren:

Otra habilidad útil para desarrollar sistemas embebidos, es crear PCBs, y soldar:

sábado, 6 de agosto de 2016

Internet de las Cosas

Internet de las Cosas, se refiere a un mundo donde los objetos físicos están conectados a Internet, y son accesibles a través de los servicios que ofrecen, y pueden ser consultados e inducidos a cambiar su estado.

Por cada usuario de Internet, siempre habrá un mayor número de aparatos (cosas) conectadas. Hace pocos años una persona conectada equivalia a un computador conectado, hoy esa misma persona sigue conectada además de su computador, está su tablet, su celular, su cámara fotográfica, su impresora, su reproductor MP3, su nevera, su televisor, por nombrar solo algunas posibilidades.

Hoy, un objeto (físico) inteligente, necesita estar conectado a Internet, y todos estos objetos conforman la Internet de las Cosas.

Nosotros mismo podemos crear muchos objetos que hagan parte de Internet de las Cosas, con plataformas como Arduino, o cualquier otro proyecto de Hardware Libre.

Computación Física

Denominamos Computación Física a una rama naciente de la computación (y la electrónica), que se encarga de diseñar, construir y programar objetos físicos interactivos, utilizando interfaces de hardware para recolectar datos análogos y responder en la misma forma, y software para el control.

La Computación Física es vista en realidad como una plataforma para la creatividad, en particular para diseñar nuevas forma de interacción entre el mundo real y el mundo virtual (o digital).

Esto incluye brindar interactividad al arte, las exposiciones de museos, promoción y publicidad, prototipado de productos, y aplicaciones científicas.

Cada proyecto incluye usualmente sensores para traducir los datos análogos, y enviarlos al procesador, donde el software controla actuadores como motores, servos, LEDs, pantallas, y otros.

A continuación, la conferencia sobre Computación Física en la secundaria, por Marco Rodriguez en la convención OSHWCon 2011:


Algunos cursos, sitios y personajes claves en la Computación Física:


viernes, 5 de agosto de 2016

Arduino en la Academia

Arduino en Colegios/Universidades del Mundo:

La Plataforma Arduino

Dado que es una plataforma de Hardware Libre, en Internet encontramos mucho material sobre Arduino, aquí encontrará una recopilación de algunos sitios importantes sobre este tema:

Manuales de Arduino


jueves, 4 de agosto de 2016

Qué es Arduino?

Arduino (el nombre viene del rey Arduino de Ivrea) es una plataforma de Hardware Libre, ampliamente utilizada en proyectos de Computación Física, y en sistemas embebidos en general.

En el siguiente documental del año 2010, se puede obtener una visión general del proyecto Arduino:


Al igual que la siguiete conferencia "Arduino: empoderamiento a través de hardware libre" ofrecida por Felix E.Guerrero, en el marco del Campus Party Mexico:


Introducción al Curso



El curso de Programación de Sistemas Embebidos, busca que estudiantes de los programas de Ingeniería de Sistemas, Ingeniería Electrónica, Bioingeniería y Tecnología en Sistemas, puedan trabajar en conjunto para construir aparatos electrónicos inteligentes.

Un sistema embebido (también reciben el nombre de integrados, incrustados, o empotrados) es un sistema electrónico con capacidad computacional diseñado con un propósito específico. Contrario a los computadores de propósito general, los sistemas embebidos realizan unas pocas tareas dentro de un contexto de características especiales y particulares.

Realizar una o pocas tareas específicas, permite que el diseño del sistema sea optimizado, reduciendo costos y aumentando sus prestaciones. Típicamente se diseñan sistemas embebidos para aparatos de consumo masivo, donde la producción por volumen ayuda a disminuir los precios de los componentes.

La vida moderna hace uso de sistemas embebidos en diversos productos: cajeros automáticos, puntos de venta en los supermercados, dispensadores de golosinas/bebidas, equipos médicos, el "computador" de los automóviles o los aviones,  reproductores pórtatiles de MP3, agendas digitales, decodificadores de TV por cable, reproductores de CD/DVD, enrutadores de red, sistemas telefónicos, teléfonos IP, etc.

Para mayor información acerca de los Sistemas Embebidos y su importancia, ver el artículo La Enseñanza de Sistemas Embebidos en los programas de Ingeniería.

Nuestro objetivo en el curso es diseñar aparatos electrónicos, y programarlos para realizar tareas específicas.

jueves, 25 de febrero de 2016

Blogs de los Estudiantes 2016-A

Estos son los estudiantes del periodo 2016-A, cada uno tiene su propio Blog, donde mostrará el desarrollo de sus laboratorios y proyectos.

Estos son los Blogs:
Los invitamos a revisar y comentar los Blogs, para retroalimentar el trabajo de los estudiantes.

jueves, 18 de febrero de 2016

Laboratorios del curso 2016-A

Cada estudiante debe crear su propio blog, con una entrada para cada Laboratorio, los puntos a evaluar en cada laboratorio son:
  • Descripción del Laboratorio
  • Lista de los Elementos utilizados
  • Diagrama del Montaje en la Protoboard (usando Fritzing)
  • Diagrama Esquemático del Circuito (usando Fritzing)
  • Diagrama PCB equivalente (usando Fritzing)
  • Proceso del Montaje paso a paso (Fotos)
  • Código Fuente en Arduino (con comentarios)
  • Código Fuente en Processing (con comentarios)
  • Video del Funcionamiento
Laboratorios 2016-A
  • Lab 12: Enviar desde una página web un mensaje a una matriz LED 8x8 (desplazándose de izquierda a derecha) a través de IC MAX7219.
  • Lab 11: Enviar desde una interfaz en Processing un mensaje a una matriz LED 8x8 (desplazándose de izquierda a derecha) a través de IC MAX7219.
  • Lab 10: Controlar desde el Arduino, una matriz LED 8x8 a través de IC MAX7219, para mostrar un número del 0 al 9, dependiendo de la posición del Potenciómetro.
  • Lab 9: Controlar desde una interfaz en Processing, el patrón de movimiento y colores en un módulo de 8 LEDs RGB controlado con un Arduino.
  • Lab 8: Controlar desde el Arduino, dos barras LED (8 rojos, 4 amarillos, 4 verdes) con 2 IC 74HC595, para mostrar el nivel de iluminación capturado con una fotocelda (fotoresistencia, LdR, CdS).

  • Lab 7: Controlar un LED RGB desde el Arduino, vía PWM con una interfaz gráfica en Processing/ControlP5 para controlar el valor de cada color.
  • Lab 6: Controlar un LED RGB desde el Arduino, vía PWM con 3 potenciómetros, uno para cada color.
  • Lab 5: Controlar desde el Arduino, un Display LED de 7-Segmentos, a través de un IC 74HC595, para mostrar un número de 0 a 9, dependiendo de la posición del Potenciómetro.
  • Lab 4: Controlar 8 LEDs desde el Arduino, a través de un IC 74HC595, definiendo mínimo 8 patrones de movimiento que son controlados desde una interfaz gráfica en Processing/ControlP5. Más información sobre el IC 74HC595
  • Lab 3: Controlar 8 LEDs desde el Arduino, un LED encendido que se mueve en forma continua de izquierda a derecha, vía una interfaz gráfica en Processing/ControlP5 para controlar el tiempo de encendido y el tiempo de apagado.
  • Lab 2: Controlar 8 LEDs desde el Arduino, uno LED encendido que se mueve de izquierda a derecha cuyos tiempos de encendido y apagado se controlan desde dos potenciómetros.
  • Lab 1: Controlar 8 LEDs desde el Arduino, un LED encendido que se mueve de izquierda a derecha.
  • Lab 0: Controlar el tiempo de encendido y apagado de un LED usando un potenciómetro

Recuerden, no hay problema si trabajan en grupo pero cada estudiante debe crear su propio blog, tomar sus propias fotos y vídeos, hacer sus propios diagramas, y escribir su propio código.