viernes, 19 de junio de 2015

Fuente de Alimentacion de laboratorio de DealExtreme


La verdad es que llevo unos años sin fuente de alimentación de laboratorio, desde que poco a poco la que tenia se fue muriendo, como no tengo tiempo a repararla, acabo antes haciendo una nueva, y he aquí donde aparece este kit de PCB y componentes a un precio adecuado:

0-30V 2mA~3A Adjustable DC Regulated Power Supply DIY Kit

No trae esquemas, ni ninguna indicación, tampoco es que la necesite, pero me gusta saber lo que hago, asi que le saque el esquema:



Despues de sacar el circuito, encontre que esta basado en el de esta pagina web: http://www.electronics-lab.com/projects/power/001/index.html , es el mismo circuito, añadiendo un estabilizador de 24V para un ventilador y cambiando algunas referencias por otras similares, por ejemplo, se cambia el 2N3055 por un 2SD1047, este ultimo tiene 160A y 100W en sus caracteristicas, por lo que sirve perfectamente, en el caso de los 2N3055, tendriamos que poner 2 en paralelo.

IMPORTANTE: Esta fuente de alimentacion necesita conectarse directamente a la salida en alterna de un trafo, pero este trafo no debe ser de mas de 21-24Vac, ya que en caso contrario superaríamos los 36V en las patillas de alimentacion de los TL081 y nos los cargariamos.



El circuito no es nada de otro mundo, algunos detalles:
- La toma para un ventilador es de 24V, la mayoria de los ventiladores son de 5 o 12V, asi que no vale para mucho.
- Tiene un puente de diodos, asi que se puede alimentar desde un trafo con una unica salida, no hace falta que tenga toma intermedia como en otras fuentes, ademas tiene un bonito circuito para conseguir la tensión de referencia negativa (para poder regular desde 0V), que evita tener una segunda toma en el transformador.
- La tensión de referencia utiliza un circuito para reducir los efectos termicos sobre el zener, asi que es de esperar que sea bastante estable.
- Tiene un circuito de "apagado rapido", en caso de que falte la referencia de tension negativa, asi que practicamente en cuando apagemos la fuente, la salida se ira a 0V, sin esperar a que se descarge el condensador, lo cual es muy util "para emergencias".

Los potenciometros de Ajuste de voltaje y Amperios maximos son pequeñitos, se pueden soldar directamente a la placa o usuar unos conectores y cables para poder ponerlos en una caja, desgraciadamente no han tenido la misma idea con el led que se ilumina por sobreintensidad, tampoco han previsto un segundo led para indicar que esta encendida.

Viene con un potenciometro para el ajuste del punto de cero, y como todas las fuentes de alimentacino de este tipo, necesita un disipador generoso para el transistor de potencia, y uno mas pequeño para el D882, que aunque este viene, no el tornillo para sujetarlo, ya que solo trae 4 incluidos en el kit.

Hay que añadir el trafo, la caja, unos embellecedores para los mandos y algunas cosas mas que podemos encontrar en la misma tienda:
Display con voltimetro y amperimetro, los ideales son uno de estos dos: 
0.28" 4-digit DC 0~33.00V 0~999.9mA~3A Voltage Current Meter - Red + Blue pero si no te gusta que sea uno de cada color tienes este,  0.28" Red LED Digital Dual Display DC Voltmeter Ammeter (0~100V / 0~10A) - Black  desgraciadamente solo tienen un digito decimal.
O en su version analogica, el voltimetro (cambiando la escala y con un par de resistencias) Analogue 10V Compact Panel Mount DC Voltmeter - White  y el amperimetro Analogue DC 3A Current Panel Meter Ammeter - White
Y unos terminales para la salida Plastic + Iron 4mm Banana Sockets - Red + Black (10 PCS)

Algunos Datasheet interesantes:
2SD1047 - http://www.st.com/web/en/resource/technical/document/datasheet/DM00026462.pdf
KSD882 - https://www.fairchildsemi.com/datasheets/KS/KSD882.pdf
SS9014 - https://www.fairchildsemi.com/datasheets/SS/SS9014.pdf
SS9015 - https://www.fairchildsemi.com/datasheets/SS/SS9015.pdf
TL081 - http://www.ti.com/lit/ds/symlink/tl084.pdf

sábado, 3 de enero de 2015

TUTORIAL DE DAAD - Parte 3.1

COMPILANDO PARA AMSTRAD (Disco)

Vamos a ver como hacer la aventura para el ordenador Amstrad CPC, al menos en versión disco.
Si estas utilizando mi versión "Ready to Run" del DAAD necesitas tener descargada una versión igual o posterior a la 150102, pues he añadido algunos archivos.

El primer paso es compilar la aventura añadiendo el parámetro -m3c  que compilara la version para amstrad, sin debug y comprimiendo los textos.

C:\DAAD\> DC pajarito\pajarito.sce -m3c

Debemos ahora meter el archivo compilado en un disco de CPC, para ello abrimos ahora la utilidad CPCDiskXP y damos al botón "DSK Editor", en la nueva ventaja que aparece seleccionamos el botón OPEN, y elegimos el archivo DISK30 amstrad.DSK que se incluye en el zip.
Pulsamos el botón "Add Files" que se encuentra a la derecha, y buscamos nuestro archivo .DDB, en la ventaja que pregunta si deseamos añadir una cabecera decimos que no, y en la siguiente pulsamos el botón de OK, sin cambiar nada.
Tras pulsar el botón "SAVE" indicamos un nuevo nombre para el disco y cerramos el programa.

La creación del ejecutable para CPC se hace desde CP/M, Si utilizamos el emulador Arnold, lo primero es elegir la opción del menú CONTROL->CHANGE CONFIGURATION-> CPC 6128, insertamos virtualmente el disco de cpm, y lo cargamos con la orden |cpm  (el caracter de tuberia se obtiene con la tecla junto a la tecla P con shift pulsado).
Una vez cargado, sacamos el disco virtual y metemos el nuevo que creamos con CPCDiskXP.
ejecutamos la orden DIR y comprobamos que esta todo en su sitio.
ahora compilaremos el ejecutable de la aventura, y para ello escribiremos (cambiaremos lo que esta en minúscula por lo que corresponda en nuestro caso:

MCRF pajarito.bin DCPCIS.Z80 pajarito.DDB VOID.BIN

tras una serie de mensajes habrá creado el archivo pajarito.bin correctamente.

Guardaremos las modificaciones, en el emulador arnold se realiza sacando el disco desde el menú, momento en que aparecerá un cuadro de dialogo con el nuevo nombre para el archivo .DSK

el Archivo VOID.BIN es un añadido mio, y es la parte gráfica vacía y los tipos de letra del juego, en el manual indica que BLANK.BIN es un archivo sin localidades, pero en realidad es parte de programa DG y no sirve para compilar la aventura.
Para generar dicho archivo, desde basic, se cargo el programa DG, se cargo el set de caracteres PARTE001.CHR y se guardo los gráficos como VOID.BIN, aunque esto no es necesario hacerlo, la imagen de disco ya incluye el archivo, pero es importante recordarlo cuando se generen gráficos, ya que si no cargas el set de caracteres, utilizara el original del CPC y los acentos y otras cosas no saldrán correctamente.

Para probar la aventura, basta con reiniciar la maquina, insertar el disco y escribir

RUN"pajarito

Tras pulsar intro se cargara la aventura al instante.

Queda para un capitulo posterior el como mover este archivo creado a una cinta, por que escapa a mis conocimientos, si algun alma caritativa tiene conocimientos de CPC, soy todo oídos.


domingo, 7 de diciembre de 2014

TUTORIAL DE DAAD - Parte 2

Antes de empezar con la segunda parte comentar que en la primera se a mejorado la explicación de como generar la versión de spectrum y se han modificado los textos de las localidades para que incluyan acentos, en la parte de mensajes doy mas detalles sobre eso.

Ademas he incluido un archivo tal como quedaria al final del primer tutorial.

lunes, 1 de diciembre de 2014

TUTORIAL DE DAAD - Parte 1

INTRODUCCION

Una de las mejores cosas del manual de PAWS era que en lugar de limitarse a mostrar una referencia de todo el sistema, incluia una aventura, "El billete" a modo de tutorial, que nos guiaba paso a paso en la tarea de crear una aventura.
Vamos a seguir el mismo concepto y crear la misma aventura, pero con DAAD, en este tutorial me limitare a indicar las diferencias con el PAWS, por lo que es necesario tener a mano dicho manual  y leerlo en paralelo, asi como el propio de DAAD para referencia, pues solo haremos incapie en las partes que son diferentes.

EMPEZANDO

El archivo disponible para bajar contiene una version de DOSBOX portable, asi como un "disco duro virtual" con el DAAD ya instalado, incluyendo algunas utilidades adicionales, el editor para windows superglus y emuladores de varios sistemas.
la carpeta HDD es una suerte de "disco duro virtual", todo lo que se incluya en esta carpeta, aparecera en el disco duro C: de dosbox.
Creamos una carpeta de trabajo dentro del directorio hdd\DAAD, p.e. "pajarito" (vamos a usar ms-dos, no uses mas de 8 letras).
copiamos el archivo blank.sce dentro de esa carpeta y lo renombramos.
Ahora abrimos el programa superglus y lo editamos.

TUTORIAL DE DAAD - Parte 0

Y comenzamos con otro de tantos proyectos que voy a dejar inconclusos (Aviso ahora para que luego no haya decepciones).

Aprovechando que por fin se ha podido recuperar el sistema de creación multiaventura de Aventuras AD S.A. y que lo han puesto en dominio publico y que siempre tuve mucha curiosidad por saber como funcionaba, voy a crear un pequeño tutorial sobre como manejarlo, a ver si llega a buen puerto.

Para facilitar el desarrollo, he creado un archivo .ZIP que contiene dicho software, asi como el programa Dosbox para emular al msdos, varios emuladores de microordenadores y el editor superglus que es compatible con el DAAD.
También he añadido alguna pequeña chapuza de cosecha propia, por ejemplo para crear archivos .TAP desde el ms-dos, con la aventura en versión spectrum, lista para cargar y jugar.
A medida que avance en el tutorial iré publicando aquí las revisiones de este archivo.

La version actual es de fecha 2 de Enero de 2015 y se puede bajar de este enlace:
https://www.dropbox.com/s/wup7mkxbdpgaz86/DAAD_RTR_150102.rar?dl=0

En el archivo se encuentra:
- Los primeros discos del DAAD descomprimidos.
- El programa DOSBOX 0.76 en version portable.
- El editor SUPERGLUS 1,2 en version portable.
- El emulador ZX Spin 0.666
- El programa tapmaker.exe compilado con djgpp y sacado de las fuentes de z88dk.
- Los manuales del PAWS en español y el del DAAD en ingles.
- El emulador de Amstrad CPC Arnold 04012004
- La utilidad de discos CPCDiskXP Version 2.5.1

Changelog
2 Ene 15 - Añadido el Emulador Arnold, la utilidad CPCDiskXP y las imagenes de disco necesarias para generar los juegos en el Amstrad CPC.
2 Dic 14 -  Actualizado el archivo, faltaba la carpeta DJGPP dentro de HDD.

miércoles, 10 de septiembre de 2014

Apuntes sobre como crear un quadracoptero con el sistema MultiWii

Despues de unos dias de pelear, por fin me vuela el aparato mas o menos bien, y estos son algunos detalles tontos que al principio se me escaparon:

El GPS: 

Mientras intentaba configurar el GPS (un ublox M6, el modelo CRIUS CN-06 rev 2) no habia narices de que me funcionase, no guardaba los cambios que hacia, y no habia manera de configurarlo correctamente, por mucho que le diera a la opcion de guardar los cambios en la flash, la eprom i2c o lo que fuese que aquel criptico cuadro de dialogo decia.
Hay que ir a la opcion de "Receiver -> Action -> Save Config", y ya esta, la siguiente vez que lo conectes recordara las ultimas opciones.

Grabar las placas auxiliares con el ATmega328: 

Tanto para la placa del GPS a I2C, como la del OSD, como la que hace el PPMsum, todas se programan como un arduino a traves de un cable FTDI, si por alguna razon te falla la compilacion, comprueba que has seleccionado como placa como "Arduino Pro", en mi caso la placa principal es un Arduino Uno, y cuando intentaba compilar los programas de las placas secundarias, no funcionaba.

Ajustar los PID y trimar.

Esta parte es bastante complicada, hay un par de videos de youtube que pueden ayudar, en micaso confundia el efecto "cola de pez" que se producia por el valor D, con el del valor P.
No es una mala idea si tienes tiempo, comenzar con todos los valores a 0, ajustar primero P, luego D, y luego I.
A la hora de trimar, hay un pequeño truco, si enciendes el aparato sin helices, o sin bateria en los variadores (en mi caso al enchufar el USB al arduino, arranca todo menos los variadores). Conectado al GUI, y pones el aparato en modo horizontal, deberias ver los valores que se envian a cada motor, trima el aparato para que estando nivelado, envie el mismo valor a los cuatro variadores (con el gas a la mitad deberia ser 1500 en los 4). luego en el aire tendras que tocarlo poco o nada.
Si tienes un barometro 085, es buena idea meter el chip dentro de un tubito negro o opaco, y taparlo con una esponja, este chip es muy sensible a la luz y el viento, y no te pelees mucho con el, simplemente no funciona,
Estos videos de youtube son interesantes:

Y este articulo de un blog, arroja algo de luz sobre los modos de vuelo:


domingo, 5 de agosto de 2012

Monitor de energia con Rasperry Pi + Arduino + Emoncms3

Desde hace tiempo quiero crearme un sistema "SCADA" que me permita ver y controlar las cosas electricas que pasan en casa.

Voy dando algunos palos de ciego, el ultimo fue comprarme un contador de electricidad Efergy Elite con su pasarela de internet Home hub, que ha resultado bonito, pero no lo que yo queria.

El software emoncms3 que estan creando en www.openengergymonitor.com es muy interesante, un pelin limitado y funcionando en un raspberry pi, lo lleva al limite de su potencia.

El sistema que utilizan en openenergymonitor es demasiado complicado para lo que yo quiero, es muy versatil y esta pensado para no tener que tener un servidor en casa.

Lo que yo he probado es utilizar un arduino para enviar los datos de los sensores directamente al  emoncms ejectuandose en el raspberry pi, utilizando la conexion usb, lo que me ahorra la cara shield ethernet y tener que alimentar el arduino a parte.
Asi me he construido este simple circuito que conecta un sensor de temperatura y otro de humedad al arduino.

Este programa hace que el arduino envie cada 10 segundos una cadena de texto, con formato JSON, que es la que necesita emoncms3.

#include
dht11 DHT11;
#define DHT11PIN 2

void setup()
{
  Serial.begin(115200);
}

void loop()
{
  int chk = DHT11.read(DHT11PIN);
  switch (chk)
  {
    case DHTLIB_OK:
//        Serial.println("OK");
                Serial.print("temperature:");
                Serial.print((float)DHT11.temperature, 2);
                Serial.print(",humidity:");
                Serial.println((float)DHT11.humidity, 2);
 
        break;
    case DHTLIB_ERROR_CHECKSUM:
//        Serial.println("Checksum error");
        break;
    case DHTLIB_ERROR_TIMEOUT:
//        Serial.println("Time out error"); 
        break;
    default:
//        Serial.println("Unknown error");
        break;
  }
  delay(10000);
}
 

Y este programa ejecutado en el arduino, lee el puerto serie, y hace una peticion al servidor web de emoncms3, pasandole los datos del arduino.
#!/bin/python

# simple serial gateway for arduino-raspberry-emoncms3

# (C) 2012 Alvaro Alea Fernandez 
# Distributed under GPL V2
# simplely get a json string from serial port and feed the emoncms3 configured.
# no error check implemented


# Configuration Data:
port='/dev/ttyACM0'
speed=115200
host='http://localhost/emoncms3'
apikey='192xxxxxxxxxxxxxxxxxxxxxxxx'

import os
import serial
ser = serial.Serial(port,speed)
# ignore the first data, not complete.
data=ser.readline()

while 1:
    data=ser.readline()
        // remove the CR+LF needed for readline
        data1=data[:len(data)-2]
    os.system("wget -o /dev/null -O /dev/null " + host + '/api/post?apikey=' + apikey + '\&json={' + data1 + '}' )

ser.close()
exit()
 
No tiene control de errores, ni ninguna floritura, pero funciona perfectamente, luego el resto ya es configurar el emoncms, para obtener "la pantalla":

Por cierto el DHT11, no solo tiene muy mala resolucion, (no da decimales) si no que ademas no tiene nada de precision.

Y el raspberry pi (al menos con la debian original) no tiene potencia ni de coña para manejar esto, se caga con 2 variables y cuatro graficos, habria que ver que se puede hacer para optimizar esto.

domingo, 10 de abril de 2011

Scripts incompletos 1 - cliente para noip.com

El otro dia se me jorobo el programa que controla el Dinamic-DNS de mi servidor casero, como es un cacharro embebido y lo ultimo que iba a intentar era toda la milonga de crear algo y compilarlo cruzadamente, pues empeze a programar algo que funcionase en bash.
Ahora ya me vuelve a funcionar el programa original, pero se que dentro de N años voy a volver a necesitar este script, y no se me ocurre un lugar mejor donde guardarlo y que no lo pierda, asi que aqui lo pongo:
#!/bin/sh
user=MiUsuarioenNoIP.com
pass=PasswordUtilizado
host=aleasoft.hopto.org

useragent="User-Agent: Aleas no-ip shellscript/0.1 alvaroalea@gmail.com"
ip=`wget http://myip.dk -q -O - | grep ha4 | cut -d \> -f 4 | cut -d \< -f 1`
result=`wget -q -O - --header "\'$useragent\'" http://$user:$pass@localhost/nic/update?hostname=$host&myip=$ip`

echo $result

Falta el comprobar result, y si es valido, hacer que todo se repita despues de N minutos.
pero eso lo dejare para la proxima vez que se me jorobe el servidor.

jueves, 30 de diciembre de 2010

viernes, 29 de octubre de 2010

Termosolar La Dehesa Acoplada con Exito.

Hoy a las 19:01, se ha acoplado a la red electrica La central termosolar Samcasol-2 "La Dehesa", generando sus primeros 3,4MW/h.

Quien me iba a decir a mi hace unos meses, cuando llegue a aquel desierto, que en tan poco tiempo ibamos a estar produciendo energia. Han sido meses de duro trabajo y alguna que otra noche sin dormir, pero ha merecido la pena.

Quiero felicitar a todas las empresas y a sus trabajadores por ese primer gran paso en generar Energia Solar. El ambiente de trabajo ha sido inmejorable pese a las presiones, y aunque aun quedan meses de trabajo, lo gordo ya esta echo.