Arduino can bus
Arduino mcp2515 modulo can bus tutorial
Oggi qualsiasi auto media consiste di circa 60-100 unità di sensori in essa per il rilevamento e lo scambio di informazioni. Con le case automobilistiche che rendono costantemente le loro auto più intelligenti con caratteristiche come la guida autonoma, il sistema Airbag, il monitoraggio della pressione dei pneumatici, il sistema di controllo della crociera, ecc. questo numero è destinato ad aumentare. A differenza di altri sensori, questi sensori elaborano informazioni critiche e quindi i dati da questi sensori dovrebbero essere comunicati utilizzando protocolli di comunicazione automobilistica standard. Per esempio, i dati del sistema di controllo della crociera come la velocità, la posizione dell’acceleratore ecc. sono valori vitali che vengono inviati all’unità di controllo elettronico (ECU) per decidere il livello di accelerazione dell’auto, una comunicazione errata o la perdita di dati qui potrebbe portare a guasti critici. Quindi, a differenza dei protocolli di comunicazione standard come UART, SPI o I2C, i progettisti usano protocolli di comunicazione automobilistica molto affidabili come LIN, CAN, FlexRay ecc.
Di tutti i protocolli disponibili, CAN è più usato e popolare. Abbiamo già discusso cos’è la CAN e come funziona. Quindi, in questo articolo esamineremo di nuovo le basi e alla fine scambieremo anche i dati tra due Arduino usando la comunicazione CAN. Sembra interessante, vero! Quindi, cominciamo.
Programmazione can bus
CAN sta per Controller Area Network, è usato per permettere ai microcontrollori e ai dispositivi di comunicare tra loro all’interno di un veicolo senza un computer host che permette il controllo e l’acquisizione dei dati. Questi dispositivi sono anche chiamati unità di controllo elettronico (ECU) e permettono la comunicazione tra tutte le parti di un veicolo.
Oggi, si possono trovare fino a 70 ECU in un’auto moderna. CAN è un bus di comunicazione seriale progettato per applicazioni industriali e automobilistiche. Per esempio, si trovano in veicoli, attrezzature agricole, ambienti industriali, ecc.
Il livello del carburante, i sensori delle porte, il contachilometri e molte altre parti di un’auto devono comunicare tra loro in qualche modo, e il CAN BUS è quello che hanno usato per farlo. Questi componenti compatibili CAN, che sono chiamati “nodi”, sono collegati con 3 fili di rame, senza un router centrale per governare il flusso di dati. Ogni nodo può ascoltare i messaggi di ogni altro nodo.
Ogni nodo ha un ID, dove quelli con l’ID più alto possono avere la priorità di “parlare” per primi mentre gli altri “ascoltano”. Questo per assicurare che non ci siano mai due nodi che parlano allo stesso tempo. Il più grande vantaggio del CAN BUS è quello di essere in grado di collegare semplicemente i componenti senza doversi preoccupare del routing del segnale.
Arduino può bus mcp2515
In questo progetto, impareremo a conoscere il MCP2515 CAN Controller Module, come interfacciare il MCP2515 CAN Bus Controller con Arduino e infine come abilitare la comunicazione tra due schede Arduino con l’aiuto di due MCP2515 CAN Controller e il protocollo CAN.
Per esempio, l’unità di controllo del motore è un controllo importante che utilizza in un’automobile. Questa unità è collegata a molti sensori e attuatori come flusso d’aria, pressione, temperatura, controllo delle valvole, motori per il controllo dell’aria, ecc. La comunicazione tra questi moduli e l’unità di controllo avviene tramite CAN Bus.
L’MCP2515 CAN Bus Controller è un semplice modulo che supporta il protocollo CAN versione 2.0B e può essere utilizzato per la comunicazione a 1Mbps. Per impostare un sistema di comunicazione completo, avrete bisogno di due moduli CAN Bus.
Questo particolare modulo è basato su MCP2515 CAN Controller IC e TJA1050 CAN Transceiver IC. L’MCP2515 IC è un CAN Controller standalone e ha un’interfaccia SPI integrata per la comunicazione con i microcontrollori.
Il modulo CAN è responsabile della trasmissione e della ricezione dei messaggi sul CAN Bus. La logica di controllo gestisce la configurazione e il funzionamento del MCP2515 interfacciando tutti i blocchi. Il blocco SPI è responsabile dell’interfaccia di comunicazione SPI.
Arduino uno can bus
Il CAN-BUS Shield fornisce al vostro Arduino o Redboard le capacità del CAN-BUS e vi permette di hackerare il vostro veicolo. Questo shield vi permette di interrogare l’ECU per informazioni tra cui la temperatura del refrigerante, la posizione dell’acceleratore, la velocità del veicolo e i giri del motore. È anche possibile memorizzare questi dati o inviarli a uno schermo per fare un progetto in-dash.
Utilizza il controller CAN MCP2515 di Microchip con il transceiver CAN MCP2551. La connessione CAN è tramite un sub-D standard a 9 vie per l’uso con il cavo OBD-II. Ideale per applicazioni CAN automatiche. Lo shield ha anche un supporto per la scheda uSD, un connettore LCD seriale e un connettore per un modulo EM506 GPS. Queste caratteristiche rendono questo scudo ideale per l’applicazione di registrazione dei dati.
Come scudo, questo non funzionerà direttamente su un Arduino Mega2560, Arduino Due, ecc, perché i pin SPI sono spostati su quelle schede. Tuttavia, se hai assolutamente bisogno del Mega, avresti bisogno di ridefinire i pin, ed eseguire un ponticello dallo scudo ad uno dei pin supportati, che puoi trovare qui https://www.arduino.cc/en/Reference/SoftwareSerial. Dopo aver ridefinito i pin, puoi sempre piegare i pin se hai saldato allo scudo e reindirizzarli in modo simile a questo tutorial => http://mcukits.com/2009/04/06/arduino-ethernet-shield-mega-hack/