miércoles, 14 de junio de 2017

Arduino - Analizadores de señal digital - analógico

Página principal

Arduino
Analizadores de señal
digital - analógico
xsetaseta@gmail.com

En un afán de ver soluciones fáciles y baratas para analizar señales tanto digitales como analógicas mediante la placa arduino, he realizado una búsqueda  en internet.
Seguro que hay muchas,  pero estas son la que yo he encontrado a primera vista.

LogicAnalyzer


Señal de 798Hz visto en el programa y en mi osciloscopio .

PROGRAMA
Este programa hecho por Raul Navarro http://raulnd.blogspot.com.es/ funciona solo en Windows bajo plataforma NET v4.
Funciona de dos modos:
-Como un analizador lógico de varios canales.
-Como analizador analógico de un solo canal.
Tiene la posibilidad de medida de tiempos, de esta forma se puede calcular la frecuencia.
Se puede medir mediante el cursor el voltaje en cada parte de la onda.
Para captar  una nueva señal hay que pulsar sobre el icono en forma de rayo.



Arduinoscope



PROGRAMA versión linux
Programa realizado por David Konsumer <david.konsumer@gmail.com> , realizado en java , funciona tanto en Linux como en Windows, y disponemos del código fuente.
Funciona como un analizador continuo de señal analógico señales A0-A5.


Para hacer publicidad propia  mostraré varios programas hechos por mi.

Arduino - Control de 12 salidas y 6 entradas analógicas mediante rs232- Librería SDL

Funciona en Linux y Windows.
Enlace


ARDUINO - OSCILOSCOPIO 66K MUESTRAS

Solo funciona en Linux bajo Gambas (VB)
Enlace


Un saludo.
Juan Galaz

jueves, 1 de junio de 2017

Primera semana con el osciloscopio Hantek6022BL

Página principal

Primera semana
con el osciloscopio
Hantek6022BL
xsetaseta@gmail.com

El otro día vi un anuncio de un osciloscopio que se conectaba al ordenador mediante el USB y tenía un precio bastante bajo, alrededor de 60€. Yo tengo un osciloscopio Hameg  HM203-5 de 20Mhz desde hace 30 años. Me ha servido muy bien para todos los montajes que he hecho hasta ahora. Pero ya llega su tiempo de renovación, y para los montajes digitales se queda ya muy corto.
Mi duda era entre el Hantek6022BE y el Hantek6022BL, el uno es solo un osciloscopio de dos canales y con una tasa de muestreo de 48Msa/S , el otro además dispone de un analizador lógico de 16 canales, pero es 11€ mas caro.
Como yo pretendía ver los buses de los distintos interfaces del arduino, he comprado el Hantek6022BL por 71€.
He de comentar que por ese precio no se puede conseguir uno mejor. Existen numerosos osciloscopios mucho mejores, pero como mínimo el precio es el doble, y como aficionado no me puedo permitir gastar mucho dinero.


Osciloscopio Hantek6022BL

Características:
Dos canales analógicos.
Analizador lógico de  16 canales.
Muestreo de 48Msa/S
Ancho de banda de 20 MHz.
Impedancia de entrada: 1 M , 25pf
Resolución vertical: 8 bits
Las características son modestas, pero para un aficionado creo que la relación Calidad/Precio es buena.

Empezamos con la instalación del software mediante un mini CD , y los drivers del propio CD. También en el directorio de instalación del programa existe un directorio donde también se encuentran los drivers.
Para que nos reconozca el osciloscopio debemos tener el boton que se encuentra al lado del conector USB metido (modo H)
Solo existen programas para el entorno Windows, por lo que los que utilizamos Linux nos tenemos que aguantar.
Se instalan dos programas, uno es un osciloscopio de doble canal y otro es el analizador lógico.

En esta imagen vemos el programa de osciloscopio analógico de doble canal funcionando.

El programa tiene un poco de todo, pero es un poco simplón y poco cuidado en los detalles.

La misma onda en mi viejo osciloscopio.

No se puede comparar uno con otro.
El osciloscopio Hantek6022BL no dispone de selección de DC/AC por lo que si queremos medir corriente alterna debemos colocar un condensador.
La máxima tensión de entrada es de 5.5V, aunque con la sonda colocada a x10 podría llegar hasta 50V , pero no me fio.
Las ventajas del Hantek6022BL son varias, la medida automática de frecuencia y voltaje, además de poder exportar todos los datos e imágenes a ficheros.


Programa de analizador lógico.

El programa de analizador lógico es demasiado simple, poco mas de lo que se ve en la imagen hace.
El desplazamiento  a través de la línea de tiempo es aún peor.

Aquí tenemos una solución un tanto curiosa. Si apretamos el boton que se encuentra al lado del conector USB y lo sacamos (modo P), transformamos el analizador lógico del Hantek6022BL en otro modelo de analizador gráfico, el logic analyzer de la compañía Saleae Logic.
De la página  https://www.saleae.com/downloads descargamos el programa y lo instalamos. Los drivers se encuentran en el directorio donde se instala el programa.

Programa de la casa Saleae Logic funcionando con el Hantek6022BL.

Tiene analizador del tipo de bus, en el caso de la imagen de un puerto serie.
Se puede ver hasta el código de los caracteres y los tiempos de cada pulso.

Analizando los 3 buses del Chip DS1302.

Y para los que usamos Linux, también dispone de una versión para este sistema operativo.

Funcionando en Linux  con la distribución Mint 18  64bits


Ahora vamos a probar distintos programas alternativos.


Programa  Open6022BE

Desde la dirección  ftp://pididu.com/OpenHantek/  podemos bajar el programa de osciloscopio que parece un clon de oficial. Posee alguna opción que no dispone el oficial, y además se dispone del código fuente.
Para que me funcionase he tenido que copiar la librería HTMarch.dll que venía en el programa original al directorio del programa open6022, sustituyendo el que viene. Según alguna información esta realizando mediante ingeniería inversa.


Programa BasicScope.

Desde la dirección http://pididu.com/wordpress/basicscope/ se baja el programa y se instala.
Es un programa simple que funciona, probarlo y que cada uno opine.
Se dispone del código fuente, por si alguno se le ocurre hacer alguna modificación.

Como curiosidad he probado el programa de osciloscopio bajo VirtualBox en linux.
En principio funciona, pero al cambiar de escala se cuelga, creo que es debido a que a tasas de muestreo altas,  el controlador USB de la máquina virtual se cuelga. A tasas de muestreo bajas he conseguido que funcione.

Conclusión:
Por el precio que cuesta no se puede pedir mas.

Hasta pronto.
JUAN GALAZ

Bibliografía:
ftp://pididu.com/OpenHantek/
http://pididu.com/wordpress/basicscope/
https://www.saleae.com/downloads
http://www.hantek.com/en/ProductDetail_2_153.html

martes, 30 de mayo de 2017

Reloj con sonido DFPLayer MP3 Mini Arduino

Página principal


Reloj con sonido
DFPLayer MP3 Mini
Arduino



En mi anterior artículo había realizado un reproductor de MP3 mediante el módulo DFPLayer y gobernado con arduino.
Una de las ideas que se me vino a la mente fue la de un reloj que produjese sonido a las horas en punto y a los cuartos, y esto es lo que realizo en este montaje.
En este montaje incorporo los sonidos en una SD , estos sonidos podrían ser los de un cuco, de péndulo , o de torre, a voluntad de cada uno.
Para la exactitud del reloj  utilizo el Chip DS1302 que incorpora una pila para el mantenimiento de la hora en caso de que falte la corriente.
Para la visualización de la hora utilizo un LCD de nokia 3310, y para el ajuste de la hora dos pulsadores, horas y minutos.
Todos estos componentes se conectan al arduino según el siguiente diagrama.

Esquema eléctrico.


Diagrama de conexión.


Circuito montado.

En el programa existen dos #define importantes:
#define DEBUG
#define DIRECTORIO  5

-El primero activado o desactivado hace que muchos datos del programa se manden a través de puerto serie al PC.
-El segundo indica el directorio donde se almacenan los sonidos. Recordad que en la SD  los directorios tienen el nombre de 01,02,03,04,05 . Y dentro de estos directorios existen los archivos de MP3 con el nombre 001.mp3 , 002.mp3 , 003.mp3 ....etc.
En fichero 001.mp3 es el sonido de la campana de la 1.
El fichero 012.mp3 es el sonido de las 12.
El fichero 013.mp3 es el sonido de y cuarto.
El fichero 014.mp3 es el sonido de y media.
El fichero 015.mp3 es el sonido de menos cuarto.

Para cambiar las horas y los minutos tenemos dos pulsadores que incrementan su valor.
Al inicio del programa  suena la campana de la 1, a modo de indicación de que todo funciona.
Todo el conjunto consume en reposo 38mA a 5V  y 32mA a 4V .
Existen muchos métodos para reducir el consumo, pero este no era el propósito de este montaje.
Los sonidos que he incorporado no son los mas bonitos, pero eso se lo dejo a la imaginación de cada uno.

PROGRAMA

SONIDOS

VIDEO


Saludos.
JUAN GALAZ


armpg.html

arnote.html

jueves, 25 de mayo de 2017

Las impresoras, una lucha entre usuarios y compañías fabricantes.

Volver


Las impresoras, una lucha entre usuarios y compañías fabricantes.

Recuerdo mi primera impresora de chorro de tinta , HP500 , la compré de segunda mano. La impresora la utilizaba tanto en un viejo PC como en el buen Amiga, dando un resultado impecable.
Incluso tenía un cargador de tinta, que con cierta dificultad y manchando bastantes papeles, conseguía recargar los cartuchos. Algún día la he rescatado de su olvido, y con una limpieza de los cabezales mediante agua oxigenada y alcohol volvía a la vida con total normalidad. Para los ordenadores actuales que no disponen de puerto paralelo, utilizo un conversor de USB→Paralelo. El caso es que la vieja funciona perfectamente.
En las viejas impresoras se utilizaba los motores de paso a paso. En las nuevas en muchos casos se sustituyó por un motor de escobillas, mas rápidos y baratos. También incorporaron una banda óptica  que hacía mas preciso el movimiento del carro de impresión.
Es aquí donde quiero llegar, la fabricación de estas impresoras es perfecta, pueden durar casi  eternamente cambiando los cartuchos.
Esto lo vieron la compañía fabricante, no podían fabricar una impresora que podía durar para siempre. Para mas problemas los cartuchos se podían recargar con tintas baratas, no tan buenas como las originales, pero para la mayoría  de los usuarios servía.
Las compañías fabricantes pensaron que esto sería su ruina, no recaudarían nada o poco por los cartuchos. Creo que tuvieron una reunión (especulaciones mías  ;)  ) , y se pusieron de acuerdo en incorporar un chip que identificaba cada cartucho, suele ser una memoria EEPROM , en algún caso es una 24c02 .
Además se incorporaba un contador en la propia impresora, estos contadores llevaban el numero de páginas que llevaba impreso la impresora, y llegados a un numero de páginas la impresora deja de funcionar. En teoría se debía cambiar el cabezal en el servicio técnico, pero si alguno ha preguntado el precio se dará cuenta que vale casi  tanto como una impresora nueva.
En bastantes casos las compañías fabricaban impresoras que se las vendían a otras compañías donde cambiaban el nombre y colocaban algún tipo de dispositivo mecánico para impedir que unos consumibles se utilizaran de unas para otras. Como ejemplo HP fabricó impresoras para Olivetti, donde Olivetti cambiaba alguna parte del cartucho y solo servían sus propios consumibles. Canon también comercializo impresoras que fabricaba HP, solo cambiaba una pestaña en los toner para que no funcionara los consumibles de HP en sus impresoras. Yo cortaba la pestaña de los toner de HP  y los utilizaba en mi LBP2900, ( bricomanía de un informático) .
Cuando salió Windows 7 muchos se entrañaron de que no existieran drivers para determinadas impresoras, era muy fácil reescribir el drivers de XP para Win7, pero no se hizo. En muchos centros oficiales se llegaron a tirar cientos de impresoras que funcionaban bien, pero al actualizar a Win7 ya no servían. Un amigo aún no entiende que su impresora HP1020 no funciona en su flamante Win7.
Yo con linux no sufro estos percances, siempre hay drivers de casi cualquier impresora, y si es vieja mejor.
En muchos casos un cartucho que no imprime en una impresora por estar vacío (teóricamente) a pesar de saberse que esta lleno por su peso, en otra impresora funciona perfectamente. No es problema de los contactos, es el problema del contador de paginas.
La última que preparo HP fue controlar el numero de serie de cartucho, y a través de internet llevaba un control de los cartuchos que estaba recargados e impedir que estos funcionasen. De la noche a la mañana al actualizar los drivers a través de internet, nos podíamos encontrar que la impresora dejase de funcionar indicando que el cartucho estaba roto. Muchas oficinas les paso esto pues fueron las impresoras de oficina las primeras  en que HP  modificó los drivers. Esto obligó a pasar por caja y comprar consumibles originales. Al ver la que se montó, HP  reculó y dijo que cambiaría los drivers para que las impresoras admitiesen los consumibles reciclados, pero el mal estaba hecho. Ahora HP compra el negocio de impresión de Samsung por 935 millones de euros, cada vez hay menos opciones.

El método de engañar a algunos cartuchos HP.

No solo HP hace trampas, Epson tiene contadores internos de páginas y llegados a un numero salta un error y la impresora deja de imprimir. Muchos tiran las impresoras y compran impresoras nuevas sin saber que su impresora funciona perfectamente. Existe programas que resetean el contador de papel, el programa es wicreset, yo en principio no me lo creía pues te pedían 9€, pero te dejaban probarlo mediante una licencia trial dejando el contador al 90% . Yo lo probé y funcionó a la primera, y por arte de magia la impresora cobro vida.
También para dar vida a los cartuchos de Epson tengo un reseteador de cartuchos que compré hace años, y que aún hoy funciona perfectamente. En algunos casos compro cartuchos a 3€ y no merece la pena rellenarlos.

Reseteador de cartuchos epson.

Las impresoras Brother tienen un modo de mantenimiento que mediante una combinación de teclas pones a cero todos los contadores. De las impresoras Brother tengo una experiencia agridulce. Por una parte considero una impresora bastante buena , pero aparte del contador de paginas, les suele fallar el cabezal, se suele encharcar internamente, y su limpieza es un tanto complicada, cuando no imposible. Y como quieras cambiar el cabezal, el precio es de 54€ . No merece la pena.

Lugar donde se encharca la tinta.

Hace tiempo me dieron una impresora Samsung CLP 300 , es una impresora a color que tiene unos años. Cuando le hice un test de los cartuchos de tinta me los daba casi vacíos, pero yo los miraba y aún tenían bastante polvo de toner. Investigando por internet descubrí que se podían resetear para que indicase que estaban llenos . Mediante un antiguo grabador de EEPROM y con los ficheros correspondientes a cada color coloqué los indicadores de los cartuchos al 100%.

Reseteando toner Samsung CLP 300.

Como vemos la vida del usuario es dura, y los centros de reciclaje están llenas de impresoras que funcionan perfectamente.

Saludos.
Juan Galaz





viernes, 12 de mayo de 2017

MP3 DFPLayer Mini Arduino


MP3
DFPLayer Mini
Arduino



Reproducir un fichero de MP3 mediante arduino  es imposible, no tiene suficiente potencia de cálculo.
Reproducir ficheros WAV en arduino es posible, pero haciendo ciertas trampas, pero se puede a tasas de muestreo bajas.
Para poder reproducir ficheros mp3 usamos un módulo llamado DFPLayer Mini , cuesta menos de 3€ y tiene varias interfaces para programarlo, Serie, USB, mediante botones.
Dispone de un zócalo para lectores de tarjetas mini SD donde se colocan los ficheros mp3 a reproducir.
Tiene salida stereo, pero además se puede colocar un pequeño altavoz para oír directamente sonidos sin necesitar amplificador, genera hasta 3W de potencia.

Si queremos hacer una prueba rápida del DFPLayer Mini debemos hacer este pequeño montaje.

Recordar que el módulo en reposo consume 20mA , y reproduciendo puede superar los 100mA, debemos tener cuidado.

Para controlar el DFPLayer Mini desde el arduino existe una librería bastante buena  DFRobotDFPlayerMini-master.zip , se puede bajar desde: https://github.com/DFRobot/DFRobotDFPlayerMini .
Estuve haciendo pruebas con dicha librería y funcionaba bastante bien, pero no trabajaba en versiones antigua de arduino.
Como me gusta investigar, cree mis propias rutinas para controlar el DFPLayer Mini, y realicé un par de programas para probarlas.
La conexión del arduino al módulo DFPLayer Mini es como se ve en la imagen.

La resistencia de 22 ohmios que se coloca en serie con el altavoz para limitar el consumo.
La resistencia de 1K se coloca para adaptar los niveles, el arduino funciona a 5V y el módulo internamente a 3.3V .
La patilla 16 (Busy) del modulo la conectamos a la entrada D2 del arduino, nos indica si el módulo está reproduciendo algún fichero.





El primer programa escucha el puerto serie del arduino que se encuentra conectado al PC. Interpreta las ordenes el arduino y las manda al módulo.
Las ordenes posibles son:
NEXT , PREV , PLAYN , VOL+ , VOL- , VOLUMEN , EQA , MODE , SOURCE , STANDBY , NORMAL , RESET , PLAY , PAUSE , FOLDER , VOLUMEN , REPEAT , HELP
Si tecleamos en la consola HELP nos visualizar las posibles ordenes, da igual mayúsculas que minúsculas.

Ejemplos:
playn 3           -Nos reproduce el tercer fichero.
folder  1,2       -Nos reproduce la segunda canción del primer directorio.
pause             -Para la reprodución
play              -Continua la reproducción.
volumen 20        -Pone el volumen a 20  volumen entre 0 y 31.


Comandos del DFPLayer Mini

En las rutinas que he realizado no activo el modo respuesta, por lo que no leo las repuesta del DFPLayer Mini.


El segundo programa es un ejemplo de reproducir unas serie de ficheros mp3, espera a que termine un fichero para empezar el siguiente.

void loop()
{
  playw("folder 1,1");
  playw("folder 1,2");
  playw("folder 1,3");
  playw("playn 13");
}


Para la estrucura de ficheros y directorios se debe realizar de esta forma.

Podemos utilizar nombres en  ficheros y directorios, pero su reprodución y selección de ficheros es un tanto complicada.


PROGRAMA1

PROGRAMA2

En próximas entregas pienso realizar un reloj que toque las horas mediante el reproductor de mp3.

Saludos.
JUAN GALAZ


Bibliografía:
https://github.com/DFRobot/DFRobotDFPlayerMini .
https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299
https://www.luisllamas.es/arduino-mp3-dfplayer-mini/
http://stonez56.blogspot.com.es/2015/03/arduino-dfplayer-mini-mp3-module.html


lunes, 8 de mayo de 2017

Conceptronic C05-156 Usb 2.0 Cable USB 2.0 VistaTM


Conceptronic C05-156 Usb 2.0 Cable USB 2.0 VistaTM



Bus 003 Device 005: ID 067b:25a1 Prolific Technology, Inc. PL25A1 Host-Host Bridge

El Windows 7 lo detecta automáticamente, pero lo hace como sincronizador de cuentas de usuario. Si lo usamos para eso solo debemos de selecciona el emisor de ficheros y el receptor de ficheros, y aceptar las carpetas que debemos sincronizar . Automáticamente empezara a sincronizar los datos.
También podemos utilizar en los dos ordenadores el programa que bajemos de:
y podremos intercambiar los ficheros que queramos.
La velocidad bajo Windows 7 resultó en las pruebas de 22 Megas/segundo.

En Linux no existe un programa especifico, debemos crear una red mediante el cable USB.
En cada ordenador y como root.
PC1
-----
ifconfig usb0 192.168.2.1

PC2
-----
ifconfig usb0 192.168.2.2

Si tecleamos ifconfig en algun ordenador nos saldrá:

usb0 Link encap:Ethernet direcciónHW 4a:2d:cb:ff:48:93
Direc. inet:192.168.2.1 Difus.:192.168.2.255 Másc:255.255.255.0
Dirección inet6: fe80::d4dd:8c87:f13c:364/64 Alcance:Enlace
ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST MTU:1500 Métrica:1
Paquetes RX:145 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:150 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:1000
Bytes RX:29505 (29.5 KB) TX bytes:27553 (27.5 KB)

Eso significa que hemos creado la red.
Ahora en uno de los ordenadores para probar la red creamos un servidor ftp. Para este ejemplo utilizaremos el ftpd , no es el mejor y en algunas distribuciones se quitó debido a que la conexión no esta codificada y mediante un lector de red se puede sacar las contraseñas, pero para este caso sirve.
Ahora solo debemos probar el servidor ftp desde el otro ordenador.
Con el programa gftp instalado o con cualquier otro tecleamos.

PC2- gftp 192.168.2.1 usuario contraseña

Aquí veremos como podemos copiar ficheros a una velocidad de 24M/s.


Saludos
Juan Galaz

miércoles, 12 de abril de 2017

Mi colección de cámaras web

Me paso los domingos visitando un rastrillo donde encuentro todo tipo de aparatos que tira la gente.
Viendo la cantidad de cámaras web que la gente retira debido a que los portátiles ya incorporan cámara, se me ocurrió hacer una pequeña colección.
Por lo general no suelo pagar mas de 2€, esto debido a que algunas veces algunas cámaras no funcionan y no me puedo arriesgar.
Existen cámaras buenas, malas y muy malas, hay de todo.
Lo normal es probarlas bajo linux, evita volverse loco en windows para encontrar los drivers.
De todas las que tengo  me quedo con:

Bus 004 Device 007: ID 1415:2000 Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc. Sony Playstation Eye

Es una cámara para la playstation  , y funciona perfectamente en un PC.
Para linux no hace falta drivers y además de llegar a 120 fps en la resolución de 320x240 dispone de 4 micrófonos, es un lujo. Se puede comprar en la tienda GAME por 5€, de segunda mano

Mi colección de cámaras web