Projet Réseau de capteurs
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
1 of 24 2/23/18, 12:39 PM
Architecture du Système
I2CSPI I2C
Capteur dePression
MPL115A
AnémomètreSOMFY
Capteur de Luminosité /
DistanceVL6180X
IMU 9 AxesAccelerometre /
Gyroscope / Magnétomètre
Invensense MPU9250
IHM avec QtPC Host
Timer
CAN Bus
Sonde PEAKPCAN-USB
Carte µC ST-Nucleo
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
2 of 24 2/23/18, 12:39 PM
Carte Nucleo F103
Virtual Com port
Mass Storage
Debug Port
gtktermou (excl)
IHM
file manager
openocd
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
3 of 24 2/23/18, 12:39 PM
Carte Nucleo F103Périphériques
I2C
CAN Bus
AnémomètreSOMFY
Capteur de Luminosité /
DistanceVL6180X
IMU 9 AxesAccelerometre /
Gyroscope / Magnétomètre
Invensense MPU9250
Sonde PEAKPCAN-USB
PC (gtkterm)pour debug
VL6180xApplication
DISPLAY_SEL
GPIOExpander
DisplayApplication
VL6180X Expansion Board
11
SDA(PB9)
SCK(PB8)
I2CTimer
PC
SPI
Capteur dePression
MPL115A
SPI1 Timer1
CORTEXM3
CAN
SN65 CAN Transceiver
UART2
CAN_L
CAN_H
TX(PA12)
ST-LINK
MO
SI
(PA
7)
RX(PA11)
MIS
O (
PA
6)
SC
K (
PA
5)
NS
S (
CS
) (P
A4)
TIM_CLK(PA8)
I2C1
CORTEXM3
CAN
SN65 CAN Transceiver
UART2
TX(PA12)
GPIO0
EXTI0GPIO
INPUT(PC13)
SDA(PB9)
SCK(PB8)
EXTI0(PB0)
SD
A
SC
L
GP
IO1(
Inte
rru
pt)
RX(PA11)
I2C1
CORTEXM3
CAN
SN65 CAN Transceiver
UART2
TX(PA12)
RX(PA11)
Environnement de Développement EclipseIDE Eclipse
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
4 of 24 2/23/18, 12:39 PM
Le Bus CANLe bus CAN est un une laison série :
asynchrone : pas de fil d’horloge (les différents éléments connectés doivent être configurés avec le mêmedébithalf Duplex : on parle chacun son tour, à condition que le bus soit libre
SN65HVD251 CANTransceiver
SN65HVD1050 CANTransceiver
SN65HVD233 CANTransceiver
SN65HVD257 CANTransceiver
RTERM
RTERM
RXTXRXTX RXTX
CANController
Node 1
CANController
Node 2
CANController
Node 3
CANController
Node n
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
5 of 24 2/23/18, 12:39 PM
Le Bus CANFormat d’une Trame de Données (Data Frame)
0 0 0 01
Sta
rt
of
Fram
e
Arbitration Field
RT
R
Control Field
DL
C0
DL
C3
Data Field
8N, 0≤N≤88 8
DL
C1
DL
C2
CRC Field
1
AC
K S
lot
Bit
CR
C D
el
AC
K D
el
Ack Field
1 1 1 1 1 1 1
End of Frame
1 1 1
11 715
IDE
RB
0
1
InterframeSpace
3
Bit de Start : Passage de 1 (état de repos) à 0Adresse / Identifiant / champ d’arbitrageChamp de Commande : Nombre d’octets dans le champ de donnéesChamp de donnéesChamp de CRC : Calcul sur les données envoyées permettant de détecter des erreurs de transmissionChamp de ACK : Tout message doit être acquité ; le destinataire doit forcer le bus à 0Fin de Trame
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
6 of 24 2/23/18, 12:39 PM
Le Bus CANFormat d’une Trame de Données (Data Frame)Capture d’une Trame avec Analyseur Logique SALEAE :
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
7 of 24 2/23/18, 12:39 PM
Le Bus CANArbitrage
SOF
RTR
node 110 9 8 7 6 5 4 3 2 1 0 Control Data
node 2
node 3
resultrecessive
node 2 is loosing the arbitrationlistening only
node 1 is loosing the arbitration
listening only
node 3 wins arbitration and transmits his data
any data
any data
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
8 of 24 2/23/18, 12:39 PM
Le Bus CANREMARQUE : Format Standard/Etendu
0 0 0 01
Sta
rt
of
Fra
me
Arbitration Field
SR
R
Control Field
DL
C0
DL
C3
Data Field
8N, 0≤N≤88 8
DL
C1
DL
C2
CRC Field
1
AC
K S
lot
Bit
CR
C D
el
AC
K D
el
Ack Field
1 1 1 1 1 1 1
End of Frame
1 1 1
11 715
IDE
RB
0
1
1
RT
R
IDE
1 0
RT
R
11 18
Standart Format Identifier(11 bits)
Extended Format Identifier (29 bits)
InterframeSpace
3
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
9 of 24 2/23/18, 12:39 PM
Le Bus CANFiltrage
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
10 of 24 2/23/18, 12:39 PM
Le Bus CANModèle ISO du Bus CANLa norme CAN spécifie les couches Physique et Liaison de données uniquement.D’autres protocoles (devicenet, canopen, ..) spécifient les couches hautes.
Data Link Layer
Physical Layer
Transport
Network
Session
Application
Presentation
CANController
CANTransceiver
Microcontrolleror
DSP
CAN_H CAN_L
OSI Reference LayersHardware
Implementation
Industry StandardCAN Networks
SAE J1939, TTCAN, CAN Kingdom,DeviceNet, SDS,
CCANSpecification
Bit encoding protocol,message identification, etc.
ISO/SAEPhysical LayerSpecifications
Electrical specifications:transceiver characteristics,connectors, cable, etc.
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
11 of 24 2/23/18, 12:39 PM
Le Bus CANLa Couche Physique
Le bit Stuffing
Trame àStuffer
Trame Stuffée
Trame àStuffer
Trame Stuffée
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
12 of 24 2/23/18, 12:39 PM
Le Bus CANLa Couche Physique
Une liaison différentielle
RecessiveLogic H
DominantLogic L
RecessiveLogic H
Time, t
CANL
CANH
Vdiff(D)
Vdiff(R)
Bus States
Typ
ical
Bu
sV
olt
age
(V)
12
34
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
13 of 24 2/23/18, 12:39 PM
Le Bus CANLes autres Trames
Trame de requête (Request Frame)
0 1 0 01
Sta
rt
of
Fram
e
Arbitration Field
RT
R
Control Field
DL
C0
DL
C3
Data Field
8N, 0≤N≤88 8
DL
C1
DL
C2
CRC Field
1
AC
K S
lot
Bit
CR
C D
el
AC
K D
el
Ack Field
1 1 1 1 1 1 1
End of Frame
1 1 1
11 715
IFS
7
IDE
RB
0
1
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
14 of 24 2/23/18, 12:39 PM
Le Bus CANLes autres Trames
Trame d’erreur (Error Frame)
1 1 1 1 1 1 1
End of Frame
1 1 1
7
InterframeSpace
3
0 0 0 0 0 0
6
Error Flag
Rem: Bit Stuffingdésactivé
BusOff
ErrorPassive
ErrorActive
Reset+config
REC>127ou
TEC>127
TEC>255
REC<127ou
TEC<127
Reset+config+reception of 128*11recessive bits
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
15 of 24 2/23/18, 12:39 PM
Capteur de Pression MPL115A1
Rappels : le Bus SPI
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
16 of 24 2/23/18, 12:39 PM
Capteur de Pression MPL115A1Mesure de la pressionSPI Commands
Command to Write “Convert Pressure and Temperature” = 0x24
Command to Read “Pressure ADC High byte” = 0x80
Command to Read “Pressure ADC Low byte” = 0x82
Command to Read “Temperature ADC High byte” = 0x84
Command to Read “Temperature ADC Low byte” = 0x86
Command to Read “Coefficient data byte 1 High byte” = 0x88
Start Pressure and Temperature Conversion, Read raw Pressure:
NOTE: Extra [0x00] at the end of each sequence to output the last data byte on the slave side of the SPI.
[CS=0],[0x24],[0x00],[CS=1],[3 ms Delay][CS=0],[0x80],[0x00],[0x82],[0x00],[0x84],[0x00],[0x86],[0x00],[0x00],[CS=1]
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
17 of 24 2/23/18, 12:39 PM
Anemomètre SOMFY
5 10
10
15 20
20
25 30
30
35 40
40
45 50
50
55 60
60
00
km/h
Hz
Vale urs du ve nt (Hz / km/h)
Tick TimerT3
Timer AnemoT1
Te
TIM1_CLK
t
t
t
Interruption Tick Timer --> RAZ Timer Anemo
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
18 of 24 2/23/18, 12:39 PM
Capteur de Luminosité / Distance VL6180xRappels Bus I2C
I2C
Capteur de Luminosité /
DistanceVL6180X
VL6180xApplication
DISPLAY_SEL
GPIOExpander
DisplayApplication
VL6180X Expansion Board
11
I2C1
CORTEXM3
GPIO0
EXTI0GPIO
INPUT(PC13)
SDA(PB9)
SCK(PB8)
EXTI0(PB0)
SD
A
SC
L
GP
IO1(
Inte
rru
pt)
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
19 of 24 2/23/18, 12:39 PM
Capteur Centrale Inertielle 9 axes Invensense MPU9250
MPU-9250
+Z
+X
+Y
+Z
+Y
+X
MPU-9250
+Z
+X
+Y
Orientation of Axes of Sensitivity for Compass
Orientation of Axes of Sensitivityand Polarity of Rotation
for Accelerometer ans Gyroscope
Block Diagram
MPU-9250
ChargePump
nCS
AD0 / SDO
SCL / SCLK
SDA / SDI
Temp Sensor ADC
ADCZ Gyro
ADCY Gyro
Digital MotionProcessor(DMP)
FSYNC
Slave I2C andSPI SerialInterface
Master I2CSerial
Interface
SerialInterfaceBypassMux
AUX_CL
AUX_DA
INTInterruptStatusRegister
Bias & LDOs
Z Accel
Y Accel
X Accel ADC
ADC
ADC
ADCX Gyro
SignalConditio
ning
FIFO
User & ConfigRegisters
SensorRegisters
Selftest
Selftest
Selftest
Selftest
Selftest
Selftest
XCompass
YCompass
ZCompass
ADC ADC ADC
Signal Conditioning
AK8963
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
20 of 24 2/23/18, 12:39 PM
Capteur Centrale Inertielle 9 axes Invensense MPU9250Traitement des Données
Angles d’Euler
X
Roulis (Roll)Φ (phi)
Lacet (yaw)Tangage (pitch)
Z
YΘ (theta)
Ψ (psi)
Problème du “Gimbal Lock” (blocage de cardan)
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
21 of 24 2/23/18, 12:39 PM
Capteur Centrale Inertielle 9 axes Invensense MPU9250Traitement des Données
Quaternions
wRepère Body
Repère Fixe
u
v
X
Z
Y
Vabc
Θ
Q = [ ], , ,q0 q1 q2 q3
Q = [ ]cos( ), a. sin( ), b. sin( ), c. sin( )θ2
θ2
θ2
θ2
= + . . .Qk+1 Qk12 Te Ωk Qk
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
22 of 24 2/23/18, 12:39 PM
Capteur Centrale Inertielle 9 axes Invensense MPU9250Traitement des Données
Algorithme de Madgwick
Champ de GravitéMesuré
Champ de Gravitéestimé
Calcul erreur de direction
z-1
(retard)
NormalisationCalcul Variation Quaternion
ΔQ
Qk
Qk+1
β
AccélérationsRepère Body
GirationsRepère Body
Qk
z-1
(retard)
ωx
ωy
ωz
ω
γγx
γy
γz
∫
S
Qk
Qk
code madgwick.c
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
23 of 24 2/23/18, 12:39 PM
Déroulement du ProjetDurée : 12UCSalle : E021
Cahier des ChargesListe des Objectifs
IHMTutoriel Qt Creator
Bus Can et Qt –> cf Qt Bus Can
Affichage 3D des données du capteur MPU9250 –> cf Qt OpenGL
PRINTING DZSLIDES VIA IFRAMES file:///media/kerhoas/DATADRIVE1/COURS/WORKSPACE_WEB/print_sli...
24 of 24 2/23/18, 12:39 PM