Usando el MCP2515 con la Raspberry Pi

Using the MCP2515 with the Raspberry Pi

El MCP2515 es un módulo de controlador Popular (Network de Área del Controlador) que permite que los dispositivos Raspberry PI se comuniquen con los sistemas habilitados para CAN. Esto lo hace ideal para proyectos automotrices, automatización industrial y aplicaciones IoT. Esta guía explica cómo configurar y usar el MCP2515 con una Raspberry Pi.


Lo que necesitarás

  1. Frambuesa pi (Cualquier modelo con soporte de GPIO, por ejemplo, PI 3, PI 4)
  2. Módulo MCP2515 CAN
  3. Cables de placa y jersey
  4. Una computadora con acceso SSH a la Raspberry Pi o un teclado y monitor conectado
  5. Python instalado en la Raspberry Pi
  6. Puede el módulo transceptor (si no se incluye con el MCP2515)

Paso 1: Cableado el MCP2515 al Raspberry Pi

El MCP2515 se comunica con la Raspberry Pi usando el protocolo SPI.

Conexiones (modo SPI)

Pin MCP2515 Pin de frambuesa Pi
VCC 3.3V (pin 1)
Gnd Tierra (pin 6)
CS GPIO8 (pin 24, SPI0_CE0)
ENTONCES GPIO9 (Pin 21, SPI0_MISO)
SI GPIO10 (PIN 19, SPI0_MOSI)
Sck GPIO11 (pin 23, SPI0_SCLK)
Intencionalmente GPIO25 (pin 22)

Paso 2: Habilite la interfaz SPI en Raspberry Pi

  1. Abra la herramienta de configuración de Raspberry Pi:
    sudo raspi-config
    
  2. Navegar por Opciones de interfaz> SPI y habilitarlo.
  3. Reinicie la Raspberry Pi:
    sudo reboot
    

Paso 3: Instale bibliotecas y herramientas requeridas

  1. Actualice su Raspberry PI:
    sudo apt update && sudo apt upgrade -y
    
  2. Instalar el can-utils Paquete para la comunicación de la lata:
    sudo apt install -y can-utils
    

Paso 4: Configure la interfaz CAN

  1. Abrir el /boot/config.txt file:

    sudo nano /boot/config.txt
    
  2. Agregue las siguientes líneas para habilitar la superposición MCP2515:

    dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25
    dtoverlay=spi-bcm2835
    

    Guardar y salir.

  3. Reinicie la Raspberry Pi:

    sudo reboot
    
  4. Sacan la interfaz CAN:

    sudo ip link set can0 up type can bitrate 500000
    
  5. Verifique la interfaz CAN:

    ifconfig can0
    

Paso 5: Probar el MCP2515

  1. Enviar un mensaje de lata: Usar el cansend Comando para enviar un mensaje de prueba:

    cansend can0 123#DEADBEEF
    
  2. Recibir un mensaje de lata: Usar el candump Comando para monitorear los mensajes entrantes:

    candump can0
    

Paso 6: Uso de Python para comunicarse con el MCP2515

Instalar el python-can Biblioteca para enviar y recibir mensajes de lata a través de Python.

Instalación

pip install python-can

Ejemplo de guión de Python

import can

# Create a CAN bus instance
bus = can.interface.Bus(channel='can0', bustype='socketcan')

# Send a CAN message
msg = can.Message(arbitration_id=0x123, data=[0xDE, 0xAD, 0xBE, 0xEF], is_extended_id=False)
bus.send(msg)
print("Message sent: ", msg)

# Receive a CAN message
print("Waiting for a message...")
message = bus.recv()
print("Received message: ", message)

Solución de problemas

  1. Puede la interfaz no encontrada:

    • Verifique que la interfaz SPI esté habilitada.
    • Verifique el cableado entre Raspberry Pi y el MCP2515.
    • Asegurar el /boot/config.txt El archivo está configurado correctamente.
  2. No Mensajes de lata:

    • Verifique que el bus CAN se termine correctamente con resistencias de 120 ohmios.
    • Asegúrese de que la tasa de bits coincida con todos los dispositivos en el bus CAN.
  3. Errores de Python:

    • Asegurar el python-can está instalada la biblioteca.
    • Verifique el script de Python para ver los errores tipográficos o de configuración.

Aplicaciones del MCP2515

  1. Diagnóstico y monitoreo automotrices
  2. Sistemas de automatización industrial
  3. Redes de comunicación robótica
  4. Proyectos de IoT que requieren protocolos de comunicación confiables

Conclusión

El módulo de controlador MCP2515 CAN agrega capacidades de comunicación robustas a su Raspberry Pi, lo que lo hace ideal para aplicaciones automotrices, industriales e IoT. Siguiendo esta guía, puede configurar y probar el MCP2515 y comenzar a construir proyectos poderosos que aprovechen el protocolo CAN.

Escribir un comentario

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.