MCP2515 เป็นโมดูลคอนโทรลเลอร์ CAN (Controller Area Network) ที่ได้รับความนิยม ซึ่งช่วยให้ Raspberry Pi สามารถสื่อสารกับระบบที่รองรับ CAN ได้ สิ่งนี้ทำให้เหมาะอย่างยิ่งสำหรับโครงการยานยนต์ ระบบอัตโนมัติอุตสาหกรรม และแอปพลิเคชัน IoT คู่มือนี้อธิบายวิธีตั้งค่าและใช้งาน MCP2515 ด้วย Raspberry Pi.
สิ่งที่คุณต้องมี
- Raspberry Pi (รุ่นใดก็ได้ที่รองรับ GPIO เช่น Pi 3, Pi 4)
- โมดูล CAN MCP2515
- เบรดบอร์ดและสายจัมเปอร์
- คอมพิวเตอร์ที่สามารถเข้าถึง Raspberry Pi ผ่าน SSH ได้ หรือคีย์บอร์ดและจอภาพที่เชื่อมต่ออยู่
- ติดตั้ง Python บน Raspberry Pi แล้ว
- โมดูลทรานซีฟเวอร์ 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
- เปิดเครื่องมือกำหนดค่า Raspberry Pi:
sudo raspi-config - ไปที่ ตัวเลือกอินเทอร์เฟซ > SPI และเปิดใช้งานมัน.
- รีบูต Raspberry Pi:
sudo reboot
ขั้นตอนที่ 3: ติดตั้งไลบรารีและเครื่องมือที่จำเป็น
- อัปเดต Raspberry Pi ของคุณ:
sudo apt update && sudo apt upgrade -y - ติดตั้ง
can-utilsแพ็กเกจสำหรับการสื่อสาร CAN:sudo apt install -y can-utils
ขั้นตอนที่ 4: กำหนดค่าอินเทอร์เฟซ CAN
-
เปิด
/boot/config.txtไฟล์:sudo nano /boot/config.txt -
เพิ่มบรรทัดต่อไปนี้เพื่อเปิดใช้งาน MCP2515 โอเวอร์เลย์:
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25 dtoverlay=spi-bcm2835บันทึกและออก
-
รีบูต Raspberry Pi:
sudo reboot -
เปิดใช้งานอินเทอร์เฟซ CAN:
sudo ip link set can0 up type can bitrate 500000 -
ตรวจสอบอินเทอร์เฟซ CAN:
ifconfig can0
ขั้นตอนที่ 5: การทดสอบ MCP2515
-
ส่งข้อความ CAN: ใช้
ส่งได้คำสั่งเพื่อส่งข้อความทดสอบ:cansend can0 123#DEADBEEF -
รับข้อความ 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)
การแก้ไขปัญหา
-
ไม่พบอินเทอร์เฟซ CAN:
- ตรวจสอบว่าได้เปิดใช้งานอินเทอร์เฟซ SPI แล้ว
- ตรวจสอบการเดินสายระหว่าง Raspberry Pi และ MCP2515.
- ให้มั่นใจว่า
/boot/config.txtไฟล์ถูกกำหนดค่าอย่างถูกต้อง.
-
ไม่มีข้อความ CAN:
- ตรวจสอบว่า CAN bus ได้รับการเทอร์มิเนตอย่างถูกต้องด้วยตัวต้านทาน 120-ohm
- ตรวจสอบให้บิตเรตของอุปกรณ์ทั้งหมดบนบัส CAN ตรงกัน
-
ข้อผิดพลาดของ Python:
- ตรวจสอบให้แน่ใจว่า
python-canติดตั้งไลบรารีแล้ว. - ตรวจสอบสคริปต์ Python ว่ามีการพิมพ์ผิดหรือข้อผิดพลาดในการกำหนดค่าหรือไม่
- ตรวจสอบให้แน่ใจว่า
การประยุกต์ใช้ของ MCP2515
- การวินิจฉัยและการเฝ้าติดตามยานยนต์
- ระบบอัตโนมัติในอุตสาหกรรม
- เครือข่ายการสื่อสารของหุ่นยนต์
- โครงการ IoT ที่ต้องการโปรโตคอลการสื่อสารที่เชื่อถือได้
บทสรุป
โมดูลคอนโทรลเลอร์ CAN MCP2515 เพิ่มขีดความสามารถด้านการสื่อสารที่แข็งแกร่งให้กับ Raspberry Pi ของคุณ ทำให้เหมาะอย่างยิ่งสำหรับการใช้งานด้านยานยนต์ อุตสาหกรรม และ IoT โดยทำตามคู่มือนี้ คุณสามารถตั้งค่าและทดสอบ MCP2515 และเริ่มสร้างโปรเจกต์ทรงพลังที่ใช้ประโยชน์จากโปรโตคอล CAN.





