ได้รับส่งมอบฟรีในคําสั่งทั้งหมดมากกว่า 20 ปอนด์!

ใช้ MCP2515 กับ Raspberry Pi

Using the MCP2515 with the Raspberry Pi

MCP2515 เป็นโมดูลคอนโทรลเลอร์ CAN (Controller Area Network) ที่ได้รับความนิยม ซึ่งช่วยให้ Raspberry Pi สามารถสื่อสารกับระบบที่รองรับ CAN ได้ สิ่งนี้ทำให้เหมาะอย่างยิ่งสำหรับโครงการยานยนต์ ระบบอัตโนมัติอุตสาหกรรม และแอปพลิเคชัน IoT คู่มือนี้อธิบายวิธีตั้งค่าและใช้งาน MCP2515 ด้วย Raspberry Pi.


สิ่งที่คุณต้องมี

  1. Raspberry Pi (รุ่นใดก็ได้ที่รองรับ GPIO เช่น Pi 3, Pi 4)
  2. โมดูล CAN MCP2515
  3. เบรดบอร์ดและสายจัมเปอร์
  4. คอมพิวเตอร์ที่สามารถเข้าถึง Raspberry Pi ผ่าน SSH ได้ หรือคีย์บอร์ดและจอภาพที่เชื่อมต่ออยู่
  5. ติดตั้ง Python บน Raspberry Pi แล้ว
  6. โมดูลทรานซีฟเวอร์ CAN (หากไม่ได้รวมมากับ MCP2515)

ขั้นตอนที่ 1: การเดินสายของ MCP2515 ไปยัง Raspberry Pi

เดอะ MCP2515 สื่อสารกับ Raspberry Pi โดยใช้โปรโตคอล SPI.

การเชื่อมต่อ (โหมด SPI)

MCP2515 ปักหมุด พิน Raspberry Pi
VCC 3.3V (ขา 1)
GND กราวด์ (ขา 6)
CS GPIO8 (ขา 24, SPI0_CE0)
SO GPIO9 (ขา 21, SPI0_MISO)
SI GPIO10 (ขา 19, SPI0_MOSI)
SCK GPIO11 (ขา 23, SPI0_SCLK)
INT GPIO25 (ขา 22)

ขั้นตอนที่ 2: เปิดใช้งานอินเทอร์เฟซ SPI บน Raspberry Pi

  1. เปิดเครื่องมือกำหนดค่า Raspberry Pi:
    sudo raspi-config
    
  2. ไปที่ ตัวเลือกอินเทอร์เฟซ > SPI และเปิดใช้งานมัน.
  3. รีบูต Raspberry Pi:
    sudo reboot
    

ขั้นตอนที่ 3: ติดตั้งไลบรารีและเครื่องมือที่จำเป็น

  1. อัปเดต Raspberry Pi ของคุณ:
    sudo apt update && sudo apt upgrade -y
    
  2. ติดตั้ง can-utils แพ็กเกจสำหรับการสื่อสาร CAN:
    sudo apt install -y can-utils
    

ขั้นตอนที่ 4: กำหนดค่าอินเทอร์เฟซ CAN

  1. เปิด /boot/config.txt ไฟล์:

    sudo nano /boot/config.txt
    
  2. เพิ่มบรรทัดต่อไปนี้เพื่อเปิดใช้งาน MCP2515 โอเวอร์เลย์:

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

    บันทึกและออก

  3. รีบูต Raspberry Pi:

    sudo reboot
    
  4. เปิดใช้งานอินเทอร์เฟซ CAN:

    sudo ip link set can0 up type can bitrate 500000
    
  5. ตรวจสอบอินเทอร์เฟซ CAN:

    ifconfig can0
    

ขั้นตอนที่ 5: การทดสอบ MCP2515

  1. ส่งข้อความ CAN: ใช้ ส่งได้ คำสั่งเพื่อส่งข้อความทดสอบ:

    cansend can0 123#DEADBEEF
    
  2. รับข้อความ CAN: ใช้ candump คำสั่งสำหรับตรวจสอบข้อความที่เข้ามา:

    candump can0
    

ขั้นตอนที่ 6: การใช้ Python เพื่อสื่อสารกับ MCP2515

ติดตั้ง python-can ไลบรารีสำหรับส่งและรับข้อความ CAN ผ่าน Python.

การติดตั้ง

pip install python-can

ตัวอย่างสคริปต์ Python

import can

# สร้างอินสแตนซ์บัส CAN
bus = can.interface.Bus(channel='can0', bustype='socketcan')

# ส่งข้อความ CAN
msg = can.Message(arbitration_id=0x123, data=[0xDE, 0xAD, 0xBE, 0xEF], is_extended_id=False)
bus.send(msg)
print("ส่งข้อความแล้ว: ", msg)

# รับข้อความ CAN
print("กำลังรอข้อความ...")
message = bus.recv()
print("ได้รับข้อความ: ", message)

การแก้ไขปัญหา

  1. ไม่พบอินเทอร์เฟซ CAN:

    • ตรวจสอบว่าได้เปิดใช้งานอินเทอร์เฟซ SPI แล้ว
    • ตรวจสอบการเดินสายระหว่าง Raspberry Pi และ MCP2515.
    • ให้มั่นใจว่า /boot/config.txt ไฟล์ถูกกำหนดค่าอย่างถูกต้อง.
  2. ไม่มีข้อความ CAN:

    • ตรวจสอบว่า CAN bus ได้รับการเทอร์มิเนตอย่างถูกต้องด้วยตัวต้านทาน 120-ohm
    • ตรวจสอบให้บิตเรตของอุปกรณ์ทั้งหมดบนบัส CAN ตรงกัน
  3. ข้อผิดพลาดของ Python:

    • ตรวจสอบให้แน่ใจว่า python-can ติดตั้งไลบรารีแล้ว.
    • ตรวจสอบสคริปต์ Python ว่ามีการพิมพ์ผิดหรือข้อผิดพลาดในการกำหนดค่าหรือไม่

การประยุกต์ใช้ของ MCP2515

  1. การวินิจฉัยและการเฝ้าติดตามยานยนต์
  2. ระบบอัตโนมัติในอุตสาหกรรม
  3. เครือข่ายการสื่อสารของหุ่นยนต์
  4. โครงการ IoT ที่ต้องการโปรโตคอลการสื่อสารที่เชื่อถือได้

บทสรุป

โมดูลคอนโทรลเลอร์ CAN MCP2515 เพิ่มขีดความสามารถด้านการสื่อสารที่แข็งแกร่งให้กับ Raspberry Pi ของคุณ ทำให้เหมาะอย่างยิ่งสำหรับการใช้งานด้านยานยนต์ อุตสาหกรรม และ IoT โดยทำตามคู่มือนี้ คุณสามารถตั้งค่าและทดสอบ MCP2515 และเริ่มสร้างโปรเจกต์ทรงพลังที่ใช้ประโยชน์จากโปรโตคอล CAN.

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.

แสดงความคิดเห็น