L’Architecture LOCODUINO
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