Använda MCP2515 med Raspberry Pi

Using the MCP2515 with the Raspberry Pi

MCP2515 är en populär CAN (Controller Area Network) Controller-modul som gör det möjligt för Raspberry PI-enheter att kommunicera med CAN-aktiverade system. Detta gör det idealiskt för bilprojekt, industriell automatisering och IoT -applikationer. Den här guiden förklarar hur man ställer in och använder MCP2515 med en Raspberry Pi.


Vad du behöver

  1. Hallon (Varje modell med GPIO -stöd, t.ex. PI 3, PI 4)
  2. MCP2515 kan modulera
  3. Breadboard och jumpertrådar
  4. En dator med SSH -åtkomst till Raspberry Pi eller ett anslutet tangentbord och monitor
  5. Python installerad på Raspberry Pi
  6. Kan sändtagarmodul (om inte ingår i MCP2515)

Steg 1: Kopplar MCP2515 till Raspberry Pi

MCP2515 kommunicerar med Raspberry PI med SPI -protokollet.

Anslutningar (SPI -läge)

MCP2515 -stift Hallon pi
Vcc 3.3V (stift 1)
Gard Mark (stift 6)
Cs GPIO8 (stift 24, spi0_ce0)
GPIO9 (stift 21, spi0_miso)
SI GPIO10 (stift 19, spi0_mosi)
Säck GPIO11 (stift 23, SPI0_SCLK)
Int GPIO25 (stift 22)

Steg 2: Aktivera SPI -gränssnittet på Raspberry Pi

  1. Öppna Raspberry PI -konfigurationsverktyget:
    sudo raspi-config
    
  2. Navigera till Gränssnittsalternativ> SPI och aktivera det.
  3. Starta om Raspberry Pi:
    sudo reboot
    

Steg 3: Installera obligatoriska bibliotek och verktyg

  1. Uppdatera din Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Installera can-utils paket för kan kommunikation:
    sudo apt install -y can-utils
    

Steg 4: Konfigurera CAN -gränssnittet

  1. Öppna /boot/config.txt file:

    sudo nano /boot/config.txt
    
  2. Lägg till följande rader för att aktivera MCP2515 Overlay:

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

    Spara och avsluta.

  3. Starta om Raspberry Pi:

    sudo reboot
    
  4. Ta upp burkgränssnittet:

    sudo ip link set can0 up type can bitrate 500000
    
  5. Verifiera kan gränssnittet:

    ifconfig can0
    

Steg 5: Testa MCP2515

  1. Skicka ett burkmeddelande: Använda cansend Kommando för att skicka ett testmeddelande:

    cansend can0 123#DEADBEEF
    
  2. Få ett burkmeddelande: Använda candump Kommando för att övervaka inkommande meddelanden:

    candump can0
    

Steg 6: Använd Python för att kommunicera med MCP2515

Installera python-can Bibliotek för att skicka och ta emot CAN -meddelanden via Python.

Installation

pip install python-can

Exempel Python -skript

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)

Felsökning

  1. Kan gränssnitt inte hittas:

    • Verifiera att SPI -gränssnittet är aktiverat.
    • Kontrollera ledningarna mellan Raspberry PI och MCP2515.
    • Se till /boot/config.txt Filen är korrekt konfigurerad.
  2. NEJ CAN -meddelanden:

    • Verifiera att bussen är ordentligt avslutad med 120 ohm-motstånd.
    • Se till att bitrate matchar över alla enheter på buss.
  3. Python -fel:

    • Se till python-can Biblioteket är installerat.
    • Kontrollera Python -skriptet för skrivfel eller konfigurationsfel.

Applikationer av MCP2515

  1. Bildiagnostik och övervakning
  2. Industriella automatiseringssystem
  3. Robotikkommunikationsnätverk
  4. IoT -projekt som kräver tillförlitliga kommunikationsprotokoll

Slutsats

MCP2515 Can Controller -modulen lägger till robusta kommunikationsfunktioner till din Raspberry PI, vilket gör den idealisk för applikationer för bil-, industriella och IoT. Genom att följa den här guiden kan du ställa in och testa MCP2515 och börja bygga kraftfulla projekt som utnyttjar CAN -protokollet.

Lämna en kommentar

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.