L’Architecture LOCODUINO

88
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

Transcript of L’Architecture LOCODUINO

Page 1: 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

Page 2: L’Architecture LOCODUINO

/35

Sommaire

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

2

Page 3: L’Architecture LOCODUINO

/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

Page 4: L’Architecture LOCODUINO

/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

Page 5: L’Architecture LOCODUINO

/35

Architecture Locoduino

5

Page 6: L’Architecture LOCODUINO

/35

Architecture Locoduino

5

Page 7: L’Architecture LOCODUINO

/35

Architecture Locoduino

5

Page 8: L’Architecture LOCODUINO

/35

Architecture Locoduino

5

Page 9: L’Architecture LOCODUINO

/35

Architecture Locoduino

5

Page 10: L’Architecture LOCODUINO

/35

Architecture Locoduino

5

Page 11: L’Architecture LOCODUINO

/35

Solution explorée

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

6

Page 12: L’Architecture LOCODUINO

/35

Le Locoduinodrome

7

Page 13: L’Architecture LOCODUINO

/35

Le Locoduinodrome

7

Z0

Z1

Z2

Z3

Z6

Z4

Z5

Page 14: L’Architecture LOCODUINO

/35

Le Locoduinodrome

7

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5

Page 15: L’Architecture LOCODUINO

/35

Le Locoduinodrome

7

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5

Page 16: L’Architecture LOCODUINO

/35

Le Locoduinodrome

7

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

Page 17: L’Architecture LOCODUINO

/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

Page 18: L’Architecture LOCODUINO

/35

Bus CAN et Arduino

9

CAN Bus Shield et module Groove de Seeedstudio (MCP2515)

Module MCP2515 (eBay)

Module MCP2517 (Mikroelektronika)

Page 19: L’Architecture LOCODUINO

/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 • …

Page 20: L’Architecture LOCODUINO

/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

Page 21: L’Architecture LOCODUINO

/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

Page 22: L’Architecture LOCODUINO

/35

La carte Satellite V1

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

11

Page 23: L’Architecture LOCODUINO

/35

La carte Satellite V1

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

11

Page 24: L’Architecture LOCODUINO

/35

La carte Satellite V1

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

11

CAN

Page 25: L’Architecture LOCODUINO

/35

La carte Satellite V1

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

11

Détection de présence

Page 26: L’Architecture LOCODUINO

/35

La carte Satellite V1

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

11

2 détections ponctuelles

Page 27: L’Architecture LOCODUINO

/35

La carte Satellite V1

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

11

Connecteurs feux

Page 28: L’Architecture LOCODUINO

/35

La carte Satellite V1

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

11

Connecteur Servo

Page 29: L’Architecture LOCODUINO

/35

Les connecteurs de feux

12

Page 30: L’Architecture LOCODUINO

/35

Les connecteurs de feux

12

Masse/5V

LED

Page 31: L’Architecture LOCODUINO

/35

Les connecteurs de feux

12

Masse/5V

LED

Page 32: L’Architecture LOCODUINO

/35

Les connecteurs de feux

12

Masse/5V

LED

Page 33: L’Architecture LOCODUINO

/35

Les connecteurs de feux

12

Masse/5V

LED

Page 34: L’Architecture LOCODUINO

/35

Les connecteurs de feux

12

Masse/5V

LED

Page 35: L’Architecture LOCODUINO

/35

Les connecteurs de feux

12

Masse/5V

LED

Page 36: L’Architecture LOCODUINO

/35

Les connecteurs de feux

12

Masse/5V

LED

Page 37: L’Architecture LOCODUINO

/35

Les connecteurs de feux

12

Masse/5V

LED

Page 38: L’Architecture LOCODUINO

/35

Pilotage du Locoduinodrome

13

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

Page 39: L’Architecture LOCODUINO

/35

Pilotage du Locoduinodrome

13

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

Page 40: L’Architecture LOCODUINO

/35

Pilotage du Locoduinodrome

13

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

Page 41: L’Architecture LOCODUINO

/35

Pilotage du Locoduinodrome

13

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

Page 42: L’Architecture LOCODUINO

/35

Pilotage du Locoduinodrome

13

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

Page 43: L’Architecture LOCODUINO

/35

Pilotage du Locoduinodrome

13

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

Page 44: L’Architecture LOCODUINO

/35

Pilotage du Locoduinodrome

13

P1 P2P3

P5

P4

P6

P7P8P9 P10

Z0

Z1

Z2

Z3

Z6

Z4

Z5a0 a1

Bus CAN

Page 45: L’Architecture LOCODUINO

/35

Le Locoduinodrome

14

Page 46: L’Architecture LOCODUINO

/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

Page 47: L’Architecture LOCODUINO

/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 ?

Page 48: L’Architecture LOCODUINO

/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

Page 49: L’Architecture LOCODUINO

/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

Page 50: L’Architecture LOCODUINO

/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

Page 51: L’Architecture LOCODUINO

/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

Page 52: L’Architecture LOCODUINO

/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

Page 53: L’Architecture LOCODUINO

/35

Logiciel - les feux

• Bibliothèque Locoduino LightDimmer

19

temps

intensité

intensité max

tmontée thaut tdesc

Période

Page 54: L’Architecture LOCODUINO

/35

Logiciel - les feux

• Bibliothèque Locoduino LightDimmer

20

Page 55: L’Architecture LOCODUINO

/35

Logiciel - les feux

• Bibliothèque Locoduino LightDimmer

20

Page 56: L’Architecture LOCODUINO

/35

Logiciel - les servos

• Bibliothèque Locoduino SlowMotionServo

21

Page 57: L’Architecture LOCODUINO

/35

Logiciel - les servos

• Bibliothèque Locoduino SlowMotionServo

22

Page 58: L’Architecture LOCODUINO

/35

Logiciel - les servos

• Bibliothèque Locoduino SlowMotionServo

22

Page 59: L’Architecture LOCODUINO

/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

Page 60: L’Architecture LOCODUINO

/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.

Page 61: L’Architecture LOCODUINO

/35

Implantation de carte Satellite V2

25

Page 62: L’Architecture LOCODUINO

/35

Implantation de carte Satellite V2

25

Arduino Nano

Page 63: L’Architecture LOCODUINO

/35

Implantation de carte Satellite V2

25

CAN

Page 64: L’Architecture LOCODUINO

/35

Implantation de carte Satellite V2

25

Alimentation

Page 65: L’Architecture LOCODUINO

/35

Implantation de carte Satellite V2

25

Connecteurs servos avec FDC

Page 66: L’Architecture LOCODUINO

/35

Implantation de carte Satellite V2

25

Connecteurs servos sans FDC

Page 67: L’Architecture LOCODUINO

/35

Implantation de carte Satellite V2

25

Connecteurs détecteurs

Page 68: L’Architecture LOCODUINO

/35

Implantation de carte Satellite V2

25

Connecteurs feux

Page 69: L’Architecture LOCODUINO

/35

Implantation de carte Satellite V2

25

Page 70: L’Architecture LOCODUINO

/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

Page 71: L’Architecture LOCODUINO

/35

Montage des cartes d'extension

27

Page 72: L’Architecture LOCODUINO

/35

Montage des cartes d'extension

28

Page 73: L’Architecture LOCODUINO

/35

Montage des cartes d'extension

29

Page 74: L’Architecture LOCODUINO

/35

Montage des cartes d'extension

29

Double détection par consommation

Page 75: L’Architecture LOCODUINO

/35

Montage des cartes d'extension

29

Double détection par consommation

18 LED

Page 76: L’Architecture LOCODUINO

/35

Connecteur d'extension

30

MISOMOSISCKES0

ES1

SCLSDA

RESET5VGNDVIN

A0A1

Page 77: L’Architecture LOCODUINO

/35

Connecteur d'extension

30

MISOMOSISCKES0

ES1

SCLSDA

RESET5VGNDVIN

A0A1

Alimentation de la carte Satellite

Page 78: L’Architecture LOCODUINO

/35

Connecteur d'extension

30

MISOMOSISCKES0

ES1

SCLSDA

RESET5VGNDVIN

A0A1

Alimentation de la carte Satellite Masse

Page 79: L’Architecture LOCODUINO

/35

Connecteur d'extension

30

MISOMOSISCKES0

ES1

SCLSDA

RESET5VGNDVIN

A0A1

Alimentation de la carte Satellite Masse

5V du régulateur de la carte Satellite

Page 80: L’Architecture LOCODUINO

/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

Page 81: L’Architecture LOCODUINO

/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

Page 82: L’Architecture LOCODUINO

/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

Page 83: L’Architecture LOCODUINO

/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

Page 84: L’Architecture LOCODUINO

/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

Page 85: L’Architecture LOCODUINO

/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

Page 86: L’Architecture LOCODUINO

/35

Montage des cartes d'extension

31

Page 87: L’Architecture LOCODUINO

/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

Page 88: L’Architecture LOCODUINO

/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