Le MCP2515 est un module de contrôleur CAN (Controller Area Network) qui permet aux périphériques Raspberry Pi de communiquer avec les systèmes compatibles avec les canettes. Cela le rend idéal pour les projets automobiles, l'automatisation industrielle et les applications IoT. Ce guide explique comment configurer et utiliser le MCP2515 avec un Raspberry Pi.
Ce dont vous aurez besoin
- Raspberry Pi (Tout modèle avec le support GPIO, par ex., PI 3, PI 4)
- Module MCP2515
- Fils de planche à pain et de cavalier
- Un ordinateur avec un accès SSH au Raspberry Pi ou un clavier et un moniteur connectés
- Python installé sur le Raspberry Pi
- Peut transmettre un module (s'il n'est pas inclus avec le MCP2515)
Étape 1: Câblage du MCP2515 au Raspberry Pi
Le MCP2515 communique avec le Raspberry Pi en utilisant le protocole SPI.
Connexions (mode SPI)
Broche MCP2515 | Pin de framboise PI |
---|---|
VCC | 3.3V (broche 1) |
GND | Terre (broche 6) |
CS | GPIO8 (broche 24, SPI0_CE0) |
DONC | GPIO9 (broche 21, SPI0_MISO) |
SI | GPIO10 (broche 19, SPI0_MOSI) |
SCK | GPIO11 (broche 23, SPI0_SCLK) |
Int | GPIO25 (broche 22) |
Étape 2: Activez l'interface SPI sur le Raspberry Pi
- Ouvrez l'outil de configuration Raspberry Pi:
sudo raspi-config
- Se diriger vers Options d'interface> SPI et l'activer.
- Redémarrez le Raspberry Pi:
sudo reboot
Étape 3: Installez les bibliothèques et les outils requis
- Mettez à jour votre Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Installer le
can-utils
Package pour la communication Can:sudo apt install -y can-utils
Étape 4: Configurez l'interface CAN
-
Ouvrir le
/boot/config.txt
file:sudo nano /boot/config.txt
-
Ajoutez les lignes suivantes pour activer la superposition MCP2515:
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25 dtoverlay=spi-bcm2835
Enregistrer et sortir.
-
Redémarrez le Raspberry Pi:
sudo reboot
-
Afficher l'interface Can:
sudo ip link set can0 up type can bitrate 500000
-
Vérifiez l'interface CAN:
ifconfig can0
Étape 5: Tester le MCP2515
-
Envoyer un message CAN: Utiliser le
cansend
commande pour envoyer un message de test:cansend can0 123#DEADBEEF
-
Recevoir un message CAN: Utiliser le
candump
commande pour surveiller les messages entrants:candump can0
Étape 6: Utilisation de Python pour communiquer avec le MCP2515
Installer le python-can
Bibliothèque à envoyer et à recevoir des messages Can via Python.
Installation
pip install python-can
Exemple de script 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)
Dépannage
-
L'interface peut être trouvée:
- Vérifiez que l'interface SPI est activée.
- Vérifiez le câblage entre le Raspberry Pi et le MCP2515.
- Assurer le
/boot/config.txt
Le fichier est correctement configuré.
-
Non Messages Can:
- Vérifiez que le bus CAN est correctement terminé avec des résistances de 120 ohms.
- Assurez-vous que le débit binaire correspond à tous les appareils du bus CAN.
-
Erreurs Python:
- Assurer le
python-can
La bibliothèque est installée. - Vérifiez le script Python pour les fautes de frappe ou les erreurs de configuration.
- Assurer le
Applications du MCP2515
- Diagnostic et surveillance automobiles
- Systèmes d'automatisation industrielle
- Réseaux de communication robotique
- Projets IoT nécessitant des protocoles de communication fiables
Conclusion
Le module MCP2515 CAN Controller ajoute des capacités de communication robustes à votre Raspberry Pi, ce qui le rend idéal pour les applications automobiles, industrielles et IoT. En suivant ce guide, vous pouvez configurer et tester le MCP2515 et commencer à créer des projets puissants qui tirent parti du protocole CAN.