TP BUS CAN ARDUINO. NOM : Date :

Documents pareils
Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Une carte pour vos projets

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

Piano Stairs. descriptif de la conception et des programmes associés. Copyright (C) 2013 taprik

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

TP Wireshark. Première approche de Wireshark. 1 ) Lancer Wireshark (double clic sur l icône sur le bureau). La fenêtre

Bien commencer avec un LaunchPad MSP430G et un Breadboard

Dispositions relatives à l'installation :

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Programmation d un contrôleur via une liaison téléphonique Note d application

IUT GEII MARSEILLE Patrick GUMUCHIAN. Lycée Alphonse Benoit L'Isle sur la Sorgue Marc SILANUS

Divers éléments. Protocoles d'applications. Un agent Utilisateur. MUA - Agents Utilisateurs de Courriel. Simple Mail Transfer Protocol

Bonjour, Le document qui suit est le support de la formation ''Arduino applications distantes''.

TER Licence 3 Electronique des Télécoms Transmission GSM

Paris Airports - Web API Airports Path finding

CONTEC CO., LTD. Novembre 2010

Education Delivery Intelligent Tool

Guide d'installation rapide TFM-560X YO.13

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

13/11/2009 DUT-MUX-0185 /V2.0

Les Réseaux sans fils : IEEE F. Nolot

ADO.NET. Ado.net propose deux modes d'accès, le mode connecté et le mode déconnecté.

WEB page builder and server for SCADA applications usable from a WEB navigator

Table of contents 2 / 31

NOTICE INSTALLATION. ARCHANGE Simplex Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

TABLE DES MATIÈRES. Avant-propos... 1 Communications série Entrées simples analogiques et numériques... 61

REMBO Version 2.0. Mathrice 2004 DESCRIPTION MISE EN OEUVRE CONCLUSION.

Boîtier de contrôle et de commande avec EV 3/2 voies intégrée

Sélection du contrôleur

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Dossier technique. Présentation du bus DMX et Utilisation des options EL13 / EL14 ERM AUTOMATISMES INDUSTRIELS 1 LE PROTOCOLE DMX 2

France SMS+ MT Premium Description

Exercice Packet Tracer : Configuration de base des réseaux locaux virtuels

FICHE DE COURS RESEAU POSTE A POSTE BAC PRO SYSTEMES ELECTRONIQUES NUMERIQUES Champ Professionnel : Télécommunications et Réseaux

GUIDE UTILISATEUR SYSTEMES CCTV

Introduction aux Systèmes et aux Réseaux

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Le bus USB. I) Introduction : II) Architecture du bus USB :

LOGICIEL DC4D MONITOR

Remplacer la Free BOX par un Netgear DGN 1000

Configuration de TCPIPconfig.h

Configurer la supervision pour une base MS SQL Server Viadéis Services

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique

Conférence sur les microcontroleurs.

Version beta. Station Météo 12/11/2012. Réalisation d un Station Météo avec Webserver composée de capteurs Grove et d un module Wifi Flyport.

Instructions Mozilla Thunderbird Page 1

INFO-F-404 : Techniques avancées de systèmes d exploitation

GSM/GPRS/GPS Traceur Véhicule G-1000 PRO Manuel D utilisation

Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009. Pôle de Calcul Intensif pour la mer, 11 Decembre 2009

Java Licence Professionnelle CISII,

Tutoriel Hotpoint. Logiciels. Juillet Formation DARTY. Service Key. Indesit Company

Paxton. ins Net2 desktop reader USB

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

Lier Erlang avec d autres langages de programmation

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Oracle Learning Library Tutoriel Database 12c Installer le logiciel Oracle Database et créer une Database

Vers du matériel libre

Ordinateurs, Structure et Applications

TP Vidéo surveillance Bac pro SEN CCTV. Lycée de L Aa 1

Vue d ensemble de Windows PowerShell

Installer et configurer un réseau local Ethernet commuté. Généralités 1 Utilisation d un Switch administrable D-Link DES-3226

Prototypage électronique

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Chapitre 1: Introduction générale

Introduction au langage C

Cours Bases de données 2ème année IUT

LS9 avec SB168-ES Guide de prise en main

Cours 14 Les fichiers

Direction des Systèmes d'information

Exercice Packet Tracer : configuration de réseaux locaux virtuels et d agrégations

Guide de démarrage du système modulaire Sun Blade 6000

Installation d'un TSE (Terminal Serveur Edition)

Quick Installation Guide TEW-AO12O

Cours 7 : Programmation d une chaîne d acquisition

/ / / Système de distribution audio A44/A88 Logiciel PC

Cours 6 : Tubes anonymes et nommés

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl , 17 novembre, Lyon. Alexis Sukrieh

Once the installation is complete, you can delete the temporary Zip files..

Formation IPICO du 10/11 Février 2011 :

Bus de communication

Indicateur de position PI-D2100 Guide de l utilisateur

Comment consolider des données

Présentation du modèle OSI(Open Systems Interconnection)

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Logitech Tablet Keyboard for Windows 8, Windows RT and Android 3.0+ Setup Guide Guide d installation

TD2 Programmation concurrentielle

Transmissions série et parallèle

SERVICE TECHNIQUE Module Certissim pour Magento

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Programmation système de commandes en C

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

GNS 3 Travaux pratiques

VoD ( Video on Demand ) avec VLC

Transcription:

NOM : Date : Objectif final : Mettre en service le bus CAN pour échanger des données entre 2 cartes Arduino Uno équipées de shield bus CAN. Compétences abordées : Réaliser C4.3 : Analyser la structure logicielle. Procéder aux modifications logicielles C4.5 : Tester et valider un matériel Installer C5.2 : Exécuter des mesures et tests appropriés. Savoirs abordés : Savoir Description S7.6. Réseaux locaux industriels (RU) S8.1. Instruments de mesure Bus CAN Analyseur logique Analyseur de signaux Moyens : 2 cartes Arduino Uno 2 shield bus CAN Seeedstudio Fils de liaison mâle/mâle. Câble Ethernet de 80 m. Analyseur logique Saleae ou Logic Port. Conditions : Analyse et programmation : travail en binôme. Mise en œuvre : 2 binômes associés (1 binôme pour l'émission, l'autre pour la réception). Les documents nécessaires à la mise en œuvre de ce TP se trouvent sur le site de la section BTS SN. Durée : 2H (2 x 1H). Compte rendu à la fin de la séance. Prérequis : Cours sur le bus CAN. Hortolland C. TP BTS SN TP_BUS_CAN_Arduino_2015_2016.odt 1/6

I. Analyse du shield bus CAN Transmission de données entre 2 Arduino Uno par bus CAN Les documents des différents composants du shield bus CAN Seeedstudio et de la carte Arduino Uno figurent sur le site. La représentation en couches de l'association carte Arduino + shield Bus CAN figure ci-dessus. 1. Tracer le contour de chaque carte Arduino et de chaque shield bus CAN. 2. Indiquer la référence des composants utilisés pour chacun des éléments de cette représentation en couches. 3. Ajouter si nécessaire un bus de communication intervenant dans les échanges. 4. Indiquer comment il est possible sur les shields de mettre mettre en/hors services les résistances de terminaison. II. Mise en œuvre de la communication entre 2 cartes Arduino La mise en œuvre qui suit, en particulier l'installation de la librairie, sera à effectuer en mode administrateur. 2 PC se trouvant à proximité l'un de l'autre seront à utiliser, un pour chaque binôme. 5. Prendre connaissance des informations figurant sur le site dédié à la mise en oeuvre du shield seeedstudio (lien sur le site). 6. Télécharger et installer la librairie «CAN BUS Shield». 7. Mettre en œuvre la communication en liaison avec l'autre binôme en utilisant la librairie. L'une des cartes sera programmée avec le projet «send», l'autre avec le projet «receive_check». 8. Vérifier que la communication s'effectue bien. 9. Visualiser la trame avec un analyseur logique (Référence de tension sur CANL, signal relevé et interprété par l'analyseur sur CANH. Il est intéressant d'utiliser la voie 0 et de visualiser le signal simultanément en Hortolland C. TP BTS SN TP_BUS_CAN_Arduino_2015_2016.odt 2/6

analogique et en logique). Vérifier la conformité, par rapport au programme, de la valeur visualisée des champs suivants : identificateur, contrôle. Attention sur une capture Saleae chaque point représente un bit, chaque croix rouge représente un bit-stuffing. Champ identificateur : Champ contrôle : Champ de données : Différence entre chronogramme transmis et interprété III. Modification du programme et analyse du CRC 10. Modifier les programmes pour que l'identificateur soit 84. Vérifier le bon fonctionnement. 11. Modifier les programmes pour que l'identificateur soit 3 et que la seule donnée transmise soit «0x5B», ainsi la trame correspondra à celle analysée en TD. Relever le CRC (Cyclic Redundancy Code) dans la trame. Utiliser les documents illustrant le calcul du CRC pour justifier la valeur obtenue. CRC = 12. A quel caractère correspond la valeur 0x5B? Modifier le programme de réception pour que ce caractère s'affiche 13. Modifier les programmes pour que l'information transmise soit le caractère «#». Vérifier que la transmission s'effectue bien et relever la valeur du CRC CRC réel = Exposer en fin de fascicule comment est obtenue cette valeur. 14. Donner la vitesse de transmission programmée sur le bus? Vérifier que cette vitesse est conforme sur la trame Rappeler la distance maximale autorisée pour cette vitesse. 15. Utiliser le rouleau de 80 mètres de câble Ethernet pour séparer les 2 cartes (utiliser 2 PC distants). Vérifier si le montage fonctionne toujours. Quelle précaution faut-il prendre? Hortolland C. TP BTS SN TP_BUS_CAN_Arduino_2015_2016.odt 3/6

Document ANNEXE 1 Programme «send» // demo: CAN-BUS Shield, send data #include <mcp_can.h> #include <SPI.h> // the cs pin of the version after v1.1 is default to D9 // v0.9b and v1.0 is default D10 const int SPI_CS_PIN = 9; MCP_CAN CAN(SPI_CS_PIN); // Set CS pin void setup() Serial.begin(115200); START_INIT: if(can_ok == CAN.begin(CAN_500KBPS)) Serial.println("CAN BUS Shield init ok!"); else Serial.println("CAN BUS Shield init fail"); Serial.println("Init CAN BUS Shield again"); delay(100); goto START_INIT; // init can bus : baudrate = 500k unsigned char stmp[8] = 0, 1, 2, 3, 4, 5, 6, 7; void loop() // send data: id = 0x00, standrad frame, data len = 8, stmp: data buf CAN.sendMsgBuf(0x00, 0, 8, stmp); delay(100); // send data per 100ms /************************************************************************* END FILE *************************************************************************/ Hortolland C. TP BTS SN TP_BUS_CAN_Arduino_2015_2016.odt 4/6

Document ANNEXE 2 Programme «receive_check» // demo: CAN-BUS Shield, receive data with check mode // send data coming to fast, such as less than 10ms, you can use this way // loovee, 2014-6-13 #include <SPI.h> #include "mcp_can.h" // the cs pin of the version after v1.1 is default to D9 // v0.9b and v1.0 is default D10 const int SPI_CS_PIN = 9; MCP_CAN CAN(SPI_CS_PIN); // Set CS pin void setup() Serial.begin(115200); START_INIT: if(can_ok == CAN.begin(CAN_500KBPS)) Serial.println("CAN BUS Shield init ok!"); else Serial.println("CAN BUS Shield init fail"); Serial.println("Init CAN BUS Shield again"); delay(100); goto START_INIT; // init can bus : baudrate = 500k void loop() unsigned char len = 0; unsigned char buf[8]; if(can_msgavail == CAN.checkReceive()) // check if data coming CAN.readMsgBuf(&len, buf); // read data, len: data length, buf: data buf unsigned char canid = CAN.getCanId(); Hortolland C. TP BTS SN TP_BUS_CAN_Arduino_2015_2016.odt 5/6

Serial.println("-----------------------------"); Serial.println("get data from ID: "); Serial.println(canId); for(int i = 0; i<len; i++) // print the data Serial.print(buf[i]); Serial.print("\t"); Serial.println(); /********************************************************************* END FILE **********************************************************************/ Hortolland C. TP BTS SN TP_BUS_CAN_Arduino_2015_2016.odt 6/6