V.O. 17 dec 2015
Rev .05/08/2019


Cliker PIC18F47J53

Le materiel d'étude et de démonstration(2015)
Prototype de test
ADC12 bits et Afficheur LCD 2119 2x16 bus I2C
Liaison UART2 Remappable <-> RS232 avec Terminal Virtuel PC (via cordon USB-TTL Prolific)
Liaison USB au MikroE HID Terminal
Test One Wire Capteur temperature DS18B20 (2016)
Test Oled Display 0.96" Jaune et Bleu 128x32 SSD1306 en I2C (2016)
version OLED pour 18F26K22

Tracker GPS pour tests Liaison entre 2 modules Transceivers HC12 (2019)
a suivre..


Carte de developement MikroE Clicker for PIC18F47J53
17/12/2015
MikroE Manuel utilisateur

images/t_18F47J53_Click_Board.gif images/t_18F47J53_MCU_Diagram.gif
Référence Mikroe : 1487 19$ H.T. MCU diagram


Carte comportant :
un MCU 18F47J53 44 pins
un quartz 16Mhz
un regulateur 5V -> 3,3V
une liaison USB ( Alim et Programmation)
un emplacement Mikrobus Click
une connection laterale 5 pins : ICSP
un connecteur 10 pins : lateral 8 I/O + alim 3,3V
2 BP : T1 sur RD3 et T2 sur RD2
2 leds : LD1 sur RA0 et LD2 sur RA1

nota: carte equivalente au PUINGUINO !..avec une connectique differente


Schema de la carte

images/t_18F47J53_Click_Schem.gif

HARDWARE :
La carte est alimentée en 3,3v via la liaison USB 5V -> regulateur de tension => 3,3V alim
MicroChip : Datasheet du PIC18F47J53
MikroE : Doc sur cette carte Clicker


Emplacement pour 1 carte fille Click mikroBus

images/t_mikrobus_pinout.gif images/t_mikrobus_schem.gif
MikroBUS Pinout Liaison PIC18F47J53 et MikroBus


Prototype de Test :

images/t_Proto_Test_18F47J53_Click.gif


Mapping I/O pour utiliser UART2 :
La connectique RD5 et RD6 est bien repérée RX et TX sur le MikroBus
3 librairies sont necessaire pour utiliser l'UART2
* activer la bibliotheque PPS Peripheral Pin Select
* La librairie UART ( classique)
* la librairie UART_Remappable

Connection des Pin RD5 et RD6 sur l'UART2 :



Liaison via un cable USB/TTL

images/t_18F47J53_Active_UART2_pins.gif
Cable PL2303HX USB<-> TTL liaison direct <-> UART2

Cablage :
Noir : Ground 0V
Vert : TX ----> sur RX UART2
Blanc : RX -<-- sur TX UART2
Rouge (+5V USB) ..NON CONNECTE (PIC alimenté en 3,3V)
Nota: les pins PORTD sont 5V tolerants.

Datasheet Prolific inrterface
prolific Driver : PL2303 Windows

Port COM Virtuel
../common/Cordon_USB_TTL_Prolific_XP_Vbray.gif

L'alim 3,3V du LC2119 est dispo sur les pins laterales de la carte
Nota: cet interface se comporte IDEM que via l'interface 2Tr -> DB9 PC Vrai port RS232


Software :
Usage de MikroC Pro 6.62 (enregistré!)
Le 1er test software delivré par MikroE .. ne marche pas au 1er coup !
J'ai trouvé d'ailleur une init contradictoire avec celle de la datasheet concernant les Entrees Analogiques
1er Test :
Utilise uniquement les ressources de la carte : 2 BP et 2 Leds
Clignotement des 2 leds F(action sur boutons)
18F47J53_Click_Timer0_Leds_Blink..


2em test :
Mesure ADC 12 Bits sur RA2 .. via un potar alimenté en 3,3V

Rajout du LCD2119 en I2C.. 2x 16 char
Pins I2C2 natives sur RD1 et RD0.. pas besoin du PPS
Usage de ma bibliotheque LCD2119.h .. no problemo
Affichage valeur brute en Points 0 a 4095 et en volts 0,000 a 3,266V
Rajout filtrage arytmetique glissant sur 8 valeurs, affichage en Degres C. ex: 25.456°C

Rajout de UART2 :
Ca se complique a causse des allocation de Pin aux ressources MCU..
Il faut RELIER / AFFECTER L' UART2 aux pins RD5 et RD6 par logiciel.
La aussi, l'exemple mikroC est foireux , car ne doit pas correspondre au 18F47J53 !
Ce sont bien les numeros RPn de PIN qui sont considéres ICI, pas les numeros de pin PHYSIQUES du MCU..

Reception Buffer en mode interruption ..envoi d'un string de 118 bytes en 1 fois ...OK (buffer de 120 cars maxi)
Test envoi commandes clavier: "LD2 ON" ou "LD2 OFF" .. OK

le projet complet : 18F47J53_Timer0_LCD_I2C2_EA2


3em test :
Rajout terminal HID.. a suivre






4em test :
Rajout Capteur de temperature Numerique One Wire DS18B20


Principales Caractéristiques :
-marque yuanbotong
-modele: d108051
-Matiere: acier inoxydable
-Caractéristiques:
Puce DS18B20 température de la sonde, la sonde étanche, en acier inoxydable,
longueur de câble: 100cm; -Alimentation: 3.0 ~ 5V;
9 ~ 12 chiffres de résolution réglable; .. 3,83?
Wiring: RED (VCC) Yellow (DATA) Black or Green (GND)
DS18B20 data sheet

Montage de test :


t_18F47J53_DS18B20_151227.gif

nota : la plaque d'essai ne sert que pour relier les 3 pins du DS18B20 + R de rappel au +3,3V
Le montage est alimenté via la liaison USB (en +5V) , Alim locale en 3,3V sur la carte Click
DS18B20 et LCD 2119 sont alimentés en 3,3V
Le signal DS18B20 O.W.S. rentre sur RE0 du PIC
Un cordon USB-TTL est connecté sur l'UART2 du PIC .
Le PC affiche aussi les donnees via la liaison USB <-> Port COM 23 virtuel , logiciel HTerm 08.23 .
La resolution (12bits) est de 0,0625°C

SOFTWARE :

Rappel:
Dans tous Projet il est necessaire d'indiquer ou rappeler :
le type de MCU,
la tension d'alim
Le type de compilateur et version
les bits de config,
la frequence FOSC
le resultat de compilation

L'exemple MikroC ne me donnait qu'une resolution de 0,625 au lieu des 0,0625 possible annoncés en mode 12 bits.
A l'aide de la data sheet , j'ai donc repris la demarche pour comprendre comment on determine la mesure finale
voir le diagramme suivant ...
On retouve la partie entiere de la mesure en °C dans les 2 premiers bytes de la memeoire intermediare (scratchpad RAM)
mais , melangée avec la partie decimale et le signe.
Il suffit d'isoler les bon bits et de les concatener pour reconstituer la partie entiere de la mesure
On la multiplie par 10 000 , et on pose la virgule separatrice entre unites et decimales,
et on rajoute en fin , la partie decimale (exprimee en 1/10000eme de degré modulo 625 correspond a 1/16 em de degré
La partie decimale etant sur 4 bits => possibilité 0 a 15 , 16 pas de 0,0625°C
Pour les valeurs negatives de temperature ,le bit de signe (poids fort 2^8) du 2em byte = 1
on applique le complement a 2 +1 ( notion de base en logique !) sur les 2 bytes..

images/DS18B20_decode.gif
J'attends les grands froids pour test en reel des valeurs negatives ! ( je sais , il y a le frigo,mais loin de mon bureau)
La precision absolue donnée pour ce capteur est de +-0,5°C , grand devant la resolution 0,0625°C
mais ce qui compte c'est surtout la fidelité, repetabilité et eventuellement hysteresie.
Difficile a apprecier sans un four ETALON ....mais avec un offest de compensation d'etalonnage,
un filtrage sur quelques mesures, on devrais atteindre un resultat proche de +-<=0,1°C.
C'est toujours mieux qu'avec un LM35DZ analogique.

images/DS18B20_Temperature_Numeric_value.


La fonction Mesure DS18B20 recupere cete mesure sous 3 formats : entier long 32 bit , texte , flottant
La mesure est cadrée a droite , sur 9 caracteres.
Le detail du module mesure DS18B20 , dans le main programme, pour afficher ,au moins 1 fois ,les 9 registres du Scratchpad RAM DS18B20



Ce PIC a la particularité d'avoir un ADC sur 12 bits ! donc 4096 pts 0 a 4095 pour 0 a 3,3V

On peut SIMPLIFIER ce programme, via la compilation conditionelle, si on a pas encore
pratiqué un des modules. ... il faut toute fois avoir au minimum l'UART ou le LCD pour visualiser un resultat !
Meme si les PC n'ont plus de port COM, il existe multe solutions pour avoir un port virtuel COM via USB
voir meme via bluetooth.

Compilation conditionnelle :
pour aciver les modules suivants :

#define With_UART2
#define With_ADC12
#define With_TMR1
#define With LCD2119
#define With_DS18B20
choix d'oscillateur interne ou externe :
#define OSCILLATEUR_INTERNE
Test ou pas de la valeur FOSC , si UART utilisé !
#define TEST_FOSC
Infos (non utilisées par le programme):
#define Project "18F47J53_LCD_UART2_I2C2_ADC_DS18B20_2016.mcppi"
#define PROCESSOR 18F47J53
#define POWER_SUPPLY_3_3V .... bien qu'alimenté via USB 5V, la carte comporte un regulateur 3,3V

Pour désactiver un module :
il suffit de mettre un commentaire devant le #define .. ex: //define UART2 => UART NON utilisé
Le fichier source C , autodocumenté , comprend le maximum de renseignements , liens xml vers docus.

a noter :
fonction decimal vers ascii en simil flottant : char * Decimal_less_9_999_to_Ascii( unsigned int k)
fonction Long32bits vers ascii simili flottant avec 4 decimales : char * Long32bits_to_Ascii_4decimales( long L1)
pour eviter l'usage de flottant et Maths consommant beaucoup de ressources.
meme si , avec ce PIC, on pourrait utiliser des fonctions evoluees tel que Sprintf ou Printout

Resultat sur Terminal Virtuel PC

Testé OK avec FOSC a 4MHz et 8MHz

Test Presence Device a l'adresse : 116 present .. OK ......... Le LCD 2119 est bien sur le bus I2C
Projet:18F47J53_LCD_UART2_I2C2_ADC_DS18B20_2016.mcppi
Click 18F47J53
Ver: 01-01-2016
Init PPS for UART2 :
Fosc = 4000 KHz .... FOSC Interne 4MHz
Check delay de 5000mS entre # et @
#
@
DS18B20 device present..sur pin RE0 ..Ok ..... le capteur est bien sur le bus O.W.

Version perso from scratch .. resolution 0,0625°C
91 1 75 70 127 255 12 16 7 21.687
Mesure ADC 12bits sur RA2
EA2= 1,705 1.374EA2= 1705 ou 1.374 volts ou 15.387°C filtre DS18B20 (txt) : +21.6875 long 4 decimales: 21,6875
EA2= 2,166 1.745EA2= 2166 ou 1.745 volts ou 15.769°C filtre DS18B20 (txt) : +21.6875 long 4 decimales: 21,6875
EA2= 1,783 1.436EA2= 1783 ou 1.436 volts ou 15.858°C filtre DS18B20 (txt) : +21.7500 long 4 decimales: 21,7500
EA2= 2,179 1.756EA2= 2179 ou 1.756 volts ou 15.857°C filtre DS18B20 (txt) : +21.8125 long 4 decimales: 21,8125
EA2= 1,783 1.436EA2= 1783 ou 1.436 volts ou 15.855°C filtre DS18B20 (txt) : +21.8125 long 4 decimales: 21,8125
EA2= 2,182 1.758EA2= 2182 ou 1.758 volts ou 15.855°C filtre DS18B20 (txt) : +21.8750 long 4 decimales: 21,8750
EA2= 1,785 1.438EA2= 1785 ou 1.438 volts ou 15.855°C filtre DS18B20 (txt) : +21.9375 long 4 decimales: 21,9375

9:32:23.187> Fosc = 4000 KHz
9:32:23.250> Check delay de 5000mS entre # et @
9:32:23.250> #
9:32:28.187> @ ............ on a bien 5 secondes ecoulees !


et testé a 48Mhz, avec //#define OSCILLATEUR_INTERNE

9:50:59.953> Init PPS for UART2 :
9:51:01.953> Fosc = 48000 KHz .. FOSC: Q=16MHz + PLL + divisuer => 48Mhz
9:51:01.953> Check delay de 5000mS entre # et @
9:51:01.953> #
9:51:06.953> @ .......... on a toujours bien 5 secondes ecoulees !
9:51:06.953> DS18B20 device present..sur pin RE0 ..Ok
9:51:08.015>
9:51:08.015> Version perso from scratch .. resolution 0,0625°C
9:51:08.765> 83 1 75 70 127 255 12 16 45 21.187
9:51:11.328> Mesure ADC 12bits sur RA2
9:51:12.078> EA2= 1,737 1.399EA2= 1737 ou 1.399 volts ou 15.377°C filtre DS18B20 (txt) : +21.1875 long 4 decimales: 21,1875
9:51:14.328> EA2= 1,782 1.436EA2= 1782 ou 1.436 volts ou 15.375°C filtre DS18B20 (txt) : +21.1875 long 4 decimales: 21,1875
9:51:15.453> EA2= 2,177 1.754EA2= 2177 ou 1.754 volts ou 15.773°C filtre DS18B20 (txt) : +21.2500 long 4 decimales: 21,2500


Test mesure temperature négative

dans le compartiment Congelateur de mon frigo ... réchauffement climatique oblige !
// 19-01-2016
// test avec temperature congelmateur -22°C ... BAD affichage en LONG
// car NON signé et ne traite que du positif
donc modif pour afficher Temp DS12B20 en Flottant et LONG signé 3 decimales sur le LCD
J'ai utilisé un thermocouple K associé a mon multimetre pour connaitre la temperature "réelle" ?
et comparer avec celle donnée par le capteur DS18B20

images/Mesure_temp_negative-18C.gif

Le temps de reponse du thermocouple + multimetre est de l'ordre de 40 secondes ( 5 teta ou >96% de l'echelon)
entre la temperature ambiante de + 19°C et la température finalie -18°C (dans le congelateur)
Par contre, pour le capteur DS18B20 (qui est encapsulé dans une gaine inox) , il est l'ordre de 6 minutes
pour atteindre plus de 96% de l'echantillon (6 mn a 5 teta ), l'echelon a 63% étant de l'ordre de 80 sec.

images/t_Test_DS18B20_a-18degres_160119.gi

Je n'ai pas de thermometre ou appareil plus precis pour verifier la justesse de mesure de la sonde DS18B20.
CON"s : temps de réponse lent,
PRO's : mesure Numerique & tres bonne résolution
Apres on peut discuter pendant 107 ans sur la precision ..etc

Dossier MikroC complet :
18F47J53_UART2_LCD_I2C2_LM335_ADC12b_DS18B20_2016.zip
ou clicker sur l'image ci dessous
contenu de l'archive zip :






5em test :
Test Afficheur OLED 128x64 (ou 32) SSD1306 en I2C

rev 14/12/2016
Documentation OLED SSD1306

Usage du Click 18F47J53 alimenté via le port USB , mais utilise le +3,3V élaboré sur la carte.
Le module OLED est raccordé via 4 piins
.1) +Vcc 3,3V
.2) Gnd (0V)
.3) SCL du bus I2C2 --fil vert ---RD0 MikroBus
.4) SDA du bus I2C2 -- fil jaune --RD1 mikroBus

La liaison UART2 (optionelle) est utilisée pour suivre / tracer le programme.
Au lieu de mettre une tempo definie., entre les differents affichages, .on attend l'appui d'une touche clavier ou timeout de 3sec

Le prototype :

images/t_OLED_Clicker_Proto.gif
cable USB pour Programmation via bootloader USB, et pour alimentation du montage.
cable USB Prolic 2303 relié directement sur UART2 du PIC18 ( pour affichage sur terminal Teraterm)


Le schema :




Affichage display terminal :

images/Oled_Terminal_trace.gif


images/t_Oled_matricage.gif
matricage Lignes colonnes


SOFTWARE:

Nota: software fortement inspiré de la documentation et software du fabriquant (supposé etre) HELTEC

Specificité du PIC18F47J53 :
On retouve la config assez particuliere de l'UART2 ( optionnelle)
Le bus I2C2 Hardware est utilisé ici ,pour piloter le display OLED SSD1306

Problemo : Afficheur vendu pour 128x64 .. mais interlignage apparent ???
d'ou ,une grosse perte de temps a chercher un probleme inexistant ..
Utilisation d'une fonte 6x8 => 21 caracteres sur 4 lignes (0,1,2,3 pages)
Fonte de 16x16 =>2 lignes de 10 caracteres , avec position Y modulo 8 !


MikroC :
Source :Clicker_18F47J53_Oled_SSD1306_128x32_161213.c
Chargeur: Clicker_18F47J53_Oled_SSD1306_Heltec_161213.hex
projet complet : Clicker_18F47J53_Oled_SSD1306_128x32_161213.zip

r

Display filled with 0xFF car .........Taille 2 ..rev 08/2019 .......taille 1 ... rev ev 08/2019
.....taille 1 ...... Taille 3 load BMP image

une ecriture en page 4 a 7 n'est pas visible .. mais apparait si je change l'origine de la page a 4 au lieu de 0
En commutant , via la commande 0xD3 ,0x40 => affichage des pages 0 a 3
En commutant, via la commande 0xD3 , 0x60 => affichage des pages 4 a 7

affichage obtenu avec image BMP1 Heltec Backside of my display .. AUCUNE REFERENCE

il semble pourtant que l'affichage saute 1 ligne entre les pixels ! PROBLEME NON RESOLU !
L' AFFICHEUR est-il défectueux ou specifique ? ou une config inadaptée ..malgré multes essais négatifs.
Je n'en ai pas d'autre pour verifier .

Display of BMP1 .. miniinthebox original backside .. miniinthebox


Lien vers version 18F26K22






Tracker GPS pour Tests Liaisons entre 2 Modules HC12
lien sur HC12

Hardware :

Le prototype

images/t_Proto_Tracker_HC12.gif

un GPS Ublox 7N dialogue en liaison Serie a 9600 bauds ( partie COMPAS en I2C non utilisée ,ici )
un module affichage OLED 128x32 , I2C , compatible SSD1306
un capteur de temperature OWS DS18B20 ( R de rappel 6,8K entre signal et + Vcc) -> RA2
2 ports UARTS sont utilisés :
UART2 Rx a 9600 bds pour la reception des trames GPS
UART1 Tx a 1200 bds pour l'envoi au transceiver HC12 (rx)
Carte Clicker PIC18F47J53 possede 3K de Ram 115 K de ROM
L'OLED necesite pas mal de place pour stocker les fontes de characteres et eventuellement des images BMP.
Le PIC de la carte Clicker possede un Bootloader interne , et donc permet le transfert du programme *.Hex,
via la lision USB de la carte. ( sans programmateur externe genre Pickit4)
De meme , pour les tests , l'alim se fait via le cordon USB, donc via liaison au PC ou sur une POWER BANK
un régulateur embarqué ASM1117-3,3 genere le 3,3V necessaire aux élements connectés.

Le schéma :

images/t_Clicker2_18F47J53_HC12_via_OLED_GPS_test_1908.gif

Le GPS fonctionne tres bien, meme a l'interieur , a 2m d'une fenetre.

Le Programme

Commence par une exeption
La config FOSC interne n'est pas accessible si on veut conserver le mode HID bootloader
qui impose, because USB, une FOSC de 48MHz
FOSC interne peut etre forcée par la liaison ICSP ...

*Init HARDWARE
*Init UART2 apresMapping des Entree/sortie
* int UART1 directe
*Présentation du programme
Nota: visible que si l'UART2 est connectée a un terminal ( Teraterm) ou MikroE terminal UART, via un cordon Prolific USB
*Init I2C pour l'acces a l'ecan OLED
*Armement Timer0 a 100mS et son interrupt associée
*petite demo des possibilites de l'ecran OLED
*Arment des Interrupts RX UART2 et RX UART2

Boucle principale :
Si le flag de reception UART2 ( UART2 RX <-- GPS Tx)
Uart2_ DataReady est levé dans le temps imparti part Timer0 ( 11x 100mS soit 1,1sec )
Traitement des datas reçues via une machine d'état , et un maxima de carateres reçus ( 256)
La machine d'etat repére la sequence "$GPRMC" => debut de stockage dans buffer2
sachant que la trame qui m'interesse "$GPGGA" sera forcément dans les 256 caracteres maximum pouvant suivre ..
La sequence complete delivrée par le GPS est de 516 caracteres en 9 trames, j'ai pas besoin de tout cela..
Le GPS envoi toutes les trames chaque seconde.
On a donc largement le temps de recevoir ces 256 bytes ( la moitié,en 1100mS (timeOut Timer0)
Une fonction d'affichage, décortique et isole les elements vitaux de la trame GPGGA, soit
sur la sortie UART1:
La longitude,Latidtude,Altitude
et autres parametre qualitatif de la reception du signal au niveau du GPS (HOP, Nb de satellites )
Les infos brutes sont corrigées , puis envoyé sur l' UART1 TX relié au HC12 (emetteur) ( et eventuellement aussi a un terminal PC)
Les infos sont aussi condensées au format KML GoogleEarth
sur la sortie UART2 :
Message Attente Message GPS + la temperature du sensor DS1820.
Sur l'afficheur OLED :
Premiere ligne Jaune : Indice de la boucle programme / ou Mesure de temperature DS18B20 ,
en alternance de boucle programme, suivant indice pair ou impair .
2em ligne : Longitude
3em : Latitude
4em : Altitude
si le GPS perd pied, affichage de X,Y,Z ou 0.000
Les Leds LD1 et LD2 clinotent a chaqur tour de boucle programme
Fonction specifiqe a 'aides des Boutons Poussoirs:
Appui sur BP1 ( pendant minimum 1 cycle soit 1 sec) :
affichage de toutes les donnes (utilies) du GPS
Lon : 5.197115 N Lat : 45.824413 E Alt : 224.4 Satel: 11 HDOP : 0.88 Fix: 1
Appui sur BP2 ( pendant 1 sec minimum) :
Affichage reduit au format KML :
KML : 5.197132,45.824413,215.5
c'est ce format minimaliste qui sera utilisé pour tracker le lien entre les HC12
Appui sur BP1 ET BP2 permanent :
Affichage long + buffer2 (reception GPS)
Decodage Trame GPGGA .. OK
Lon : 5.197166 N Lat : 45.824418 E Alt : 220.1 Satel: 08 HDOP : 1.25 Fix: 1
.Reception sur UART2 RX = GPS :
$GPRM,103806.00,A,4549.46614,N,00511.83015,E,0.050,,040819,,,A*7A
$GPVTG,,T,,M,0.050,N,0.093,K,A*2C
$GPGGA,103806.00,4549.46614,N,00511.83015,E,1,08,1.25,220.1,M,47.3,M,,*58

goto Boucle !

Pour l'instant je n'ai que le terminal en face du PIC ..
mais le but est de mettre une appli coté recepteur PC pour renvoyer un compte-rendu
de bonne ou mauvaise reception , des que l'emetteur sera hors de portée.
(l'emetteur enverra chaque seconde la trame au format KLM..)
Le dernier relevé GPS permettant de connaitre Precisément celle ci .
Une appli RapidQ Basic pemettra une reponse automatique et un stockage Log du test complet.
nota :Le format KML permet de suivre le tracé sur GoogleEarth apres encapsulation de la trame GPS.

images/t_Proto_Tracker_HC12_inter_Liaisons.gif images/t_Proto_Tracker_HC12_3_Liaisons_COM.gif
inter actions et detail connection GPS 3 COM pour debugger= 3 terminaux Terraterm


PIC18F UART2 ==> Reception GPS ( ou terminal COM16 a 9600 bauds)
PIC18F UART1 RC7=RX , RC6=TX ==> HC12 (ou terminal COM15 a 4800 bds)
HC12-Bleu -> terminal COM3 a 9600 bauds ( pour passer la commande AT+RX , sinon dialogue a 1200 bauds)

affichage alterné sur la 1ere ligne (Jaune)

   


Programme MikroC :
projet : _18F47J53_GPS_UART1_UART2_DS18B20_OLED.zip
source : Clicker_18F47J53_UART1_Oled_SSD1306_DS18B20_GPS7N_UART2_190805.c
Chargeur : Clicker_18F47J53_UART1_Oled_DS18B20_GPS7N_UART2_190805.hex

La suite avec des HC12 version 2-6




video :
Proto_Tracker_HC12_190805.webm














Questions/reponses
via mail ci dessous
paulfjujo@free.fr



../common/GIF/LTC1286p.jpg

retour a l'index