Käyttämällä MCP2515: tä Raspberry Pi: n kanssa

Using the MCP2515 with the Raspberry Pi

MCP2515 on suosittu tölkki (ohjaimen alueen verkko) -ohjainmoduuli, jonka avulla Raspberry Pi -laitteet voivat kommunikoida CAN-yhteensopivien järjestelmien kanssa. Tämä tekee siitä ihanteellisen autoprojekteihin, teollisuusautomaatioon ja Internet -sovelluksiin. Tämä opas selittää, kuinka MCP2515: n asettaminen ja käyttäminen Raspberry PI: llä.


Mitä tarvitset

  1. Raspberry Pi (Mikä tahansa malli, jolla on GPIO -tuki, esim. Pi 3, pi 4)
  2. MCP2515 CAN -moduuli
  3. Leipälevy- ja hyppyjohdot
  4. Tietokone, jolla on SSH -pääsy Raspberry PI: hen tai kytketty näppäimistö ja näyttö
  5. Python asennettu Raspberry Pi
  6. Voi lähetin -vastaanotinmoduulin (jos sitä ei sisällytetä MCP2515: ään)

Vaihe 1: MCP2515: n johdotus Raspberry Pi: hen

MCP2515 kommunikoi Raspberry PI: n kanssa SPI -protokollalla.

Yhteydet (SPI -tila)

MCP2515 -nasta Raspberry Pi -tappi
VCC 3,3 V (nasta 1)
Hölynpöly Maa (nasta 6)
CS GPIO8 (PIN 24, SPI0_CE0)
NIIN GPIO9 (PIN 21, SPI0_MISO)
SI GPIO10 (PIN 19, SPI0_MOSI)
Sck GPIO11 (PIN 23, SPI0_SCLK)
Int GPIO25 (nasta 22)

Vaihe 2: Ota SPI -rajapinta käyttöön Raspberry PI: ssä

  1. Avaa Raspberry Pi -määritystyökalu:
    sudo raspi-config
    
  2. Siirtyä jhk Käyttöliittymävaihtoehdot> SPI ja ota se käyttöön.
  3. Käynnistä Raspberry Pi uudelleen:
    sudo reboot
    

Vaihe 3: Asenna vaadittavat kirjastot ja työkalut

  1. Päivitä Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Asenna can-utils paketti CAN -viestintälle:
    sudo apt install -y can-utils
    

Vaihe 4: Määritä CAN -käyttöliittymä

  1. Avaa /boot/config.txt file:

    sudo nano /boot/config.txt
    
  2. Lisää seuraavat rivit ottamaan käyttöön MCP2515 -peittokuva:

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

    Tallenna ja poistu.

  3. Käynnistä Raspberry Pi uudelleen:

    sudo reboot
    
  4. Tuo Can -käyttöliittymä:

    sudo ip link set can0 up type can bitrate 500000
    
  5. Varmista CAN -käyttöliittymä:

    ifconfig can0
    

Vaihe 5: MCP2515: n testaaminen

  1. Lähetä tölkki: Käyttää cansend komento lähettää testiviestin:

    cansend can0 123#DEADBEEF
    
  2. Vastaanota tölkki: Käyttää candump Komento saapuvien viestien seuraamiseksi:

    candump can0
    

Vaihe 6: Pythonin käyttäminen kommunikoida MCP2515: n kanssa

Asenna python-can Lähetettävä ja vastaanottava kirjasto CAN -viestit Pythonin kautta.

Asennus

pip install python-can

Esimerkki Python -skripti

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)

Vianetsintä

  1. Voiko käyttöliittymää löydy:

    • Varmista, että SPI -käyttöliittymä on käytössä.
    • Tarkista johdotus Raspberry Pi: n ja MCP2515: n välillä.
    • Varmistaa /boot/config.txt Tiedosto on määritetty oikein.
  2. Ei voi viestejä:

    • Varmista, että tölkkiväylä on päätetty oikein 120 OHM-vastuksella.
    • Varmista, että bittinopeus vastaa kaikissa tölkkibussin laitteissa.
  3. Python -virheet:

    • Varmistaa python-can Kirjasto on asennettu.
    • Tarkista kirjoitusvirheiden tai määritysvirheiden python -komentosarja.

MCP2515: n sovellukset

  1. Autoteollisuuden diagnostiikka ja seuranta
  2. Teollisuusautomaatiojärjestelmät
  3. Robotiikkaviestintäverkot
  4. Internet -projektit, jotka vaativat luotettavia viestintäprotokollia

Johtopäätös

MCP2515 CAN Controller -moduuli lisää vankkaa viestintäominaisuuksia Raspberry Pi: hen, mikä tekee siitä ihanteellisen auto-, teollisuus- ja IoT -sovelluksille. Tämän oppaan seuraamalla voit määrittää ja testata MCP2515: n ja aloittaa tehokkaiden projektien rakentamisen, jotka hyödyntävät CAN -protokollaa.

Jätä kommentti

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.