L’Architecture LOCODUINO

Post on 21-Jun-2022

14 views 0 download

Transcript of L’Architecture LOCODUINO

L’Architecture LOCODUINO

Vers une architecture ouverte et modulaire pour la commande automatisée du réseau avec l'Arduino

Jean-Luc Béchennec Christophe Bobille Dominique Bultez

Thierry Paris

www.locoduino.org

Christian Bézanger Hubert Delanghe Pierre Lecouffe

/35

Sommaire

1. Architecture électronique et informatique avec l'Arduino 2. Le Locoduinodrome 3. La carte Satellite V1 4. La carte Satellite V2

2

/35

Architecture classique

• Classiquement • Ordinateur general purpose • Bus DCC pour la commande • Bus pour la rétro-signalisation (S88, RS, CAN, …)

3

Centrale DCC

Interface

Réseau

module capteurs

module capteurs

module capteurs

Bus de rétrosignalisation

module signaux

module aiguillage

module signaux

Bus DCC

/35

Architecture classique

• Les modules sont mono-fonction • sous-utilisation des modules • ou câblage abondant (quand c'est possible)

• Les modules sont sur des bus séparés • actionneurs sur le DCC • capteurs sur un bus de rétro-signalisation

4

/35

Architecture Locoduino

5

/35

Architecture Locoduino

5

/35

Architecture Locoduino

5

/35

Architecture Locoduino

5

/35

Architecture Locoduino

5

/35

Architecture Locoduino

5

/35

Solution explorée

• Modules multifonctions et un bus unique de communication • modules configurables • minimisation du câblage. • utilisation du bus CAN

6

/35

Le Locoduinodrome

7

/35

Le Locoduinodrome

7

Z0

Z1

Z2

Z3

Z6

Z4

Z5

/35

Le Locoduinodrome

7

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5

/35

Le Locoduinodrome

7

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5

/35

Le Locoduinodrome

7

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

/35

• largement utilisé dans l'industrie (automobile, avionique, ...) • utilisé dans le modélisme ferroviaire (MERG, ZIMO) • bus multi-maître asynchrone • temps réel : les temps de transmission sont déterministes et

peuvent être calculés à priori • priorité entre les messages • détection d'erreur.

Probabilité d'une erreur non détectée < 4,7×1011

• vitesse jusqu'à 1Mb/s • contrôleurs autonomes ne nécessitant que très peu de logiciel

Bus CAN

8

MCP2515 MCP2517FD

/35

Bus CAN et Arduino

9

CAN Bus Shield et module Groove de Seeedstudio (MCP2515)

Module MCP2515 (eBay)

Module MCP2517 (Mikroelektronika)

/35

Bus CAN et Arduino

9

CAN Bus Shield et module Groove de Seeedstudio (MCP2515)

Module MCP2515 (eBay)

Module MCP2517 (Mikroelektronika)

Arduino (like) équipés nativement : • Due • Teensy 3.x • Nucleo • …

/35

Bus CAN et Arduino

• Réaliser sa propre interface CAN

10Satellite v2 - LOCODUINO1.1

samedi 29 décembre 2018

3/7 Contrôleur CAN

GND

5V

5VGND

GND5V

IO1

D13/SCK

IO0

D2/INT

D11/MOSI

D12/MISO

D4/CS_CAN

OSC16

/INT09

OSC25

SCK10

VSS7

SDO12

/CS13

CLKOUT/SOF3/INT

4

RXCAN2

SDI11

/INT18

VDD14

TXCAN1

CAN-FD ControllerMCP2517FD

MCP2517FDIC2

1 24MHz

Q1

STBY8

RxD4

CANL6

CANH7

Vio5

TxD1

MCP2542FDIC1 1

2

3

4

CAN1

K1

12

S14

1

3

2

CAN0

K2

2

1120ΩR1

1

2 100nF

C1Vdd3

Vss2

MCP2542FD

IC1

1

2

20pFC612

100nF

C4

1

2

20pFC2

2110kΩ

R12

nc

~2€

~90c

~20c

~90c

/35

Bus CAN et Arduino

• Réaliser sa propre interface CAN

10Satellite v2 - LOCODUINO1.1

samedi 29 décembre 2018

3/7 Contrôleur CAN

GND

5V

5VGND

GND5V

IO1

D13/SCK

IO0

D2/INT

D11/MOSI

D12/MISO

D4/CS_CAN

OSC16

/INT09

OSC25

SCK10

VSS7

SDO12

/CS13

CLKOUT/SOF3/INT

4

RXCAN2

SDI11

/INT18

VDD14

TXCAN1

CAN-FD ControllerMCP2517FD

MCP2517FDIC2

1 24MHz

Q1

STBY8

RxD4

CANL6

CANH7

Vio5

TxD1

MCP2542FDIC1 1

2

3

4

CAN1

K1

12

S14

1

3

2

CAN0

K2

2

1120ΩR1

1

2 100nF

C1Vdd3

Vss2

MCP2542FD

IC1

1

2

20pFC612

100nF

C4

1

2

20pFC2

2110kΩ

R12

nc

~2€

~90c

~20c

~90c

Connexion SPI

/35

La carte Satellite V1

• Carte universelle architecturée autour d'un Arduino Nano

11

/35

La carte Satellite V1

• Carte universelle architecturée autour d'un Arduino Nano

11

/35

La carte Satellite V1

• Carte universelle architecturée autour d'un Arduino Nano

11

CAN

/35

La carte Satellite V1

• Carte universelle architecturée autour d'un Arduino Nano

11

Détection de présence

/35

La carte Satellite V1

• Carte universelle architecturée autour d'un Arduino Nano

11

2 détections ponctuelles

/35

La carte Satellite V1

• Carte universelle architecturée autour d'un Arduino Nano

11

Connecteurs feux

/35

La carte Satellite V1

• Carte universelle architecturée autour d'un Arduino Nano

11

Connecteur Servo

/35

Les connecteurs de feux

12

/35

Les connecteurs de feux

12

Masse/5V

LED

/35

Les connecteurs de feux

12

Masse/5V

LED

/35

Les connecteurs de feux

12

Masse/5V

LED

/35

Les connecteurs de feux

12

Masse/5V

LED

/35

Les connecteurs de feux

12

Masse/5V

LED

/35

Les connecteurs de feux

12

Masse/5V

LED

/35

Les connecteurs de feux

12

Masse/5V

LED

/35

Les connecteurs de feux

12

Masse/5V

LED

/35

Pilotage du Locoduinodrome

13

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

/35

Pilotage du Locoduinodrome

13

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

/35

Pilotage du Locoduinodrome

13

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

/35

Pilotage du Locoduinodrome

13

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

/35

Pilotage du Locoduinodrome

13

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

/35

Pilotage du Locoduinodrome

13

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

/35

Pilotage du Locoduinodrome

13

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

Bus CAN

/35

Le Locoduinodrome

14

/35

Messagerie CAN

• Événements vs états : deux modes sont possibles • événements : les messages correspondent à des ordres ou des

changements d'état.

• états : les messages correspondent à la diffusion de l'état partiel du système par chacune de ses composantes.

15

/35

Messagerie CAN

• Événements vs états : deux modes sont possibles • événements : les messages correspondent à des ordres ou des

changements d'état.

• états : les messages correspondent à la diffusion de l'état partiel du système par chacune de ses composantes.

15

Perte de message ? Redémarrage d'une carte ?

/35

Messagerie CAN

• Événements vs états : deux modes sont possibles • événements : les messages correspondent à des ordres ou des

changements d'état.

• états : les messages correspondent à la diffusion de l'état partiel du système par chacune de ses composantes.

15

Perte de message ou redémarrage

sans importance

/35

Messagerie CAN

• Événements vs états : deux modes sont possibles • événements : les messages correspondent à des ordres ou des

changements d'état.

• états : les messages correspondent à la diffusion de l'état partiel du système par chacune de ses composantes.

15

• Les messages échangés sont des messages d'état : • états souhaités pour les LED et le servo • états actuels des détections • transmission périodique

Perte de message ou redémarrage

sans importance

/35

Messagerie CAN

• Message émis par un satellite.

16

s0s1s2s31000000

010

P0P1Z-----

7 012

Barrière coupée1

Barrière libre0

ÉtatPx

Zone occupée1

Zone libre0

ÉtatZ

identifiant donnée

/35

Messagerie CAN

• Message reçu par un Satellite

17

s0s1s2s30100000

010

L0aL0bL1aL1bL2aL2bL3aL3b L4aL4bL5aL5bL6aL6bL7aL7b L8aL8b-----S

07 07 07

Clignote

État

Éteinte

Allumée1 -

0 1

0 0

LxaLxb

1 Position horaire

0 Position trigo

ÉtatA

octet 0 octet 1 octet 2

identifiant

donnée

/35

Messagerie CAN

• Message de configuration

18

11 1 111 11 11 1 1111 11 1 identifiant du satellite

P type numero caractéristique valeur

Réglage permanent1

Réglage temporaire0

SignificationP

led00000001

servo00000000

Organetype

identifiant

données

led période 100

led 011temps allumé

led 010temps d'extinction

001led temps d'allumage

000led intensité

010servo vitesse

servo

servo

001max

000min

codecaractéristique

/35

Logiciel - les feux

• Bibliothèque Locoduino LightDimmer

19

temps

intensité

intensité max

tmontée thaut tdesc

Période

/35

Logiciel - les feux

• Bibliothèque Locoduino LightDimmer

20

/35

Logiciel - les feux

• Bibliothèque Locoduino LightDimmer

20

/35

Logiciel - les servos

• Bibliothèque Locoduino SlowMotionServo

21

/35

Logiciel - les servos

• Bibliothèque Locoduino SlowMotionServo

22

/35

Logiciel - les servos

• Bibliothèque Locoduino SlowMotionServo

22

/35

Evolution : la carte Satellite V2

• Manque de souplesse de la Satellite V1 • Assignation fixe des broches de l'Arduino aux fonctions (détection,

LED, servo) • Détecteur d'occupation unique • Sous-utilisation du matériel

• Carte Satellite V2 • Assignation des broches de l'Arduino à plusieurs fonctions • Configuration pour choisir une fonction par broche • Suppression du détecteur d'occupation • Système de cartes d'extension pour de l'électronique additionnelle

23

/35

Fonctions de la carte Satellite V2

• La carte Satellite V2 permet de connecter : • jusqu'à 6 servomoteurs avec détection de fin de course; • jusqu'à 3 servomoteurs sans détection de fin de course; • jusqu'à 15 LED pour la signalisation; • jusqu'à 8 détecteurs; • jusqu'à 4 cartes d'extension.

24

Evidemment on ne peut pas avoir simultanément 9 servomoteurs, 15 LED et 8 détecteurs.

La carte Satellite V2 intègre un contrôleur CAN SPI MC2517FD de Microchip.

/35

Implantation de carte Satellite V2

25

/35

Implantation de carte Satellite V2

25

Arduino Nano

/35

Implantation de carte Satellite V2

25

CAN

/35

Implantation de carte Satellite V2

25

Alimentation

/35

Implantation de carte Satellite V2

25

Connecteurs servos avec FDC

/35

Implantation de carte Satellite V2

25

Connecteurs servos sans FDC

/35

Implantation de carte Satellite V2

25

Connecteurs détecteurs

/35

Implantation de carte Satellite V2

25

Connecteurs feux

/35

Implantation de carte Satellite V2

25

/35

Affectation des broches

26

Broche Communication Servo Fin de course détection carte d'extension LEDRX0 série L1TX1 série L0D2 Interruption CAND3 S0 L9D4 Chip select CAND5 S1 B2 E2 L10D6 S2 B3 E3 L6D7 S3 L5D8 S4 L3D9 S6 B4 E0 L14D10 S7 B5 E1 L13D11 SPI MOSID12 SPI MISOD13 SPI SCKA0 S5 B6 E2 L12A1 S8 B7 E3 L11A2 F5 L2A3 F4 L4A4 I2C SDA F3 L8A5 I2C SCL F2 L7A6 F1A7 F0IO0 B0 E0IO1 B1 E1

/35

Montage des cartes d'extension

27

/35

Montage des cartes d'extension

28

/35

Montage des cartes d'extension

29

/35

Montage des cartes d'extension

29

Double détection par consommation

/35

Montage des cartes d'extension

29

Double détection par consommation

18 LED

/35

Connecteur d'extension

30

MISOMOSISCKES0

ES1

SCLSDA

RESET5VGNDVIN

A0A1

/35

Connecteur d'extension

30

MISOMOSISCKES0

ES1

SCLSDA

RESET5VGNDVIN

A0A1

Alimentation de la carte Satellite

/35

Connecteur d'extension

30

MISOMOSISCKES0

ES1

SCLSDA

RESET5VGNDVIN

A0A1

Alimentation de la carte Satellite Masse

/35

Connecteur d'extension

30

MISOMOSISCKES0

ES1

SCLSDA

RESET5VGNDVIN

A0A1

Alimentation de la carte Satellite Masse

5V du régulateur de la carte Satellite

/35

Connecteur d'extension

30

MISOMOSISCKES0

ES1

SCLSDA

RESET5VGNDVIN

A0A1

Alimentation de la carte Satellite Masse

5V du régulateur de la carte Satellite RESET de l'Arduino

/35

Connecteur d'extension

30

MISOMOSISCKES0

ES1

SCLSDA

RESET5VGNDVIN

A0A1

Alimentation de la carte Satellite Masse

5V du régulateur de la carte Satellite RESET de l'Arduino

Adresse de la carte

/35

Connecteur d'extension

30

MISOMOSISCKES0

ES1

SCLSDA

RESET5VGNDVIN

A0A1

Alimentation de la carte Satellite Masse

5V du régulateur de la carte Satellite RESET de l'Arduino

Adresse de la carte

I2C

/35

Connecteur d'extension

30

MISOMOSISCKES0

ES1

SCLSDA

RESET5VGNDVIN

A0A1

Alimentation de la carte Satellite Masse

5V du régulateur de la carte Satellite RESET de l'Arduino

Adresse de la carte

I2C

Broches de l'Arduino

/35

Connecteur d'extension

30

MISOMOSISCKES0

ES1

SCLSDA

RESET5VGNDVIN

A0A1

Alimentation de la carte Satellite Masse

5V du régulateur de la carte Satellite RESET de l'Arduino

Adresse de la carte

I2C

Broches de l'Arduino

Emplacement ES1 ES0

E0 D9 IO0

E1 D10 IO1

E2 A0 D5

E3 A1 D6

/35

Connecteur d'extension

30

MISOMOSISCKES0

ES1

SCLSDA

RESET5VGNDVIN

A0A1

Alimentation de la carte Satellite Masse

5V du régulateur de la carte Satellite RESET de l'Arduino

Adresse de la carte

I2C

Broches de l'Arduino

Emplacement ES1 ES0

E0 D9 IO0

E1 D10 IO1

E2 A0 D5

E3 A1 D6 SPI

/35

Montage des cartes d'extension

31

/35

À suivre...

• Développement du logiciel de la carte Satellite V2 • Développement du(es) configurateur(s) • Développement de cartes d'extension • Passerelle Wifi/CAN

32

www.locoduino.org

/35

À suivre...

• Développement du logiciel de la carte Satellite V2 • Développement du(es) configurateur(s) • Développement de cartes d'extension • Passerelle Wifi/CAN

32

Merci de votre attention !

www.locoduino.org