jueves, 22 de mayo de 2025

Amstrad CPC 464 Reparación parte 2

Muy buenas a todos y todas!!!

La espera ha sido larga pero, desde Australia, ya tengo en mis manos la membrana para el Amstrad CPC 464!!!

De la mano de RetroFuzion una web que se dedica a repuestos para estas "reliquias" de los años 80, tanto Amstrad como Amiga o Commodore entre otros.

La membrana es nueva, y al tenerla en la mano se nota que es de buena calidad. Al igual que la original es de plástico, pero se nota tanto por peso como al tacto se nota que el material es más resistente que el original.

Como se aprecia en la fotografía es exactamente igual (salvando las diferencias en las pistas) y colocarla ha sido realmente fácil. Veamos que tenemos que desmontar para poner la nueva membrana.

Ya teníamos el Amstrad desmontado quitando los 6 tornillos de la parte posterior del Amstrad 464 como vimos en el articulo anterior Amstrad CPC 464 reparación parte 1. Ahora ya tenemos a la vista la parte posterior del teclado y podemos ver que tiene otros 6 tornillos que fijan el teclado a la carcasa.

Ahora que ya tenemos el teclado separado, tenemos que retirar con mucho cuidado las pestañas que fijan el teclado a la parte metálica. Esta pestañas son de plástico y son fáciles de romper, de hecho, faltan un par, aunque no influye a la hora de volver a montarlo y su funcionamiento.


Ahora si ya tenemos a la luz la parte del teclado que nos interesa, la parte mecánica del teclado:

Como se puede observar en la fotografía y ya comente anteriormente, faltan algunos muelles de las teclas, unos cuantos la verdad.

Como medida temporal he cambiado los muelles del teclado numérico a las teclas principales puesto que ya tengo números en el teclado normal, y como digo es temporal.

Ya con todo en su sitio, ponemos la nueva membrana en su posición y comprobamos que esta bien centrada y volvemos a los pasos anteriores pero de manera inversa. Primero ponemos la parte trasera metálica con las pestañas. Colocamos el teclado en su posición y ponemos los 6 tornillos que lo fijan a la carcasa.

Ahora conectamos los cables flex en sus sockets (2) y por último los cables de alimentación y un cable negro que va conectado al teclado. Alineamos las carcasa con cuidado de no "pisar" los cables flex entre ambas carcasas.

Con todo listo queda la parte más tensa después de la larga espera, ¿funcionará? ¿Tendremos algún problema extra? Solo hay una manera de comprobarlo...

Conectamos el cable RGB, alimentación, accionamos el botón de encendido y ....

Funciona todo correctamente aunque por el tema de los muelles no he podido probar el teclado númerico de la parte derecha. Pero todo lo demás de 10.

Los muelles seguramente los compraré por Aliexpress o similar, aunque he pillado unos del chino (si, en el chino venden muelles) aún no he tenido tiempo de probar si funcionan o encajan (se me hacen un poco grandes).

La siguiente misión es la carga de algún juego o programa desde cinta o desde un dispositivo tipo TZXDuino o similar. Creo que hay algunas opciones para Android como PlayTZX , pero eso lo veremos la próxima entrada donde tocaré estos temas ya que me parecen proyectos muy interesantes para estas bestias de 8bits.

Recuerda que puedes visitar Amstrad CPC 464 reparación parte 1 donde encontrarás la primera parte de esta aventura ochentera.

También tienes más información sobre su hermano mayor, el CPC 6128 en Amstrad CPC 6128 Limpieza y puesta a punto.

Repuesto para membrana Amstrad CPC 464 de Retro Fuzion

Manual de mantenimiento CPC 464 en Ingles.

Manual de usuario CPC 464 en Español.

Guía de usuario CPC 464 en Español.

Manual de referencia BASIC en Español.

Comunidad Amigos y Usuarios de Amstrad.

Y por supuesto, el canal de MMChip, para mi una de las mejores guías visuales sobre Amstrad y Spectrum entre otros: Youtube canal MMChip.

Saludos retro!!

lunes, 5 de mayo de 2025

Sega Megadrive Limpieza y puesta a punto

Hace poco ha llegado a mis manos una consola iconica de mi juventud, la Sega Mega Drive

La Sega Mega Drive, junto con su contemporánea Super Nintendo (SNES) fueron las consolas de 16Bits más icónicas de los 90. La nueva consola de Sega se empezó a comercializar en Europa a finales de 1990.

Por suerte con la consola me han llegado 4 cartuchos, el mítico Sonic The Hedgehog, Los Lemmings, Power Ranger Mighty Morphing, y un cartucho 3 en 1 con The revenge of Shinoby, Street of rage, Golden Axe. No está mal para empezar.

Con el pack también me incluían 2 mandos de 3 botones, la fuente de alimentación y un cable de vídeo AV.

Antes de continuar con la limpieza y la experiencia de devolver la juventud a esta pequeña joya de los 90s veamos sus características técnicas, accesorios y periféricos más comunes:

💾 Especificaciones técnicas

  • Procesador: Motorola 68000 (16-bit) a 7.67 MHz.
  • Memoria: 64 KB RAM, 64 KB VRAM.
  • Colores: Podía mostrar 512 colores en pantalla (hasta 64 simultáneos).
  • Resolución: 320×224 píxeles.
  • Sonido: Chip YM2612 (6 canales FM) + PSG (4 canales).
  • Compatibilidad: Zilog Z80 para ser compatible con Sega Master System 

🎮 Accesorios y periféricos

  • Control estándar: Mando de 3 botones (A, B, C) y luego el de 6 botones para juegos como Street Fighter II.
  • Sega CD (Mega CD): Add-on para juegos en CD (1991).
  • Sega 32X: Expansión para juegos 32-bit (1994, fracaso comercial).
  • Sega Mega Drive Mini: Versión mini lanzada en 2019 con 40 juegos preinstalados.

Ahora que ya hemos visto los puntos mas importantes de esta consola vamos con lo que llego a mis manos, como siempre, lo primero fue una buena limpieza exterior, no me gusta andar tocando cosas con tantos años. Una vez limpia tocaba enchufarla a la pequeña TV de tubo ideal para este tipo de cacharreo.

Encendió a la primera!!! Pero la alegría no duro mucho, al probar los otros juegos no daba imagen, volvemos a probar el primero y tampoco...

Saque los bastoncillos y el alcohol isopropilico y le di una buena limpieza a los cartuchos, que dicho sea de paso, les hacia mucha falta, con eso conseguí probar los otros cartuchos que con dificultades, fueron funcionando.

Esto ya da pistas sobre el problema ya que los juegos funcionan, da imagen y sonido. De esta manera podemos casi asegurar que sera un problema de limpieza.

Limpieza total de la Sega Mega Drive:

Como es normal con un aparato con de esta época, la carcasa esta bien pero tiene algún arañazo pero las condiciones son más que aceptable:

Mega Drive frontal
Mega Drive parte posterior

Para iniciar la limpieza, lo primero es retirar los 6 tornillos que hay en la parte posterior:


Aquí, por suerte, ya se podía intuir cual era el problema, en el socket donde se insertan los cartuchos una de las patillas tenía un color feo, verde, muy similar al que tienen las pilas de un mando olvidado en un cajón con las pilas puestas durante años. O más comúnmente llamado sulfatado.


Bien ahora vamos a quitar la placa de protección que hay sobre la placa base de la Mega Drive, para esto tenemos que retirar 7 tornillos, 1 en la parte superior y otros 6 en las diferentes pestañas, como se indica en la siguiente imagen:


Ya tenemos el cerebro de la bestia a la vista el Motorola 6800 el chip de sonido Yamaha YM2612 y un microprocesador Zilog Z80, es curioso que el Z80 esta en muy presente en la tecnología de esta época.


También los chips propios de Sega como el Sega 315-5313 Video Display Processor (VDP) o la SRAM para el Motorla con los chips TC51832SPL-10.

Los últimos tornillos son los que anclan la placa base de la Sega Mega Drive a la carcasa, 6 en total:

A partir de este punto todo lo que le hagas a la consola siguiendo este tutorial (vamos a llamarlo así) queda bajo tú propia responsabilidad

Para la limpieza del socket el vinagre puede ser un gran aliado, aplicando unas gotas lo dejamos actuar 1 minuto y con una brocha fina "rascamos" un poco, pero con delicadeza. Es un metal muy fino y se podría doblar.

Con el socket de los cartuchos limpio.. Toca baño!!! Una de las mejores maneras de limpiar cualquier placa. Lo mejor es usar jabón, agua y una brocha:


Le damos una buena limpieza con la brocha y jabón y lo enjuagamos con agua limpia, hecho esto lo dejamos secar. Esta es la parte más critica.

La placa tiene que estar completamente seca y además sin rastro de humedad. Por suerte para mi, dispongo de una buena cantidad de sol que hace el secado mucho más rápido, en este caso, la placa estuvo entre 2 y 3 horas al "solano".

Después de esto, con un secador de pelo le dimos un repaso a partes como el interruptor, parte baja de los integrados o donde está el circuito de RF.

Si no estamos seguros de que la placa este totalmente seca y si humedad, mejor esperar al día siguiente para seguir con el montaje, mientras puedes limpiar las carcasas y piezas de plástico.

Con todas las pieza limpias realizamos el proceso inverso al desmontaje de la Sega Mega Drive descrito más arriba.

Para darle un poco más de brillo podemos pasarle un trapo con algún limpiador de plásticos tipo salpicadero de coche.

Hecho todo esto, conectamos alimentador, cable AV, monitor encendido, e inserto el primer cartucho de Sonic y arranca sin problemas, inserto los demás y todos funcionan a la primera!!!

Una consola que daba algunos fallos con la carga de los cartuchos que ahora funciona como si fuera nueva.

Os dejo un enlace donde encontre información sobre los chips y como se comunican entre ellos. Me pareció muy curioso el hecho de tener un Motorola 6800 (16bits)y un Zilog Z80 (8bits) trabajando conjuntamente para favorecer la compatibilidad con versiones anteriores y manejar la entrada de audio y controlador

La web se llama Retrosix y tiene mucha información técnica de muchas consolas.

Ahora toca disfrutar de esta magnifica Sega Mega Drive, Saludos!!!

miércoles, 30 de abril de 2025

DFPlayer Mini Bluetooth 2025

Muy buenas a todos!!!

Hace ya un tiempo escribimos sobre estos módulos para reproducir MP3 llamados DFPlayer Mini. Para hacer un pequeño resumen, este módulo es capaz de reproducir archivos de música mp3 tanto de manera autónoma con unos pulsadores como con una conexión serial con algún dispositivo tipo Arduino, ESP8266 o ESP32, por poner algunos ejemplos.

El DFPlayer Mini cuenta además con un amplificador de 3W y 6 niveles de ecualización entre otras características que puedes ver aquí.

Para el programa que presento hoy DFPlayer Mini Bluetooth for Android, vamos a usar el ESP32, siendo más específicos un DOIT Esp32 DevKit v1, pero el código nos puede servir para cualquier ESP32.

La elección de este microcontrolador es, por supuesto, que lleva el Bluetooth integrado. Esto nos ahorra material, tiempo y dinero.


Diferencias con los programas anteriores:

La principal diferencia con los programas anteriores es el uso de la librería de DFRobot, DFRobotDFPlayerMini. El cambio se debe a que la que usábamos anteriormente: DFPlayer-Mini-mp3, (también del mismo autor) esta descontinuada.

Por otra parte DFPlayer Mini Bluetooth for Android ha tenido un evidente lavado de cara y se han añadido las nuevas funciones de la nueva librería. 

 


Las conexíones del módulo utilizamos Tx2 y Rx2 que corresponden a los pines Gpio 17 y Gpio 16 respectivamente para la comunicación con el módulo DFPlayer y el pin Gpio 19 para la función busy.

La función busy es imprescindible para detectar el final de la canción, si no, el módulo no sabe cuando tiene que pasar a la siguiente.

Problemas con reinicios: Si el módulo no tienen una buena alimentación puede dar problemas en el momento de, por ejemplo, subir el volumen al máximo. Esto hará que el módulo DFPlayer Mini se reinicie emitiendo un sonido un poco desagradable

Aquí están los programas para probar el módulo DFPlayerMini:

Arduino:

Descargar DFPlayerMiniBluetooth desde GitHub

Android:

Descargar DFPlayer Mini BT for Android desde Play Store

Saludos!!!

lunes, 14 de abril de 2025

Amstrad CPC 464 Reparación parte 1

Muy buenas a todos y todas!!!

Hoy traigo la segunda adquisición de Amstrad: El Amstrad CPC 464.

Antes de empezar con mis idas y venidas con este ordenador vamos a ver sus especificaciones técnicas:

Como su hermano mayor, el CPC 6128, el CPC 464 cuenta con procesador Zilog Z80. También con una velocidad de 4Mhz de los cuales son efectivos 3,3Mhz.


Zilog Z80 en Amstrad CPC 464

Su memoria RAM es de 64Kb (La mitad que el CPC 6128).

Su memoria ROM es de 48Kb.

Su Controlador de vídeo es un Amstrad Gate-Array 40010 y un controlador de gráficos 6845 CRTC. Esto nos permite tener 3 diferentes modos de texto y 3 modos gráficos:

  • Los 3 modos de texto:
    • 20x25 caracteres
    • 40x25 caracteres
    • 80x25 caracteres
  • Los 3 modos gráficos:
    • Modo 0: 160x200 en 16 colores
    • Modo 1: 320x200 en 4 colores
    • Modo 2: 640x200 en 2 colores

Otras particularidades de la máquina son:

  • Paleta de 27 colores.
  • Unidad de casete integrada, con 2 velocidades, 1000 y 2000 baudios.
  • Conectores para monitor RGB, impresora Centronics, joysticks y salida de audio.
  • Chip de sonido General Instrument AY-3-8912, con 3 canales de sonido y un canal de ruido blanco.

Amstrad CPC Locomotive Basic 1.0

Mi Amstrad CPC 464

Lo adquirí en una web de cosicas de segunda mano con un estado "En condiciones aceptables".. Spoiler: No eran tan aceptables.

Por suerte, su primera conexión fue exitosa, Una pantalla azul casi identica a la que sale en CPC 6128. Hasta aquí todo bien.

Ahora empiezan los problemas: Al pulsar una tecla... nada... al pulsar otra.. nada... EL TECLADO NO FUNCIONA y esto no me lo había comentado el vendedor...

Tocaba destripar al paciente.

Primero tenemos que retirar los 6 tornillos que están en la parte posterior del teclado y con esto ya tenemos separadas las carcasas. 


 

Separamos poco a poco ya que hay cables conectados entre las dos carcasas, el cable del teclado, que son dos conectores de plástico y El conector que sale de la unidad de cinta y va hacia la placa.

Hecho esto podemos ver la placa del Amstrad CPC 464:


Primera misión: Encontrar el fallo:

La parte que va dedicada al teclado está en la parte izquierda de la placa. No ha sido difícil encontrar el fallo: La Membrana esta rota y faltan de algunos muelles que presionan las membranas.

Aquí falta algo...

Según tengo entendido gracias a este magnifico vídeo de Manuel Cuenca llamado Reparación Amstrad CPC 472 de Juanan, no enciende, fallo parcial de teclado y sin sonido. en su canal de Youtube: "Manuel Cuenca (MMChip)".

Aunque no es especifico para el Amstrad CPC 464, nos puede servir como una excelente guía para detectar el fallo. En mi caso me centre en el minuto 5:00 que es donde explica como probar que la placa este correctamente haciendo unos puentes entre los diferentes puntos del conector CP002. Haciendo esto comprobé que aprecian letras y números.

Podemos comprobar esto con un puente entre los pines 9 y 19 en el conector CP002:

Esta combinación activa la tecla "intro", de esta manera descartamos que sea la placa del CPC la que pueda tener algún integrado en mal estado.

En la siguiente imagen están todas las combinaciones de teclas tal y como viene descrito en la pagina 11 del Service Manual (en Ingles):


Pincha en la imagen para agrandar.

Segunda misión: Encontrar repuestos.

Esta es la parte mas difícil hasta ahora, encontrar repuestos... y para la membrana nada menos!!! Navegando por diferentes Webs podemos encontrar algunas alternativas. Pero antes de comprar mejor tener la mayor información posible, así que recurrí otra vez al canal de Manuel Cuenca quien, desde un principio se ofreció a echarme una mano con mi pequeña empresa de arreglar esta pequeña joya.

La solución ha venido de la mano de "Retro Fuzion", una web situada al sur de Australia dedicada a repuestos de Commodore, Atari, Amiga y alguno más.

Es curioso que siendo un aparato de origen Ingles, los únicos que tengan este tipo de repuestos sea el sur de Australia.

Bien!! hasta aquí la primera parte, continuaré con la entrada cuando reciba el repuesto y lo ponga en la máquina.

Saludos Retro!!!

Amstrad CPC 464 reparación parte 2

miércoles, 2 de abril de 2025

Geo6Mv2 GPS for Android

Muy buenas a todos!!!


En este Blog ya hemos visto usar el módulo NEO6MV2 GPS en dos modos diferentes, NEO6MV2 GPS serial y representando la ubicación en un programa escrito en Python y OpenStreetMaps.

Pero ahora toca salir al exterior y probar el el modulo NEO6Mv2, para esto tenemos Geo6Mv2 for Android un pequeño programa para teléfonos Android con el que nos podemos conectar vía Wifi y ver los datos recibidos en nuestro terminal Android.


Además podemos marcar los puntos que necesitemos y la misma aplicación trazará una linea entre los diferentes puntos.

Configuración de Geo6Mv2:


En su configuración podremos cambiar ciertos parámetros como:

  • Use Marks: Opción para usar marcadores sobre la pantalla.
  • Big Icon mark: Icono de marcación grande o pequeño.
  • Short Mark description: Para cambiar el titulo que aparecera en los marcadores
  • Minimun distance to update: Distancia mínima a la que el sensor actualizará la posición. Ideal para mejorar la precisión entre puntos. Si la última posición es mayor a ese valor se creará un nuevo punto en el mapa.
  • Custom zoom: Zoom con el que se inicia el programa y cualdo se pulse sobre el botón "Centrar.
  • Show data input: Muestra en la pantalla principal los datos que recibe directamente desde el módulo NEO6MV2.
  • Show coordinates with one tap: Para mostrar las coordenadas al pulsar sobre el mapa.
  • Start point: Latitud y longitud en los que aparece el mapa al iniciar el programa.

También podemos copiar esas coordenadas en el portapapeles y copiarlas donde queramos. Para esto haremos una pulsación larga sobre las coordenadas que aparecen en la parte inferior de la pantalla principal:





Con una interfaz sencilla capaz de mostrar todos los datos recibidos por este sensor de posicionamiento.

La librería que se utiliza es "TinyGPSPlus.h" de Mikal. La librería TinyGPSPlus se puede descargar desde el mismo gestor de bibliotecas del que dispone el IDE de Arduino.

Con la librería instalada, descargamos el programa para el ESP8266 geo6mv2-for-android desde GitHub. En este caso la placa que vamos será un NodeMCU 1.0, aunque puede servir cualquier ESP8266 al que le podamos añadir una entrada serial extra con la librería "SoftwareSerial.h". Este es el diagrama de conexiones.

Recuerda que los pines D3(tx) y D4(rx) corresponden a los GPIO 2(tx) y 0(rx). Esto suele crear confusión a la hora de definir los pines. Revisa la hoja de datos de tu placa para evitar posibles errores.

Configuración Geo6mv2-for-android.ino

Unicamente tenemos que configurar la conexión wifi a la que nos vamos a conectar completando los parámetros YOUR_SSID y WIFI_PASSWORD.


const char* ssid = "YOUR_SSID";
const char* password =  "WIFI_PASSWORD";

  • Wifi en red local
  • Android en modo punto de acceso (AP)

Red Local:

Este es el router wifi o punto de acceso que tenemos normalmente en casa, el inconveniente es que solo nos podemos mover en el rango que nos permita el router. En este caso YOUR_SSID y PASSWORD serán las mismas que utilizas para conectar cualquier dispositivo Wifi.

Android en modo punto de acceso (AP):


Esta es la mejor opción para exteriores. Se encuentra en la configuración del propio teléfono, su acceso dependerá de la versión de Android que estemos usando.

Ya en la pantalla de configuración nos muestra el SSID y pulsando sobre Hotspot password nos mostrará el password de la red.

Copiamos estos datos en YOUR_SSID y WIFI_PASSWORD y ya tenemos los datos de la red para exteriores.

Nota:

En algunos modelos de Android es necesario desactivar el Wifi "normal" antes de empezar con la conexión con Arduino

Subir el programa al ESP8266 NodeMCU:

Si ya has configurado la red wifi el último paso es subir el programa al ESP8266 seleccionando el puerto donde este conectado COM X para Windows o /dev/ttyUSBX si usas Linux.

Con la placa y el puerto seleccionado, pulsamos sobre el botón "cargar".

En cualquiera de los dos casos, red local o punto de acceso, cuando abrimos el monitor serial del IDE de Arduino nos aparece la IP a la que nos tenemos que conectar desde el dispositivo Android: 


Primera conexión

La primera conexión que realiza el módulo puede demorar más de un minuto dependiendo de la cobertura que tengamos. Recuerda que si estas en un interior poner el módulo cerca de una ventana para mejorar la recepción.

Abrimos el programa que ya tenemos descargado en nuestro dispositivo Android y pulsamos sobre el menú en la opción "Start Wifi y se abrirá la siguiente pantalla: 

 


Y pulsamos sobre el botón "Connect!

Ahora solo hay que esperar a que el módulo Neo6MV2 tenga los suficientes satélites para que podamos fijar la posición. 


Como al iniciar el programa aparecemos en Madrid, este valor se puede cambiar para iniciar en la localización que más nos guste. Pulsamos sobre "Add mark" para fijar la posición que recibimos desde el ESP8266 y seguidamente pulsamos "Center" para central la última marcha creada.

Podemos crear todas las marcas que necesitemos y al pulsar sobre ellas si abrirá una ficha con los datos de la posición.

Aquí tienes los programas para probar el módulo NEO6MV2 GPS:

Descargar Geo6MV2 GPS for Android desde GitHub Arduino

Descargar Geo6MV2 for Android desde Play Store Android

Saludos!!!

sábado, 8 de febrero de 2025

MPU6050 Acelerómetro y Giroscopio con Arduino

Muy buenas a todos!!!

Vamos a ver que funcionalidades tiene el sensor MPU6050 el cual integra un acelerómetro de 3 ejes un giroscopio de 3 ejes y un sensor de temperatura, aunque este último no es muy preciso.

Antes de empezar vamos a destacar algunos de los términos que se usan con este sensor:

¿Que mide el acelerómetro?

Como su nombre indica, un acelerómetro mide la aceleración que es una magnitud vectorial, es decir, magnitud el cambio de velocidad, y la dirección, hacia donde se realiza el cambio.

A grandes rasgos hay tres tipos de aceleración:

  • Aceleración positiva: La velocidad de un objeto aumenta en el tiempo.
  • Aceleración negativa: La velocidad de un objeto disminuye con el tiempo.
  • Aceleración centrípeta: La dirección cambia a una velocidad constante.

¿Que mide el giroscopio?

Un giroscopio es un dispositivo que mide la velocidad angular o tasa de rotación de un objeto en los ejes X, Y y Z. La velocidad angular se expresa en grados por segundo (°/s) o radianes por segundo (rad/s).

El MPU6050, está basado en tecnología Micro-Electro-Mechanical Systems más conocido como MEMS . Esta tecnología utilizan un pequeño elemento vibrante que, al girar, experimenta una fuerza llamada efecto Coriolis. Esta fuerza es detectada y convertida en una señal eléctrica, que luego se traduce en una medida de la velocidad angular. Esto nos permite detectar rotaciones en cualquier dirección.

También podemos configurar el rango de medición teniendo en cuenta que rotaciones más rápidas equivalen a una menor precisión.

El rango de medición es configurable con los siguientes valores:

  • ±250 °/s
  • ±500 °/s
  • ±1000 °/s
  • ±2000 °/s

Resumen de aceleración y giroscopio en el contexto del MPU6050

El acelerómetro del MPU6050 mide la aceleración en los ejes X, Y, Z. Esto incluye:

  • La aceleración debida al movimiento por ejemplo, si mueves el sensor.
  • La aceleración debida a la gravedad 9.8 m/s² hacia el centro de la Tierra.

El acelerómetro del MPU6050 mide la velocidad angular en los ejes: X, Y y Z.

  • La velocidad angular se expresa en grados por segundo (°/s) o radianes por segundo (rad/s).

Diferencia entre giroscopio y acelerómetro


  • Acelerómetro: Mide la aceleración lineal (cambios en la velocidad en línea recta) y la inclinación respecto a la gravedad.
  • Giroscopio: Mide la velocidad angular (cambios en la rotación o giro).

La combinación de ambos sensores trabajando juntos para proporcionan una imagen completa del movimiento de un objeto. Por ejemplo:

  • El acelerómetro puede decirte si un objeto está inclinado.
  • El giroscopio puede decirte si el objeto está girando y a qué velocidad.

Conexiones MPU6050:

  • VCC: Alimentación +.
  • GND: Alimentación - o masas.
  • SCL: Serial Clock pin para la interfaz I2C.
  • SDA: Serial Data pin para la interfaz I2C.
  • XDA: I2C externo Serial Data para conectar sensores externos como un magnetómetro.
  • XCL: I2C externo Serial clock.
  • AD0: Cambia de dirección para evitar conflictos: GND -> Dirección 0X68 o +3.3V -> Dirección 0x69.
  • INT: Pin de interrupción. El MPU6050 puede programarse para generar interrupciones al detectar ciertos gestos o vibraciones.

Librerías para MPU650:




#include <Wire.h>

// Dirección del sensor
const int MPU6050_addr=0x68;


int16_t AccX, AccY, AccZ; 
int16_t GyroX, GyroY, GyroZ;
int16_t Temp;

void setup(){
  
  Wire.begin();
  Wire.beginTransmission(MPU6050_addr);
  Wire.write(0x6B);
  Wire.write(0);
  Wire.endTransmission(true);
  
  Serial.begin(115200);
}

void loop(){
  Wire.beginTransmission(MPU6050_addr);
  Wire.write(0x3B);
  Wire.endTransmission(false);
  Wire.requestFrom(MPU6050_addr,14,true);
  
  AccX=Wire.read()<<8|Wire.read();
  AccY=Wire.read()<<8|Wire.read();
  AccZ=Wire.read()<<8|Wire.read();
  Temp=Wire.read()<<8|Wire.read();
  GyroX=Wire.read()<<8|Wire.read();
  GyroY=Wire.read()<<8|Wire.read();
  GyroZ=Wire.read()<<8|Wire.read();
  
  Serial.print("AccX = "); Serial.print(AccX);
  Serial.print(" || AccY = "); Serial.print(AccY);
  Serial.print(" || AccZ = "); Serial.print(AccZ);
  Serial.print(" || Temp = "); Serial.print(Temp/340.00+36.53);
  Serial.print(" || GyroX = "); Serial.print(GyroX);
  Serial.print(" || GyroY = "); Serial.print(GyroY);
  Serial.print(" || GyroZ = "); Serial.println(GyroZ);
  delay(100);
}


Una vez que subamos el programa al microcontrolador, en el monitor serial, tendremos la siguiente salida:


AccX = 13432 || AccY = -792 || AccZ = 9780 || Temp = 44.06 || GyroX = 911 || GyroY = -10038 || GyroZ = -5514


Problemas con las librerías


Mientras he realizado las pruebas he tenido algunos problemas con las librerías, por lo que al final he usado la obtención de datos usando unicamente la librería "Wire.h". Con estos datos podemos hacer casí cualquier sistema que necesite conocer su posición, movimiento y posición angular tales como...

  • Drones: Para estabilizar el vuelo y detectar cambios de orientación.
  • Robótica: Para controlar la dirección y el movimiento de robots.
  • Realidad virtual: Para rastrear movimientos de la cabeza o manos.
  • Navegación: En sistemas de navegación inercial para vehículos.

Hoja de datos del MPU6050


Aquí tienes otros enlaces de este blog relacionados con sensores y Arduino:

Esp8266 y adxl345 acelerómetro de 3 ejes, lectura serial

Arduino: Grabación y lectura de Infrarrojos (IR) y control de 4 reles


Saludos!!