martes, 11 de julio de 2017

Divisor de tensión

El divisor de los tensiones es uno de los circuitos mas simples y mas usados en miles de dispositivos.

Cómo su propio nombre indica un divisor de tension no es mas que un circuito capaz de dividir una tensión.

Para realizar este circuito solo necesitamos 2 resistencias.



La formula que sigue un divisor de tensión es muy sencilla, y resolviendo la única malla del circuito por la ley de Kirchhoff podemos obtener a ecuación.
Además sabes que la tensión de salida (Vo) es igual a al tensión en la segunda resistencia. Por lo tanto:

Si substituimos la primera ecuación en la segunda. Obtenemos:



Y esta ecuación la podemos colocar mejor y por tanto la ecuación típica del divisor de tensión.








domingo, 5 de marzo de 2017

ARDUINO desde cero: 5 - Comunicación Serial

El puerto serie nos permite conectarnos y comunicarnos con otros dispositivos que tenga puerto serie. Cada dispositivo podrá recibir y enviar información.

La comunicación serial consiste únicamente  enviar bits sucesivos uno detrás de otro, bloques de estos bits llevaran información
Serie bits
Serie de bits

En este caso vamos a ver como recibir y enviar información con nuestro ordenador  y el monitor serial.

Las funciones que debemos usar son muy sencillas y dependen todas de la biblioteca serial.


INICIAR COMUNICACION SERIAL

La primera y la mas importante, para poder usar nuestro puerto serie en el Arduino es Serial.begin(int baudrate); esta función inicia el puerto serie. Consta de un parámetro int baudrate.
El baudrate hace referencia a los bits por segundo que son transmitidos, por lo tanto determinará la velocidad de nuestro puerto serial

Una vez que tenemos nuestro serial abierto  ya podemos enviar y recibir información. Antes de explicar las funciones necesarias vamos a ver como funciona el monitor serial de nuestro Arduino.

Para acceder a el podemos hacerlo a traves de los menus de Arduino Herramientas > Monitor Serie o Pulsando en el botón de monitor serial que se encuentra arriba a la derecha, con forma de lupa.

Monitor Serie
Monitor Serie


Una vez dentro del monitor serial tenemos tres partes básicas, la primera, donde enviamos información al  Arduino.

La segunda que podemos todo lo que envía el Arduino linea a linea.

Y por ultimo abajo a la derecha podemos ver el baudrate que estamos usando, que deberá ser el mismo usado en la función Serial.begin(int baudrate);





Una vez que hemos comprendido esta ventana ya solo nos queda aprender las diferentes funciones para enviar y recibir información.

martes, 21 de febrero de 2017

VCS - Vehicle Control System

VCS (Vehicle Control System) es un proyecto que incluye tanto Software como Hardware Open Source, para poder controlar un vehículo eléctrico.

Para las aplicaciones que despliegan los gráficos tanto del panel de mandos del conductor como de la consola central, están programados es Python usando la biblioteca Pyside para poder usar Qt. Este código funcionará en un Linux mínimo y la aplicación se abrirá en el boot. En un principio funcionará en una placa estilo Raspberry Pi

El motor eléctrico tendrá su propia pieza de hardware, un microcontrolador encargado de hacer funcionar el motor eléctrico trifásico, en ambos sentido y la frenada regenerativa.

Además el vehículo tiene multiples microcontroladores repartidos por todo el chassis. La mayoría de estos microcontroladores deven funcionar pos si mismos sin la necesidad de comunicarse con otros por seguridad. Estos microcontroladores alertarán al conductor si hay algún error en alguno de ellos. Por ejemplo que un faro falle, o que no se despliega el alerón trasero o que un sensor de temperatura de ellos no de una lectura apropiada

Este "ordenador" central y otros controladores estarán conectados entre si por el CAN bus.

Gráfico inicial de conexiones. **Lineas verdes: CANbus**


Aunque de momento esté muy poco desarrollado ya puedo avanzar que el objetivo es conseguir un software y hardware fácil de adaptar a cualquier vehículo tanto hardware como software.
El software encargado de desplegar los gráficos será configurable para cualquier tamaño de display, ademas se podrán quitar o poner funcionalidades al gusto.

Se puede descargar y ver los avances en el repositorio de GitHub del proyecto.
https://github.com/KarlVaello/VCS

martes, 14 de febrero de 2017

Python y Qt (Pyside): 1 - Introducción

Python es un lenguaje de programación con muchas ventajas.
Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible.

Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetosprogramación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma.

Ademas a traves de PySide podemos usar la biblioteca gráfica Qt, esta biblioteca nos permitirá crear aplicaciones gráficas
Para poder usar PySide necesitaremos instalar los siguientes complementos en nuestro ordenador.

  • Python 2.7
  • Qt 4.8
  • PySide



Además es recomendable saber base de python para no perderse.

A continuación os traigo un código base, en el encontrareis como poner una imagen, y como poner texto, tanto estático como cambiante.



import sys
from PySide import QtGui, QtCore

class Base(QtGui.QWidget):
    
    def __init__(self):
        super(Base, self).__init__()
        
        self.initUI()
        
    def initUI(self):
        
        self.setGeometry(300, 300, 800, 300)  #window size
        self.show()

        self.variableQueCambia = 0
    def paintEvent(self, event):

        self.variableQueCambia = self.variableQueCambia + 1
            
        qImage = QtGui.QPainter(self)
        image = QtGui.QImage("image.png")
        qImage.drawImage(0,0,baseImage)
        qImage.end()
        
        qtime = QtGui.QPainter(self)
        atime = QtCore.QTime.currentTime()
        qtime.setPen(QtGui.QColor(220, 220, 220))
        qtime.setFont(QtGui.QFont('Arial', 20))
        qtime.drawText(QtCore.QRect(10,10,50,50),QtCore.Qt.AlignCenter,"Texto")
        qtime.end()

        qtime = QtGui.QPainter(self)
        atime = QtCore.QTime.currentTime()
        qtime.setPen(QtGui.QColor(220, 220, 220))
        qtime.setFont(QtGui.QFont('Arial', 20))
        qtime.drawText(QtCore.QRect(100,10,50,50),QtCore.Qt.AlignCenter, str(self.variableQueCambia))
        qtime.end()

        self.update() #Metodo que refresca la ventana
                                                
def main():

    app = QtGui.QApplication(sys.argv)
    ex = Base()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

martes, 31 de enero de 2017

Amplificador Operacional: 1 - Introducción

El amplificador operacional con siglas op-amp (operational amplifier) es un dispositivo amplificador de alta ganancia en corriente continua. Tiene dos entradas y dos salidas. La salida es por lo general de cientos de miles de veces mayor que la diferencia de potencial entre sus entradas.

El diagrama común que se utiliza para representar el amplificador operacional es un triángulo el cual tiene dos entradas a la izquierda en un lado y la salida en un vértice a la derecha. Ademas de las entradas de alimentación que por lo general se representan arriba y abajo.

V+: Entrada no inversora
V−: Entrada inversora
Vout: Salida
VS+: Fuente DC positiva
VS−: Fuente DC negativa
El siguiente diagrama es el circuito equivalente en el interior de un amplificador operacional ideal.




En este diagramas podemos observar Rin que es una resistencia de valor infinito entre las entradas. Esta propiedad nos permitirá realizar muchas configuraciones diferente en nuestro amplificador operacional.

También podemos observar Rout que es una resistencia de salida cero.






Cuando el amplificador es ideal consideramos:

V+ = V-
i+ = i- = 0

En los siguientes entradas veremos diferentes aplicaciones de un amplificador operacional a través de diferentes configuraciones.

1 - Comparador [Proximamente]
2 - Seguidor de tension [Proximamente]
3 - Amplificador no inversor [Proximamente]
4 - Sumador inversor [Proximamente]
5 - Restador inversor [Proximamente]


miércoles, 25 de enero de 2017

3D Thing 3 - Extractor de humos



Link: http://www.thingiverse.com/thing:17086

En está entrega os traigo un complemento útil y ademas beneficioso para nuestra salud.

Cuando estamos soldando nuestros componentes electrónicos con estaño apacer un humo blanco, este humo, además de no dejarnos ver bien lo que soldamos, es negativo para nuestra salud. Nos irrita los ojos y los bronquios cuando lo respiramos, si soldamos un para de componentes no es motivo de preocupación pero si soldamos muchos a la larga puede darnos problemas.


Este objeto irreprimible nos va a ayudar con esto. Es simplemente un extractor de humos. Tendremos que imprimir dos piezas y ademas necesitaremos un filtro y un ventilador, el cual será el encargado de extraer el humo.

Tiene dos posibles posiciones, una tumbado y otra de pie. Ambas recogieran la misma cantidad de humo y evitarán que el humo no vaya directo a nosotros.




miércoles, 4 de enero de 2017

Evolucionando talado de columna: 1 - Guía laser, planificación y diseño

Hace poco he obtenido mi primer taladro vertical o de columna, en concreto un Fox F12-912PLUSde 350W y 250mm de recorrido. Es un taladro compacto, pero perfecto para los proyectos que tengo en mente.

La primera modificación que le hare será añadirle una guía laser para poder centrar más fácil y con mas precision los taladros.

El principio es muy sencillo, tendrá dos lasers que proyectarán una linea cada uno. Estas lineas se cruzarán y donde se cruzan será nuestro centro.