MCP2515 הוא מודול בקר פופולרי (רשת בקר בקרה) המאפשר למכשירי Raspberry Pi לתקשר עם מערכות המותאמות ל- CAN. זה הופך את זה לאידיאלי לפרויקטים של רכב, אוטומציה תעשייתית ויישומי IoT. מדריך זה מסביר כיצד להגדיר ולהשתמש ב- MCP2515 עם פטל PI.
מה תצטרך
- Raspberry Pi (כל דגם עם תמיכה ב- GPIO, למשל, pi 3, pi 4)
- MCP2515 CAN מודול
- חוטי לחם וגשר
- מחשב עם גישה ל- SSH ל- Raspberry Pi או למקלדת ומחוברים
- פיתון מותקן ב- Raspberry Pi
- יכול מודול משדר (אם לא נכלל ב- MCP2515)
שלב 1: חיווט ה- MCP2515 ל- Raspberry Pi
ה- MCP2515 מתקשר עם ה- Raspberry Pi באמצעות פרוטוקול SPI.
חיבורים (מצב SPI)
PIN MCP2515 | סיכת פטל pi |
---|---|
VCC | 3.3 וולט (סיכה 1) |
GND | קרקע (סיכה 6) |
CS | GPIO8 (סיכה 24, SPI0_CE0) |
כָּך | GPIO9 (סיכה 21, SPI0_MISO) |
סִי | 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: קבע את התצורה של ממשק הפחית
-
פתח את
/boot/config.txt
file:sudo nano /boot/config.txt
-
הוסף את השורות הבאות כדי לאפשר את שכבת העל של MCP2515:
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25 dtoverlay=spi-bcm2835
שמור ויציאה.
-
אתחל מחדש את ה- Raspberry Pi:
sudo reboot
-
העלה את ממשק הפחית:
sudo ip link set can0 up type can bitrate 500000
-
אמת את ממשק הפחית:
ifconfig can0
שלב 5: בדיקת MCP2515
-
שלח הודעת פחית: השתמש ב-
cansend
פקודה לשליחת הודעת מבחן:cansend can0 123#DEADBEEF
-
לקבל הודעת פחית: השתמש ב-
candump
פקודה לפיקוח על הודעות נכנסות:candump can0
שלב 6: שימוש בפייתון לתקשר עם MCP2515
התקן את python-can
ספרייה לשלוח ולקבל הודעות CAN באמצעות פייתון.
הַתקָנָה
pip install python-can
דוגמה לתסריט פייתון
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)
פתרון בעיות
-
האם ממשק לא יכול למצוא:
- ודא שממשק ה- SPI מופעל.
- בדוק את החיווט בין Raspberry Pi ל- MCP2515.
- להבטיח את
/boot/config.txt
הקובץ מוגדר נכון.
-
לא הודעות יכולות:
- ודא שאוטובוס CAN מסתיים כראוי עם נגדים של 120 אוהם.
- וודא כי קצב הסיביות תואם את כל המכשירים באוטובוס CAN.
-
שגיאות פייתון:
- להבטיח את
python-can
הספרייה מותקנת. - בדוק את סקריפט Python אם שגיאות הקלדות או שגיאות תצורה.
- להבטיח את
יישומים של MCP2515
- אבחון ומעקב לרכב
- מערכות אוטומציה תעשייתיות
- רשתות תקשורת רובוטיקה
- פרויקטים של IoT הדורשים פרוטוקולי תקשורת אמינים
מַסְקָנָה
MCP2515 יכול לבקר מודול מוסיף יכולות תקשורת חזקות ל- Raspberry Pi שלך, מה שהופך אותו לאידיאלי ליישומי רכב, תעשייה ו- IoT. על ידי ביצוע מדריך זה, תוכלו להגדיר ולבדוק את ה- MCP2515 ולהתחיל לבנות פרויקטים חזקים הממנפים את פרוטוקול ה- CAN.