Entradas

Mostrando entradas de julio, 2013

Arduino: Cambiar color de una LED RGB por puerto serie desde python (3/3)

Imagen
Si ya habéis hecho lo indicado en las dos entradas anteriores ( 1 y 2 ) ya tenéis todo listo para continuar. En la primera entrada habíamos programado nuestra Arduino para recoger valores por el puerto serie y cambiar de color nuestra LED RGB. En la segunda entrada habíamos diseñado la interfaz de nuestro programa usando el Qt Designer . Este es el vídeo del resultado final que buscamos: Continuamos entonces. Abrimos nuestro editor favorito y creamos un archivo llamado ledcolores.py . Este es el código que he usado: #!/usr/bin/python # -*- coding=UTF-8 -*- """ Programa que envía por el puerto serie información a una Arduino para cambiar el color de una led """ import sys, serial, time from PyQt4 import QtGui, QtCore # Importamos lo necesario para la GUI from ledcoloresGUI import Ui_MainWindow class Principal(QtGui.QMainWindow): # Definimos el constructor de la clase __init__ def __init__(self): # Se llama al

Arduino: Cambiar color de una LED RGB por puerto serie desde python (2/3)

Imagen
Continuamos con el programa para enviar datos a nuestra Arduino por puerto serie para cambiar el color de una LED RGB. En la entrada anterior , habíamos visto cómo conectar los componentes a nuestra Arduino y cómo programarla para interpretar los datos que nos llegaban por el puerto serie y así poder cambiar el color de nuestra LED RGB. También habíamos probado a enviar alguna secuencia desde el Monitor Serial para ver que funcionaba correctamente. Si queréis visitar esa entrada, podéis hacerlo desde este enlace: Entrada anterior . También podéis ver de nuevo el vídeo para recordar qué es lo que queremos hacer: Bien, ahora toca diseñar la interfaz del programa. Para la interfaz, he usado el Qt Designer . Al abrirlo, aparecerá el asistente (si no aparece, lo abrimos con File → New ). Debemos marcar Main Window y luego pulsar en Create : Arriba a la derecha, veremos el inspector de objetos . Vamos a eliminar la barra de estado . Para ello, haremos clic con

Arduino: Cambiar color de una LED RGB por puerto serie desde python (1/3)

Imagen
Esta vez, la idea es tener una LED RGB en nuestra Arduino y cambiar el color de la misma enviando los valores correspondientes rojo, verde y azul por el puerto serie. Probablemente no tengáis puerto serie en vuestro PC, pero eso no es problema ya que, aunque conectamos la Arduino por USB, en realidad el acceso es por puerto serie. Antes de ponernos manos a la obra, veamos el resultado final: Empezaremos programando nuestra Arduino. Lo primero es hacer las conexiones de los componentes. Debería quedar así: Base del diseño de esta imagen hecha con Fritzing Una vez conectado todo, vamos con el código: // recibo por puerto serie unos colores indicados por un programa // en python y enciendo el color correspondiente en una LED RGB #define PINROJO 11 #define PINVERDE 10 #define PINAZUL 9 void setup () {      // cambio el modo de los pines a salida    pinMode (PINROJO, OUTPUT );    pinMode (PINVERDE, OUTPUT );    pinMode (PINAZUL, OUTPUT );    // inicializo

Arduino: Termómetro "analógico"

Imagen
Quería probar a usar un sensor de temperatura, pero ver simplemente la temperatura en pantalla me pareció algo aburrido, así que decidí colocar un servo para mover una aguja y así me marcara la temperatura de forma "analógica". Esta es una pequeña foto de como me ha quedado: Las piezas de LEGO fueron para sujetar el servo que he utilizado y el papel con las medidas. Así es como he conectado todo: Imagen creada en Fritzzing Y aquí tenéis las imágenes de dial y de la aguja: Podría hacer más amplio el rango de temperaturas, pero de -10º a 40º me ha servido perfectamente para probar. He aquí el código: /*  * Sensor temperatura  *  */   #include < Servo .h> int tempPin = A0; // conectamos el pin de datos del sensor de temperatura  //en la entrada analógica 0 Servo miservo; // crea un objeto Servo para controlar un servo int pos = 0; // variable para guardar la posición del servo void setup () {   miserv