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
- Raspberry Pi (Qualsiasi modello con supporto GPIO, ad esempio PI 3, PI 4)
- MCP2515 può modulo
- Breadboard e fili jumper
- Un computer con accesso SSH a Raspberry Pi o una tastiera e un monitoraggio collegati
- Python installato su Raspberry Pi
- 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
- Apri lo strumento di configurazione Raspberry Pi:
sudo raspi-config
- Navigare a Opzioni di interfaccia> SPI e abilitarlo.
- Riavvia il Raspberry Pi:
sudo reboot
Passaggio 3: installa librerie e strumenti richiesti
- Aggiorna il tuo Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Installa il
can-utils
Pacchetto per la comunicazione CAN:sudo apt install -y can-utils
Passaggio 4: configurare l'interfaccia CAN
-
Apri il
/boot/config.txt
file:sudo nano /boot/config.txt
-
Aggiungi le seguenti righe per abilitare la sovrapposizione MCP2515:
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25 dtoverlay=spi-bcm2835
Salva ed esci.
-
Riavvia il Raspberry Pi:
sudo reboot
-
Presentare l'interfaccia CAN:
sudo ip link set can0 up type can bitrate 500000
-
Verifica l'interfaccia CAN:
ifconfig can0
Passaggio 5: testare MCP2515
-
Invia un messaggio CAN: Usare il
cansend
comando per inviare un messaggio di prova:cansend can0 123#DEADBEEF
-
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
-
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.
-
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.
-
Errori di Python:
- Assicurarsi il
python-can
La libreria è installata. - Controllare lo script Python per errori di battitura o di configurazione.
- Assicurarsi il
Applicazioni dell'MCP2515
- Diagnostica automobilistica e monitoraggio
- Sistemi di automazione industriale
- Reti di comunicazione robotica
- 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.