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