Utilizzando MCP2515 con Raspberry Pi

Using the MCP2515 with the Raspberry Pi

MCP2515 è un modulo controller CAN (Controller Area Network) che consente ai dispositivi Raspberry PI di comunicare con i sistemi abilitati per lattina. Ciò lo rende ideale per progetti automobilistici, automazione industriale e applicazioni IoT. Questa guida spiega come impostare e utilizzare MCP2515 con un Raspberry Pi.


Cosa avrai bisogno

  1. Raspberry Pi (Qualsiasi modello con supporto GPIO, ad esempio PI 3, PI 4)
  2. MCP2515 può modulo
  3. Breadboard e fili jumper
  4. Un computer con accesso SSH a Raspberry Pi o una tastiera e un monitoraggio collegati
  5. Python installato su Raspberry Pi
  6. Modulo del ricetrasmettitore (se non incluso con MCP2515)

Passaggio 1: Cablaggio dell'MCP2515 a Raspberry Pi

L'MCP2515 comunica con il Raspberry Pi usando il protocollo SPI.

Connessioni (modalità SPI)

PIN MCP2515 Pin di lampone
VCC 3.3V (pin 1)
GND Terra (pin 6)
Cs GPIO8 (PIN 24, SPI0_CE0)
COSÌ GPIO9 (PIN 21, SPI0_MISO)
Si GPIO10 (PIN 19, SPI0_MOSI)
SCK GPIO11 (PIN 23, SPI0_SCLK)
Int GPIO25 (PIN 22)

Passaggio 2: abilita l'interfaccia SPI su Raspberry Pi

  1. Apri lo strumento di configurazione Raspberry Pi:
    sudo raspi-config
    
  2. Navigare a Opzioni di interfaccia> SPI e abilitarlo.
  3. Riavvia il Raspberry Pi:
    sudo reboot
    

Passaggio 3: installa librerie e strumenti richiesti

  1. Aggiorna il tuo Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Installa il can-utils Pacchetto per la comunicazione CAN:
    sudo apt install -y can-utils
    

Passaggio 4: configurare l'interfaccia CAN

  1. Apri il /boot/config.txt file:

    sudo nano /boot/config.txt
    
  2. Aggiungi le seguenti righe per abilitare la sovrapposizione MCP2515:

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

    Salva ed esci.

  3. Riavvia il Raspberry Pi:

    sudo reboot
    
  4. Presentare l'interfaccia CAN:

    sudo ip link set can0 up type can bitrate 500000
    
  5. Verifica l'interfaccia CAN:

    ifconfig can0
    

Passaggio 5: testare MCP2515

  1. Invia un messaggio CAN: Usare il cansend comando per inviare un messaggio di prova:

    cansend can0 123#DEADBEEF
    
  2. Ricevi un messaggio CAN: Usare il candump Comando per monitorare i messaggi in arrivo:

    candump can0
    

Passaggio 6: usando Python per comunicare con MCP2515

Installa il python-can Biblioteca da inviare e ricevere messaggi CAN tramite Python.

Installazione

pip install python-can

Esempio di script di 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)

Risoluzione dei problemi

  1. Può interfaccia non trovata:

    • Verificare che l'interfaccia SPI sia abilitata.
    • Controllare il cablaggio tra Raspberry Pi e MCP2515.
    • Assicurarsi il /boot/config.txt Il file è configurato correttamente.
  2. Nessun messaggio CAN:

    • Verificare che il bus CAN viene terminato correttamente con resistori da 120 ohm.
    • Assicurarsi che le corrispondenze bitrate su tutti i dispositivi sul bus CAN.
  3. Errori di Python:

    • Assicurarsi il python-can La libreria è installata.
    • Controllare lo script Python per errori di battitura o di configurazione.

Applicazioni dell'MCP2515

  1. Diagnostica automobilistica e monitoraggio
  2. Sistemi di automazione industriale
  3. Reti di comunicazione robotica
  4. Progetti IoT che richiedono protocolli di comunicazione affidabili

Conclusione

Il modulo controller CAN MCP2515 aggiunge solide capacità di comunicazione al tuo Raspberry Pi, rendendolo ideale per le applicazioni automobilistiche, industriali e IoT. Seguendo questa guida, è possibile impostare e testare MCP2515 e iniziare a costruire potenti progetti che sfruttano il protocollo CAN.

Lascia un commento

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.